iasd-bootstrap-sass 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: af2da9f36abb91fd2629f1f878aade42c410bc27
4
- data.tar.gz: 840f9b8fa49aa1b63f6ddfba674587a689d498e4
3
+ metadata.gz: f1369afb7cbf104d2828c958641e12ae274a9a7d
4
+ data.tar.gz: 9b0c09508567e2423ac3a78da368ab2886fb63dd
5
5
  SHA512:
6
- metadata.gz: c60aa55ef06877c1b1fe79a6e9db68843d761bb9e4cf56a90960ceff1aaa77032e2f7443bc27dc7907b8aa9ccea34d9baa8f2db4dd91127bee4e5e9dcabaa6ec
7
- data.tar.gz: 9daba7c9e7179bc389eb6acb0dfdd2d301b9bcdccd95bb5f6b8c58d61087c4a0f014975ff0f7117bdfa43297d8ebcadb1aec7e5837b8351c1b6d7a854cbc5dae
6
+ metadata.gz: 705e0e4df83292cf1affb139cb304ed8237b028a962cb1d00a61413dc1396b64d347aed4f96b639c33f5fc76fc380298240ca5828c3b39d32623b2060b65881a
7
+ data.tar.gz: 1719b916c3eb9bd5693a18b583d6ef790fc4c03549f0556590ccecf13e40dc0826ca1bc5f5ca016c4fb8aed78e8e8ffc931a74c3bea3166236735a5196044635
@@ -1,5 +1,5 @@
1
1
  module Bootstrap
2
2
  module IASD
3
- VERSION = "1.3.0"
3
+ VERSION = "1.3.1"
4
4
  end
5
5
  end
@@ -0,0 +1,80 @@
1
+ /*!
2
+ * classie - class helper functions
3
+ * from bonzo https://github.com/ded/bonzo
4
+ *
5
+ * classie.has( elem, 'my-class' ) -> true/false
6
+ * classie.add( elem, 'my-new-class' )
7
+ * classie.remove( elem, 'my-unwanted-class' )
8
+ * classie.toggle( elem, 'my-class' )
9
+ */
10
+
11
+ /*jshint browser: true, strict: true, undef: true */
12
+ /*global define: false */
13
+
14
+ ( function( window ) {
15
+
16
+ 'use strict';
17
+
18
+ // class helper functions from bonzo https://github.com/ded/bonzo
19
+
20
+ function classReg( className ) {
21
+ return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
22
+ }
23
+
24
+ // classList support for class management
25
+ // altho to be fair, the api sucks because it won't accept multiple classes at once
26
+ var hasClass, addClass, removeClass;
27
+
28
+ if ( 'classList' in document.documentElement ) {
29
+ hasClass = function( elem, c ) {
30
+ return elem.classList.contains( c );
31
+ };
32
+ addClass = function( elem, c ) {
33
+ elem.classList.add( c );
34
+ };
35
+ removeClass = function( elem, c ) {
36
+ elem.classList.remove( c );
37
+ };
38
+ }
39
+ else {
40
+ hasClass = function( elem, c ) {
41
+ return classReg( c ).test( elem.className );
42
+ };
43
+ addClass = function( elem, c ) {
44
+ if ( !hasClass( elem, c ) ) {
45
+ elem.className = elem.className + ' ' + c;
46
+ }
47
+ };
48
+ removeClass = function( elem, c ) {
49
+ elem.className = elem.className.replace( classReg( c ), ' ' );
50
+ };
51
+ }
52
+
53
+ function toggleClass( elem, c ) {
54
+ var fn = hasClass( elem, c ) ? removeClass : addClass;
55
+ fn( elem, c );
56
+ }
57
+
58
+ var classie = {
59
+ // full names
60
+ hasClass: hasClass,
61
+ addClass: addClass,
62
+ removeClass: removeClass,
63
+ toggleClass: toggleClass,
64
+ // short names
65
+ has: hasClass,
66
+ add: addClass,
67
+ remove: removeClass,
68
+ toggle: toggleClass
69
+ };
70
+
71
+ // transport
72
+ if ( typeof define === 'function' && define.amd ) {
73
+ // AMD
74
+ define( classie );
75
+ } else {
76
+ // browser global
77
+ window.classie = classie;
78
+ }
79
+
80
+ })( window );
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * IASD Bootstrap v1.3.0 (http://styleguide.adventistas.org)
2
+ * IASD Bootstrap v1.3.1 (http://styleguide.adventistas.org)
3
3
  * Copyright 2014-2015 Igreja Adventista do Sétimo Dia
4
4
  * Licensed under MIT (https://github.com/igrejaadventista/styleguide/blob/master/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * IASD Bootstrap v1.3.0 (http://styleguide.adventistas.org)
2
+ * IASD Bootstrap v1.3.1 (http://styleguide.adventistas.org)
3
3
  * Copyright 2014-2015 Igreja Adventista do Sétimo Dia
4
4
  * Licensed under MIT (https://github.com/igrejaadventista/styleguide/blob/master/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * IASD Bootstrap v1.3.0 (http://styleguide.adventistas.org)
2
+ * IASD Bootstrap v1.3.1 (http://styleguide.adventistas.org)
3
3
  * Copyright 2014-2015 Igreja Adventista do Sétimo Dia
4
4
  * Licensed under MIT (https://github.com/igrejaadventista/styleguide/blob/master/LICENSE)
5
5
  */
@@ -0,0 +1,355 @@
1
+ /**
2
+ * selectFx.js v1.0.0
3
+ * http://www.codrops.com
4
+ *
5
+ * Licensed under the MIT license.
6
+ * http://www.opensource.org/licenses/mit-license.php
7
+ *
8
+ * Copyright 2014, Codrops
9
+ * http://www.codrops.com
10
+ */
11
+ ;( function( window ) {
12
+
13
+ 'use strict';
14
+ var first = false;
15
+ /**
16
+ * based on from https://github.com/inuyaksa/jquery.nicescroll/blob/master/jquery.nicescroll.js
17
+ */
18
+ function hasParent( e, p ) {
19
+ if (!e) return false;
20
+ var el = e.target||e.srcElement||e||false;
21
+ while (el && el != p) {
22
+ el = el.parentNode||false;
23
+ }
24
+ return (el!==false);
25
+ };
26
+
27
+ /**
28
+ * extend obj function
29
+ */
30
+ function extend( a, b ) {
31
+ for( var key in b ) {
32
+ if( b.hasOwnProperty( key ) ) {
33
+ a[key] = b[key];
34
+ }
35
+ }
36
+ return a;
37
+ }
38
+
39
+ /**
40
+ * SelectFx function
41
+ */
42
+ function SelectFx( el, options ) {
43
+ this.el = el;
44
+ this.options = extend( {}, this.options );
45
+ extend( this.options, options );
46
+ this._init();
47
+ }
48
+
49
+ /**
50
+ * SelectFx options
51
+ */
52
+ SelectFx.prototype.options = {
53
+ // if true all the links will open in a new tab.
54
+ // if we want to be redirected when we click an option, we need to define a data-link attr on the option of the native select element
55
+ newTab : true,
56
+ // when opening the select element, the default placeholder (if any) is shown
57
+ stickyPlaceholder : true,
58
+ // callback when changing the value
59
+ onChange : function( val ) { return false; }
60
+ }
61
+
62
+ /**
63
+ * init function
64
+ * initialize and cache some vars
65
+ */
66
+ SelectFx.prototype._init = function() {
67
+ // check if we are using a placeholder for the native select box
68
+ // we assume the placeholder is disabled and selected by default
69
+ var selectedOpt = this.el.querySelector( 'option[selected]' );
70
+ this.hasDefaultPlaceholder = selectedOpt && selectedOpt.disabled;
71
+
72
+ // get selected option (either the first option with attr selected or just the first option)
73
+ this.selectedOpt = selectedOpt || this.el.querySelector( 'option' );
74
+
75
+ // create structure
76
+ this._createSelectEl();
77
+
78
+ // all options
79
+ this.selOpts = [].slice.call( this.selEl.querySelectorAll( 'li[data-option]' ) );
80
+
81
+ // total options
82
+ this.selOptsCount = this.selOpts.length;
83
+
84
+ // current index
85
+ this.current = this.selEl.querySelector('select').selectedIndex; //this.selOpts.indexOf( this.selEl.querySelector( 'li.cs-selected' ) ) || 0;
86
+
87
+ // placeholder elem
88
+ this.selPlaceholder = this.selEl.querySelector( 'span.cs-placeholder' );
89
+
90
+ // init events
91
+ this._initEvents();
92
+ }
93
+
94
+ /**
95
+ * creates the structure for the select element
96
+ */
97
+ SelectFx.prototype._createSelectEl = function() {
98
+ var self = this, options = '', createOptionHTML = function(el) {
99
+ var optclass = '', classes = '', link = '';
100
+
101
+ if( el.selectedOpt && !this.foundSelected && !this.hasDefaultPlaceholder ) {
102
+ classes += 'cs-selected ';
103
+ this.foundSelected = true;
104
+ }
105
+ // extra classes
106
+ if( el.getAttribute( 'data-class' ) ) {
107
+ classes += el.getAttribute( 'data-class' );
108
+ }
109
+ // link options
110
+ if( el.getAttribute( 'data-link' ) ) {
111
+ link = 'data-link=' + el.getAttribute( 'data-link' );
112
+ }
113
+
114
+ if( classes !== '' ) {
115
+ optclass = 'class="' + classes + '" ';
116
+ }
117
+
118
+ return '<li ' + optclass + link + ' data-option data-value="' + el.value + '"><span>' + el.textContent + '</span></li>';
119
+ };
120
+
121
+ [].slice.call( this.el.children ).forEach( function(el) {
122
+ if( el.disabled ) { return; }
123
+
124
+ var tag = el.tagName.toLowerCase();
125
+
126
+ if( tag === 'option' ) {
127
+ options += createOptionHTML(el);
128
+ }
129
+ else if( tag === 'optgroup' ) {
130
+ options += '<li class="cs-optgroup"><span>' + el.label + '</span><ul>';
131
+ [].slice.call( el.children ).forEach( function(opt) {
132
+ options += createOptionHTML(opt);
133
+ } );
134
+ options += '</ul></li>';
135
+ }
136
+ } );
137
+
138
+ var opts_el = '<div class="cs-options"><ul>' + options + '</ul></div>';
139
+ this.selEl = document.createElement( 'div' );
140
+ this.selEl.className = this.el.className;
141
+ this.selEl.tabIndex = this.el.tabIndex;
142
+ this.selEl.innerHTML = '<span class="cs-placeholder">' + this.selectedOpt.textContent + '</span>' + opts_el;
143
+ this.el.parentNode.appendChild( this.selEl );
144
+ this.selEl.appendChild( this.el );
145
+ }
146
+
147
+ /**
148
+ * initialize the events
149
+ */
150
+ SelectFx.prototype._initEvents = function() {
151
+ var self = this;
152
+
153
+ // open/close select
154
+ this.selPlaceholder.addEventListener( 'click', function() {
155
+ self._toggleSelect();
156
+ } );
157
+
158
+ // clicking the options
159
+ this.selOpts.forEach( function(opt, idx) {
160
+ opt.addEventListener( 'click', function() {
161
+ self.current = idx;
162
+ self._changeOption();
163
+ // close select elem
164
+ self._toggleSelect();
165
+ } );
166
+ } );
167
+
168
+ // close the select element if the target it´s not the select element or one of its descendants..
169
+ document.addEventListener( 'click', function(ev) {
170
+ var target = ev.target;
171
+ if( self._isOpen() && target !== self.selEl && !hasParent( target, self.selEl ) ) {
172
+ self._toggleSelect();
173
+ }
174
+ } );
175
+
176
+ // keyboard navigation events
177
+ this.selEl.addEventListener( 'keydown', function( ev ) {
178
+ var keyCode = ev.keyCode || ev.which;
179
+
180
+ switch (keyCode) {
181
+ // up key
182
+ case 38:
183
+ ev.preventDefault();
184
+ self._navigateOpts('prev');
185
+ break;
186
+ // down key
187
+ case 40:
188
+ ev.preventDefault();
189
+ self._navigateOpts('next');
190
+ break;
191
+ // space key
192
+ case 32:
193
+ ev.preventDefault();
194
+ if( self._isOpen() && typeof self.preSelCurrent != 'undefined' && self.preSelCurrent !== -1 ) {
195
+ self._changeOption();
196
+ }
197
+ self._toggleSelect();
198
+ break;
199
+ // enter key
200
+ case 13:
201
+ ev.preventDefault();
202
+ if( self._isOpen() && typeof self.preSelCurrent != 'undefined' && self.preSelCurrent !== -1 ) {
203
+ self._changeOption();
204
+ self._toggleSelect();
205
+ }
206
+ break;
207
+ // esc key
208
+ case 27:
209
+ ev.preventDefault();
210
+ if( self._isOpen() ) {
211
+ self._toggleSelect();
212
+ }
213
+ break;
214
+ }
215
+ } );
216
+ }
217
+
218
+ /**
219
+ * navigate with up/dpwn keys
220
+ */
221
+ SelectFx.prototype._navigateOpts = function(dir) {
222
+ if( !this._isOpen() ) {
223
+ this._toggleSelect();
224
+ }
225
+
226
+ var tmpcurrent = typeof this.preSelCurrent != 'undefined' && this.preSelCurrent !== -1 ? this.preSelCurrent : this.current;
227
+
228
+ if( dir === 'prev' && tmpcurrent > 0 || dir === 'next' && tmpcurrent < this.selOptsCount - 1 ) {
229
+ // save pre selected current - if we click on option, or press enter, or press space this is going to be the index of the current option
230
+ this.preSelCurrent = dir === 'next' ? tmpcurrent + 1 : tmpcurrent - 1;
231
+ // remove focus class if any..
232
+ this._removeFocus();
233
+ // add class focus - track which option we are navigating
234
+ classie.add( this.selOpts[this.preSelCurrent], 'cs-focus' );
235
+ }
236
+ }
237
+
238
+ /**
239
+ * open/close select
240
+ * when opened show the default placeholder if any
241
+ */
242
+ SelectFx.prototype._toggleSelect = function() {
243
+ // remove focus class if any..
244
+ this._removeFocus();
245
+
246
+ if( this._isOpen() ) {
247
+ if( this.current !== -1 ) {
248
+ // update placeholder text
249
+ this.selPlaceholder.textContent = this.selOpts[ this.current ].textContent;
250
+ }
251
+ classie.remove( this.selEl, 'cs-active' );
252
+ document.getElementById('btn_veja_mais').style.zIndex='999';
253
+
254
+ } else {
255
+
256
+ if( this.hasDefaultPlaceholder && this.options.stickyPlaceholder ) {
257
+ // everytime we open we wanna see the default placeholder text
258
+ this.selPlaceholder.textContent = this.selectedOpt.textContent;
259
+ }
260
+ classie.add( this.selEl, 'cs-active' );
261
+ document.getElementById('btn_veja_mais').style.zIndex='10';
262
+ }
263
+ }
264
+
265
+ /**
266
+ * change option - the new value is set
267
+ */
268
+ SelectFx.prototype._changeOption = function() {
269
+ // if pre selected current (if we navigate with the keyboard)...
270
+ if( typeof this.preSelCurrent != 'undefined' && this.preSelCurrent !== -1 ) {
271
+ this.current = this.preSelCurrent;
272
+ this.preSelCurrent = -1;
273
+ }
274
+
275
+ // current option
276
+ var opt = this.selOpts[ this.current ];
277
+
278
+ // update current selected value
279
+ this.selPlaceholder.textContent = opt.textContent;
280
+
281
+ // change native select element´s value
282
+ this.el.value = opt.getAttribute( 'data-value' );
283
+
284
+ // remove class cs-selected from old selected option and add it to current selected option
285
+ var oldOpt = this.selEl.querySelector( 'li.cs-selected' );
286
+ if( oldOpt ) {
287
+ classie.remove( oldOpt, 'cs-selected' );
288
+ }
289
+ classie.add( opt, 'cs-selected' );
290
+
291
+ // if there´s a link defined
292
+ if( opt.getAttribute( 'data-link' ) && first ) {
293
+ // open in new tab?
294
+ // if( this.options.newTab ) {
295
+ // window.open( opt.getAttribute( 'data-link' ), '_blank' );
296
+ // }
297
+ // else {
298
+ // window.location = opt.getAttribute( 'data-link' );
299
+ // }
300
+ changeSource( opt.getAttribute( 'data-link' ));
301
+
302
+ }
303
+
304
+ first = true;
305
+
306
+ // callback
307
+ this.options.onChange( this.el.value );
308
+ }
309
+
310
+ /**
311
+ * returns true if select element is opened
312
+ */
313
+ SelectFx.prototype._isOpen = function(opt) {
314
+ return classie.has( this.selEl, 'cs-active' );
315
+ }
316
+
317
+ /**
318
+ * removes the focus class from the option
319
+ */
320
+ SelectFx.prototype._removeFocus = function(opt) {
321
+ var focusEl = this.selEl.querySelector( 'li.cs-focus' )
322
+ if( focusEl ) {
323
+ classie.remove( focusEl, 'cs-focus' );
324
+ }
325
+ }
326
+
327
+ /**
328
+ * add to global namespace
329
+ */
330
+ window.SelectFx = SelectFx;
331
+
332
+
333
+ function changeSource(source) {
334
+
335
+ if (window.location.href.indexOf("radio") !=-1) {
336
+ window.location.href = replaceUrlParam(window.location.href, 'radio', source);
337
+
338
+ } else {
339
+ window.location.href = replaceUrlParam(window.location.href, 'tv', source);
340
+
341
+ }
342
+ }
343
+
344
+ function replaceUrlParam(url, paramName, paramValue){
345
+ var pattern = new RegExp('('+paramName+'=).*?(&|$)')
346
+ var newUrl=url
347
+ if(url.search(pattern)>=0){
348
+ newUrl = url.replace(pattern,'$1' + paramValue + '$2');
349
+ }
350
+ else{
351
+ newUrl = newUrl + (newUrl.indexOf('?')>0 ? '&' : '?') + paramName + '=' + paramValue;
352
+ }
353
+ return newUrl;
354
+ }
355
+ } )( window );
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iasd-bootstrap-sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Filipi Zimermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-09 00:00:00.000000000 Z
11
+ date: 2015-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: compass
@@ -281,6 +281,7 @@ files:
281
281
  - templates/project/img/widgets/slider_full.png
282
282
  - templates/project/img/widgets/title_novo_tempo.png
283
283
  - templates/project/lib/bootstrap.min.js
284
+ - templates/project/lib/classie.js
284
285
  - templates/project/lib/html5shiv.js
285
286
  - templates/project/lib/iasd-bootstrap.js
286
287
  - templates/project/lib/iasd-bootstrap.min.js
@@ -298,6 +299,7 @@ files:
298
299
  - templates/project/lib/modernizr.js
299
300
  - templates/project/lib/owl.carousel.js
300
301
  - templates/project/lib/respond.min.js
302
+ - templates/project/lib/selectFx.js
301
303
  - templates/project/manifest.rb
302
304
  - templates/project/print.scss
303
305
  homepage: http://nextt.com.br/