active_frontend 2.0.6 → 2.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee26e8ecdbc87727d14d548a0e508e51a37d2ef8
4
- data.tar.gz: 9505f4bd551c6a2e51e45a6ad15dca8493a1310f
3
+ metadata.gz: 86f36cc3a03316f1ecd96cc4fa5a5679bc86287d
4
+ data.tar.gz: 092ccf8ffff34a6876df3fac289d9a1f4e58fd90
5
5
  SHA512:
6
- metadata.gz: a5ddb53ea4c2fe26e63f9e0bcb8c3c385e0787519feb6ee0ec3cab1e2325055667ab2062f4e8c60d994fa1f9c78f64338927c1daac1f0e4463717af7874d5328
7
- data.tar.gz: e56fbb1bb05fe6327a47fa3b2c783e1748d4e4bb438e14cc68d863aaeb4c4fb65d9305729750c1d0fc0c2f28733099a12329a64971df8fde4c657a08c1cd9a46
6
+ metadata.gz: 049c00f131fa20db347da9e44e3bce7debd42c59d54ab4b8407809701ebdb88efbff9ae095e6c836143213d0cb0cf0d6b64c9a46cb130598eb138d75703deb1b
7
+ data.tar.gz: f307d02a9a328c7404ebc86191a1e6ab3af39d5ef69b64279582a4d320d59955f5122f1ceb8f20ab9a18b13f1b7a3150cb1d95d8c68c52271e15c85db0709343
data/README.md CHANGED
@@ -37,6 +37,7 @@ Add the CSS files you want to include:
37
37
  *= require chart.css
38
38
  *= require code.css
39
39
  *= require collapse.css
40
+ *= require colorpicker.css
40
41
  *= require datepicker.css
41
42
  *= require dropdown.css
42
43
  *= require footer.css
@@ -80,6 +81,7 @@ Add the JS files you want to include:
80
81
  //= require carousel.js
81
82
  //= require chart.js
82
83
  //= require collapse.js
84
+ //= require color_picker.js
83
85
  //= require date_picker.js
84
86
  //= require dropdown.js
85
87
  //= require file_input.js
@@ -1,3 +1,3 @@
1
1
  module ActiveFrontend
2
- VERSION = "2.0.6"
2
+ VERSION = "2.0.7"
3
3
  end
@@ -69,7 +69,7 @@
69
69
  var offset = this.options.offset
70
70
  var offsetTop = offset.top
71
71
  var offsetBottom = offset.bottom
72
- var scrollHeight = $(document.body).height()
72
+ var scrollHeight = Math.max($(document).height(), $(document.body).height())
73
73
 
74
74
  if (typeof offset != 'object') offsetBottom = offsetTop = offset
75
75
  if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
@@ -22,7 +22,7 @@
22
22
  var val = $el.is('input') ? 'val' : 'html'
23
23
  var data = $el.data()
24
24
 
25
- state = state + 'Text'
25
+ state += 'Text'
26
26
 
27
27
  if (data.resetText == null) $el.data('resetText', $el[val]())
28
28
 
@@ -47,15 +47,19 @@
47
47
  if ($parent.length) {
48
48
  var $input = this.$element.find('input')
49
49
  if ($input.prop('type') == 'radio') {
50
- if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
51
- else $parent.find('.active').removeClass('active')
50
+ if ($input.prop('checked')) changed = false
51
+ $parent.find('.active').removeClass('active')
52
+ this.$element.addClass('active')
53
+ } else if ($input.prop('type') == 'checkbox') {
54
+ if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
55
+ this.$element.toggleClass('active')
52
56
  }
53
- if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
57
+ $input.prop('checked', this.$element.hasClass('active'))
58
+ if (changed) $input.trigger('change')
54
59
  } else {
55
60
  this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
61
+ this.$element.toggleClass('active')
56
62
  }
57
-
58
- if (changed) this.$element.toggleClass('active')
59
63
  }
60
64
 
61
65
 
@@ -98,7 +102,7 @@
98
102
  var $btn = $(e.target)
99
103
  if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
100
104
  Plugin.call($btn, 'toggle')
101
- e.preventDefault()
105
+ if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
102
106
  })
103
107
  .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
104
108
  $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
@@ -0,0 +1,128 @@
1
+ (function($) {
2
+ "use strict";
3
+
4
+ var ColorPicker = function(select, options) {
5
+ this.options = options;
6
+ this.$select = $(select);
7
+ this._init();
8
+ };
9
+
10
+ ColorPicker.prototype = {
11
+
12
+ constructor : ColorPicker,
13
+
14
+ _init : function() {
15
+
16
+ var callback = this.options.callback;
17
+
18
+ var selectValue = this.$select.val();
19
+ var selectColor = this.$select.find("option:selected").data("color");
20
+
21
+ var $markupUl = $("<ul>").addClass("dropdown-menu").addClass("dropdown-caret");
22
+ var $markupDiv = $("<div>").addClass("dropdown").addClass("dropdown-colorpicker");
23
+ var $markupSpan = $("<span>").addClass("btn-colorpicker").css("background-color", selectColor);
24
+ var $markupA = $("<a>").attr("data-toggle", "dropdown").addClass("dropdown-toggle").attr("href", "#").append($markupSpan);
25
+
26
+ // create an li-tag for every option of the select
27
+ $("option", this.$select).each(function() {
28
+
29
+ var option = $(this);
30
+ var value = option.attr("value");
31
+ var color = option.data("color");
32
+ var title = option.text();
33
+
34
+ // create a-tag
35
+ var $markupA = $("<a>").addClass("color-btn");
36
+ if (option.prop("selected") === true || selectValue === color) {
37
+ $markupA.addClass("selected");
38
+ }
39
+ $markupA.css("background-color", color);
40
+ $markupA.attr("href", "#").attr("data-color", color).attr("data-value", value).attr("title", title);
41
+
42
+ // create li-tag
43
+ $markupUl.append($("<li>").append($markupA));
44
+ });
45
+
46
+ // append the colorpicker
47
+ $markupDiv.append($markupA);
48
+ // append the colorpicker-dropdown
49
+ $markupDiv.append($markupUl);
50
+
51
+ // hide the select
52
+ this.$select.hide();
53
+
54
+ // insert the colorpicker
55
+ this.$selector = $($markupDiv).insertAfter(this.$select);
56
+
57
+ // register change handler
58
+ this.$select.on("change", function() {
59
+
60
+ var value = $(this).val();
61
+ var color = $(this).find("option[value='" + value + "']").data("color");
62
+ var title = $(this).find("option[value='" + value + "']").text();
63
+
64
+ // remove old and set new selected color
65
+ $(this).next().find("ul").find("li").find(".selected").removeClass("selected");
66
+ $(this).next().find("ul").find("li").find("a[data-color='" + color + "']").addClass("selected");
67
+
68
+ $(this).next().find(".btn-colorpicker").css("background-color", color);
69
+
70
+ callback(value, color, title);
71
+ });
72
+
73
+ // register click handler
74
+ $markupUl.on('click.colorpicker', $.proxy(this._clickColor, this));
75
+ },
76
+
77
+ _clickColor : function(e) {
78
+
79
+ var a = $(e.target);
80
+
81
+ if (!a.is(".color-btn")) {
82
+ return false;
83
+ }
84
+
85
+ this.$select.val(a.data("value")).change();
86
+
87
+ e.preventDefault();
88
+ return true;
89
+ },
90
+
91
+ setColor : function(color) {
92
+ // find value for color
93
+ var value = $(this.$selector).find("li").find("a[data-color='" + color + "']").data("value");
94
+ this.setValue(value);
95
+ },
96
+
97
+ setValue : function(value) {
98
+ this.$select.val(value).change();
99
+ },
100
+
101
+ };
102
+
103
+ $.fn.colorpicker = function(option) {
104
+ var args = Array.apply(null, arguments);
105
+ args.shift();
106
+
107
+ return this.each(function() {
108
+
109
+ var $this = $(this), data = $this.data("colorpicker"), options = $.extend({}, $.fn.colorpicker.defaults, $this.data(), typeof option == "object" && option);
110
+
111
+ if (!data) {
112
+ $this.data("colorpicker", (data = new ColorPicker(this, options)));
113
+ }
114
+ if (typeof option == "string") {
115
+ data[option].apply(data, args);
116
+ }
117
+ });
118
+ };
119
+
120
+ $.fn.colorpicker.defaults = {
121
+ callback : function(value, color, title) {
122
+ },
123
+ colorsPerRow : 8
124
+ };
125
+
126
+ $.fn.colorpicker.Constructor = ColorPicker;
127
+
128
+ })(jQuery, window, document);
@@ -12,6 +12,40 @@
12
12
 
13
13
  Dropdown.VERSION = '3.3.4'
14
14
 
15
+ function getParent($this) {
16
+ var selector = $this.attr('data-target')
17
+
18
+ if (!selector) {
19
+ selector = $this.attr('href')
20
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
21
+ }
22
+
23
+ var $parent = selector && $(selector)
24
+
25
+ return $parent && $parent.length ? $parent : $this.parent()
26
+ }
27
+
28
+ function clearMenus(e) {
29
+ if (e && e.which === 3) return
30
+ $(backdrop).remove()
31
+ $(toggle).each(function () {
32
+ var $this = $(this)
33
+ var $parent = getParent($this)
34
+ var relatedTarget = { relatedTarget: this }
35
+
36
+ if (!$parent.hasClass('open')) return
37
+
38
+ if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
39
+
40
+ $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
41
+
42
+ if (e.isDefaultPrevented()) return
43
+
44
+ $this.attr('aria-expanded', 'false')
45
+ $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
46
+ })
47
+ }
48
+
15
49
  Dropdown.prototype.toggle = function (e) {
16
50
  var $this = $(this)
17
51
 
@@ -61,7 +95,7 @@
61
95
  var $parent = getParent($this)
62
96
  var isActive = $parent.hasClass('open')
63
97
 
64
- if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
98
+ if (!isActive && e.which != 27 || isActive && e.which == 27) {
65
99
  if (e.which == 27) $parent.find(toggle).trigger('focus')
66
100
  return $this.trigger('click')
67
101
  }
@@ -73,47 +107,13 @@
73
107
 
74
108
  var index = $items.index(e.target)
75
109
 
76
- if (e.which == 38 && index > 0) index-- // up
77
- if (e.which == 40 && index < $items.length - 1) index++ // down
78
- if (!~index) index = 0
110
+ if (e.which == 38 && index > 0) index-- // up
111
+ if (e.which == 40 && index < $items.length - 1) index++ // down
112
+ if (!~index) index = 0
79
113
 
80
114
  $items.eq(index).trigger('focus')
81
115
  }
82
116
 
83
- function clearMenus(e) {
84
- if (e && e.which === 3) return
85
- $(backdrop).remove()
86
- $(toggle).each(function () {
87
- var $this = $(this)
88
- var $parent = getParent($this)
89
- var relatedTarget = { relatedTarget: this }
90
-
91
- if (!$parent.hasClass('open')) return
92
-
93
- if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
94
-
95
- $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
96
-
97
- if (e.isDefaultPrevented()) return
98
-
99
- $this.attr('aria-expanded', 'false')
100
- $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
101
- })
102
- }
103
-
104
- function getParent($this) {
105
- var selector = $this.attr('data-target')
106
-
107
- if (!selector) {
108
- selector = $this.attr('href')
109
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
110
- }
111
-
112
- var $parent = selector && $(selector)
113
-
114
- return $parent && $parent.length ? $parent : $this.parent()
115
- }
116
-
117
117
 
118
118
  // DROPDOWN PLUGIN DEFINITION
119
119
  // ==========================
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  (function(root, factory) {
2
3
  if(typeof exports === 'object') {
3
4
  module.exports = factory();
@@ -10,14 +11,6 @@
10
11
 
11
12
  }(this, function() {
12
13
 
13
- /*!
14
- * GMaps.js v0.4.17
15
- * http://hpneo.github.com/gmaps/
16
- *
17
- * Copyright 2015, Gustavo Leon
18
- * Released under the MIT License.
19
- */
20
-
21
14
  if (!(typeof window.google === 'object' && window.google.maps)) {
22
15
  throw 'Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.'
23
16
  }
@@ -60,7 +53,7 @@ var array_map = function(array, callback) {
60
53
 
61
54
  if (Array.prototype.map && array.map === Array.prototype.map) {
62
55
  array_return = Array.prototype.map.call(array, function(item) {
63
- callback_params = original_callback_params;
56
+ var callback_params = original_callback_params.slice(0);
64
57
  callback_params.splice(0, 0, item);
65
58
 
66
59
  return callback.apply(this, callback_params);
@@ -117,11 +110,26 @@ var arrayToLatLng = function(coords, useGeoJSON) {
117
110
  return coords;
118
111
  };
119
112
 
113
+
114
+ var getElementsByClassName = function (class_name, context) {
115
+
116
+ var element,
117
+ _class = class_name.replace('.', '');
118
+
119
+ if ('jQuery' in this && context) {
120
+ element = $("." + _class, context)[0];
121
+ } else {
122
+ element = document.getElementsByClassName(_class)[0];
123
+ }
124
+ return element;
125
+
126
+ };
127
+
120
128
  var getElementById = function(id, context) {
121
129
  var element,
122
130
  id = id.replace('#', '');
123
131
 
124
- if ('jQuery' in this && context) {
132
+ if ('jQuery' in window && context) {
125
133
  element = $('#' + id, context)[0];
126
134
  } else {
127
135
  element = document.getElementById(id);
@@ -164,7 +172,7 @@ var GMaps = (function(global) {
164
172
  ],
165
173
  events_that_doesnt_hide_context_menu = ['mousemove', 'mouseout', 'mouseover'],
166
174
  options_to_be_deleted = ['el', 'lat', 'lng', 'mapType', 'width', 'height', 'markerClusterer', 'enableNewStyle'],
167
- container_id = options.el || options.div,
175
+ identifier = options.el || options.div,
168
176
  markerClustererFunction = options.markerClusterer,
169
177
  mapType = google.maps.MapTypeId[options.mapType.toUpperCase()],
170
178
  map_center = new google.maps.LatLng(options.lat, options.lng),
@@ -199,11 +207,17 @@ var GMaps = (function(global) {
199
207
  overviewMapControl: overviewMapControl
200
208
  };
201
209
 
202
- if (typeof(options.el) === 'string' || typeof(options.div) === 'string') {
203
- this.el = getElementById(container_id, options.context);
204
- } else {
205
- this.el = container_id;
206
- }
210
+ if (typeof(options.el) === 'string' || typeof(options.div) === 'string') {
211
+
212
+ if (identifier.indexOf("#") > -1) {
213
+ this.el = getElementById(identifier, options.context);
214
+ } else {
215
+ this.el = getElementsByClassName.apply(this, [identifier, options.context]);
216
+ }
217
+
218
+ } else {
219
+ this.el = identifier;
220
+ }
207
221
 
208
222
  if (typeof(this.el) === 'undefined' || this.el === null) {
209
223
  throw 'No element defined.';
@@ -5,7 +5,9 @@
5
5
  // ====================
6
6
 
7
7
  var Tab = function (element) {
8
+ // jscs:disable requireDollarBeforejQueryAssignment
8
9
  this.element = $(element)
10
+ // jscs:enable requireDollarBeforejQueryAssignment
9
11
  }
10
12
 
11
13
  Tab.VERSION = '3.3.4'
@@ -56,7 +58,7 @@
56
58
  var $active = container.find('> .active')
57
59
  var transition = callback
58
60
  && $.support.transition
59
- && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
61
+ && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
60
62
 
61
63
  function next() {
62
64
  $active
@@ -11,6 +11,7 @@
11
11
  this.timeout = null
12
12
  this.hoverState = null
13
13
  this.$element = null
14
+ this.inState = null
14
15
 
15
16
  this.init('tooltip', element, options)
16
17
  }
@@ -40,7 +41,8 @@
40
41
  this.type = type
41
42
  this.$element = $(element)
42
43
  this.options = this.getOptions(options)
43
- this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
44
+ this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
45
+ this.inState = { click: false, hover: false, focus: false }
44
46
 
45
47
  if (this.$element[0] instanceof document.constructor && !this.options.selector) {
46
48
  throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
@@ -99,16 +101,20 @@
99
101
  var self = obj instanceof this.constructor ?
100
102
  obj : $(obj.currentTarget).data('bs.' + this.type)
101
103
 
102
- if (self && self.$tip && self.$tip.is(':visible')) {
103
- self.hoverState = 'in'
104
- return
105
- }
106
-
107
104
  if (!self) {
108
105
  self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
109
106
  $(obj.currentTarget).data('bs.' + this.type, self)
110
107
  }
111
108
 
109
+ if (obj instanceof $.Event) {
110
+ self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
111
+ }
112
+
113
+ if (self.tip().hasClass('in') || self.hoverState == 'in') {
114
+ self.hoverState = 'in'
115
+ return
116
+ }
117
+
112
118
  clearTimeout(self.timeout)
113
119
 
114
120
  self.hoverState = 'in'
@@ -120,6 +126,14 @@
120
126
  }, self.options.delay.show)
121
127
  }
122
128
 
129
+ Tooltip.prototype.isInStateTrue = function () {
130
+ for (var key in this.inState) {
131
+ if (this.inState[key]) return true
132
+ }
133
+
134
+ return false
135
+ }
136
+
123
137
  Tooltip.prototype.leave = function (obj) {
124
138
  var self = obj instanceof this.constructor ?
125
139
  obj : $(obj.currentTarget).data('bs.' + this.type)
@@ -129,6 +143,12 @@
129
143
  $(obj.currentTarget).data('bs.' + this.type, self)
130
144
  }
131
145
 
146
+ if (obj instanceof $.Event) {
147
+ self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
148
+ }
149
+
150
+ if (self.isInStateTrue()) return
151
+
132
152
  clearTimeout(self.timeout)
133
153
 
134
154
  self.hoverState = 'out'
@@ -175,6 +195,7 @@
175
195
  .data('bs.' + this.type, this)
176
196
 
177
197
  this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
198
+ this.$element.trigger('inserted.bs.' + this.type)
178
199
 
179
200
  var pos = this.getPosition()
180
201
  var actualWidth = $tip[0].offsetWidth
@@ -182,13 +203,12 @@
182
203
 
183
204
  if (autoPlace) {
184
205
  var orgPlacement = placement
185
- var $container = this.options.container ? $(this.options.container) : this.$element.parent()
186
- var containerDim = this.getPosition($container)
206
+ var viewportDim = this.getPosition(this.$viewport)
187
207
 
188
- placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' :
189
- placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' :
190
- placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' :
191
- placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' :
208
+ placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
209
+ placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
210
+ placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
211
+ placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
192
212
  placement
193
213
 
194
214
  $tip
@@ -229,8 +249,8 @@
229
249
  if (isNaN(marginTop)) marginTop = 0
230
250
  if (isNaN(marginLeft)) marginLeft = 0
231
251
 
232
- offset.top = offset.top + marginTop
233
- offset.left = offset.left + marginLeft
252
+ offset.top += marginTop
253
+ offset.left += marginLeft
234
254
 
235
255
  // $.fn.offset doesn't round pixel values
236
256
  // so we use setOffset directly with our own function B-0
@@ -312,7 +332,7 @@
312
332
 
313
333
  Tooltip.prototype.fixTitle = function () {
314
334
  var $e = this.$element
315
- if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
335
+ if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
316
336
  $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
317
337
  }
318
338
  }
@@ -367,7 +387,7 @@
367
387
  var rightEdgeOffset = pos.left + viewportPadding + actualWidth
368
388
  if (leftEdgeOffset < viewportDimensions.left) { // left overflow
369
389
  delta.left = viewportDimensions.left - leftEdgeOffset
370
- } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
390
+ } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
371
391
  delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
372
392
  }
373
393
  }
@@ -393,7 +413,13 @@
393
413
  }
394
414
 
395
415
  Tooltip.prototype.tip = function () {
396
- return (this.$tip = this.$tip || $(this.options.template))
416
+ if (!this.$tip) {
417
+ this.$tip = $(this.options.template)
418
+ if (this.$tip.length != 1) {
419
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
420
+ }
421
+ }
422
+ return this.$tip
397
423
  }
398
424
 
399
425
  Tooltip.prototype.arrow = function () {
@@ -422,7 +448,13 @@
422
448
  }
423
449
  }
424
450
 
425
- self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
451
+ if (e) {
452
+ self.inState.click = !self.inState.click
453
+ if (self.isInStateTrue()) self.enter(self)
454
+ else self.leave(self)
455
+ } else {
456
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
457
+ }
426
458
  }
427
459
 
428
460
  Tooltip.prototype.destroy = function () {
@@ -430,6 +462,12 @@
430
462
  clearTimeout(this.timeout)
431
463
  this.hide(function () {
432
464
  that.$element.off('.' + that.type).removeData('bs.' + that.type)
465
+ if (that.$tip) {
466
+ that.$tip.detach()
467
+ }
468
+ that.$tip = null
469
+ that.$arrow = null
470
+ that.$viewport = null
433
471
  })
434
472
  }
435
473
 
@@ -0,0 +1,81 @@
1
+ /* Table of Contents
2
+ ==================================================
3
+ # Colorpicker */
4
+
5
+ /* # Colorpicker
6
+ ================================================== */
7
+ .dropdown-colorpicker > .dropdown-menu {
8
+ left: -7px;
9
+ padding: 4px;
10
+ }
11
+ .dropdown-colorpicker > .dropdown-menu.pull-right {
12
+ left: auto;
13
+ right: -7px;
14
+ }
15
+ .dropdown-colorpicker > .dropdown-menu.dropdown-caret:before {
16
+ border-bottom: 7px solid rgba(245,248,250,1);
17
+ border-left: 7px solid transparent;
18
+ border-right: 7px solid transparent;
19
+ content: "";
20
+ display: inline-block;
21
+ left: 9px;
22
+ position: absolute;
23
+ top: -7px;
24
+ }
25
+ .dropdown-colorpicker > .dropdown-menu.dropdown-caret:after {
26
+ border-bottom: 6px solid rgba(245,248,250,1);
27
+ border-left: 6px solid transparent;
28
+ border-right: 6px solid transparent;
29
+ content: "";
30
+ display: inline-block;
31
+ left: 10px;
32
+ position: absolute;
33
+ top: -6px;
34
+ }
35
+ .dropdown-colorpicker > .dropdown-menu.pull-right.dropdown-caret:before {
36
+ left: auto;
37
+ right: 9px;
38
+ }
39
+ .dropdown-colorpicker > .dropdown-menu.pull-right.dropdown-caret:after {
40
+ left: auto;
41
+ right: 10px;
42
+ }
43
+ .dropdown-colorpicker > .dropdown-menu > li {
44
+ display: block;
45
+ float: left;
46
+ width: 26px;
47
+ height: 26px;
48
+ margin: 2px;
49
+ }
50
+ .dropdown-colorpicker > .dropdown-menu > li > .color-btn {
51
+ border-radius: 2px;
52
+ display: block;
53
+ height: 26px;
54
+ margin: 0;
55
+ padding: 0;
56
+ position: relative;
57
+ text-decoration: none;
58
+ -webkit-transition: all ease 0.1s;
59
+ transition: all ease 0.1s;
60
+ width: 26px;
61
+ }
62
+ .dropdown-colorpicker > .dropdown-menu > li > .color-btn.selected:after {
63
+ color: rgba(255,255,255,1);
64
+ content: "\f3fe";
65
+ display: inline-block;
66
+ font-family: "Ionicons";
67
+ font-size: 16px;
68
+ left: 0;
69
+ line-height: 26px;
70
+ position: absolute;
71
+ right: 0;
72
+ text-align: center;
73
+ }
74
+ .btn-colorpicker {
75
+ background: rgba(102,117,127,1);
76
+ border-radius: 2px;
77
+ display: inline-block;
78
+ height: 25px;
79
+ vertical-align: middle;
80
+ width: 25px;
81
+ }
@@ -12,7 +12,7 @@
12
12
  z-index: 1060;
13
13
  }
14
14
  .datepicker:before {
15
- border-bottom: 7px solid rgba(56,67,81,1);
15
+ border-bottom: 7px solid rgba(245,248,250,1);
16
16
  border-right: 7px solid transparent;
17
17
  border-left: 7px solid transparent;
18
18
  content: '';
@@ -20,7 +20,7 @@
20
20
  position: absolute;
21
21
  }
22
22
  .datepicker:after {
23
- border-bottom: 6px solid rgba(56,67,81,1);
23
+ border-bottom: 6px solid rgba(245,248,250,1);
24
24
  border-right: 6px solid transparent;
25
25
  border-left: 6px solid transparent;
26
26
  content: '';
@@ -36,15 +36,15 @@
36
36
  .datepicker.datepicker-orient-bottom:before {
37
37
  bottom: -7px;
38
38
  border-bottom: 0;
39
- border-top: 7px solid rgba(56,67,81,1);
39
+ border-top: 7px solid rgba(245,248,250,1);
40
40
  }
41
41
  .datepicker.datepicker-orient-bottom:after {
42
42
  bottom: -6px;
43
43
  border-bottom: 0;
44
- border-top: 6px rgba(56,67,81,1);
44
+ border-top: 6px rgba(245,248,250,1);
45
45
  }
46
46
  .dow {
47
- color: rgba(255,255,255,1);
47
+ color: rgba(43,50,53,1);
48
48
  font-weight: bold;
49
49
  }
50
50
  .datepicker > div { display: none; }
@@ -104,7 +104,7 @@
104
104
  }
105
105
  .datepicker td span:hover {
106
106
  background: rgba(0,132,255,1);
107
- color: rgba(255,255,255,1);
107
+ color: rgba(43,50,53,1);
108
108
  cursor: pointer;
109
109
  }
110
110
  .datepicker td span.active,
@@ -10,13 +10,13 @@
10
10
  .dropdown-toggle:active,
11
11
  .open .dropdown-toggle { outline: 0; }
12
12
  .dropdown-menu {
13
- background: rgba(56,67,81,1);
13
+ background: rgba(245,248,250,1);
14
14
  background-clip: padding-box;
15
- border: 1px solid rgba(26,37,51,1);
15
+ border: 1px solid rgba(230,237,242,1);
16
16
  border-radius: 4px;
17
- box-shadow: 0 0 3px rgba(56,67,81,0.75);
17
+ box-shadow: 0 0 3px rgba(225,232,237,1);
18
18
  box-sizing: border-box;
19
- color: rgba(255,255,255,1);
19
+ color: rgba(43,50,53,1);
20
20
  display: none;
21
21
  float: left;
22
22
  font-weight: bold;
@@ -36,14 +36,14 @@
36
36
  right: 0;
37
37
  }
38
38
  .dropdown-menu > .divider {
39
- background: rgba(26,37,51,1);
39
+ background: rgba(230,237,242,1);
40
40
  height: 1px;
41
41
  margin: 5px 0px;
42
42
  overflow: hidden;
43
43
  }
44
44
  .dropdown-menu > li > a {
45
45
  clear: both;
46
- color: rgba(255,255,255,1);
46
+ color: rgba(43,50,53,1);
47
47
  cursor: pointer;
48
48
  display: block;
49
49
  padding: 5px 15px;
@@ -65,7 +65,7 @@
65
65
  }
66
66
  .dropdown .dropdown-menu .nav-header {
67
67
  padding-right: 20px;
68
- padding-left: 20px;
68
+ padding-left: 20px;
69
69
  }
70
70
 
71
71
  /* # Submenu
@@ -84,10 +84,10 @@
84
84
  .header-trunk > li > ul.dropdown-menu {
85
85
  border-top-right-radius: 0;
86
86
  border-top-left-radius: 0;
87
- box-shadow: 0 1px 2px rgba(56,67,81,0.75);
87
+ box-shadow: 0 1px 2px rgba(225,232,237,1);
88
88
  margin: 0 0 0 -1px;
89
89
  padding: 10px 0;
90
- width: calc(100% + 2px);
90
+ width: calc(100% + 1px);
91
91
  }
92
92
  .header-trunk > li > ul.dropdown-menu > li.divider { margin: 14px 0 10px 0; }
93
93
  .header-trunk > li .badge,
@@ -12,7 +12,7 @@
12
12
  z-index: 1060;
13
13
  }
14
14
  .timepicker-widget.dropdown-menu:before {
15
- border-bottom: 7px solid rgba(56,67,81,1);
15
+ border-bottom: 7px solid rgba(245,248,250,1);
16
16
  border-right: 7px solid transparent;
17
17
  border-left: 7px solid transparent;
18
18
  content: "";
@@ -20,7 +20,7 @@
20
20
  position: absolute;
21
21
  }
22
22
  .timepicker-widget.dropdown-menu:after {
23
- border-bottom: 6px solid rgba(56,67,81,1);
23
+ border-bottom: 6px solid rgba(245,248,250,1);
24
24
  border-right: 6px solid transparent;
25
25
  border-left: 6px solid transparent;
26
26
  content: "";
@@ -35,12 +35,12 @@
35
35
  .timepicker-widget.timepicker-orient-top:after { top: -6px; }
36
36
  .timepicker-widget.timepicker-orient-bottom:before {
37
37
  border-bottom: 0;
38
- border-top: 7px solid rgba(56,67,81,1);
38
+ border-top: 7px solid rgba(245,248,250,1);
39
39
  bottom: -7px;
40
40
  }
41
41
  .timepicker-widget.timepicker-orient-bottom:after {
42
42
  border-bottom: 0;
43
- border-top: 6px solid rgba(56,67,81,1);
43
+ border-top: 6px solid rgba(245,248,250,1);
44
44
  bottom: -6px;
45
45
  }
46
46
  .timepicker-widget a.btn,
@@ -57,7 +57,7 @@
57
57
  .timepicker-widget table td:not(.separator) { min-width: 30px; }
58
58
  .timepicker-widget table td span { width: 100%; }
59
59
  .timepicker-widget table td a {
60
- color: rgba(255,255,255,1);
60
+ color: rgba(43,50,53,1);
61
61
  display: inline-block;
62
62
  margin: 0;
63
63
  padding: 8px 0;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_frontend
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-01 00:00:00.000000000 Z
11
+ date: 2015-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -82,6 +82,7 @@ files:
82
82
  - vendor/assets/javascripts/carousel.js
83
83
  - vendor/assets/javascripts/chart.js
84
84
  - vendor/assets/javascripts/collapse.js
85
+ - vendor/assets/javascripts/color_picker.js
85
86
  - vendor/assets/javascripts/date_picker.js
86
87
  - vendor/assets/javascripts/dropdown.js
87
88
  - vendor/assets/javascripts/file_input.js
@@ -113,6 +114,7 @@ files:
113
114
  - vendor/assets/stylesheets/chart.scss
114
115
  - vendor/assets/stylesheets/code.scss
115
116
  - vendor/assets/stylesheets/collapse.scss
117
+ - vendor/assets/stylesheets/colorpicker.scss
116
118
  - vendor/assets/stylesheets/datepicker.scss
117
119
  - vendor/assets/stylesheets/dropdown.scss
118
120
  - vendor/assets/stylesheets/footer.scss
@@ -164,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
166
  version: '0'
165
167
  requirements: []
166
168
  rubyforge_project:
167
- rubygems_version: 2.4.5
169
+ rubygems_version: 2.4.6
168
170
  signing_key:
169
171
  specification_version: 4
170
172
  summary: ActiveFrontend Responsive Web Framework