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,68 +1,68 @@
|
|
|
1
|
-
import { jQueryReplacement } from '../../core/jq';
|
|
2
|
-
import { Slick } from '../slick.core';
|
|
3
|
-
|
|
4
|
-
// register namespace
|
|
5
|
-
$.deepExtend(Slick, {
|
|
6
|
-
"CellRangeDecorator": CellRangeDecorator
|
|
7
|
-
});
|
|
8
|
-
/***
|
|
9
|
-
* Displays an overlay on top of a given cell range.
|
|
10
|
-
*
|
|
11
|
-
* TODO:
|
|
12
|
-
* Currently, it blocks mouse events to DOM nodes behind it.
|
|
13
|
-
* Use FF and WebKit-specific "pointer-events" CSS style, or some kind of event forwarding.
|
|
14
|
-
* Could also construct the borders separately using 4 individual DIVs.
|
|
15
|
-
*
|
|
16
|
-
* @param {Grid} grid
|
|
17
|
-
* @param {Object} options
|
|
18
|
-
*/
|
|
19
|
-
export function CellRangeDecorator(grid, options) {
|
|
20
|
-
var _elem;
|
|
21
|
-
var _defaults = {
|
|
22
|
-
selectionCssClass: 'slick-range-decorator',
|
|
23
|
-
selectionCss: {
|
|
24
|
-
"zIndex": "9999",
|
|
25
|
-
"border": "2px dashed red"
|
|
26
|
-
},
|
|
27
|
-
offset: {
|
|
28
|
-
top: -1,
|
|
29
|
-
left: -1,
|
|
30
|
-
height: -2,
|
|
31
|
-
width: -2
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
options = $.deepExtend({}, _defaults, options);
|
|
35
|
-
function show(range) {
|
|
36
|
-
if (!_elem) {
|
|
37
|
-
_elem = $("<div></div>" /*, {css: options.selectionCss}*/)
|
|
38
|
-
.addClass(options.selectionCssClass)
|
|
39
|
-
.css("position", "absolute")
|
|
40
|
-
.appendTo(grid.getActiveCanvasNode());
|
|
41
|
-
if (options.selectionCss) {
|
|
42
|
-
for (
|
|
43
|
-
_elem.css(key, options.selectionCss[key]);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
var from = grid.getCellNodeBox(range.fromRow, range.fromCell);
|
|
48
|
-
var to = grid.getCellNodeBox(range.toRow, range.toCell);
|
|
49
|
-
_elem.css({
|
|
50
|
-
top: from.top + options.offset.top,
|
|
51
|
-
left: from.left + options.offset.left,
|
|
52
|
-
height: to.bottom - from.top + options.offset.height,
|
|
53
|
-
width: to.right - from.left + options.offset.width
|
|
54
|
-
});
|
|
55
|
-
return _elem;
|
|
56
|
-
}
|
|
57
|
-
function hide() {
|
|
58
|
-
if (_elem) {
|
|
59
|
-
_elem.remove();
|
|
60
|
-
_elem = null;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
$.shallowExtend(this, {
|
|
64
|
-
"pluginName": "CellRangeDecorator",
|
|
65
|
-
"show": show,
|
|
66
|
-
"hide": hide
|
|
67
|
-
});
|
|
68
|
-
}
|
|
1
|
+
import { jQueryReplacement } from '../../core/jq';
|
|
2
|
+
import { Slick } from '../slick.core';
|
|
3
|
+
let $ = jQueryReplacement;
|
|
4
|
+
// register namespace
|
|
5
|
+
$.deepExtend(Slick, {
|
|
6
|
+
"CellRangeDecorator": CellRangeDecorator
|
|
7
|
+
});
|
|
8
|
+
/***
|
|
9
|
+
* Displays an overlay on top of a given cell range.
|
|
10
|
+
*
|
|
11
|
+
* TODO:
|
|
12
|
+
* Currently, it blocks mouse events to DOM nodes behind it.
|
|
13
|
+
* Use FF and WebKit-specific "pointer-events" CSS style, or some kind of event forwarding.
|
|
14
|
+
* Could also construct the borders separately using 4 individual DIVs.
|
|
15
|
+
*
|
|
16
|
+
* @param {Grid} grid
|
|
17
|
+
* @param {Object} options
|
|
18
|
+
*/
|
|
19
|
+
export function CellRangeDecorator(grid, options) {
|
|
20
|
+
var _elem;
|
|
21
|
+
var _defaults = {
|
|
22
|
+
selectionCssClass: 'slick-range-decorator',
|
|
23
|
+
selectionCss: {
|
|
24
|
+
"zIndex": "9999",
|
|
25
|
+
"border": "2px dashed red"
|
|
26
|
+
},
|
|
27
|
+
offset: {
|
|
28
|
+
top: -1,
|
|
29
|
+
left: -1,
|
|
30
|
+
height: -2,
|
|
31
|
+
width: -2
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
options = $.deepExtend({}, _defaults, options);
|
|
35
|
+
function show(range) {
|
|
36
|
+
if (!_elem) {
|
|
37
|
+
_elem = $("<div></div>" /*, {css: options.selectionCss}*/)
|
|
38
|
+
.addClass(options.selectionCssClass)
|
|
39
|
+
.css("position", "absolute")
|
|
40
|
+
.appendTo(grid.getActiveCanvasNode());
|
|
41
|
+
if (options.selectionCss) {
|
|
42
|
+
for (let key in options.selectionCss) {
|
|
43
|
+
_elem.css(key, options.selectionCss[key]);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
var from = grid.getCellNodeBox(range.fromRow, range.fromCell);
|
|
48
|
+
var to = grid.getCellNodeBox(range.toRow, range.toCell);
|
|
49
|
+
_elem.css({
|
|
50
|
+
top: from.top + options.offset.top,
|
|
51
|
+
left: from.left + options.offset.left,
|
|
52
|
+
height: to.bottom - from.top + options.offset.height,
|
|
53
|
+
width: to.right - from.left + options.offset.width
|
|
54
|
+
});
|
|
55
|
+
return _elem;
|
|
56
|
+
}
|
|
57
|
+
function hide() {
|
|
58
|
+
if (_elem) {
|
|
59
|
+
_elem.remove();
|
|
60
|
+
_elem = null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
$.shallowExtend(this, {
|
|
64
|
+
"pluginName": "CellRangeDecorator",
|
|
65
|
+
"show": show,
|
|
66
|
+
"hide": hide
|
|
67
|
+
});
|
|
68
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function CellRangeSelector(options: any): void;
|
|
1
|
+
export declare function CellRangeSelector(options: any): void;
|
|
@@ -1,144 +1,144 @@
|
|
|
1
|
-
import { jQueryReplacement } from '../../core/jq';
|
|
2
|
-
import { Slick, Range } from '../slick.core';
|
|
3
|
-
import { CellRangeDecorator } from './slick.cellrangedecorator';
|
|
4
|
-
|
|
5
|
-
// register namespace
|
|
6
|
-
$.deepExtend(window, {
|
|
7
|
-
"Slick": {
|
|
8
|
-
"CellRangeSelector": CellRangeSelector
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
export function CellRangeSelector(options) {
|
|
12
|
-
var _grid;
|
|
13
|
-
var _currentlySelectedRange;
|
|
14
|
-
var _canvas;
|
|
15
|
-
var _gridOptions;
|
|
16
|
-
var _$activeCanvas;
|
|
17
|
-
var _dragging;
|
|
18
|
-
var _decorator;
|
|
19
|
-
var _self = this;
|
|
20
|
-
var _handler = new Slick.EventHandler();
|
|
21
|
-
var _defaults = {
|
|
22
|
-
selectionCss: {
|
|
23
|
-
"border": "2px dashed blue"
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
// Frozen row & column variables
|
|
27
|
-
var _rowOffset;
|
|
28
|
-
var _columnOffset;
|
|
29
|
-
var _isRightCanvas;
|
|
30
|
-
var _isBottomCanvas;
|
|
31
|
-
// Scrollings
|
|
32
|
-
var _scrollTop = 0;
|
|
33
|
-
var _scrollLeft = 0;
|
|
34
|
-
function init(grid) {
|
|
35
|
-
options = $.deepExtend({}, _defaults, options);
|
|
36
|
-
_decorator = options.cellDecorator || new CellRangeDecorator(grid, options);
|
|
37
|
-
_grid = grid;
|
|
38
|
-
_canvas = _grid.getCanvasNode();
|
|
39
|
-
_gridOptions = _grid.getOptions();
|
|
40
|
-
_handler
|
|
41
|
-
.subscribe(_grid.onScroll, handleScroll)
|
|
42
|
-
.subscribe(_grid.onDragInit, handleDragInit)
|
|
43
|
-
.subscribe(_grid.onDragStart, handleDragStart)
|
|
44
|
-
.subscribe(_grid.onDrag, handleDrag)
|
|
45
|
-
.subscribe(_grid.onDragEnd, handleDragEnd);
|
|
46
|
-
}
|
|
47
|
-
function destroy() {
|
|
48
|
-
_handler.unsubscribeAll();
|
|
49
|
-
}
|
|
50
|
-
function getCellDecorator() {
|
|
51
|
-
return _decorator;
|
|
52
|
-
}
|
|
53
|
-
function handleScroll(e, args) {
|
|
54
|
-
_scrollTop = args.scrollTop;
|
|
55
|
-
_scrollLeft = args.scrollLeft;
|
|
56
|
-
}
|
|
57
|
-
function handleDragInit(e, dd) {
|
|
58
|
-
// Set the active canvas node because the decorator needs to append its
|
|
59
|
-
// box to the correct canvas
|
|
60
|
-
_$activeCanvas = $(_grid.getActiveCanvasNode(e));
|
|
61
|
-
var c = _$activeCanvas.offset();
|
|
62
|
-
_rowOffset = 0;
|
|
63
|
-
_columnOffset = 0;
|
|
64
|
-
_isBottomCanvas = _$activeCanvas.hasClass('grid-canvas-bottom');
|
|
65
|
-
if (_gridOptions.frozenRow > -1 && _isBottomCanvas) {
|
|
66
|
-
_rowOffset = (_gridOptions.frozenBottom) ? $('.grid-canvas-bottom').height() : $('.grid-canvas-top').height();
|
|
67
|
-
}
|
|
68
|
-
_isRightCanvas = _$activeCanvas.hasClass('grid-canvas-right');
|
|
69
|
-
if (_gridOptions.frozenColumn > -1 && _isRightCanvas) {
|
|
70
|
-
_columnOffset = $('.grid-canvas-left').width();
|
|
71
|
-
}
|
|
72
|
-
// // prevent the grid from cancelling drag'n'drop by default
|
|
73
|
-
// e.stopImmediatePropagation();
|
|
74
|
-
}
|
|
75
|
-
function handleDragStart(e, dd) {
|
|
76
|
-
var cell = _grid.getCellFromEvent(e);
|
|
77
|
-
if (_self.onBeforeCellRangeSelected.notify(cell) !== false) {
|
|
78
|
-
if (_grid.canCellBeSelected(cell.row, cell.cell)) {
|
|
79
|
-
_dragging = true;
|
|
80
|
-
e.stopImmediatePropagation();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if (!_dragging) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
_grid.focus();
|
|
87
|
-
var startX = dd.startX - $(_canvas).offset().left;
|
|
88
|
-
if (_gridOptions.frozenColumn >= 0 && _isRightCanvas) {
|
|
89
|
-
startX += _scrollLeft;
|
|
90
|
-
}
|
|
91
|
-
var startY = dd.startY - $(_canvas).offset().top;
|
|
92
|
-
if (_gridOptions.frozenRow >= 0 && _isBottomCanvas) {
|
|
93
|
-
startY += _scrollTop;
|
|
94
|
-
}
|
|
95
|
-
var start = _grid.getCellFromPoint(startX, startY);
|
|
96
|
-
dd.range = { start: start, end: {} };
|
|
97
|
-
_currentlySelectedRange = dd.range;
|
|
98
|
-
return _decorator.show(new Range(start.row, start.cell));
|
|
99
|
-
}
|
|
100
|
-
function handleDrag(e, dd) {
|
|
101
|
-
if (!_dragging) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
e.stopImmediatePropagation();
|
|
105
|
-
var end = _grid.getCellFromPoint(e.pageX - _$activeCanvas.offset().left + _columnOffset, e.pageY - _$activeCanvas.offset().top + _rowOffset);
|
|
106
|
-
// ... frozen column(s),
|
|
107
|
-
if (_gridOptions.frozenColumn >= 0 && (!_isRightCanvas && (end.cell > _gridOptions.frozenColumn)) || (_isRightCanvas && (end.cell <= _gridOptions.frozenColumn))) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
// ... or frozen row(s)
|
|
111
|
-
if (_gridOptions.frozenRow >= 0 && (!_isBottomCanvas && (end.row >= _gridOptions.frozenRow)) || (_isBottomCanvas && (end.row < _gridOptions.frozenRow))) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
// ... or regular grid (without any frozen options)
|
|
115
|
-
if (!_grid.canCellBeSelected(end.row, end.cell)) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
dd.range.end = end;
|
|
119
|
-
_decorator.show(new Slick.Range(dd.range.start.row, dd.range.start.cell, end.row, end.cell));
|
|
120
|
-
}
|
|
121
|
-
function handleDragEnd(e, dd) {
|
|
122
|
-
if (!_dragging) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
_dragging = false;
|
|
126
|
-
e.stopImmediatePropagation();
|
|
127
|
-
_decorator.hide();
|
|
128
|
-
_self.onCellRangeSelected.notify({
|
|
129
|
-
range: new Slick.Range(dd.range.start.row, dd.range.start.cell, dd.range.end.row, dd.range.end.cell)
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
function getCurrentRange() {
|
|
133
|
-
return _currentlySelectedRange;
|
|
134
|
-
}
|
|
135
|
-
$.shallowExtend(this, {
|
|
136
|
-
"init": init,
|
|
137
|
-
"destroy": destroy,
|
|
138
|
-
"pluginName": "CellRangeSelector",
|
|
139
|
-
"getCellDecorator": getCellDecorator,
|
|
140
|
-
"getCurrentRange": getCurrentRange,
|
|
141
|
-
"onBeforeCellRangeSelected": new Slick.Event(),
|
|
142
|
-
"onCellRangeSelected": new Slick.Event()
|
|
143
|
-
});
|
|
144
|
-
}
|
|
1
|
+
import { jQueryReplacement } from '../../core/jq';
|
|
2
|
+
import { Slick, Range } from '../slick.core';
|
|
3
|
+
import { CellRangeDecorator } from './slick.cellrangedecorator';
|
|
4
|
+
let $ = jQueryReplacement;
|
|
5
|
+
// register namespace
|
|
6
|
+
$.deepExtend(window, {
|
|
7
|
+
"Slick": {
|
|
8
|
+
"CellRangeSelector": CellRangeSelector
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export function CellRangeSelector(options) {
|
|
12
|
+
var _grid;
|
|
13
|
+
var _currentlySelectedRange;
|
|
14
|
+
var _canvas;
|
|
15
|
+
var _gridOptions;
|
|
16
|
+
var _$activeCanvas;
|
|
17
|
+
var _dragging;
|
|
18
|
+
var _decorator;
|
|
19
|
+
var _self = this;
|
|
20
|
+
var _handler = new Slick.EventHandler();
|
|
21
|
+
var _defaults = {
|
|
22
|
+
selectionCss: {
|
|
23
|
+
"border": "2px dashed blue"
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
// Frozen row & column variables
|
|
27
|
+
var _rowOffset;
|
|
28
|
+
var _columnOffset;
|
|
29
|
+
var _isRightCanvas;
|
|
30
|
+
var _isBottomCanvas;
|
|
31
|
+
// Scrollings
|
|
32
|
+
var _scrollTop = 0;
|
|
33
|
+
var _scrollLeft = 0;
|
|
34
|
+
function init(grid) {
|
|
35
|
+
options = $.deepExtend({}, _defaults, options);
|
|
36
|
+
_decorator = options.cellDecorator || new CellRangeDecorator(grid, options);
|
|
37
|
+
_grid = grid;
|
|
38
|
+
_canvas = _grid.getCanvasNode();
|
|
39
|
+
_gridOptions = _grid.getOptions();
|
|
40
|
+
_handler
|
|
41
|
+
.subscribe(_grid.onScroll, handleScroll)
|
|
42
|
+
.subscribe(_grid.onDragInit, handleDragInit)
|
|
43
|
+
.subscribe(_grid.onDragStart, handleDragStart)
|
|
44
|
+
.subscribe(_grid.onDrag, handleDrag)
|
|
45
|
+
.subscribe(_grid.onDragEnd, handleDragEnd);
|
|
46
|
+
}
|
|
47
|
+
function destroy() {
|
|
48
|
+
_handler.unsubscribeAll();
|
|
49
|
+
}
|
|
50
|
+
function getCellDecorator() {
|
|
51
|
+
return _decorator;
|
|
52
|
+
}
|
|
53
|
+
function handleScroll(e, args) {
|
|
54
|
+
_scrollTop = args.scrollTop;
|
|
55
|
+
_scrollLeft = args.scrollLeft;
|
|
56
|
+
}
|
|
57
|
+
function handleDragInit(e, dd) {
|
|
58
|
+
// Set the active canvas node because the decorator needs to append its
|
|
59
|
+
// box to the correct canvas
|
|
60
|
+
_$activeCanvas = $(_grid.getActiveCanvasNode(e));
|
|
61
|
+
var c = _$activeCanvas.offset();
|
|
62
|
+
_rowOffset = 0;
|
|
63
|
+
_columnOffset = 0;
|
|
64
|
+
_isBottomCanvas = _$activeCanvas.hasClass('grid-canvas-bottom');
|
|
65
|
+
if (_gridOptions.frozenRow > -1 && _isBottomCanvas) {
|
|
66
|
+
_rowOffset = (_gridOptions.frozenBottom) ? $('.grid-canvas-bottom').height() : $('.grid-canvas-top').height();
|
|
67
|
+
}
|
|
68
|
+
_isRightCanvas = _$activeCanvas.hasClass('grid-canvas-right');
|
|
69
|
+
if (_gridOptions.frozenColumn > -1 && _isRightCanvas) {
|
|
70
|
+
_columnOffset = $('.grid-canvas-left').width();
|
|
71
|
+
}
|
|
72
|
+
// // prevent the grid from cancelling drag'n'drop by default
|
|
73
|
+
// e.stopImmediatePropagation();
|
|
74
|
+
}
|
|
75
|
+
function handleDragStart(e, dd) {
|
|
76
|
+
var cell = _grid.getCellFromEvent(e);
|
|
77
|
+
if (_self.onBeforeCellRangeSelected.notify(cell) !== false) {
|
|
78
|
+
if (_grid.canCellBeSelected(cell.row, cell.cell)) {
|
|
79
|
+
_dragging = true;
|
|
80
|
+
e.stopImmediatePropagation();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (!_dragging) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
_grid.focus();
|
|
87
|
+
var startX = dd.startX - $(_canvas).offset().left;
|
|
88
|
+
if (_gridOptions.frozenColumn >= 0 && _isRightCanvas) {
|
|
89
|
+
startX += _scrollLeft;
|
|
90
|
+
}
|
|
91
|
+
var startY = dd.startY - $(_canvas).offset().top;
|
|
92
|
+
if (_gridOptions.frozenRow >= 0 && _isBottomCanvas) {
|
|
93
|
+
startY += _scrollTop;
|
|
94
|
+
}
|
|
95
|
+
var start = _grid.getCellFromPoint(startX, startY);
|
|
96
|
+
dd.range = { start: start, end: {} };
|
|
97
|
+
_currentlySelectedRange = dd.range;
|
|
98
|
+
return _decorator.show(new Range(start.row, start.cell));
|
|
99
|
+
}
|
|
100
|
+
function handleDrag(e, dd) {
|
|
101
|
+
if (!_dragging) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
e.stopImmediatePropagation();
|
|
105
|
+
var end = _grid.getCellFromPoint(e.pageX - _$activeCanvas.offset().left + _columnOffset, e.pageY - _$activeCanvas.offset().top + _rowOffset);
|
|
106
|
+
// ... frozen column(s),
|
|
107
|
+
if (_gridOptions.frozenColumn >= 0 && (!_isRightCanvas && (end.cell > _gridOptions.frozenColumn)) || (_isRightCanvas && (end.cell <= _gridOptions.frozenColumn))) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
// ... or frozen row(s)
|
|
111
|
+
if (_gridOptions.frozenRow >= 0 && (!_isBottomCanvas && (end.row >= _gridOptions.frozenRow)) || (_isBottomCanvas && (end.row < _gridOptions.frozenRow))) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// ... or regular grid (without any frozen options)
|
|
115
|
+
if (!_grid.canCellBeSelected(end.row, end.cell)) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
dd.range.end = end;
|
|
119
|
+
_decorator.show(new Slick.Range(dd.range.start.row, dd.range.start.cell, end.row, end.cell));
|
|
120
|
+
}
|
|
121
|
+
function handleDragEnd(e, dd) {
|
|
122
|
+
if (!_dragging) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
_dragging = false;
|
|
126
|
+
e.stopImmediatePropagation();
|
|
127
|
+
_decorator.hide();
|
|
128
|
+
_self.onCellRangeSelected.notify({
|
|
129
|
+
range: new Slick.Range(dd.range.start.row, dd.range.start.cell, dd.range.end.row, dd.range.end.cell)
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
function getCurrentRange() {
|
|
133
|
+
return _currentlySelectedRange;
|
|
134
|
+
}
|
|
135
|
+
$.shallowExtend(this, {
|
|
136
|
+
"init": init,
|
|
137
|
+
"destroy": destroy,
|
|
138
|
+
"pluginName": "CellRangeSelector",
|
|
139
|
+
"getCellDecorator": getCellDecorator,
|
|
140
|
+
"getCurrentRange": getCurrentRange,
|
|
141
|
+
"onBeforeCellRangeSelected": new Slick.Event(),
|
|
142
|
+
"onCellRangeSelected": new Slick.Event()
|
|
143
|
+
});
|
|
144
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function CellSelectionModel(options?: any): void;
|
|
1
|
+
export declare function CellSelectionModel(options?: any): void;
|