less-rails-semantic_ui 1.11.8.0 → 1.12.0.0

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: 8ec51c2cd8dcf66dc6edbafa5783d27323e8a990
4
- data.tar.gz: 4cd23c8034fd697212d824b139e0658f7809268e
3
+ metadata.gz: 7de92ea0be933285c37c6a19b99e5afc205879a3
4
+ data.tar.gz: c38387e17d87deca0c2efef75fdbb4c704f3e145
5
5
  SHA512:
6
- metadata.gz: b400f3d0d4f8790170d47735f3cac2175b4c8229b3827b6d03a6e3f30ba3fd8af00459e854eb0e441a5cdcd86035333a9ddb9f92299e00086c23ee58670e5e9c
7
- data.tar.gz: 4fa5e4efe318434f269740c2b723b6e2e653e00e696790e675777cd13fd009090e5144ba365ab444a98d7f57030de2f3860358f72cec611bf72e441eb1e4e1d4
6
+ metadata.gz: 8c8c7fb818c79cb149128e8a5146e33398fc19e3ce889d5b4f56ab04f74ce2007b63df1e19c928c920c6e44bbc9118f6715825eb071501c5779e8f387ac6bbcf
7
+ data.tar.gz: 044c5f5f74fbc415869c4bfb80b813da09faa6416cf9b4c90a3463a4de36c44b6aa34bf50af1cebe2d726c84dddc65462114a750811c992246a45f829e8ac20d
data/Appraisals CHANGED
@@ -1,11 +1,14 @@
1
1
  appraise 'rails40' do
2
2
  gem 'rails', '~> 4.0.12'
3
+ gem 'sprockets', '~> 2'
3
4
  end
4
5
 
5
6
  appraise 'rails41' do
6
7
  gem 'rails', '~> 4.1.8'
8
+ gem 'sprockets', '~> 2'
7
9
  end
8
10
 
9
11
  appraise 'rails42' do
10
12
  gem 'rails', '~> 4.2.0'
13
+ gem 'sprockets', '~> 2'
11
14
  end
@@ -42,11 +42,11 @@ $.fn.visibility = function(parameters) {
42
42
  moduleNamespace = 'module-' + namespace,
43
43
 
44
44
  $window = $(window),
45
+
45
46
  $module = $(this),
46
47
  $context = $(settings.context),
47
- $images = $module.find('img'),
48
-
49
48
  selector = $module.selector || '',
49
+
50
50
  instance = $module.data(moduleNamespace),
51
51
 
52
52
  requestAnimationFrame = window.requestAnimationFrame
@@ -76,13 +76,16 @@ $.fn.visibility = function(parameters) {
76
76
  if(settings.type == 'fixed') {
77
77
  module.setup.fixed();
78
78
  }
79
+ if(settings.observeChanges) {
80
+ module.observeChanges();
81
+ }
82
+ if( !module.is.visible() ) {
83
+ module.error(error.visible, $module);
84
+ }
79
85
  }
80
86
  if(settings.initialCheck) {
81
87
  module.checkVisibility();
82
88
  }
83
- if(settings.observeChanges) {
84
- module.observeChanges();
85
- }
86
89
  module.instantiate();
87
90
  },
88
91
 
@@ -96,12 +99,18 @@ $.fn.visibility = function(parameters) {
96
99
 
97
100
  destroy: function() {
98
101
  module.verbose('Destroying previous module');
102
+ if(observer) {
103
+ observer.disconnect();
104
+ }
105
+ $window
106
+ .off('load' + eventNamespace, module.event.load)
107
+ .off('resize' + eventNamespace, module.event.resize)
108
+ ;
109
+ $context.off('scrollchange' + eventNamespace, module.event.scrollchange);
99
110
  $module
100
111
  .off(eventNamespace)
101
112
  .removeData(moduleNamespace)
102
113
  ;
103
- $window.off('resize' + eventNamespace, module.event.refresh);
104
- $context.off('scroll' + eventNamespace, module.event.scroll);
105
114
  },
106
115
 
107
116
  observeChanges: function() {
@@ -111,7 +120,10 @@ $.fn.visibility = function(parameters) {
111
120
  if('MutationObserver' in window) {
112
121
  observer = new MutationObserver(function(mutations) {
113
122
  module.verbose('DOM tree modified, updating visibility calculations');
114
- module.refresh();
123
+ module.timer = setTimeout(function() {
124
+ module.verbose('DOM tree modified, updating sticky menu');
125
+ module.refresh();
126
+ }, 100);
115
127
  });
116
128
  observer.observe(element, {
117
129
  childList : true,
@@ -125,17 +137,19 @@ $.fn.visibility = function(parameters) {
125
137
  events: function() {
126
138
  module.verbose('Binding visibility events to scroll and resize');
127
139
  $window
128
- .on('resize' + eventNamespace, module.event.refresh)
140
+ .on('load' + eventNamespace, module.event.load)
141
+ .on('resize' + eventNamespace, module.event.resize)
129
142
  ;
143
+ // pub/sub pattern
130
144
  $context
145
+ .off('scroll' + eventNamespace)
131
146
  .on('scroll' + eventNamespace, module.event.scroll)
147
+ .on('scrollchange' + eventNamespace, module.event.scrollchange)
132
148
  ;
133
- if($images.length > 0) {
134
- module.bind.imageLoad();
135
- }
136
149
  },
137
150
  imageLoad: function() {
138
151
  var
152
+ $images = $module.find('img'),
139
153
  imageCount = $images.length,
140
154
  index = imageCount,
141
155
  loadedCount = 0,
@@ -150,44 +164,82 @@ $.fn.visibility = function(parameters) {
150
164
  }
151
165
  }
152
166
  ;
153
- $images
154
- .each(function() {
155
- images.push( $(this).attr('src') );
156
- })
157
- ;
158
- while(index--) {
159
- cacheImage = document.createElement('img');
160
- cacheImage.onload = handleLoad;
161
- cacheImage.onerror = handleLoad;
162
- cacheImage.src = images[index];
163
- cache.push(cacheImage);
167
+ if(imageCount > 0) {
168
+ $images
169
+ .each(function() {
170
+ images.push( $(this).attr('src') );
171
+ })
172
+ ;
173
+ while(index--) {
174
+ cacheImage = document.createElement('img');
175
+ cacheImage.onload = handleLoad;
176
+ cacheImage.onerror = handleLoad;
177
+ cacheImage.src = images[index];
178
+ cache.push(cacheImage);
179
+ }
164
180
  }
165
181
  }
166
182
  },
167
183
 
168
184
  event: {
169
- refresh: function() {
185
+ resize: function() {
186
+ module.debug('Window resized');
170
187
  requestAnimationFrame(module.refresh);
171
188
  },
189
+ load: function() {
190
+ module.debug('Page finished loading');
191
+ requestAnimationFrame(module.refresh);
192
+ },
193
+ // publishes scrollchange event on one scroll
172
194
  scroll: function() {
173
- module.verbose('Scroll position changed');
174
195
  if(settings.throttle) {
175
196
  clearTimeout(module.timer);
176
197
  module.timer = setTimeout(function() {
177
- module.checkVisibility();
198
+ $context.trigger('scrollchange' + eventNamespace, [ $context.scrollTop() ]);
178
199
  }, settings.throttle);
179
200
  }
180
201
  else {
181
202
  requestAnimationFrame(function() {
182
- module.checkVisibility();
203
+ $context.trigger('scrollchange' + eventNamespace, [ $context.scrollTop() ]);
183
204
  });
184
205
  }
206
+ },
207
+ // subscribes to scrollchange
208
+ scrollchange: function(event, scrollPosition) {
209
+ module.checkVisibility(scrollPosition);
210
+ },
211
+ },
212
+
213
+ precache: function(images, callback) {
214
+ if (!(images instanceof Array)) {
215
+ images = [images];
216
+ }
217
+ var
218
+ imagesLength = images.length,
219
+ loadedCounter = 0,
220
+ cache = [],
221
+ cacheImage = document.createElement('img'),
222
+ handleLoad = function() {
223
+ loadedCounter++;
224
+ if (loadedCounter >= images.length) {
225
+ if ($.isFunction(callback)) {
226
+ callback();
227
+ }
228
+ }
229
+ }
230
+ ;
231
+ while (imagesLength--) {
232
+ cacheImage = document.createElement('img');
233
+ cacheImage.onload = handleLoad;
234
+ cacheImage.onerror = handleLoad;
235
+ cacheImage.src = images[imagesLength];
236
+ cache.push(cacheImage);
185
237
  }
186
238
  },
187
239
 
188
240
  should: {
189
241
  trackChanges: function() {
190
- if(methodInvoked && queryArguments.length > 0) {
242
+ if(methodInvoked) {
191
243
  module.debug('One time query, no need to bind events');
192
244
  return false;
193
245
  }
@@ -287,7 +339,7 @@ $.fn.visibility = function(parameters) {
287
339
  },
288
340
 
289
341
  refresh: function() {
290
- module.debug('Refreshing constants (element width/height)');
342
+ module.debug('Refreshing constants (width/height)');
291
343
  module.reset();
292
344
  module.save.position();
293
345
  module.checkVisibility();
@@ -302,11 +354,14 @@ $.fn.visibility = function(parameters) {
302
354
  }
303
355
  },
304
356
 
305
- checkVisibility: function() {
357
+ checkVisibility: function(scroll) {
306
358
  module.verbose('Checking visibility of element', module.cache.element);
307
359
 
308
360
  if( module.is.visible() ) {
309
361
 
362
+ // save scroll position
363
+ module.save.scroll(scroll);
364
+
310
365
  // update calculations derived from scroll
311
366
  module.save.calculations();
312
367
 
@@ -616,7 +671,6 @@ $.fn.visibility = function(parameters) {
616
671
  save: {
617
672
  calculations: function() {
618
673
  module.verbose('Saving all calculations necessary to determine positioning');
619
- module.save.scroll();
620
674
  module.save.direction();
621
675
  module.save.screenCalculations();
622
676
  module.save.elementCalculations();
@@ -629,8 +683,9 @@ $.fn.visibility = function(parameters) {
629
683
  }
630
684
  }
631
685
  },
632
- scroll: function() {
633
- module.cache.scroll = $context.scrollTop() + settings.offset;
686
+ scroll: function(scrollPosition) {
687
+ scrollPosition = scrollPosition + settings.offset || $context.scrollTop() + settings.offset;
688
+ module.cache.scroll = scrollPosition;
634
689
  },
635
690
  direction: function() {
636
691
  var
@@ -855,7 +910,7 @@ $.fn.visibility = function(parameters) {
855
910
  });
856
911
  }
857
912
  clearTimeout(module.performance.timer);
858
- module.performance.timer = setTimeout(module.performance.display, 100);
913
+ module.performance.timer = setTimeout(module.performance.display, 500);
859
914
  },
860
915
  display: function() {
861
916
  var
@@ -975,6 +1030,9 @@ $.fn.visibility.settings = {
975
1030
  // whether to use mutation observers to follow changes
976
1031
  observeChanges : true,
977
1032
 
1033
+ // whether to refresh calculations after all page images load
1034
+ refreshOnLoad : true,
1035
+
978
1036
  // callback should only occur one time
979
1037
  once : true,
980
1038
 
@@ -1029,9 +1087,10 @@ $.fn.visibility.settings = {
1029
1087
  },
1030
1088
 
1031
1089
  error : {
1032
- method : 'The method you called is not defined.'
1090
+ method : 'The method you called is not defined.',
1091
+ visible : 'Element is hidden, you must call refresh after element becomes visible'
1033
1092
  }
1034
1093
 
1035
1094
  };
1036
1095
 
1037
- })( jQuery, window , document );
1096
+ })( jQuery, window , document );
@@ -760,7 +760,7 @@ $.fn.popup = function(parameters) {
760
760
  }
761
761
  else if(!settings.lastResort) {
762
762
  module.debug('Popup could not find a position in view', $popup);
763
- module.error(error.cannotPlace, element);
763
+ // module.error(error.cannotPlace, element);
764
764
  module.remove.attempts();
765
765
  module.remove.loading();
766
766
  module.reset();
@@ -87,13 +87,18 @@ $.fn.sticky = function(parameters) {
87
87
  },
88
88
 
89
89
  destroy: function() {
90
- module.verbose('Destroying previous module');
90
+ module.verbose('Destroying previous instance');
91
91
  module.reset();
92
92
  if(observer) {
93
93
  observer.disconnect();
94
94
  }
95
- $window.off('resize' + eventNamespace, module.event.resize);
96
- $scroll.off('scroll' + eventNamespace, module.event.scroll);
95
+ $window
96
+ .off('load' + eventNamespace, module.event.load)
97
+ .off('resize' + eventNamespace, module.event.resize)
98
+ ;
99
+ $scroll
100
+ .off('scrollchange' + eventNamespace, module.event.scrollchange)
101
+ ;
97
102
  $module.removeData(moduleNamespace);
98
103
  },
99
104
 
@@ -107,7 +112,7 @@ $.fn.sticky = function(parameters) {
107
112
  module.timer = setTimeout(function() {
108
113
  module.verbose('DOM tree modified, updating sticky menu');
109
114
  module.refresh();
110
- }, 20);
115
+ }, 100);
111
116
  });
112
117
  observer.observe(element, {
113
118
  childList : true,
@@ -147,23 +152,36 @@ $.fn.sticky = function(parameters) {
147
152
 
148
153
  bind: {
149
154
  events: function() {
150
- $window.on('resize' + eventNamespace, module.event.resize);
151
- $scroll.on('scroll' + eventNamespace, module.event.scroll);
155
+ $window
156
+ .on('load' + eventNamespace, module.event.load)
157
+ .on('resize' + eventNamespace, module.event.resize)
158
+ ;
159
+ // pub/sub pattern
160
+ $scroll
161
+ .off('scroll' + eventNamespace)
162
+ .on('scroll' + eventNamespace, module.event.scroll)
163
+ .on('scrollchange' + eventNamespace, module.event.scrollchange)
164
+ ;
152
165
  }
153
166
  },
154
167
 
155
168
  event: {
169
+ load: function() {
170
+ module.verbose('Page contents finished loading');
171
+ requestAnimationFrame(module.refresh);
172
+ },
156
173
  resize: function() {
157
- requestAnimationFrame(function() {
158
- module.refresh();
159
- module.stick();
160
- });
174
+ module.verbose('Window resized');
175
+ requestAnimationFrame(module.refresh);
161
176
  },
162
177
  scroll: function() {
163
178
  requestAnimationFrame(function() {
164
- module.stick();
165
- settings.onScroll.call(element);
179
+ $scroll.trigger('scrollchange' + eventNamespace, $scroll.scrollTop() );
166
180
  });
181
+ },
182
+ scrollchange: function(event, scrollPosition) {
183
+ module.stick(scrollPosition);
184
+ settings.onScroll.call(element);
167
185
  }
168
186
  },
169
187
 
@@ -189,7 +207,7 @@ $.fn.sticky = function(parameters) {
189
207
  },
190
208
 
191
209
  save: {
192
- scroll: function(scroll) {
210
+ lastScroll: function(scroll) {
193
211
  module.lastScroll = scroll;
194
212
  },
195
213
  positions: function() {
@@ -268,6 +286,7 @@ $.fn.sticky = function(parameters) {
268
286
  : Math.abs(parseInt($module.css('bottom'), 10)) || 0
269
287
  ;
270
288
  },
289
+
271
290
  elementScroll: function(scroll) {
272
291
  scroll = scroll || $scroll.scrollTop();
273
292
  var
@@ -275,14 +294,14 @@ $.fn.sticky = function(parameters) {
275
294
  window = module.cache.window,
276
295
  delta = module.get.scrollChange(scroll),
277
296
  maxScroll = (element.height - window.height + settings.offset),
278
- currentScroll = module.get.currentElementScroll(),
279
- possibleScroll = (currentScroll + delta),
297
+ elementScroll = module.get.currentElementScroll(),
298
+ possibleScroll = (elementScroll + delta),
280
299
  elementScroll
281
300
  ;
282
301
  if(module.cache.fits || possibleScroll < 0) {
283
302
  elementScroll = 0;
284
303
  }
285
- else if (possibleScroll > maxScroll ) {
304
+ else if(possibleScroll > maxScroll ) {
286
305
  elementScroll = maxScroll;
287
306
  }
288
307
  else {
@@ -313,8 +332,8 @@ $.fn.sticky = function(parameters) {
313
332
  $container = $module.offsetParent();
314
333
  }
315
334
  else {
316
- module.debug('Settings container size', module.cache.context.height);
317
335
  if( Math.abs($container.height() - module.cache.context.height) > 5) {
336
+ module.debug('Context has padding, specifying exact height for container', module.cache.context.height);
318
337
  $container.css({
319
338
  height: module.cache.context.height
320
339
  });
@@ -369,8 +388,9 @@ $.fn.sticky = function(parameters) {
369
388
  }
370
389
  },
371
390
 
372
- stick: function() {
391
+ stick: function(scroll) {
373
392
  var
393
+ cachedPosition = scroll || $scroll.scrollTop(),
374
394
  cache = module.cache,
375
395
  fits = cache.fits,
376
396
  element = cache.element,
@@ -380,11 +400,13 @@ $.fn.sticky = function(parameters) {
380
400
  ? settings.bottomOffset
381
401
  : settings.offset,
382
402
  scroll = {
383
- top : $scroll.scrollTop() + offset,
384
- bottom : $scroll.scrollTop() + offset + window.height
403
+ top : cachedPosition + offset,
404
+ bottom : cachedPosition + offset + window.height
385
405
  },
386
406
  direction = module.get.direction(scroll.top),
387
- elementScroll = module.get.elementScroll(scroll.top),
407
+ elementScroll = (fits)
408
+ ? 0
409
+ : module.get.elementScroll(scroll.top),
388
410
 
389
411
  // shorthand
390
412
  doesntFit = !fits,
@@ -392,7 +414,7 @@ $.fn.sticky = function(parameters) {
392
414
  ;
393
415
 
394
416
  // save current scroll for next run
395
- module.save.scroll(scroll.top);
417
+ module.save.lastScroll(scroll.top);
396
418
 
397
419
  if(elementVisible) {
398
420
 
@@ -552,13 +574,12 @@ $.fn.sticky = function(parameters) {
552
574
  module.unbind();
553
575
  module.unfix();
554
576
  module.resetCSS();
577
+ module.remove.offset();
555
578
  },
556
579
 
557
580
  resetCSS: function() {
558
581
  $module
559
582
  .css({
560
- top : '',
561
- bottom : '',
562
583
  width : '',
563
584
  height : ''
564
585
  })
@@ -788,4 +809,4 @@ $.fn.sticky.settings = {
788
809
 
789
810
  };
790
811
 
791
- })( jQuery, window , document );
812
+ })( jQuery, window , document );
@@ -403,7 +403,7 @@
403
403
  ---------------------*/
404
404
 
405
405
  .ui.fluid.input {
406
- display: block;
406
+ display: flex;
407
407
  }
408
408
 
409
409
  /*--------------------
@@ -1,7 +1,7 @@
1
1
  module Less
2
2
  module Rails
3
3
  module SemanticUI
4
- VERSION = '1.11.8.0'
4
+ VERSION = '1.12.0.0'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: less-rails-semantic_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.8.0
4
+ version: 1.12.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxim Dobryakov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-15 00:00:00.000000000 Z
11
+ date: 2015-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: less-rails