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,167 +1,167 @@
|
|
|
1
|
-
import { jQueryReplacement } from '../../core/jq';
|
|
2
|
-
import { Slick } from '../slick.core';
|
|
3
|
-
|
|
4
|
-
// register namespace
|
|
5
|
-
$.deepExtend(window, {
|
|
6
|
-
"Slick": {
|
|
7
|
-
"RowSelectionModel": RowSelectionModel
|
|
8
|
-
}
|
|
9
|
-
});
|
|
10
|
-
export function RowSelectionModel(options) {
|
|
11
|
-
var _grid;
|
|
12
|
-
var _ranges = [];
|
|
13
|
-
var _self = this;
|
|
14
|
-
var _handler = new Slick.EventHandler();
|
|
15
|
-
var _inHandler;
|
|
16
|
-
var _options;
|
|
17
|
-
var _defaults = {
|
|
18
|
-
selectActiveRow: true
|
|
19
|
-
};
|
|
20
|
-
function init(grid) {
|
|
21
|
-
_options = $.deepExtend({}, _defaults, options);
|
|
22
|
-
_grid = grid;
|
|
23
|
-
_handler.subscribe(_grid.onActiveCellChanged, wrapHandler(handleActiveCellChange));
|
|
24
|
-
_handler.subscribe(_grid.onKeyDown, wrapHandler(handleKeyDown));
|
|
25
|
-
_handler.subscribe(_grid.onClick, wrapHandler(handleClick));
|
|
26
|
-
}
|
|
27
|
-
function destroy() {
|
|
28
|
-
_handler.unsubscribeAll();
|
|
29
|
-
}
|
|
30
|
-
function wrapHandler(handler) {
|
|
31
|
-
return function () {
|
|
32
|
-
if (!_inHandler) {
|
|
33
|
-
_inHandler = true;
|
|
34
|
-
handler.apply(this, arguments);
|
|
35
|
-
_inHandler = false;
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function rangesToRows(ranges) {
|
|
40
|
-
var rows = [];
|
|
41
|
-
for (var i = 0; i < ranges.length; i++) {
|
|
42
|
-
for (var j = ranges[i].fromRow; j <= ranges[i].toRow; j++) {
|
|
43
|
-
rows.push(j);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return rows;
|
|
47
|
-
}
|
|
48
|
-
function rowsToRanges(rows) {
|
|
49
|
-
var ranges = [];
|
|
50
|
-
var lastCell = _grid.getColumns().length - 1;
|
|
51
|
-
for (var i = 0; i < rows.length; i++) {
|
|
52
|
-
ranges.push(new Slick.Range(rows[i], 0, rows[i], lastCell));
|
|
53
|
-
}
|
|
54
|
-
return ranges;
|
|
55
|
-
}
|
|
56
|
-
function getRowsRange(from, to) {
|
|
57
|
-
var i, rows = [];
|
|
58
|
-
for (i = from; i <= to; i++) {
|
|
59
|
-
rows.push(i);
|
|
60
|
-
}
|
|
61
|
-
for (i = to; i < from; i++) {
|
|
62
|
-
rows.push(i);
|
|
63
|
-
}
|
|
64
|
-
return rows;
|
|
65
|
-
}
|
|
66
|
-
function getSelectedRows() {
|
|
67
|
-
return rangesToRows(_ranges);
|
|
68
|
-
}
|
|
69
|
-
function setSelectedRows(rows) {
|
|
70
|
-
setSelectedRanges(rowsToRanges(rows));
|
|
71
|
-
}
|
|
72
|
-
function setSelectedRanges(ranges) {
|
|
73
|
-
// simple check for: empty selection didn't change, prevent firing onSelectedRangesChanged
|
|
74
|
-
if ((!_ranges || _ranges.length === 0) && (!ranges || ranges.length === 0)) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
_ranges = ranges;
|
|
78
|
-
_self.onSelectedRangesChanged.notify(_ranges);
|
|
79
|
-
}
|
|
80
|
-
function getSelectedRanges() {
|
|
81
|
-
return _ranges;
|
|
82
|
-
}
|
|
83
|
-
function handleActiveCellChange(e, data) {
|
|
84
|
-
if (_options.selectActiveRow && data.row != null) {
|
|
85
|
-
setSelectedRanges([new Slick.Range(data.row, 0, data.row, _grid.getColumns().length - 1)]);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
function handleKeyDown(e) {
|
|
89
|
-
var activeRow = _grid.getActiveCell();
|
|
90
|
-
if (_grid.getOptions().multiSelect && activeRow
|
|
91
|
-
&& e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey
|
|
92
|
-
&& (e.which == Slick.keyCode.UP || e.which == Slick.keyCode.DOWN)) {
|
|
93
|
-
var selectedRows = getSelectedRows();
|
|
94
|
-
selectedRows.sort(function (x, y) {
|
|
95
|
-
return x - y;
|
|
96
|
-
});
|
|
97
|
-
if (!selectedRows.length) {
|
|
98
|
-
selectedRows = [activeRow.row];
|
|
99
|
-
}
|
|
100
|
-
var top = selectedRows[0];
|
|
101
|
-
var bottom = selectedRows[selectedRows.length - 1];
|
|
102
|
-
var active;
|
|
103
|
-
if (e.which == Slick.keyCode.DOWN) {
|
|
104
|
-
active = activeRow.row < bottom || top == bottom ? ++bottom : ++top;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
active = activeRow.row < bottom ? --bottom : --top;
|
|
108
|
-
}
|
|
109
|
-
if (active >= 0 && active < _grid.getDataLength()) {
|
|
110
|
-
_grid.scrollRowIntoView(active);
|
|
111
|
-
var tempRanges = rowsToRanges(getRowsRange(top, bottom));
|
|
112
|
-
setSelectedRanges(tempRanges);
|
|
113
|
-
}
|
|
114
|
-
e.preventDefault();
|
|
115
|
-
e.stopPropagation();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
function handleClick(e) {
|
|
119
|
-
var cell = _grid.getCellFromEvent(e);
|
|
120
|
-
if (!cell || !_grid.canCellBeActive(cell.row, cell.cell)) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
if (!_grid.getOptions().multiSelect || (!e.ctrlKey && !e.shiftKey && !e.metaKey)) {
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
var selection = rangesToRows(_ranges);
|
|
127
|
-
var idx = selection.indexOf(cell.row);
|
|
128
|
-
//var idx = $.inArray(cell.row, selection);
|
|
129
|
-
if (idx === -1 && (e.ctrlKey || e.metaKey)) {
|
|
130
|
-
selection.push(cell.row);
|
|
131
|
-
_grid.setActiveCell(cell.row, cell.cell);
|
|
132
|
-
}
|
|
133
|
-
else if (idx !== -1 && (e.ctrlKey || e.metaKey)) {
|
|
134
|
-
selection = selection.filter(function (o, i) {
|
|
135
|
-
return (o !== cell.row);
|
|
136
|
-
});
|
|
137
|
-
_grid.setActiveCell(cell.row, cell.cell);
|
|
138
|
-
}
|
|
139
|
-
else if (selection.length && e.shiftKey) {
|
|
140
|
-
var last = selection.pop();
|
|
141
|
-
var from = Math.min(cell.row, last);
|
|
142
|
-
var to = Math.max(cell.row, last);
|
|
143
|
-
selection = [];
|
|
144
|
-
for (var i = from; i <= to; i++) {
|
|
145
|
-
if (i !== last) {
|
|
146
|
-
selection.push(i);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
selection.push(last);
|
|
150
|
-
_grid.setActiveCell(cell.row, cell.cell);
|
|
151
|
-
}
|
|
152
|
-
var tempRanges = rowsToRanges(selection);
|
|
153
|
-
setSelectedRanges(tempRanges);
|
|
154
|
-
e.stopImmediatePropagation();
|
|
155
|
-
return true;
|
|
156
|
-
}
|
|
157
|
-
$.shallowExtend(this, {
|
|
158
|
-
"getSelectedRows": getSelectedRows,
|
|
159
|
-
"setSelectedRows": setSelectedRows,
|
|
160
|
-
"getSelectedRanges": getSelectedRanges,
|
|
161
|
-
"setSelectedRanges": setSelectedRanges,
|
|
162
|
-
"init": init,
|
|
163
|
-
"destroy": destroy,
|
|
164
|
-
"pluginName": "RowSelectionModel",
|
|
165
|
-
"onSelectedRangesChanged": new Slick.Event()
|
|
166
|
-
});
|
|
167
|
-
}
|
|
1
|
+
import { jQueryReplacement } from '../../core/jq';
|
|
2
|
+
import { Slick } from '../slick.core';
|
|
3
|
+
let $ = jQueryReplacement;
|
|
4
|
+
// register namespace
|
|
5
|
+
$.deepExtend(window, {
|
|
6
|
+
"Slick": {
|
|
7
|
+
"RowSelectionModel": RowSelectionModel
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
export function RowSelectionModel(options) {
|
|
11
|
+
var _grid;
|
|
12
|
+
var _ranges = [];
|
|
13
|
+
var _self = this;
|
|
14
|
+
var _handler = new Slick.EventHandler();
|
|
15
|
+
var _inHandler;
|
|
16
|
+
var _options;
|
|
17
|
+
var _defaults = {
|
|
18
|
+
selectActiveRow: true
|
|
19
|
+
};
|
|
20
|
+
function init(grid) {
|
|
21
|
+
_options = $.deepExtend({}, _defaults, options);
|
|
22
|
+
_grid = grid;
|
|
23
|
+
_handler.subscribe(_grid.onActiveCellChanged, wrapHandler(handleActiveCellChange));
|
|
24
|
+
_handler.subscribe(_grid.onKeyDown, wrapHandler(handleKeyDown));
|
|
25
|
+
_handler.subscribe(_grid.onClick, wrapHandler(handleClick));
|
|
26
|
+
}
|
|
27
|
+
function destroy() {
|
|
28
|
+
_handler.unsubscribeAll();
|
|
29
|
+
}
|
|
30
|
+
function wrapHandler(handler) {
|
|
31
|
+
return function () {
|
|
32
|
+
if (!_inHandler) {
|
|
33
|
+
_inHandler = true;
|
|
34
|
+
handler.apply(this, arguments);
|
|
35
|
+
_inHandler = false;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function rangesToRows(ranges) {
|
|
40
|
+
var rows = [];
|
|
41
|
+
for (var i = 0; i < ranges.length; i++) {
|
|
42
|
+
for (var j = ranges[i].fromRow; j <= ranges[i].toRow; j++) {
|
|
43
|
+
rows.push(j);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return rows;
|
|
47
|
+
}
|
|
48
|
+
function rowsToRanges(rows) {
|
|
49
|
+
var ranges = [];
|
|
50
|
+
var lastCell = _grid.getColumns().length - 1;
|
|
51
|
+
for (var i = 0; i < rows.length; i++) {
|
|
52
|
+
ranges.push(new Slick.Range(rows[i], 0, rows[i], lastCell));
|
|
53
|
+
}
|
|
54
|
+
return ranges;
|
|
55
|
+
}
|
|
56
|
+
function getRowsRange(from, to) {
|
|
57
|
+
var i, rows = [];
|
|
58
|
+
for (i = from; i <= to; i++) {
|
|
59
|
+
rows.push(i);
|
|
60
|
+
}
|
|
61
|
+
for (i = to; i < from; i++) {
|
|
62
|
+
rows.push(i);
|
|
63
|
+
}
|
|
64
|
+
return rows;
|
|
65
|
+
}
|
|
66
|
+
function getSelectedRows() {
|
|
67
|
+
return rangesToRows(_ranges);
|
|
68
|
+
}
|
|
69
|
+
function setSelectedRows(rows) {
|
|
70
|
+
setSelectedRanges(rowsToRanges(rows));
|
|
71
|
+
}
|
|
72
|
+
function setSelectedRanges(ranges) {
|
|
73
|
+
// simple check for: empty selection didn't change, prevent firing onSelectedRangesChanged
|
|
74
|
+
if ((!_ranges || _ranges.length === 0) && (!ranges || ranges.length === 0)) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
_ranges = ranges;
|
|
78
|
+
_self.onSelectedRangesChanged.notify(_ranges);
|
|
79
|
+
}
|
|
80
|
+
function getSelectedRanges() {
|
|
81
|
+
return _ranges;
|
|
82
|
+
}
|
|
83
|
+
function handleActiveCellChange(e, data) {
|
|
84
|
+
if (_options.selectActiveRow && data.row != null) {
|
|
85
|
+
setSelectedRanges([new Slick.Range(data.row, 0, data.row, _grid.getColumns().length - 1)]);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function handleKeyDown(e) {
|
|
89
|
+
var activeRow = _grid.getActiveCell();
|
|
90
|
+
if (_grid.getOptions().multiSelect && activeRow
|
|
91
|
+
&& e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey
|
|
92
|
+
&& (e.which == Slick.keyCode.UP || e.which == Slick.keyCode.DOWN)) {
|
|
93
|
+
var selectedRows = getSelectedRows();
|
|
94
|
+
selectedRows.sort(function (x, y) {
|
|
95
|
+
return x - y;
|
|
96
|
+
});
|
|
97
|
+
if (!selectedRows.length) {
|
|
98
|
+
selectedRows = [activeRow.row];
|
|
99
|
+
}
|
|
100
|
+
var top = selectedRows[0];
|
|
101
|
+
var bottom = selectedRows[selectedRows.length - 1];
|
|
102
|
+
var active;
|
|
103
|
+
if (e.which == Slick.keyCode.DOWN) {
|
|
104
|
+
active = activeRow.row < bottom || top == bottom ? ++bottom : ++top;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
active = activeRow.row < bottom ? --bottom : --top;
|
|
108
|
+
}
|
|
109
|
+
if (active >= 0 && active < _grid.getDataLength()) {
|
|
110
|
+
_grid.scrollRowIntoView(active);
|
|
111
|
+
var tempRanges = rowsToRanges(getRowsRange(top, bottom));
|
|
112
|
+
setSelectedRanges(tempRanges);
|
|
113
|
+
}
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
e.stopPropagation();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function handleClick(e) {
|
|
119
|
+
var cell = _grid.getCellFromEvent(e);
|
|
120
|
+
if (!cell || !_grid.canCellBeActive(cell.row, cell.cell)) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (!_grid.getOptions().multiSelect || (!e.ctrlKey && !e.shiftKey && !e.metaKey)) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
var selection = rangesToRows(_ranges);
|
|
127
|
+
var idx = selection.indexOf(cell.row);
|
|
128
|
+
//var idx = $.inArray(cell.row, selection);
|
|
129
|
+
if (idx === -1 && (e.ctrlKey || e.metaKey)) {
|
|
130
|
+
selection.push(cell.row);
|
|
131
|
+
_grid.setActiveCell(cell.row, cell.cell);
|
|
132
|
+
}
|
|
133
|
+
else if (idx !== -1 && (e.ctrlKey || e.metaKey)) {
|
|
134
|
+
selection = selection.filter(function (o, i) {
|
|
135
|
+
return (o !== cell.row);
|
|
136
|
+
});
|
|
137
|
+
_grid.setActiveCell(cell.row, cell.cell);
|
|
138
|
+
}
|
|
139
|
+
else if (selection.length && e.shiftKey) {
|
|
140
|
+
var last = selection.pop();
|
|
141
|
+
var from = Math.min(cell.row, last);
|
|
142
|
+
var to = Math.max(cell.row, last);
|
|
143
|
+
selection = [];
|
|
144
|
+
for (var i = from; i <= to; i++) {
|
|
145
|
+
if (i !== last) {
|
|
146
|
+
selection.push(i);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
selection.push(last);
|
|
150
|
+
_grid.setActiveCell(cell.row, cell.cell);
|
|
151
|
+
}
|
|
152
|
+
var tempRanges = rowsToRanges(selection);
|
|
153
|
+
setSelectedRanges(tempRanges);
|
|
154
|
+
e.stopImmediatePropagation();
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
$.shallowExtend(this, {
|
|
158
|
+
"getSelectedRows": getSelectedRows,
|
|
159
|
+
"setSelectedRows": setSelectedRows,
|
|
160
|
+
"getSelectedRanges": getSelectedRanges,
|
|
161
|
+
"setSelectedRanges": setSelectedRanges,
|
|
162
|
+
"init": init,
|
|
163
|
+
"destroy": destroy,
|
|
164
|
+
"pluginName": "RowSelectionModel",
|
|
165
|
+
"onSelectedRangesChanged": new Slick.Event()
|
|
166
|
+
});
|
|
167
|
+
}
|
package/lib/grid/slick.core.d.ts
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
import { IjQueryReplacement } from "../core/jq";
|
|
2
|
-
import { ISlickGrid } from "./slick.grid";
|
|
3
|
-
export interface ISlick {
|
|
4
|
-
"Event": () => void;
|
|
5
|
-
"EventData": () => void;
|
|
6
|
-
"EventHandler": () => void;
|
|
7
|
-
"Range": (fromRow: number, fromCell: number, toRow?: number, toCell?: number) => void;
|
|
8
|
-
"NonDataRow": () => void;
|
|
9
|
-
"Group": any;
|
|
10
|
-
"GroupTotals": any;
|
|
11
|
-
"EditorLock": () => void;
|
|
12
|
-
"GlobalEditorLock": any;
|
|
13
|
-
"keyCode": any;
|
|
14
|
-
"preClickClassName": string;
|
|
15
|
-
$: IjQueryReplacement;
|
|
16
|
-
}
|
|
17
|
-
export interface ISlickEvent<T> {
|
|
18
|
-
subscribe(fnc: (e: any, args: T) => any): any;
|
|
19
|
-
notify(args: T, e: any): any;
|
|
20
|
-
countHandlers(): number;
|
|
21
|
-
}
|
|
22
|
-
export interface ISlickFormatterResult {
|
|
23
|
-
addClasses?: string[];
|
|
24
|
-
removeClasses?: string[];
|
|
25
|
-
toolTip?: string;
|
|
26
|
-
text?: string;
|
|
27
|
-
}
|
|
28
|
-
export type ISlickFormatter = (row: number, cell: number, value: any, columnDef: ISlickColumn, dataContext: any, grid?: ISlickGrid<any>) => string | ISlickFormatterResult;
|
|
29
|
-
export interface ISlickColumn {
|
|
30
|
-
id: string;
|
|
31
|
-
field?: string;
|
|
32
|
-
name?: string;
|
|
33
|
-
resizable?: boolean;
|
|
34
|
-
sortable?: boolean;
|
|
35
|
-
minWidth?: number;
|
|
36
|
-
width?: number;
|
|
37
|
-
maxWidth?: number;
|
|
38
|
-
previousWidth?: number;
|
|
39
|
-
rerenderOnResize?: boolean;
|
|
40
|
-
headerCssClass?: string;
|
|
41
|
-
defaultSortAsc?: boolean;
|
|
42
|
-
focusable?: boolean;
|
|
43
|
-
selectable?: boolean;
|
|
44
|
-
format?: string;
|
|
45
|
-
formatter?: ISlickFormatter;
|
|
46
|
-
cssClass?: string;
|
|
47
|
-
columnGroup?: string;
|
|
48
|
-
editor?: any;
|
|
49
|
-
editorOptions?: any;
|
|
50
|
-
readonly?: boolean;
|
|
51
|
-
valueList?: string[] | {
|
|
52
|
-
[key: string]: string;
|
|
53
|
-
} | Array<{
|
|
54
|
-
text: string;
|
|
55
|
-
value: any;
|
|
56
|
-
}>;
|
|
57
|
-
sortByVisibleValue?: boolean;
|
|
58
|
-
comparer?: (a: any, b: any) => 0 | 1 | -1;
|
|
59
|
-
header?: {
|
|
60
|
-
buttons: [{
|
|
61
|
-
image?: string;
|
|
62
|
-
html?: string;
|
|
63
|
-
showOnHover?: boolean;
|
|
64
|
-
handler: (e: any) => void;
|
|
65
|
-
cssClass?: string;
|
|
66
|
-
tooltip?: string;
|
|
67
|
-
command?: string;
|
|
68
|
-
}];
|
|
69
|
-
};
|
|
70
|
-
filterable?: boolean;
|
|
71
|
-
hideMenu?: boolean;
|
|
72
|
-
toolTip?: string;
|
|
73
|
-
maxLength?: number;
|
|
74
|
-
alwaysRenderColumn?: boolean;
|
|
75
|
-
asyncPostRender?: (node: HTMLElement, row: number, item: Text, column: ISlickColumn, status: boolean) => void;
|
|
76
|
-
asyncPostRenderCleanup?: (node: HTMLElement, row: number, column: ISlickColumn) => void;
|
|
77
|
-
cannotTriggerInsert?: boolean;
|
|
78
|
-
groupTotalsFormatter?: (item: any, columnDef: ISlickColumn, grid: any) => string | ISlickFormatterResult;
|
|
79
|
-
behavior?: string;
|
|
80
|
-
}
|
|
81
|
-
export declare let Slick: ISlick;
|
|
82
|
-
/***
|
|
83
|
-
* A structure containing a range of cells.
|
|
84
|
-
* @class Range
|
|
85
|
-
* @constructor
|
|
86
|
-
* @param fromRow {Integer} Starting row.
|
|
87
|
-
* @param fromCell {Integer} Starting cell.
|
|
88
|
-
* @param toRow {Integer} Optional. Ending row. Defaults to <code>fromRow</code>.
|
|
89
|
-
* @param toCell {Integer} Optional. Ending cell. Defaults to <code>fromCell</code>.
|
|
90
|
-
*/
|
|
91
|
-
export declare function Range(fromRow: number, fromCell: number, toRow?: number, toCell?: number): void;
|
|
1
|
+
import { IjQueryReplacement } from "../core/jq";
|
|
2
|
+
import { ISlickGrid } from "./slick.grid";
|
|
3
|
+
export interface ISlick {
|
|
4
|
+
"Event": () => void;
|
|
5
|
+
"EventData": () => void;
|
|
6
|
+
"EventHandler": () => void;
|
|
7
|
+
"Range": (fromRow: number, fromCell: number, toRow?: number, toCell?: number) => void;
|
|
8
|
+
"NonDataRow": () => void;
|
|
9
|
+
"Group": any;
|
|
10
|
+
"GroupTotals": any;
|
|
11
|
+
"EditorLock": () => void;
|
|
12
|
+
"GlobalEditorLock": any;
|
|
13
|
+
"keyCode": any;
|
|
14
|
+
"preClickClassName": string;
|
|
15
|
+
$: IjQueryReplacement;
|
|
16
|
+
}
|
|
17
|
+
export interface ISlickEvent<T> {
|
|
18
|
+
subscribe(fnc: (e: any, args: T) => any): any;
|
|
19
|
+
notify(args: T, e: any): any;
|
|
20
|
+
countHandlers(): number;
|
|
21
|
+
}
|
|
22
|
+
export interface ISlickFormatterResult {
|
|
23
|
+
addClasses?: string[];
|
|
24
|
+
removeClasses?: string[];
|
|
25
|
+
toolTip?: string;
|
|
26
|
+
text?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare type ISlickFormatter = (row: number, cell: number, value: any, columnDef: ISlickColumn, dataContext: any, grid?: ISlickGrid<any>) => string | ISlickFormatterResult;
|
|
29
|
+
export interface ISlickColumn {
|
|
30
|
+
id: string;
|
|
31
|
+
field?: string;
|
|
32
|
+
name?: string;
|
|
33
|
+
resizable?: boolean;
|
|
34
|
+
sortable?: boolean;
|
|
35
|
+
minWidth?: number;
|
|
36
|
+
width?: number;
|
|
37
|
+
maxWidth?: number;
|
|
38
|
+
previousWidth?: number;
|
|
39
|
+
rerenderOnResize?: boolean;
|
|
40
|
+
headerCssClass?: string;
|
|
41
|
+
defaultSortAsc?: boolean;
|
|
42
|
+
focusable?: boolean;
|
|
43
|
+
selectable?: boolean;
|
|
44
|
+
format?: string;
|
|
45
|
+
formatter?: ISlickFormatter;
|
|
46
|
+
cssClass?: string;
|
|
47
|
+
columnGroup?: string;
|
|
48
|
+
editor?: any;
|
|
49
|
+
editorOptions?: any;
|
|
50
|
+
readonly?: boolean;
|
|
51
|
+
valueList?: string[] | {
|
|
52
|
+
[key: string]: string;
|
|
53
|
+
} | Array<{
|
|
54
|
+
text: string;
|
|
55
|
+
value: any;
|
|
56
|
+
}>;
|
|
57
|
+
sortByVisibleValue?: boolean;
|
|
58
|
+
comparer?: (a: any, b: any) => 0 | 1 | -1;
|
|
59
|
+
header?: {
|
|
60
|
+
buttons: [{
|
|
61
|
+
image?: string;
|
|
62
|
+
html?: string;
|
|
63
|
+
showOnHover?: boolean;
|
|
64
|
+
handler: (e: any) => void;
|
|
65
|
+
cssClass?: string;
|
|
66
|
+
tooltip?: string;
|
|
67
|
+
command?: string;
|
|
68
|
+
}];
|
|
69
|
+
};
|
|
70
|
+
filterable?: boolean;
|
|
71
|
+
hideMenu?: boolean;
|
|
72
|
+
toolTip?: string;
|
|
73
|
+
maxLength?: number;
|
|
74
|
+
alwaysRenderColumn?: boolean;
|
|
75
|
+
asyncPostRender?: (node: HTMLElement, row: number, item: Text, column: ISlickColumn, status: boolean) => void;
|
|
76
|
+
asyncPostRenderCleanup?: (node: HTMLElement, row: number, column: ISlickColumn) => void;
|
|
77
|
+
cannotTriggerInsert?: boolean;
|
|
78
|
+
groupTotalsFormatter?: (item: any, columnDef: ISlickColumn, grid: any) => string | ISlickFormatterResult;
|
|
79
|
+
behavior?: string;
|
|
80
|
+
}
|
|
81
|
+
export declare let Slick: ISlick;
|
|
82
|
+
/***
|
|
83
|
+
* A structure containing a range of cells.
|
|
84
|
+
* @class Range
|
|
85
|
+
* @constructor
|
|
86
|
+
* @param fromRow {Integer} Starting row.
|
|
87
|
+
* @param fromCell {Integer} Starting cell.
|
|
88
|
+
* @param toRow {Integer} Optional. Ending row. Defaults to <code>fromRow</code>.
|
|
89
|
+
* @param toCell {Integer} Optional. Ending cell. Defaults to <code>fromCell</code>.
|
|
90
|
+
*/
|
|
91
|
+
export declare function Range(fromRow: number, fromCell: number, toRow?: number, toCell?: number): void;
|