active_frontend 13.3.0 → 14.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/.fasterer.yml +19 -0
- data/.reek +27 -0
- data/.rubocop.yml +38 -0
- data/.scss-lint.yml +27 -0
- data/Rakefile +1 -1
- data/active_frontend.gemspec +21 -18
- data/app/.DS_Store +0 -0
- data/app/assets/.DS_Store +0 -0
- data/app/assets/fonts/.DS_Store +0 -0
- data/app/assets/fonts/dripicons/.DS_Store +0 -0
- data/app/assets/fonts/dripicons/dripicons.woff +0 -0
- data/app/assets/fonts/fakt-pro/.DS_Store +0 -0
- data/app/assets/fonts/fakt-pro/fakt-pro-bold.woff +0 -0
- data/app/assets/fonts/fakt-pro/fakt-pro-normal.woff +0 -0
- data/app/assets/fonts/fakt-pro/fakt-pro-semibold.woff +0 -0
- data/app/assets/fonts/fakt-pro/fakt-pro-semilight.woff +0 -0
- data/app/assets/fonts/fakt-soft-pro/.DS_Store +0 -0
- data/app/assets/fonts/fakt-soft-pro/fakt-soft-pro-bold.woff +0 -0
- data/app/assets/fonts/fakt-soft-pro/fakt-soft-pro-normal.woff +0 -0
- data/app/assets/fonts/fakt-soft-pro/fakt-soft-pro-semibold.woff +0 -0
- data/app/assets/fonts/fakt-soft-pro/fakt-soft-pro-semilight.woff +0 -0
- data/app/assets/images/.DS_Store +0 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/images/placeholders/.DS_Store +0 -0
- data/app/assets/images/placeholders/camera-large.png +0 -0
- data/app/assets/images/placeholders/camera-small.png +0 -0
- data/app/assets/images/placeholders/camera.png +0 -0
- data/app/assets/images/placeholders/document-large.png +0 -0
- data/app/assets/images/placeholders/document-small.png +0 -0
- data/app/assets/images/placeholders/document.png +0 -0
- data/app/assets/images/placeholders/photo-large.png +0 -0
- data/app/assets/images/placeholders/{picture-small.png → photo-small.png} +0 -0
- data/app/assets/images/placeholders/photo.png +0 -0
- data/app/assets/images/placeholders/store-large.png +0 -0
- data/app/assets/images/placeholders/store-small.png +0 -0
- data/app/assets/images/placeholders/store.png +0 -0
- data/app/assets/images/placeholders/user-large.png +0 -0
- data/app/assets/images/placeholders/user-small.png +0 -0
- data/app/assets/images/placeholders/user.png +0 -0
- data/app/helpers/active_frontend_helper.rb +22 -37
- data/lib/.DS_Store +0 -0
- data/lib/active_frontend.rb +3 -4
- data/lib/active_frontend/.DS_Store +0 -0
- data/lib/active_frontend/version.rb +1 -1
- data/lib/generators/active_frontend/install_generator.rb +3 -3
- data/lib/generators/active_frontend/templates/install.js +35 -30
- data/lib/generators/active_frontend/templates/install.scss +55 -58
- data/vendor/.DS_Store +0 -0
- data/vendor/assets/.DS_Store +0 -0
- data/vendor/assets/javascripts/.DS_Store +0 -0
- data/vendor/assets/javascripts/active_frontend.js +35 -30
- data/vendor/assets/javascripts/base/_affix.js +170 -0
- data/vendor/assets/javascripts/base/_alert.js +80 -0
- data/vendor/assets/javascripts/base/_animation.js +106 -0
- data/vendor/assets/javascripts/base/_button.js +123 -0
- data/vendor/assets/javascripts/base/_carousel.js +237 -0
- data/vendor/assets/javascripts/base/_collapse.js +200 -0
- data/vendor/assets/javascripts/base/_colorpicker.js +147 -0
- data/vendor/assets/javascripts/base/_datepicker.js +1411 -0
- data/vendor/assets/javascripts/base/_dropdown.js +154 -0
- data/vendor/assets/javascripts/base/_filepicker.js +235 -0
- data/vendor/assets/javascripts/base/_hoverdown.js +116 -0
- data/vendor/assets/javascripts/base/_layout.js +126 -0
- data/vendor/assets/javascripts/base/_list.js +103 -0
- data/vendor/assets/javascripts/{_modal.js → base/_modal.js} +170 -167
- data/vendor/assets/javascripts/base/_popover.js +101 -0
- data/vendor/assets/javascripts/base/_scrollspy.js +161 -0
- data/vendor/assets/javascripts/base/_switch.js +160 -0
- data/vendor/assets/javascripts/base/_tab.js +139 -0
- data/vendor/assets/javascripts/base/_table.js +224 -0
- data/vendor/assets/javascripts/base/_timeago.js +270 -0
- data/vendor/assets/javascripts/base/_timepicker.js +541 -0
- data/vendor/assets/javascripts/base/_tooltip.js +525 -0
- data/vendor/assets/javascripts/base/_tour.js +268 -0
- data/vendor/assets/javascripts/base/_transition.js +52 -0
- data/vendor/assets/javascripts/base/_typeahead.js +362 -0
- data/vendor/assets/javascripts/extensions/_calendar.js +4709 -0
- data/vendor/assets/javascripts/extensions/_chart.js +9371 -0
- data/vendor/assets/javascripts/extensions/_map.js +2153 -0
- data/vendor/assets/stylesheets/.DS_Store +0 -0
- data/vendor/assets/stylesheets/{_mixin.scss → _utility.scss} +96 -10
- data/vendor/assets/stylesheets/_variable.scss +201 -19
- data/vendor/assets/stylesheets/active_frontend.scss +55 -58
- data/vendor/assets/stylesheets/blocks/_anchor.scss +15 -0
- data/vendor/assets/stylesheets/blocks/_button.scss +278 -0
- data/vendor/assets/stylesheets/blocks/_code.scss +144 -0
- data/vendor/assets/stylesheets/blocks/_common.scss +127 -0
- data/vendor/assets/stylesheets/blocks/_form.scss +508 -0
- data/vendor/assets/stylesheets/blocks/_icon.scss +359 -0
- data/vendor/assets/stylesheets/blocks/_list.scss +76 -0
- data/vendor/assets/stylesheets/blocks/_multimedia.scss +62 -0
- data/vendor/assets/stylesheets/blocks/_reset.scss +179 -0
- data/vendor/assets/stylesheets/blocks/_table.scss +211 -0
- data/vendor/assets/stylesheets/blocks/_typography.scss +204 -0
- data/vendor/assets/stylesheets/components/_ad.scss +78 -0
- data/vendor/assets/stylesheets/components/_affix.scss +14 -0
- data/vendor/assets/stylesheets/components/_alert.scss +50 -0
- data/vendor/assets/stylesheets/components/_animation.scss +1670 -0
- data/vendor/assets/stylesheets/components/_breadcrumb.scss +17 -0
- data/vendor/assets/stylesheets/components/_calendar.scss +213 -0
- data/vendor/assets/stylesheets/components/_card.scss +30 -0
- data/vendor/assets/stylesheets/components/_carousel.scss +135 -0
- data/vendor/assets/stylesheets/components/_chart.scss +10 -0
- data/vendor/assets/stylesheets/components/_collapse.scss +17 -0
- data/vendor/assets/stylesheets/components/_colorpicker.scss +38 -0
- data/vendor/assets/stylesheets/components/_datepicker.scss +80 -0
- data/vendor/assets/stylesheets/components/_dropmenu.scss +151 -0
- data/vendor/assets/stylesheets/components/_footer.scss +11 -0
- data/vendor/assets/stylesheets/components/_grid.scss +144 -0
- data/vendor/assets/stylesheets/components/_header.scss +99 -0
- data/vendor/assets/stylesheets/components/_label_and_badge.scss +57 -0
- data/vendor/assets/stylesheets/components/_layout.scss +63 -0
- data/vendor/assets/stylesheets/components/_map.scss +14 -0
- data/vendor/assets/stylesheets/components/_milestone.scss +49 -0
- data/vendor/assets/stylesheets/components/_missive.scss +40 -0
- data/vendor/assets/stylesheets/components/_modal.scss +126 -0
- data/vendor/assets/stylesheets/components/_nav_and_tab.scss +202 -0
- data/vendor/assets/stylesheets/components/_navbar.scss +66 -0
- data/vendor/assets/stylesheets/components/_pagination.scss +79 -0
- data/vendor/assets/stylesheets/components/_placeholder.scss +23 -0
- data/vendor/assets/stylesheets/components/_popover.scss +167 -0
- data/vendor/assets/stylesheets/components/_progress.scss +62 -0
- data/vendor/assets/stylesheets/components/_sidebar.scss +74 -0
- data/vendor/assets/stylesheets/components/_spinner.scss +83 -0
- data/vendor/assets/stylesheets/components/_switch.scss +150 -0
- data/vendor/assets/stylesheets/components/_timepicker.scss +30 -0
- data/vendor/assets/stylesheets/components/_tooltip.scss +93 -0
- data/vendor/assets/stylesheets/components/_transition.scss +12 -0
- data/vendor/assets/stylesheets/components/_typeahead.scss +18 -0
- metadata +150 -94
- data/app/assets/fonts/gotham/gotham-bold.woff +0 -0
- data/app/assets/fonts/gotham/gotham-book.woff +0 -0
- data/app/assets/fonts/gotham/gotham-light.woff +0 -0
- data/app/assets/fonts/gotham/gotham-medium.woff +0 -0
- data/app/assets/fonts/gotham/gotham-rounded-bold.woff +0 -0
- data/app/assets/fonts/gotham/gotham-rounded-book.woff +0 -0
- data/app/assets/fonts/gotham/gotham-rounded-light.woff +0 -0
- data/app/assets/fonts/gotham/gotham-rounded-medium.woff +0 -0
- data/app/assets/images/placeholders/archive-large.png +0 -0
- data/app/assets/images/placeholders/archive-small.png +0 -0
- data/app/assets/images/placeholders/archive.png +0 -0
- data/app/assets/images/placeholders/picture-large.png +0 -0
- data/app/assets/images/placeholders/picture.png +0 -0
- data/vendor/assets/javascripts/_affix.js +0 -153
- data/vendor/assets/javascripts/_alert.js +0 -85
- data/vendor/assets/javascripts/_animation.js +0 -103
- data/vendor/assets/javascripts/_button.js +0 -107
- data/vendor/assets/javascripts/_carousel.js +0 -228
- data/vendor/assets/javascripts/_chart.js +0 -3742
- data/vendor/assets/javascripts/_collapse.js +0 -202
- data/vendor/assets/javascripts/_color_picker.js +0 -108
- data/vendor/assets/javascripts/_date_picker.js +0 -1650
- data/vendor/assets/javascripts/_dropdown.js +0 -156
- data/vendor/assets/javascripts/_file_input.js +0 -71
- data/vendor/assets/javascripts/_hoverdown.js +0 -109
- data/vendor/assets/javascripts/_inputmask.js +0 -341
- data/vendor/assets/javascripts/_loader.js +0 -361
- data/vendor/assets/javascripts/_map.js +0 -2401
- data/vendor/assets/javascripts/_popover.js +0 -99
- data/vendor/assets/javascripts/_scrollspy.js +0 -163
- data/vendor/assets/javascripts/_slider.js +0 -1572
- data/vendor/assets/javascripts/_sort.js +0 -1432
- data/vendor/assets/javascripts/_swoggle.js +0 -415
- data/vendor/assets/javascripts/_tab.js +0 -146
- data/vendor/assets/javascripts/_tablespy.js +0 -1883
- data/vendor/assets/javascripts/_time_ago.js +0 -206
- data/vendor/assets/javascripts/_time_picker.js +0 -1088
- data/vendor/assets/javascripts/_tooltip.js +0 -504
- data/vendor/assets/javascripts/_transition.js +0 -50
- data/vendor/assets/javascripts/_typeahead.js +0 -366
- data/vendor/assets/stylesheets/_ad.scss +0 -63
- data/vendor/assets/stylesheets/_affix.scss +0 -14
- data/vendor/assets/stylesheets/_alert.scss +0 -114
- data/vendor/assets/stylesheets/_animation.scss +0 -1370
- data/vendor/assets/stylesheets/_breadcrumb.scss +0 -100
- data/vendor/assets/stylesheets/_button.scss +0 -386
- data/vendor/assets/stylesheets/_canvas.scss +0 -182
- data/vendor/assets/stylesheets/_carousel.scss +0 -158
- data/vendor/assets/stylesheets/_chart.scss +0 -15
- data/vendor/assets/stylesheets/_code.scss +0 -150
- data/vendor/assets/stylesheets/_collapse.scss +0 -14
- data/vendor/assets/stylesheets/_color.scss +0 -55
- data/vendor/assets/stylesheets/_colorpicker.scss +0 -63
- data/vendor/assets/stylesheets/_datepicker.scss +0 -122
- data/vendor/assets/stylesheets/_dropdown.scss +0 -248
- data/vendor/assets/stylesheets/_footer.scss +0 -71
- data/vendor/assets/stylesheets/_form.scss +0 -661
- data/vendor/assets/stylesheets/_grid.scss +0 -184
- data/vendor/assets/stylesheets/_header.scss +0 -156
- data/vendor/assets/stylesheets/_icon.scss +0 -362
- data/vendor/assets/stylesheets/_image.scss +0 -33
- data/vendor/assets/stylesheets/_label_and_badge.scss +0 -104
- data/vendor/assets/stylesheets/_link.scss +0 -55
- data/vendor/assets/stylesheets/_list.scss +0 -122
- data/vendor/assets/stylesheets/_loader.scss +0 -71
- data/vendor/assets/stylesheets/_map.scss +0 -44
- data/vendor/assets/stylesheets/_missive.scss +0 -74
- data/vendor/assets/stylesheets/_modal.scss +0 -204
- data/vendor/assets/stylesheets/_nav_and_tab.scss +0 -230
- data/vendor/assets/stylesheets/_navbar.scss +0 -73
- data/vendor/assets/stylesheets/_pagination.scss +0 -79
- data/vendor/assets/stylesheets/_panel.scss +0 -80
- data/vendor/assets/stylesheets/_placeholder.scss +0 -63
- data/vendor/assets/stylesheets/_popover.scss +0 -128
- data/vendor/assets/stylesheets/_progress.scss +0 -86
- data/vendor/assets/stylesheets/_reset.scss +0 -140
- data/vendor/assets/stylesheets/_sidebar.scss +0 -148
- data/vendor/assets/stylesheets/_slider.scss +0 -151
- data/vendor/assets/stylesheets/_spinner.scss +0 -572
- data/vendor/assets/stylesheets/_subheader.scss +0 -112
- data/vendor/assets/stylesheets/_swoggle.scss +0 -120
- data/vendor/assets/stylesheets/_table.scss +0 -210
- data/vendor/assets/stylesheets/_timepicker.scss +0 -77
- data/vendor/assets/stylesheets/_toolbar.scss +0 -130
- data/vendor/assets/stylesheets/_tooltip.scss +0 -105
- data/vendor/assets/stylesheets/_transition.scss +0 -11
- data/vendor/assets/stylesheets/_trunk.scss +0 -147
- data/vendor/assets/stylesheets/_typeahead.scss +0 -18
- data/vendor/assets/stylesheets/_typography.scss +0 -233
@@ -1,156 +0,0 @@
|
|
1
|
-
+function ($) {
|
2
|
-
'use strict';
|
3
|
-
|
4
|
-
// DROPDOWN CLASS DEFINITION
|
5
|
-
// =========================
|
6
|
-
|
7
|
-
var backdrop = '.dropdown-backdrop'
|
8
|
-
var toggle = '[data-toggle="dropdown"]'
|
9
|
-
var Dropdown = function (element) {
|
10
|
-
$(element).on('click.bs.dropdown', this.toggle)
|
11
|
-
}
|
12
|
-
|
13
|
-
Dropdown.VERSION = '3.3.6'
|
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($.Event('hidden.bs.dropdown', relatedTarget))
|
46
|
-
})
|
47
|
-
}
|
48
|
-
|
49
|
-
Dropdown.prototype.toggle = function (e) {
|
50
|
-
var $this = $(this)
|
51
|
-
|
52
|
-
if ($this.is('.disabled, :disabled')) return
|
53
|
-
|
54
|
-
var $parent = getParent($this)
|
55
|
-
var isActive = $parent.hasClass('open')
|
56
|
-
|
57
|
-
clearMenus()
|
58
|
-
|
59
|
-
if (!isActive) {
|
60
|
-
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
61
|
-
// if mobile we use a backdrop because click events don't delegate
|
62
|
-
$(document.createElement('div'))
|
63
|
-
.addClass('dropdown-backdrop')
|
64
|
-
.insertAfter($(this))
|
65
|
-
.on('click', clearMenus)
|
66
|
-
}
|
67
|
-
|
68
|
-
var relatedTarget = { relatedTarget: this }
|
69
|
-
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
|
70
|
-
|
71
|
-
if (e.isDefaultPrevented()) return
|
72
|
-
|
73
|
-
$this
|
74
|
-
.trigger('focus')
|
75
|
-
.attr('aria-expanded', 'true')
|
76
|
-
|
77
|
-
$parent
|
78
|
-
.toggleClass('open')
|
79
|
-
.trigger($.Event('shown.bs.dropdown', relatedTarget))
|
80
|
-
}
|
81
|
-
|
82
|
-
return false
|
83
|
-
}
|
84
|
-
|
85
|
-
Dropdown.prototype.keydown = function (e) {
|
86
|
-
if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
|
87
|
-
|
88
|
-
var $this = $(this)
|
89
|
-
|
90
|
-
e.preventDefault()
|
91
|
-
e.stopPropagation()
|
92
|
-
|
93
|
-
if ($this.is('.disabled, :disabled')) return
|
94
|
-
|
95
|
-
var $parent = getParent($this)
|
96
|
-
var isActive = $parent.hasClass('open')
|
97
|
-
|
98
|
-
if (!isActive && e.which != 27 || isActive && e.which == 27) {
|
99
|
-
if (e.which == 27) $parent.find(toggle).trigger('focus')
|
100
|
-
return $this.trigger('click')
|
101
|
-
}
|
102
|
-
|
103
|
-
var desc = ' li:not(.disabled):visible a'
|
104
|
-
var $items = $parent.find('.dropdown-menu' + desc)
|
105
|
-
|
106
|
-
if (!$items.length) return
|
107
|
-
|
108
|
-
var index = $items.index(e.target)
|
109
|
-
|
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
|
113
|
-
|
114
|
-
$items.eq(index).trigger('focus')
|
115
|
-
}
|
116
|
-
|
117
|
-
|
118
|
-
// DROPDOWN PLUGIN DEFINITION
|
119
|
-
// ==========================
|
120
|
-
|
121
|
-
function Plugin(option) {
|
122
|
-
return this.each(function () {
|
123
|
-
var $this = $(this)
|
124
|
-
var data = $this.data('bs.dropdown')
|
125
|
-
|
126
|
-
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
|
127
|
-
if (typeof option == 'string') data[option].call($this)
|
128
|
-
})
|
129
|
-
}
|
130
|
-
|
131
|
-
var old = $.fn.dropdown
|
132
|
-
|
133
|
-
$.fn.dropdown = Plugin
|
134
|
-
$.fn.dropdown.Constructor = Dropdown
|
135
|
-
|
136
|
-
|
137
|
-
// DROPDOWN NO CONFLICT
|
138
|
-
// ====================
|
139
|
-
|
140
|
-
$.fn.dropdown.noConflict = function () {
|
141
|
-
$.fn.dropdown = old
|
142
|
-
return this
|
143
|
-
}
|
144
|
-
|
145
|
-
|
146
|
-
// APPLY TO STANDARD DROPDOWN ELEMENTS
|
147
|
-
// ===================================
|
148
|
-
|
149
|
-
$(document)
|
150
|
-
.on('click.bs.dropdown.data-api', clearMenus)
|
151
|
-
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
152
|
-
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
153
|
-
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
154
|
-
.on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
|
155
|
-
|
156
|
-
}(jQuery);
|
@@ -1,71 +0,0 @@
|
|
1
|
-
$(function() {
|
2
|
-
|
3
|
-
$("input[type=file].file-input").each(function(i,el){
|
4
|
-
if (typeof $(this).attr("data-vendor-style") != 'undefined') {
|
5
|
-
return;
|
6
|
-
};
|
7
|
-
|
8
|
-
var buttonWord = "Browse";
|
9
|
-
if (typeof $(this).attr("title") != "undefined") {
|
10
|
-
buttonWord = $(this).attr("title");
|
11
|
-
};
|
12
|
-
|
13
|
-
var input = $("<div>").append( $(el).eq(0).clone() ).html();
|
14
|
-
|
15
|
-
var view = "btn";
|
16
|
-
if (typeof $(this).attr("data-view") != "undefined") {
|
17
|
-
view = $(this).attr("data-view");
|
18
|
-
};
|
19
|
-
|
20
|
-
var id = 'file-input-' + i
|
21
|
-
$(el).replaceWith("<a class='"+view+" file-input' id='"+id+"'>"+buttonWord+input+"</a>");
|
22
|
-
|
23
|
-
var viewChanged = null;
|
24
|
-
if (typeof $(this).attr("data-view-changed") != "undefined") {
|
25
|
-
viewChanged = $(this).attr("data-view-changed");
|
26
|
-
};
|
27
|
-
|
28
|
-
var hash_id = '#' + id
|
29
|
-
$(hash_id).change(function(){
|
30
|
-
$(hash_id).addClass(viewChanged);
|
31
|
-
});
|
32
|
-
|
33
|
-
var cssHtml = "<style>"+
|
34
|
-
".file-input { overflow: hidden; position: relative; cursor: pointer; z-index: 1; }"+
|
35
|
-
".file-input input[type=file], .btn-file input[type=file]:focus, .btn-file input[type=file]:hover { position: absolute; top: 0; left: 0; cursor: pointer; opacity: 0; z-index: 99; outline: 0; }"+
|
36
|
-
"</style>";
|
37
|
-
|
38
|
-
$("link[rel=stylesheet]").eq(0).before(cssHtml);
|
39
|
-
|
40
|
-
}).promise().done( function(){
|
41
|
-
|
42
|
-
$(".file-input").mousemove(function(cursor) {
|
43
|
-
var input, wrapper, wrapperX, wrapperY, inputWidth, inputHeight, cursorX, cursorY;
|
44
|
-
|
45
|
-
wrapper = $(this);
|
46
|
-
input = wrapper.find("input");
|
47
|
-
wrapperX = wrapper.offset().left;
|
48
|
-
wrapperY = wrapper.offset().top;
|
49
|
-
inputWidth = input.width();
|
50
|
-
inputHeight = input.height();
|
51
|
-
cursorX = cursor.pageX;
|
52
|
-
cursorY = cursor.pageY;
|
53
|
-
moveInputX = cursorX - wrapperX - inputWidth + 20;
|
54
|
-
moveInputY = cursorY- wrapperY - (inputHeight/2);
|
55
|
-
|
56
|
-
input.css({
|
57
|
-
left:moveInputX,
|
58
|
-
top:moveInputY
|
59
|
-
});
|
60
|
-
});
|
61
|
-
});
|
62
|
-
|
63
|
-
});
|
64
|
-
|
65
|
-
function formFileGroup() { "use strict";
|
66
|
-
$('.form-file-group-input').click();
|
67
|
-
|
68
|
-
$('.form-file-group-input').change(function(){
|
69
|
-
$('.form-file-group-text').val($('.form-file-group-input').val());
|
70
|
-
});
|
71
|
-
};
|
@@ -1,109 +0,0 @@
|
|
1
|
-
;(function ($, window, undefined) {
|
2
|
-
// outside the scope of the jQuery plugin to
|
3
|
-
// keep track of all dropdowns
|
4
|
-
var $allDropdowns = $();
|
5
|
-
|
6
|
-
// if instantlyCloseOthers is true, then it will instantly
|
7
|
-
// shut other nav items when a new one is hovered over
|
8
|
-
$.fn.dropdownHover = function (options) {
|
9
|
-
// don't do anything if touch is supported
|
10
|
-
// (plugin causes some issues on mobile)
|
11
|
-
if('ontouchstart' in document) return this; // don't want to affect chaining
|
12
|
-
|
13
|
-
// the element we really care about
|
14
|
-
// is the dropdown-toggle's parent
|
15
|
-
$allDropdowns = $allDropdowns.add(this.parent());
|
16
|
-
|
17
|
-
return this.each(function () {
|
18
|
-
var $this = $(this),
|
19
|
-
$parent = $this.parent(),
|
20
|
-
defaults = {
|
21
|
-
delay: 500,
|
22
|
-
instantlyCloseOthers: true
|
23
|
-
},
|
24
|
-
data = {
|
25
|
-
delay: $(this).data('delay'),
|
26
|
-
instantlyCloseOthers: $(this).data('close-others')
|
27
|
-
},
|
28
|
-
showEvent = 'show.bs.dropdown',
|
29
|
-
hideEvent = 'hide.bs.dropdown',
|
30
|
-
// shownEvent = 'shown.bs.dropdown',
|
31
|
-
// hiddenEvent = 'hidden.bs.dropdown',
|
32
|
-
settings = $.extend(true, {}, defaults, options, data),
|
33
|
-
timeout;
|
34
|
-
|
35
|
-
$parent.hover(function (event) {
|
36
|
-
// so a neighbor can't open the dropdown
|
37
|
-
if($parent.hasClass('open') && !$this.is(event.target)) {
|
38
|
-
// stop this event, stop executing any code
|
39
|
-
// in this callback but continue to propagate
|
40
|
-
return true;
|
41
|
-
}
|
42
|
-
|
43
|
-
window.clearTimeout(timeout);
|
44
|
-
openDropdown(event);
|
45
|
-
}, function () {
|
46
|
-
timeout = window.setTimeout(function () {
|
47
|
-
$parent.removeClass('open');
|
48
|
-
$this.trigger(hideEvent);
|
49
|
-
}, settings.delay);
|
50
|
-
});
|
51
|
-
|
52
|
-
// clear timeout if hovering submenu
|
53
|
-
$allDropdowns.find('.dropdown-menu').hover(function(){
|
54
|
-
window.clearTimeout(timeout);
|
55
|
-
}, function(){
|
56
|
-
timeout = window.setTimeout(function () {
|
57
|
-
$parent.removeClass('open');
|
58
|
-
$this.trigger(hideEvent);
|
59
|
-
}, settings.delay);
|
60
|
-
});
|
61
|
-
|
62
|
-
// this helps with button groups!
|
63
|
-
$this.hover(function (event) {
|
64
|
-
// this helps prevent a double event from firing.
|
65
|
-
// see https://github.com/CWSpear/bootstrap-hover-dropdown/issues/55
|
66
|
-
if($parent.hasClass('open') && !$parent.is(event.target)) {
|
67
|
-
// stop this event, stop executing any code
|
68
|
-
// in this callback but continue to propagate
|
69
|
-
return true;
|
70
|
-
}
|
71
|
-
|
72
|
-
openDropdown(event);
|
73
|
-
});
|
74
|
-
|
75
|
-
// handle submenus
|
76
|
-
$parent.find('.dropdown-submenu').each(function (){
|
77
|
-
var $this = $(this);
|
78
|
-
var subTimeout;
|
79
|
-
$this.hover(function () {
|
80
|
-
window.clearTimeout(subTimeout);
|
81
|
-
$this.children('.dropdown-menu').show();
|
82
|
-
// always close submenu siblings instantly
|
83
|
-
$this.siblings().children('.dropdown-menu').hide();
|
84
|
-
}, function () {
|
85
|
-
var $submenu = $this.children('.dropdown-menu');
|
86
|
-
subTimeout = window.setTimeout(function () {
|
87
|
-
$submenu.hide();
|
88
|
-
}, settings.delay);
|
89
|
-
});
|
90
|
-
});
|
91
|
-
|
92
|
-
function openDropdown(event) {
|
93
|
-
$allDropdowns.find(':focus').blur();
|
94
|
-
|
95
|
-
if(settings.instantlyCloseOthers === true)
|
96
|
-
$allDropdowns.removeClass('open');
|
97
|
-
|
98
|
-
window.clearTimeout(timeout);
|
99
|
-
$parent.addClass('open');
|
100
|
-
$this.trigger(showEvent);
|
101
|
-
}
|
102
|
-
});
|
103
|
-
};
|
104
|
-
|
105
|
-
$(document).ready(function () {
|
106
|
-
// apply dropdownHover to all elements with the data-hover="dropdown" attribute
|
107
|
-
$('[data-hover="dropdown"]').dropdownHover();
|
108
|
-
});
|
109
|
-
})(jQuery, this);
|
@@ -1,341 +0,0 @@
|
|
1
|
-
+function ($) { "use strict";
|
2
|
-
|
3
|
-
var isIphone = (window.orientation !== undefined)
|
4
|
-
var isAndroid = navigator.userAgent.toLowerCase().indexOf("android") > -1
|
5
|
-
var isIE = window.navigator.appName == 'Microsoft Internet Explorer'
|
6
|
-
|
7
|
-
// INPUTMASK PUBLIC CLASS DEFINITION
|
8
|
-
// =================================
|
9
|
-
|
10
|
-
var Inputmask = function (element, options) {
|
11
|
-
if (isAndroid) return // No support because caret positioning doesn't work on Android
|
12
|
-
|
13
|
-
this.$element = $(element)
|
14
|
-
this.options = $.extend({}, Inputmask.DEFAULTS, options)
|
15
|
-
this.mask = String(this.options.mask)
|
16
|
-
|
17
|
-
this.init()
|
18
|
-
this.listen()
|
19
|
-
|
20
|
-
this.checkVal() //Perform initial check for existing values
|
21
|
-
}
|
22
|
-
|
23
|
-
Inputmask.DEFAULTS = {
|
24
|
-
mask: "",
|
25
|
-
placeholder: "_",
|
26
|
-
definitions: {
|
27
|
-
'9': "[0-9]",
|
28
|
-
'a': "[A-Za-z]",
|
29
|
-
'w': "[A-Za-z0-9]",
|
30
|
-
'*': "."
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
Inputmask.prototype.init = function() {
|
35
|
-
var defs = this.options.definitions
|
36
|
-
var len = this.mask.length
|
37
|
-
|
38
|
-
this.tests = []
|
39
|
-
this.partialPosition = this.mask.length
|
40
|
-
this.firstNonMaskPos = null
|
41
|
-
|
42
|
-
$.each(this.mask.split(""), $.proxy(function(i, c) {
|
43
|
-
if (c == '?') {
|
44
|
-
len--
|
45
|
-
this.partialPosition = i
|
46
|
-
} else if (defs[c]) {
|
47
|
-
this.tests.push(new RegExp(defs[c]))
|
48
|
-
if (this.firstNonMaskPos === null)
|
49
|
-
this.firstNonMaskPos = this.tests.length - 1
|
50
|
-
} else {
|
51
|
-
this.tests.push(null)
|
52
|
-
}
|
53
|
-
}, this))
|
54
|
-
|
55
|
-
this.buffer = $.map(this.mask.split(""), $.proxy(function(c, i) {
|
56
|
-
if (c != '?') return defs[c] ? this.options.placeholder : c
|
57
|
-
}, this))
|
58
|
-
|
59
|
-
this.focusText = this.$element.val()
|
60
|
-
|
61
|
-
this.$element.data("rawMaskFn", $.proxy(function() {
|
62
|
-
return $.map(this.buffer, function(c, i) {
|
63
|
-
return this.tests[i] && c != this.options.placeholder ? c : null
|
64
|
-
}).join('')
|
65
|
-
}, this))
|
66
|
-
}
|
67
|
-
|
68
|
-
Inputmask.prototype.listen = function() {
|
69
|
-
if (this.$element.attr("readonly")) return
|
70
|
-
|
71
|
-
var pasteEventName = (isIE ? 'paste' : 'input') + ".bs.inputmask"
|
72
|
-
|
73
|
-
this.$element
|
74
|
-
.on("unmask.bs.inputmask", $.proxy(this.unmask, this))
|
75
|
-
|
76
|
-
.on("focus.bs.inputmask", $.proxy(this.focusEvent, this))
|
77
|
-
.on("blur.bs.inputmask", $.proxy(this.blurEvent, this))
|
78
|
-
|
79
|
-
.on("keydown.bs.inputmask", $.proxy(this.keydownEvent, this))
|
80
|
-
.on("keypress.bs.inputmask", $.proxy(this.keypressEvent, this))
|
81
|
-
|
82
|
-
.on(pasteEventName, $.proxy(this.pasteEvent, this))
|
83
|
-
}
|
84
|
-
|
85
|
-
//Helper Function for Caret positioning
|
86
|
-
Inputmask.prototype.caret = function(begin, end) {
|
87
|
-
if (this.$element.length === 0) return
|
88
|
-
if (typeof begin == 'number') {
|
89
|
-
end = (typeof end == 'number') ? end : begin
|
90
|
-
return this.$element.each(function() {
|
91
|
-
if (this.setSelectionRange) {
|
92
|
-
this.setSelectionRange(begin, end)
|
93
|
-
} else if (this.createTextRange) {
|
94
|
-
var range = this.createTextRange()
|
95
|
-
range.collapse(true)
|
96
|
-
range.moveEnd('character', end)
|
97
|
-
range.moveStart('character', begin)
|
98
|
-
range.select()
|
99
|
-
}
|
100
|
-
})
|
101
|
-
} else {
|
102
|
-
if (this.$element[0].setSelectionRange) {
|
103
|
-
begin = this.$element[0].selectionStart
|
104
|
-
end = this.$element[0].selectionEnd
|
105
|
-
} else if (document.selection && document.selection.createRange) {
|
106
|
-
var range = document.selection.createRange()
|
107
|
-
begin = 0 - range.duplicate().moveStart('character', -100000)
|
108
|
-
end = begin + range.text.length
|
109
|
-
}
|
110
|
-
return {
|
111
|
-
begin: begin,
|
112
|
-
end: end
|
113
|
-
}
|
114
|
-
}
|
115
|
-
}
|
116
|
-
|
117
|
-
Inputmask.prototype.seekNext = function(pos) {
|
118
|
-
var len = this.mask.length
|
119
|
-
while (++pos <= len && !this.tests[pos]);
|
120
|
-
|
121
|
-
return pos
|
122
|
-
}
|
123
|
-
|
124
|
-
Inputmask.prototype.seekPrev = function(pos) {
|
125
|
-
while (--pos >= 0 && !this.tests[pos]);
|
126
|
-
|
127
|
-
return pos
|
128
|
-
}
|
129
|
-
|
130
|
-
Inputmask.prototype.shiftL = function(begin,end) {
|
131
|
-
var len = this.mask.length
|
132
|
-
|
133
|
-
if (begin < 0) return
|
134
|
-
|
135
|
-
for (var i = begin, j = this.seekNext(end); i < len; i++) {
|
136
|
-
if (this.tests[i]) {
|
137
|
-
if (j < len && this.tests[i].test(this.buffer[j])) {
|
138
|
-
this.buffer[i] = this.buffer[j]
|
139
|
-
this.buffer[j] = this.options.placeholder
|
140
|
-
} else
|
141
|
-
break
|
142
|
-
j = this.seekNext(j)
|
143
|
-
}
|
144
|
-
}
|
145
|
-
this.writeBuffer()
|
146
|
-
this.caret(Math.max(this.firstNonMaskPos, begin))
|
147
|
-
}
|
148
|
-
|
149
|
-
Inputmask.prototype.shiftR = function(pos) {
|
150
|
-
var len = this.mask.length
|
151
|
-
|
152
|
-
for (var i = pos, c = this.options.placeholder; i < len; i++) {
|
153
|
-
if (this.tests[i]) {
|
154
|
-
var j = this.seekNext(i)
|
155
|
-
var t = this.buffer[i]
|
156
|
-
this.buffer[i] = c
|
157
|
-
if (j < len && this.tests[j].test(t))
|
158
|
-
c = t
|
159
|
-
else
|
160
|
-
break
|
161
|
-
}
|
162
|
-
}
|
163
|
-
},
|
164
|
-
|
165
|
-
Inputmask.prototype.unmask = function() {
|
166
|
-
this.$element
|
167
|
-
.unbind(".bs.inputmask")
|
168
|
-
.removeData("bs.inputmask")
|
169
|
-
}
|
170
|
-
|
171
|
-
Inputmask.prototype.focusEvent = function() {
|
172
|
-
this.focusText = this.$element.val()
|
173
|
-
var len = this.mask.length
|
174
|
-
var pos = this.checkVal()
|
175
|
-
this.writeBuffer()
|
176
|
-
|
177
|
-
var that = this
|
178
|
-
var moveCaret = function() {
|
179
|
-
if (pos == len)
|
180
|
-
that.caret(0, pos)
|
181
|
-
else
|
182
|
-
that.caret(pos)
|
183
|
-
}
|
184
|
-
|
185
|
-
moveCaret()
|
186
|
-
setTimeout(moveCaret, 50)
|
187
|
-
}
|
188
|
-
|
189
|
-
Inputmask.prototype.blurEvent = function() {
|
190
|
-
this.checkVal()
|
191
|
-
if (this.$element.val() !== this.focusText) {
|
192
|
-
this.$element.trigger('change')
|
193
|
-
this.$element.trigger('input')
|
194
|
-
}
|
195
|
-
}
|
196
|
-
|
197
|
-
Inputmask.prototype.keydownEvent = function(e) {
|
198
|
-
var k = e.which
|
199
|
-
|
200
|
-
//backspace, delete, and escape get special treatment
|
201
|
-
if (k == 8 || k == 46 || (isIphone && k == 127)) {
|
202
|
-
var pos = this.caret(),
|
203
|
-
begin = pos.begin,
|
204
|
-
end = pos.end
|
205
|
-
|
206
|
-
if (end - begin === 0) {
|
207
|
-
begin = k != 46 ? this.seekPrev(begin) : (end = this.seekNext(begin - 1))
|
208
|
-
end = k == 46 ? this.seekNext(end) : end
|
209
|
-
}
|
210
|
-
this.clearBuffer(begin, end)
|
211
|
-
this.shiftL(begin, end - 1)
|
212
|
-
|
213
|
-
return false
|
214
|
-
} else if (k == 27) {//escape
|
215
|
-
this.$element.val(this.focusText)
|
216
|
-
this.caret(0, this.checkVal())
|
217
|
-
return false
|
218
|
-
}
|
219
|
-
}
|
220
|
-
|
221
|
-
Inputmask.prototype.keypressEvent = function(e) {
|
222
|
-
var len = this.mask.length
|
223
|
-
|
224
|
-
var k = e.which,
|
225
|
-
pos = this.caret()
|
226
|
-
|
227
|
-
if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {//Ignore
|
228
|
-
return true
|
229
|
-
} else if (k) {
|
230
|
-
if (pos.end - pos.begin !== 0) {
|
231
|
-
this.clearBuffer(pos.begin, pos.end)
|
232
|
-
this.shiftL(pos.begin, pos.end - 1)
|
233
|
-
}
|
234
|
-
|
235
|
-
var p = this.seekNext(pos.begin - 1)
|
236
|
-
if (p < len) {
|
237
|
-
var c = String.fromCharCode(k)
|
238
|
-
if (this.tests[p].test(c)) {
|
239
|
-
this.shiftR(p)
|
240
|
-
this.buffer[p] = c
|
241
|
-
this.writeBuffer()
|
242
|
-
var next = this.seekNext(p)
|
243
|
-
this.caret(next)
|
244
|
-
}
|
245
|
-
}
|
246
|
-
return false
|
247
|
-
}
|
248
|
-
}
|
249
|
-
|
250
|
-
Inputmask.prototype.pasteEvent = function() {
|
251
|
-
var that = this
|
252
|
-
|
253
|
-
setTimeout(function() {
|
254
|
-
that.caret(that.checkVal(true))
|
255
|
-
}, 0)
|
256
|
-
}
|
257
|
-
|
258
|
-
Inputmask.prototype.clearBuffer = function(start, end) {
|
259
|
-
var len = this.mask.length
|
260
|
-
|
261
|
-
for (var i = start; i < end && i < len; i++) {
|
262
|
-
if (this.tests[i])
|
263
|
-
this.buffer[i] = this.options.placeholder
|
264
|
-
}
|
265
|
-
}
|
266
|
-
|
267
|
-
Inputmask.prototype.writeBuffer = function() {
|
268
|
-
return this.$element.val(this.buffer.join('')).val()
|
269
|
-
}
|
270
|
-
|
271
|
-
Inputmask.prototype.checkVal = function(allow) {
|
272
|
-
var len = this.mask.length
|
273
|
-
//try to place characters where they belong
|
274
|
-
var test = this.$element.val()
|
275
|
-
var lastMatch = -1
|
276
|
-
|
277
|
-
for (var i = 0, pos = 0; i < len; i++) {
|
278
|
-
if (this.tests[i]) {
|
279
|
-
this.buffer[i] = this.options.placeholder
|
280
|
-
while (pos++ < test.length) {
|
281
|
-
var c = test.charAt(pos - 1)
|
282
|
-
if (this.tests[i].test(c)) {
|
283
|
-
this.buffer[i] = c
|
284
|
-
lastMatch = i
|
285
|
-
break
|
286
|
-
}
|
287
|
-
}
|
288
|
-
if (pos > test.length)
|
289
|
-
break
|
290
|
-
} else if (this.buffer[i] == test.charAt(pos) && i != this.partialPosition) {
|
291
|
-
pos++
|
292
|
-
lastMatch = i
|
293
|
-
}
|
294
|
-
}
|
295
|
-
if (!allow && lastMatch + 1 < this.partialPosition) {
|
296
|
-
this.$element.val("")
|
297
|
-
this.clearBuffer(0, len)
|
298
|
-
} else if (allow || lastMatch + 1 >= this.partialPosition) {
|
299
|
-
this.writeBuffer()
|
300
|
-
if (!allow) this.$element.val(this.$element.val().substring(0, lastMatch + 1))
|
301
|
-
}
|
302
|
-
return (this.partialPosition ? i : this.firstNonMaskPos)
|
303
|
-
}
|
304
|
-
|
305
|
-
|
306
|
-
// INPUTMASK PLUGIN DEFINITION
|
307
|
-
// ===========================
|
308
|
-
|
309
|
-
var old = $.fn.inputmask
|
310
|
-
|
311
|
-
$.fn.inputmask = function (options) {
|
312
|
-
return this.each(function () {
|
313
|
-
var $this = $(this)
|
314
|
-
var data = $this.data('bs.inputmask')
|
315
|
-
|
316
|
-
if (!data) $this.data('bs.inputmask', (data = new Inputmask(this, options)))
|
317
|
-
})
|
318
|
-
}
|
319
|
-
|
320
|
-
$.fn.inputmask.Constructor = Inputmask
|
321
|
-
|
322
|
-
|
323
|
-
// INPUTMASK NO CONFLICT
|
324
|
-
// ====================
|
325
|
-
|
326
|
-
$.fn.inputmask.noConflict = function () {
|
327
|
-
$.fn.inputmask = old
|
328
|
-
return this
|
329
|
-
}
|
330
|
-
|
331
|
-
|
332
|
-
// INPUTMASK DATA-API
|
333
|
-
// ==================
|
334
|
-
|
335
|
-
$(document).on('focus.bs.inputmask.data-api', '[data-mask]', function (e) {
|
336
|
-
var $this = $(this)
|
337
|
-
if ($this.data('bs.inputmask')) return
|
338
|
-
$this.inputmask($this.data())
|
339
|
-
})
|
340
|
-
|
341
|
-
}(window.jQuery);
|