slickgrid-bootstrap-rails 0.0.1.10
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.
- data/.gitignore +34 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +158 -0
- data/Rakefile +1 -0
- data/lib/slickgrid-bootstrap-rails/version.rb +7 -0
- data/lib/slickgrid-bootstrap-rails.rb +11 -0
- data/slickgrid-bootstrap-rails.gemspec +21 -0
- data/vendor/assets/images/actions.gif +0 -0
- data/vendor/assets/images/ajax-loader-small.gif +0 -0
- data/vendor/assets/images/arrow_redo.png +0 -0
- data/vendor/assets/images/arrow_right_peppermint.png +0 -0
- data/vendor/assets/images/arrow_right_spearmint.png +0 -0
- data/vendor/assets/images/arrow_undo.png +0 -0
- data/vendor/assets/images/bullet_blue.png +0 -0
- data/vendor/assets/images/bullet_star.png +0 -0
- data/vendor/assets/images/bullet_toggle_minus.png +0 -0
- data/vendor/assets/images/bullet_toggle_plus.png +0 -0
- data/vendor/assets/images/calendar.gif +0 -0
- data/vendor/assets/images/collapse.gif +0 -0
- data/vendor/assets/images/comment_yellow.gif +0 -0
- data/vendor/assets/images/down.gif +0 -0
- data/vendor/assets/images/drag-handle.png +0 -0
- data/vendor/assets/images/editor-helper-bg.gif +0 -0
- data/vendor/assets/images/expand.gif +0 -0
- data/vendor/assets/images/header-bg.gif +0 -0
- data/vendor/assets/images/header-columns-bg.gif +0 -0
- data/vendor/assets/images/header-columns-over-bg.gif +0 -0
- data/vendor/assets/images/help.png +0 -0
- data/vendor/assets/images/info.gif +0 -0
- data/vendor/assets/images/listview.gif +0 -0
- data/vendor/assets/images/pencil.gif +0 -0
- data/vendor/assets/images/row-over-bg.gif +0 -0
- data/vendor/assets/images/sort-asc.gif +0 -0
- data/vendor/assets/images/sort-asc.png +0 -0
- data/vendor/assets/images/sort-desc.gif +0 -0
- data/vendor/assets/images/sort-desc.png +0 -0
- data/vendor/assets/images/stripes.png +0 -0
- data/vendor/assets/images/tag_red.png +0 -0
- data/vendor/assets/images/tick.png +0 -0
- data/vendor/assets/images/user_identity.gif +0 -0
- data/vendor/assets/images/user_identity_plus.gif +0 -0
- data/vendor/assets/javascripts/bootstrap/slick.bootstrap.js +86 -0
- data/vendor/assets/javascripts/plugins/slick.autotooltips.js +48 -0
- data/vendor/assets/javascripts/plugins/slick.cellcopymanager.js +86 -0
- data/vendor/assets/javascripts/plugins/slick.cellrangedecorator.js +64 -0
- data/vendor/assets/javascripts/plugins/slick.cellrangeselector.js +111 -0
- data/vendor/assets/javascripts/plugins/slick.cellselectionmodel.js +92 -0
- data/vendor/assets/javascripts/plugins/slick.checkboxselectcolumn.js +153 -0
- data/vendor/assets/javascripts/plugins/slick.headerbuttons.js +177 -0
- data/vendor/assets/javascripts/plugins/slick.headermenu.js +272 -0
- data/vendor/assets/javascripts/plugins/slick.rowmovemanager.js +138 -0
- data/vendor/assets/javascripts/plugins/slick.rowselectionmodel.js +187 -0
- data/vendor/assets/javascripts/slick.core.js +430 -0
- data/vendor/assets/javascripts/slick.dataview.js +917 -0
- data/vendor/assets/javascripts/slick.editors.js.erb +512 -0
- data/vendor/assets/javascripts/slick.formatters.js.erb +55 -0
- data/vendor/assets/javascripts/slick.grid.js +3294 -0
- data/vendor/assets/javascripts/slick.groupitemmetadataprovider.js +139 -0
- data/vendor/assets/javascripts/slick.remotemodel.js +164 -0
- data/vendor/assets/javascripts/slickgrid-bootstrap-rails.js +13 -0
- data/vendor/assets/stylesheets/plugins/slick.headerbuttons.css +38 -0
- data/vendor/assets/stylesheets/plugins/slick.headermenu.css +58 -0
- data/vendor/assets/stylesheets/slick.grid.css.erb +157 -0
- data/vendor/assets/stylesheets/slickgrid-bootstrap-rails.css +4 -0
- data/vendor/assets/stylesheets/slickgrid-bootstrap.less +159 -0
- metadata +143 -0
@@ -0,0 +1,139 @@
|
|
1
|
+
(function ($) {
|
2
|
+
$.extend(true, window, {
|
3
|
+
Slick: {
|
4
|
+
Data: {
|
5
|
+
GroupItemMetadataProvider: GroupItemMetadataProvider
|
6
|
+
}
|
7
|
+
}
|
8
|
+
});
|
9
|
+
|
10
|
+
|
11
|
+
/***
|
12
|
+
* Provides item metadata for group (Slick.Group) and totals (Slick.Totals) rows produced by the DataView.
|
13
|
+
* This metadata overrides the default behavior and formatting of those rows so that they appear and function
|
14
|
+
* correctly when processed by the grid.
|
15
|
+
*
|
16
|
+
* This class also acts as a grid plugin providing event handlers to expand & collapse groups.
|
17
|
+
* If "grid.registerPlugin(...)" is not called, expand & collapse will not work.
|
18
|
+
*
|
19
|
+
* @class GroupItemMetadataProvider
|
20
|
+
* @module Data
|
21
|
+
* @namespace Slick.Data
|
22
|
+
* @constructor
|
23
|
+
* @param options
|
24
|
+
*/
|
25
|
+
function GroupItemMetadataProvider(options) {
|
26
|
+
var _grid;
|
27
|
+
var _defaults = {
|
28
|
+
groupCssClass: "slick-group",
|
29
|
+
totalsCssClass: "slick-group-totals",
|
30
|
+
groupFocusable: true,
|
31
|
+
totalsFocusable: false,
|
32
|
+
toggleCssClass: "slick-group-toggle",
|
33
|
+
toggleExpandedCssClass: "expanded",
|
34
|
+
toggleCollapsedCssClass: "collapsed",
|
35
|
+
enableExpandCollapse: true
|
36
|
+
};
|
37
|
+
|
38
|
+
options = $.extend(true, {}, _defaults, options);
|
39
|
+
|
40
|
+
|
41
|
+
function defaultGroupCellFormatter(row, cell, value, columnDef, item) {
|
42
|
+
if (!options.enableExpandCollapse) {
|
43
|
+
return item.title;
|
44
|
+
}
|
45
|
+
|
46
|
+
return "<span class='" + options.toggleCssClass + " " +
|
47
|
+
(item.collapsed ? options.toggleCollapsedCssClass : options.toggleExpandedCssClass) +
|
48
|
+
"'></span>" + item.title;
|
49
|
+
}
|
50
|
+
|
51
|
+
function defaultTotalsCellFormatter(row, cell, value, columnDef, item) {
|
52
|
+
return (columnDef.groupTotalsFormatter && columnDef.groupTotalsFormatter(item, columnDef)) || "";
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
function init(grid) {
|
57
|
+
_grid = grid;
|
58
|
+
_grid.onClick.subscribe(handleGridClick);
|
59
|
+
_grid.onKeyDown.subscribe(handleGridKeyDown);
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
function destroy() {
|
64
|
+
if (_grid) {
|
65
|
+
_grid.onClick.unsubscribe(handleGridClick);
|
66
|
+
_grid.onKeyDown.unsubscribe(handleGridKeyDown);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
function handleGridClick(e, args) {
|
71
|
+
var item = this.getDataItem(args.row);
|
72
|
+
if (item && item instanceof Slick.Group && $(e.target).hasClass(options.toggleCssClass)) {
|
73
|
+
if (item.collapsed) {
|
74
|
+
this.getData().expandGroup(item.value);
|
75
|
+
}
|
76
|
+
else {
|
77
|
+
this.getData().collapseGroup(item.value);
|
78
|
+
}
|
79
|
+
|
80
|
+
e.stopImmediatePropagation();
|
81
|
+
e.preventDefault();
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
// TODO: add -/+ handling
|
86
|
+
function handleGridKeyDown(e, args) {
|
87
|
+
if (options.enableExpandCollapse && (e.which == $.ui.keyCode.SPACE)) {
|
88
|
+
var activeCell = this.getActiveCell();
|
89
|
+
if (activeCell) {
|
90
|
+
var item = this.getDataItem(activeCell.row);
|
91
|
+
if (item && item instanceof Slick.Group) {
|
92
|
+
if (item.collapsed) {
|
93
|
+
this.getData().expandGroup(item.value);
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
this.getData().collapseGroup(item.value);
|
97
|
+
}
|
98
|
+
|
99
|
+
e.stopImmediatePropagation();
|
100
|
+
e.preventDefault();
|
101
|
+
}
|
102
|
+
}
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
function getGroupRowMetadata(item) {
|
107
|
+
return {
|
108
|
+
selectable: false,
|
109
|
+
focusable: options.groupFocusable,
|
110
|
+
cssClasses: options.groupCssClass,
|
111
|
+
columns: {
|
112
|
+
0: {
|
113
|
+
colspan: "*",
|
114
|
+
formatter: defaultGroupCellFormatter,
|
115
|
+
editor: null
|
116
|
+
}
|
117
|
+
}
|
118
|
+
};
|
119
|
+
}
|
120
|
+
|
121
|
+
function getTotalsRowMetadata(item) {
|
122
|
+
return {
|
123
|
+
selectable: false,
|
124
|
+
focusable: options.totalsFocusable,
|
125
|
+
cssClasses: options.totalsCssClass,
|
126
|
+
formatter: defaultTotalsCellFormatter,
|
127
|
+
editor: null
|
128
|
+
};
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
return {
|
133
|
+
"init": init,
|
134
|
+
"destroy": destroy,
|
135
|
+
"getGroupRowMetadata": getGroupRowMetadata,
|
136
|
+
"getTotalsRowMetadata": getTotalsRowMetadata
|
137
|
+
};
|
138
|
+
}
|
139
|
+
})(jQuery);
|
@@ -0,0 +1,164 @@
|
|
1
|
+
(function ($) {
|
2
|
+
/***
|
3
|
+
* A sample AJAX data store implementation.
|
4
|
+
* Right now, it's hooked up to load all Apple-related Digg stories, but can
|
5
|
+
* easily be extended to support and JSONP-compatible backend that accepts paging parameters.
|
6
|
+
*/
|
7
|
+
function RemoteModel() {
|
8
|
+
// private
|
9
|
+
var PAGESIZE = 50;
|
10
|
+
var data = {length: 0};
|
11
|
+
var searchstr = "apple";
|
12
|
+
var sortcol = null;
|
13
|
+
var sortdir = 1;
|
14
|
+
var h_request = null;
|
15
|
+
var req = null; // ajax request
|
16
|
+
|
17
|
+
// events
|
18
|
+
var onDataLoading = new Slick.Event();
|
19
|
+
var onDataLoaded = new Slick.Event();
|
20
|
+
|
21
|
+
|
22
|
+
function init() {
|
23
|
+
}
|
24
|
+
|
25
|
+
|
26
|
+
function isDataLoaded(from, to) {
|
27
|
+
for (var i = from; i <= to; i++) {
|
28
|
+
if (data[i] == undefined || data[i] == null) {
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
return true;
|
34
|
+
}
|
35
|
+
|
36
|
+
|
37
|
+
function clear() {
|
38
|
+
for (var key in data) {
|
39
|
+
delete data[key];
|
40
|
+
}
|
41
|
+
data.length = 0;
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
function ensureData(from, to) {
|
46
|
+
if (req) {
|
47
|
+
req.abort();
|
48
|
+
for (var i = req.fromPage; i <= req.toPage; i++)
|
49
|
+
data[i * PAGESIZE] = undefined;
|
50
|
+
}
|
51
|
+
|
52
|
+
if (from < 0) {
|
53
|
+
from = 0;
|
54
|
+
}
|
55
|
+
|
56
|
+
var fromPage = Math.floor(from / PAGESIZE);
|
57
|
+
var toPage = Math.floor(to / PAGESIZE);
|
58
|
+
|
59
|
+
while (data[fromPage * PAGESIZE] !== undefined && fromPage < toPage)
|
60
|
+
fromPage++;
|
61
|
+
|
62
|
+
while (data[toPage * PAGESIZE] !== undefined && fromPage < toPage)
|
63
|
+
toPage--;
|
64
|
+
|
65
|
+
if (fromPage > toPage || ((fromPage == toPage) && data[fromPage * PAGESIZE] !== undefined)) {
|
66
|
+
// TODO: look-ahead
|
67
|
+
return;
|
68
|
+
}
|
69
|
+
|
70
|
+
var url = "http://services.digg.com/search/stories?query=" + searchstr + "&offset=" + (fromPage * PAGESIZE) + "&count=" + (((toPage - fromPage) * PAGESIZE) + PAGESIZE) + "&appkey=http://slickgrid.googlecode.com&type=javascript";
|
71
|
+
|
72
|
+
switch (sortcol) {
|
73
|
+
case "diggs":
|
74
|
+
url += ("&sort=" + ((sortdir > 0) ? "digg_count-asc" : "digg_count-desc"));
|
75
|
+
break;
|
76
|
+
}
|
77
|
+
|
78
|
+
if (h_request != null) {
|
79
|
+
clearTimeout(h_request);
|
80
|
+
}
|
81
|
+
|
82
|
+
h_request = setTimeout(function () {
|
83
|
+
for (var i = fromPage; i <= toPage; i++)
|
84
|
+
data[i * PAGESIZE] = null; // null indicates a 'requested but not available yet'
|
85
|
+
|
86
|
+
onDataLoading.notify({from: from, to: to});
|
87
|
+
|
88
|
+
req = $.jsonp({
|
89
|
+
url: url,
|
90
|
+
callbackParameter: "callback",
|
91
|
+
cache: true, // Digg doesn't accept the autogenerated cachebuster param
|
92
|
+
success: onSuccess,
|
93
|
+
error: function () {
|
94
|
+
onError(fromPage, toPage)
|
95
|
+
}
|
96
|
+
});
|
97
|
+
req.fromPage = fromPage;
|
98
|
+
req.toPage = toPage;
|
99
|
+
}, 50);
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
function onError(fromPage, toPage) {
|
104
|
+
alert("error loading pages " + fromPage + " to " + toPage);
|
105
|
+
}
|
106
|
+
|
107
|
+
function onSuccess(resp) {
|
108
|
+
var from = this.fromPage * PAGESIZE, to = from + resp.count;
|
109
|
+
data.length = parseInt(resp.total);
|
110
|
+
|
111
|
+
for (var i = 0; i < resp.stories.length; i++) {
|
112
|
+
data[from + i] = resp.stories[i];
|
113
|
+
data[from + i].index = from + i;
|
114
|
+
}
|
115
|
+
|
116
|
+
req = null;
|
117
|
+
|
118
|
+
onDataLoaded.notify({from: from, to: to});
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
function reloadData(from, to) {
|
123
|
+
for (var i = from; i <= to; i++)
|
124
|
+
delete data[i];
|
125
|
+
|
126
|
+
ensureData(from, to);
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
function setSort(column, dir) {
|
131
|
+
sortcol = column;
|
132
|
+
sortdir = dir;
|
133
|
+
clear();
|
134
|
+
}
|
135
|
+
|
136
|
+
function setSearch(str) {
|
137
|
+
searchstr = str;
|
138
|
+
clear();
|
139
|
+
}
|
140
|
+
|
141
|
+
|
142
|
+
init();
|
143
|
+
|
144
|
+
return {
|
145
|
+
// properties
|
146
|
+
"data": data,
|
147
|
+
|
148
|
+
// methods
|
149
|
+
"clear": clear,
|
150
|
+
"isDataLoaded": isDataLoaded,
|
151
|
+
"ensureData": ensureData,
|
152
|
+
"reloadData": reloadData,
|
153
|
+
"setSort": setSort,
|
154
|
+
"setSearch": setSearch,
|
155
|
+
|
156
|
+
// events
|
157
|
+
"onDataLoading": onDataLoading,
|
158
|
+
"onDataLoaded": onDataLoaded
|
159
|
+
};
|
160
|
+
}
|
161
|
+
|
162
|
+
// Slick.Data.RemoteModel
|
163
|
+
$.extend(true, window, { Slick: { Data: { RemoteModel: RemoteModel }}});
|
164
|
+
})(jQuery);
|
@@ -0,0 +1,13 @@
|
|
1
|
+
//= require jquery-dragdrop-rails
|
2
|
+
//= require slick.core
|
3
|
+
//= require slick.dataview
|
4
|
+
//= require slick.editors
|
5
|
+
//= require slick.formatters
|
6
|
+
//= require slick.grid
|
7
|
+
//= require slick.groupitemmetadataprovider
|
8
|
+
//= require slick.remotemodel
|
9
|
+
//= require_dir ./plugins
|
10
|
+
//= require_dir ./bootstrap
|
11
|
+
|
12
|
+
|
13
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
.slick-column-name {
|
2
|
+
/**
|
3
|
+
* This makes all "float:right" elements after it that spill over to the next line
|
4
|
+
* display way below the lower boundary of the column thus hiding them.
|
5
|
+
*/
|
6
|
+
display: inline-block;
|
7
|
+
float: left;
|
8
|
+
margin-bottom: 100px;
|
9
|
+
}
|
10
|
+
|
11
|
+
.slick-header-button {
|
12
|
+
display: inline-block;
|
13
|
+
float: right;
|
14
|
+
vertical-align: top;
|
15
|
+
margin: 1px;
|
16
|
+
/**
|
17
|
+
* This makes all "float:right" elements after it that spill over to the next line
|
18
|
+
* display way below the lower boundary of the column thus hiding them.
|
19
|
+
*/
|
20
|
+
margin-bottom: 100px;
|
21
|
+
height: 15px;
|
22
|
+
width: 15px;
|
23
|
+
background-repeat: no-repeat;
|
24
|
+
background-position: center center;
|
25
|
+
cursor: pointer;
|
26
|
+
}
|
27
|
+
|
28
|
+
.slick-header-button-hidden {
|
29
|
+
width: 0;
|
30
|
+
|
31
|
+
-webkit-transition: 0.2s width;
|
32
|
+
-ms-transition: 0.2s width;
|
33
|
+
transition: 0.2s width;
|
34
|
+
}
|
35
|
+
|
36
|
+
.slick-header-column:hover > .slick-header-button {
|
37
|
+
width: 15px;
|
38
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
/* Menu button */
|
2
|
+
.slick-header-menubutton {
|
3
|
+
position: absolute;
|
4
|
+
right: 0;
|
5
|
+
top: 0;
|
6
|
+
bottom: 0;
|
7
|
+
width: 14px;
|
8
|
+
background-repeat: no-repeat;
|
9
|
+
background-position: left center;
|
10
|
+
cursor: pointer;
|
11
|
+
|
12
|
+
display: none;
|
13
|
+
border-left: thin ridge silver;
|
14
|
+
}
|
15
|
+
|
16
|
+
.slick-header-column:hover > .slick-header-menubutton,
|
17
|
+
.slick-header-column-active .slick-header-menubutton {
|
18
|
+
display: inline-block;
|
19
|
+
}
|
20
|
+
|
21
|
+
/* Menu */
|
22
|
+
.slick-header-menu {
|
23
|
+
position: absolute;
|
24
|
+
display: inline-block;
|
25
|
+
margin: 0;
|
26
|
+
padding: 2px;
|
27
|
+
cursor: default;
|
28
|
+
}
|
29
|
+
|
30
|
+
|
31
|
+
/* Menu items */
|
32
|
+
.slick-header-menuitem {
|
33
|
+
list-style: none;
|
34
|
+
margin: 0;
|
35
|
+
padding: 0;
|
36
|
+
cursor: pointer;
|
37
|
+
}
|
38
|
+
|
39
|
+
.slick-header-menuicon {
|
40
|
+
display: inline-block;
|
41
|
+
width: 16px;
|
42
|
+
height: 16px;
|
43
|
+
vertical-align: middle;
|
44
|
+
margin-right: 4px;
|
45
|
+
background-repeat: no-repeat;
|
46
|
+
background-position: center center;
|
47
|
+
}
|
48
|
+
|
49
|
+
.slick-header-menucontent {
|
50
|
+
display: inline-block;
|
51
|
+
vertical-align: middle;
|
52
|
+
}
|
53
|
+
|
54
|
+
|
55
|
+
/* Disabled */
|
56
|
+
.slick-header-menuitem-disabled {
|
57
|
+
color: silver;
|
58
|
+
}
|
@@ -0,0 +1,157 @@
|
|
1
|
+
/*
|
2
|
+
IMPORTANT:
|
3
|
+
In order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes.
|
4
|
+
No built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS
|
5
|
+
classes should alter those!
|
6
|
+
*/
|
7
|
+
|
8
|
+
.slick-header.ui-state-default, .slick-headerrow.ui-state-default {
|
9
|
+
width: 100%;
|
10
|
+
overflow: hidden;
|
11
|
+
border-left: 0px;
|
12
|
+
}
|
13
|
+
|
14
|
+
.slick-header-columns, .slick-headerrow-columns {
|
15
|
+
position: relative;
|
16
|
+
white-space: nowrap;
|
17
|
+
cursor: default;
|
18
|
+
overflow: hidden;
|
19
|
+
}
|
20
|
+
|
21
|
+
.slick-header-column.ui-state-default {
|
22
|
+
position: relative;
|
23
|
+
display: inline-block;
|
24
|
+
overflow: hidden;
|
25
|
+
text-overflow: ellipsis;
|
26
|
+
height: 16px;
|
27
|
+
line-height: 16px;
|
28
|
+
margin: 0;
|
29
|
+
padding: 4px;
|
30
|
+
border-right: 1px solid silver;
|
31
|
+
border-left: 0px;
|
32
|
+
border-top: 0px;
|
33
|
+
border-bottom: 0px;
|
34
|
+
float: left;
|
35
|
+
}
|
36
|
+
|
37
|
+
.slick-headerrow-column.ui-state-default {
|
38
|
+
padding: 4px;
|
39
|
+
}
|
40
|
+
|
41
|
+
.slick-header-column-sorted {
|
42
|
+
font-style: italic;
|
43
|
+
}
|
44
|
+
|
45
|
+
.slick-sort-indicator {
|
46
|
+
display: inline-block;
|
47
|
+
width: 8px;
|
48
|
+
height: 5px;
|
49
|
+
margin-left: 4px;
|
50
|
+
}
|
51
|
+
|
52
|
+
.slick-sort-indicator-desc {
|
53
|
+
background: url(<%= asset_path 'sort-desc.gif' %>);
|
54
|
+
}
|
55
|
+
|
56
|
+
.slick-sort-indicator-asc {
|
57
|
+
background: url(<%= asset_path 'sort-asc.gif' %>);
|
58
|
+
}
|
59
|
+
|
60
|
+
.slick-resizable-handle {
|
61
|
+
position: absolute;
|
62
|
+
font-size: 0.1px;
|
63
|
+
display: block;
|
64
|
+
cursor: col-resize;
|
65
|
+
width: 4px;
|
66
|
+
right: 0px;
|
67
|
+
top: 0;
|
68
|
+
height: 100%;
|
69
|
+
}
|
70
|
+
|
71
|
+
.slick-sortable-placeholder {
|
72
|
+
background: silver;
|
73
|
+
}
|
74
|
+
|
75
|
+
.grid-canvas {
|
76
|
+
position: relative;
|
77
|
+
outline: 0;
|
78
|
+
}
|
79
|
+
|
80
|
+
.slick-row.ui-widget-content, .slick-row.ui-state-active {
|
81
|
+
position: absolute;
|
82
|
+
border: 0px;
|
83
|
+
width: 100%;
|
84
|
+
}
|
85
|
+
|
86
|
+
.slick-cell, .slick-headerrow-column {
|
87
|
+
position: absolute;
|
88
|
+
|
89
|
+
border: 1px solid transparent;
|
90
|
+
border-right: 1px dotted silver;
|
91
|
+
border-bottom-color: silver;
|
92
|
+
|
93
|
+
overflow: hidden;
|
94
|
+
text-overflow: ellipsis;
|
95
|
+
white-space: nowrap;
|
96
|
+
vertical-align: middle;
|
97
|
+
z-index: 1;
|
98
|
+
padding: 1px 2px 2px 1px;
|
99
|
+
margin: 0;
|
100
|
+
|
101
|
+
white-space: nowrap;
|
102
|
+
|
103
|
+
cursor: default;
|
104
|
+
}
|
105
|
+
|
106
|
+
.slick-group {
|
107
|
+
}
|
108
|
+
|
109
|
+
.slick-group-toggle {
|
110
|
+
display: inline-block;
|
111
|
+
}
|
112
|
+
|
113
|
+
.slick-cell.highlighted {
|
114
|
+
background: lightskyblue;
|
115
|
+
background: rgba(0, 0, 255, 0.2);
|
116
|
+
-webkit-transition: all 0.5s;
|
117
|
+
-moz-transition: all 0.5s;
|
118
|
+
transition: all 0.5s;
|
119
|
+
}
|
120
|
+
|
121
|
+
.slick-cell.flashing {
|
122
|
+
border: 1px solid red !important;
|
123
|
+
}
|
124
|
+
|
125
|
+
.slick-cell.editable {
|
126
|
+
z-index: 11;
|
127
|
+
overflow: visible;
|
128
|
+
background: white;
|
129
|
+
border-color: black;
|
130
|
+
border-style: solid;
|
131
|
+
}
|
132
|
+
|
133
|
+
.slick-cell:focus {
|
134
|
+
outline: none;
|
135
|
+
}
|
136
|
+
|
137
|
+
.slick-reorder-proxy {
|
138
|
+
display: inline-block;
|
139
|
+
background: blue;
|
140
|
+
opacity: 0.15;
|
141
|
+
filter: alpha(opacity = 15);
|
142
|
+
cursor: move;
|
143
|
+
}
|
144
|
+
|
145
|
+
.slick-reorder-guide {
|
146
|
+
display: inline-block;
|
147
|
+
height: 2px;
|
148
|
+
background: blue;
|
149
|
+
opacity: 0.7;
|
150
|
+
filter: alpha(opacity = 70);
|
151
|
+
}
|
152
|
+
|
153
|
+
.slick-selection {
|
154
|
+
z-index: 10;
|
155
|
+
position: absolute;
|
156
|
+
border: 2px dashed black;
|
157
|
+
}
|