romo 0.16.1 → 0.16.2
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.
- checksums.yaml +5 -5
- data/assets/css/romo/tooltip.scss +8 -8
- data/assets/js/romo/base.js +14 -6
- data/assets/js/romo/datepicker.js +10 -1
- data/assets/js/romo/select_dropdown.js +10 -8
- data/assets/js/romo/tooltip.js +63 -2
- data/lib/romo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
SHA512:
|
3
|
-
data.tar.gz: 3007613cca8321eaf0359e5cf1e069b9486db5d134894fd286861cb40e0c58691f505f6ff62f65a0b2fd859482c846a52f7bb202c4782f4d1f6e0dc97abb82fe
|
4
|
-
metadata.gz: c94483d359861e906fb0db0c8098cf6c0e5d8eb6316d9e8311f14ccb6027c1ddae8d93a87276f3c46ec6cbcfe165f0e4619c905c00a1beb94cd917804564d7b1
|
5
2
|
SHA1:
|
6
|
-
|
7
|
-
|
3
|
+
metadata.gz: a9a6e3ce2613489f0aa2630a85e7846cf427c8a6
|
4
|
+
data.tar.gz: d2f6680786dea0ab3f5fbe8c595951d43a35fb22
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 19f2c44434b4f3a64334447a98a6bf9821ea7976bdcbd2d74a478d16d7d00ccdc1bedfed8f241a0a27caeba5e8008c4698029f6b535778ee07f521073bcaea75
|
7
|
+
data.tar.gz: eb02c4703da3032e95b8f3e2ba8d5c36cd1c04b4b4f3eaa73f6859611591bc21861d211083b080d6c77bffc5597a75b5ca5c0ca122bb8e7910d40fc4f89e7f52
|
@@ -30,28 +30,28 @@
|
|
30
30
|
border-style: solid;
|
31
31
|
}
|
32
32
|
|
33
|
-
.romo-tooltip-popup[data-romo-tooltip-position="top"] .romo-tooltip-arrow {
|
33
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="top"] .romo-tooltip-arrow {
|
34
34
|
border-width: 6px 6px 0;
|
35
35
|
bottom: -6px;
|
36
36
|
left: 50%;
|
37
37
|
margin-left: -6px;
|
38
38
|
}
|
39
39
|
|
40
|
-
.romo-tooltip-popup[data-romo-tooltip-position="right"] .romo-tooltip-arrow {
|
40
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="right"] .romo-tooltip-arrow {
|
41
41
|
border-width: 6px 6px 6px 0;
|
42
42
|
left: -6px;
|
43
43
|
top: 50%;
|
44
44
|
margin-top: -6px;
|
45
45
|
}
|
46
46
|
|
47
|
-
.romo-tooltip-popup[data-romo-tooltip-position="bottom"] .romo-tooltip-arrow {
|
47
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="bottom"] .romo-tooltip-arrow {
|
48
48
|
border-width: 0 6px 6px;
|
49
49
|
top: -6px;
|
50
50
|
left: 50%;
|
51
51
|
margin-left: -6px;
|
52
52
|
}
|
53
53
|
|
54
|
-
.romo-tooltip-popup[data-romo-tooltip-position="left"] .romo-tooltip-arrow {
|
54
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="left"] .romo-tooltip-arrow {
|
55
55
|
border-width: 6px 0 6px 6px;
|
56
56
|
right: -6px;
|
57
57
|
top: 50%;
|
@@ -75,15 +75,15 @@
|
|
75
75
|
color: $tooltipColor;
|
76
76
|
}
|
77
77
|
|
78
|
-
.romo-tooltip-popup[data-romo-tooltip-position="top"] .romo-tooltip-arrow {
|
78
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="top"] .romo-tooltip-arrow {
|
79
79
|
border-top-color: $tooltipBgColor;
|
80
80
|
}
|
81
|
-
.romo-tooltip-popup[data-romo-tooltip-position="right"] .romo-tooltip-arrow {
|
81
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="right"] .romo-tooltip-arrow {
|
82
82
|
border-right-color: $tooltipBgColor;
|
83
83
|
}
|
84
|
-
.romo-tooltip-popup[data-romo-tooltip-position="bottom"] .romo-tooltip-arrow {
|
84
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="bottom"] .romo-tooltip-arrow {
|
85
85
|
border-bottom-color: $tooltipBgColor;
|
86
86
|
}
|
87
|
-
.romo-tooltip-popup[data-romo-tooltip-position="left"] .romo-tooltip-arrow {
|
87
|
+
.romo-tooltip-popup[data-romo-tooltip-arrow-position="left"] .romo-tooltip-arrow {
|
88
88
|
border-left-color: $tooltipBgColor;
|
89
89
|
}
|
data/assets/js/romo/base.js
CHANGED
@@ -149,18 +149,18 @@
|
|
149
149
|
// style handling
|
150
150
|
|
151
151
|
Romo.prototype.parseZIndex = function(elem) {
|
152
|
-
// for the case where
|
153
|
-
var val =
|
154
|
-
if (
|
152
|
+
// for the case where z-index is set directly on the elem
|
153
|
+
var val = this.parseElemZIndex(elem);
|
154
|
+
if (val !== 0) {
|
155
155
|
return val;
|
156
156
|
}
|
157
157
|
|
158
|
-
// for the case where
|
158
|
+
// for the case where z-index is inherited from a parent elem
|
159
159
|
var parentIndexes = $.map(elem.parents(), function(item) {
|
160
160
|
return item; // converts the collection to an array
|
161
161
|
}).reduce($.proxy(function(prev, curr) {
|
162
|
-
var pval =
|
163
|
-
if (
|
162
|
+
var pval = this.parseElemZIndex($(curr));
|
163
|
+
if (pval !== 0) {
|
164
164
|
prev.push(pval);
|
165
165
|
}
|
166
166
|
return prev;
|
@@ -169,6 +169,14 @@
|
|
169
169
|
return parentIndexes[0];
|
170
170
|
}
|
171
171
|
|
172
|
+
Romo.prototype.parseElemZIndex = function(elem) {
|
173
|
+
var val = parseInt(document.defaultView.getComputedStyle(elem[0], null).getPropertyValue("z-index"));
|
174
|
+
if (!isNaN(val)) {
|
175
|
+
return val;
|
176
|
+
}
|
177
|
+
return 0;
|
178
|
+
}
|
179
|
+
|
172
180
|
// private
|
173
181
|
|
174
182
|
Romo.prototype._addEventCallback = function(name, callback) {
|
@@ -18,7 +18,7 @@ var RomoDatepicker = function(element) {
|
|
18
18
|
this.itemSelector = 'TD.romo-datepicker-day:not(.disabled)';
|
19
19
|
this.calTable = $();
|
20
20
|
this.date = undefined;
|
21
|
-
this.today =
|
21
|
+
this.today = this._getTodaysDate();
|
22
22
|
this.prevValue = undefined;
|
23
23
|
|
24
24
|
this.doInit();
|
@@ -595,6 +595,15 @@ RomoDatepicker.prototype._currentYear = function() {
|
|
595
595
|
return (new Date).getUTCFullYear();
|
596
596
|
}
|
597
597
|
|
598
|
+
RomoDatepicker.prototype._getTodaysDate = function() {
|
599
|
+
var today = new Date();
|
600
|
+
var dd = today.getDate();
|
601
|
+
var mm = today.getMonth();
|
602
|
+
var yyyy = today.getFullYear();
|
603
|
+
|
604
|
+
return this._UTCDate(yyyy, mm, dd);
|
605
|
+
}
|
606
|
+
|
598
607
|
RomoDatepicker.prototype._UTCDate = function(year, month, day) {
|
599
608
|
return new Date(Date.UTC.apply(Date, [year, month, day]));
|
600
609
|
}
|
@@ -5,13 +5,13 @@ $.fn.romoSelectDropdown = function(optionElemsParent) {
|
|
5
5
|
}
|
6
6
|
|
7
7
|
var RomoSelectDropdown = function(element, optionElemsParent) {
|
8
|
-
this.elem
|
8
|
+
this.elem = $(element);
|
9
9
|
this.itemSelector = 'LI[data-romo-select-item="opt"]:not(.disabled)';
|
10
|
-
this.prevValue
|
10
|
+
this.prevValue = '';
|
11
11
|
|
12
|
-
var optsParent
|
12
|
+
var optsParent = (optionElemsParent || this.elem.find('.romo-select-dropdown-options-parent'));
|
13
13
|
this.optionElems = optsParent.children();
|
14
|
-
this.optionList
|
14
|
+
this.optionList = this._buildOptionList(this.optionElems);
|
15
15
|
|
16
16
|
this.doInit();
|
17
17
|
this.doBindDropdown();
|
@@ -88,7 +88,7 @@ RomoSelectDropdown.prototype.doBindDropdown = function() {
|
|
88
88
|
|
89
89
|
RomoSelectDropdown.prototype.doSelectHighlightedItem = function() {
|
90
90
|
var prevValue = this.prevValue;
|
91
|
-
var newValue
|
91
|
+
var newValue = this.romoDropdown.bodyElem.find('LI.romo-select-highlight').data('romo-select-option-value');
|
92
92
|
|
93
93
|
this.romoDropdown.doPopupClose();
|
94
94
|
this.elem.trigger('selectDropdown:itemSelected', [newValue, prevValue, this]);
|
@@ -232,13 +232,15 @@ RomoSelectDropdown.prototype._buildOptionList = function(optionElems, listClass)
|
|
232
232
|
}
|
233
233
|
|
234
234
|
RomoSelectDropdown.prototype._buildOptionListItem = function(optionElem) {
|
235
|
-
var opt
|
236
|
-
var item
|
235
|
+
var opt = $(optionElem);
|
236
|
+
var item = $('<li data-romo-select-item="opt"></li>');
|
237
|
+
var value = opt.attr('value') || '';
|
237
238
|
|
238
|
-
item.attr('data-romo-select-option-value',
|
239
|
+
item.attr('data-romo-select-option-value', value);
|
239
240
|
item.html(opt.text().trim() || ' ');
|
240
241
|
if (opt.prop('selected')) {
|
241
242
|
item.addClass('selected');
|
243
|
+
this.prevValue = value; // the last option marked selected is used
|
242
244
|
}
|
243
245
|
if (opt.attr('disabled') !== undefined) {
|
244
246
|
item.addClass('disabled');
|
data/assets/js/romo/tooltip.js
CHANGED
@@ -86,9 +86,17 @@ RomoTooltip.prototype.doInitBody = function() {
|
|
86
86
|
'max-width': this.elem.data('romo-tooltip-max-width'),
|
87
87
|
'width': this.elem.data('romo-tooltip-width'),
|
88
88
|
'min-height': this.elem.data('romo-tooltip-min-height'),
|
89
|
-
'max-height': this.elem.data('romo-tooltip-max-height'),
|
90
89
|
'height': this.elem.data('romo-tooltip-height')
|
91
90
|
});
|
91
|
+
|
92
|
+
if (this.elem.data('romo-tooltip-max-height') === undefined) {
|
93
|
+
this.elem.attr('data-romo-tooltip-max-height', 'detect');
|
94
|
+
}
|
95
|
+
if (this.elem.data('romo-tooltip-max-height') !== 'detect') {
|
96
|
+
this.bodyElem.css({
|
97
|
+
'max-height': this.elem.data('romo-tooltip-max-height')
|
98
|
+
});
|
99
|
+
}
|
92
100
|
}
|
93
101
|
|
94
102
|
RomoTooltip.prototype.doResetBody = function() {
|
@@ -262,7 +270,39 @@ RomoTooltip.prototype.doPlacePopupElem = function() {
|
|
262
270
|
var pad = 6 + 1; // arrow size + spacing
|
263
271
|
var offset = {};
|
264
272
|
|
265
|
-
|
273
|
+
var configHeight = this.elem.data('romo-tooltip-height') || this.elem.data('romo-tooltip-max-height');
|
274
|
+
var configPosition = this.popupPosition;
|
275
|
+
|
276
|
+
if (configHeight === 'detect' && (configPosition === 'top' || configPosition === 'bottom')) {
|
277
|
+
var popupHeight = this.popupElem.height();
|
278
|
+
var topAvailHeight = this._getPopupMaxAvailableHeight('top');
|
279
|
+
var bottomAvailHeight = this._getPopupMaxAvailableHeight('bottom');
|
280
|
+
|
281
|
+
if (popupHeight < topAvailHeight && popupHeight < bottomAvailHeight) {
|
282
|
+
// if it fits both ways, use the config position way
|
283
|
+
configHeight = this._getPopupMaxAvailableHeight(configPosition);
|
284
|
+
this.popupElem.attr('data-romo-tooltip-arrow-position', configPosition);
|
285
|
+
} else if (topAvailHeight > bottomAvailHeight) {
|
286
|
+
configPosition = 'top';
|
287
|
+
configHeight = topAvailHeight;
|
288
|
+
this.popupElem.attr('data-romo-tooltip-arrow-position', 'top');
|
289
|
+
} else {
|
290
|
+
configPosition = 'bottom';
|
291
|
+
configHeight = bottomAvailHeight;
|
292
|
+
this.popupElem.attr('data-romo-tooltip-arrow-position', 'bottom');
|
293
|
+
}
|
294
|
+
|
295
|
+
this.bodyElem.css({'max-height': configHeight.toString() + 'px'});
|
296
|
+
} else {
|
297
|
+
this.popupElem.attr('data-romo-tooltip-arrow-position', configPosition);
|
298
|
+
}
|
299
|
+
|
300
|
+
|
301
|
+
if(h > configHeight) {
|
302
|
+
h = configHeight;
|
303
|
+
}
|
304
|
+
|
305
|
+
switch (configPosition) {
|
266
306
|
case 'top':
|
267
307
|
$.extend(offset, { top: pos.top - h - pad, left: pos.left + pos.width / 2 - w / 2 });
|
268
308
|
break;
|
@@ -287,6 +327,27 @@ RomoTooltip.prototype.doSetPopupZIndex = function(relativeElem) {
|
|
287
327
|
|
288
328
|
// private
|
289
329
|
|
330
|
+
RomoTooltip.prototype._getPopupMaxAvailableHeight = function(position) {
|
331
|
+
var maxHeight = undefined;
|
332
|
+
|
333
|
+
switch (position) {
|
334
|
+
case 'top':
|
335
|
+
var elemTop = this.elem[0].getBoundingClientRect().top;
|
336
|
+
maxHeight = elemTop - this._getPopupMaxHeightDetectPad(position);
|
337
|
+
break;
|
338
|
+
case 'bottom':
|
339
|
+
var elemBottom = this.elem[0].getBoundingClientRect().bottom;
|
340
|
+
maxHeight = $(window).height() - elemBottom - this._getPopupMaxHeightDetectPad(position);
|
341
|
+
break;
|
342
|
+
}
|
343
|
+
|
344
|
+
return maxHeight;
|
345
|
+
}
|
346
|
+
|
347
|
+
RomoTooltip.prototype._getPopupMaxHeightDetectPad = function(position) {
|
348
|
+
return this.elem.data('romo-tooltip-max-height-detect-pad-'+position) || this.elem.data('romo-tooltip-max-height-detect-pad') || 10;
|
349
|
+
}
|
350
|
+
|
290
351
|
RomoTooltip.prototype._setBodyHtml = function(content) {
|
291
352
|
this.bodyElem.html(content || '');
|
292
353
|
}
|
data/lib/romo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: romo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelly Redding
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2016-10-
|
13
|
+
date: 2016-10-26 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: assert
|