materialize-sass 0.97.0 → 1.0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +5 -5
  2. data/.gitattributes +1 -0
  3. data/.gitignore +3 -0
  4. data/README.md +48 -10
  5. data/Rakefile +129 -1
  6. data/assets/javascripts/materialize/anime.min.js +417 -0
  7. data/assets/javascripts/materialize/autocomplete.js +504 -0
  8. data/assets/javascripts/materialize/buttons.js +409 -0
  9. data/assets/javascripts/materialize/cards.js +34 -0
  10. data/assets/javascripts/materialize/carousel.js +797 -0
  11. data/assets/javascripts/materialize/cash.js +990 -0
  12. data/assets/javascripts/materialize/characterCounter.js +180 -0
  13. data/assets/javascripts/materialize/chips.js +564 -0
  14. data/assets/javascripts/materialize/collapsible.js +337 -0
  15. data/assets/javascripts/materialize/component.js +57 -0
  16. data/assets/javascripts/materialize/datepicker.js +935 -0
  17. data/assets/javascripts/materialize/dropdown.js +659 -0
  18. data/assets/javascripts/materialize/extras/nouislider.js +2147 -0
  19. data/assets/javascripts/materialize/extras/nouislider.min.js +1 -0
  20. data/assets/javascripts/materialize/forms.js +244 -0
  21. data/assets/javascripts/materialize/global.js +408 -0
  22. data/assets/javascripts/materialize/materialbox.js +513 -0
  23. data/assets/javascripts/materialize/modal.js +449 -0
  24. data/assets/javascripts/materialize/parallax.js +173 -0
  25. data/assets/javascripts/materialize/pushpin.js +179 -0
  26. data/assets/javascripts/materialize/range.js +310 -0
  27. data/assets/javascripts/materialize/scrollspy.js +328 -0
  28. data/assets/javascripts/materialize/select.js +497 -0
  29. data/assets/javascripts/materialize/sidenav.js +655 -0
  30. data/assets/javascripts/materialize/slider.js +424 -0
  31. data/assets/javascripts/materialize/tabs.js +476 -0
  32. data/assets/javascripts/materialize/tapTarget.js +364 -0
  33. data/assets/javascripts/materialize/timepicker.js +647 -0
  34. data/assets/javascripts/materialize/toasts.js +355 -0
  35. data/assets/javascripts/materialize/tooltip.js +351 -0
  36. data/{app/assets → assets}/javascripts/materialize/waves.js +42 -47
  37. data/assets/javascripts/materialize-sprockets.js +29 -0
  38. data/assets/javascripts/materialize.js +12374 -0
  39. data/assets/stylesheets/materialize/components/_badges.scss +55 -0
  40. data/assets/stylesheets/materialize/components/_buttons.scss +322 -0
  41. data/{app/assets → assets}/stylesheets/materialize/components/_cards.scss +72 -29
  42. data/assets/stylesheets/materialize/components/_carousel.scss +90 -0
  43. data/assets/stylesheets/materialize/components/_chips.scss +90 -0
  44. data/{app/assets → assets}/stylesheets/materialize/components/_collapsible.scss +23 -17
  45. data/assets/stylesheets/materialize/components/_color-classes.scss +32 -0
  46. data/{app/assets/stylesheets/materialize/components/_color.scss → assets/stylesheets/materialize/components/_color-variables.scss} +22 -64
  47. data/assets/stylesheets/materialize/components/_datepicker.scss +191 -0
  48. data/assets/stylesheets/materialize/components/_dropdown.scss +85 -0
  49. data/{app/assets → assets}/stylesheets/materialize/components/_global.scss +197 -144
  50. data/{app/assets → assets}/stylesheets/materialize/components/_grid.scss +57 -18
  51. data/assets/stylesheets/materialize/components/_icons-material-design.scss +5 -0
  52. data/{app/assets → assets}/stylesheets/materialize/components/_materialbox.scss +15 -13
  53. data/{app/assets → assets}/stylesheets/materialize/components/_modal.scss +18 -14
  54. data/{app/assets → assets}/stylesheets/materialize/components/_navbar.scss +89 -25
  55. data/assets/stylesheets/materialize/components/_normalize.scss +447 -0
  56. data/{app/assets → assets}/stylesheets/materialize/components/_preloader.scss +5 -3
  57. data/assets/stylesheets/materialize/components/_pulse.scss +34 -0
  58. data/assets/stylesheets/materialize/components/_sidenav.scss +208 -0
  59. data/{app/assets → assets}/stylesheets/materialize/components/_slider.scss +2 -2
  60. data/{app/assets → assets}/stylesheets/materialize/components/_table_of_contents.scss +5 -5
  61. data/assets/stylesheets/materialize/components/_tabs.scss +99 -0
  62. data/assets/stylesheets/materialize/components/_tapTarget.scss +103 -0
  63. data/assets/stylesheets/materialize/components/_timepicker.scss +183 -0
  64. data/{app/assets → assets}/stylesheets/materialize/components/_toast.scss +17 -22
  65. data/assets/stylesheets/materialize/components/_tooltip.scss +32 -0
  66. data/assets/stylesheets/materialize/components/_transitions.scss +13 -0
  67. data/{app/assets → assets}/stylesheets/materialize/components/_typography.scss +11 -9
  68. data/assets/stylesheets/materialize/components/_variables.scss +349 -0
  69. data/assets/stylesheets/materialize/components/_waves.scss +114 -0
  70. data/assets/stylesheets/materialize/components/forms/_checkboxes.scss +200 -0
  71. data/assets/stylesheets/materialize/components/forms/_file-input.scss +44 -0
  72. data/assets/stylesheets/materialize/components/forms/_forms.scss +22 -0
  73. data/assets/stylesheets/materialize/components/forms/_input-fields.scss +354 -0
  74. data/assets/stylesheets/materialize/components/forms/_radio-buttons.scss +115 -0
  75. data/assets/stylesheets/materialize/components/forms/_range.scss +161 -0
  76. data/assets/stylesheets/materialize/components/forms/_select.scss +190 -0
  77. data/assets/stylesheets/materialize/components/forms/_switches.scss +89 -0
  78. data/assets/stylesheets/materialize/extras/nouislider.css +406 -0
  79. data/{app/assets → assets}/stylesheets/materialize.scss +13 -10
  80. data/lib/materialize-sass/engine.rb +11 -6
  81. data/lib/materialize-sass/helpers.rb +38 -0
  82. data/lib/materialize-sass/version.rb +1 -1
  83. data/lib/materialize-sass.rb +13 -28
  84. data/materialize-sass.gemspec +5 -5
  85. metadata +97 -105
  86. data/app/assets/fonts/material-design-icons/LICENSE.txt +0 -428
  87. data/app/assets/fonts/material-design-icons/Material-Design-Icons.eot +0 -0
  88. data/app/assets/fonts/material-design-icons/Material-Design-Icons.svg +0 -769
  89. data/app/assets/fonts/material-design-icons/Material-Design-Icons.ttf +0 -0
  90. data/app/assets/fonts/material-design-icons/Material-Design-Icons.woff +0 -0
  91. data/app/assets/fonts/material-design-icons/Material-Design-Icons.woff2 +0 -0
  92. data/app/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
  93. data/app/assets/fonts/roboto/Roboto-Bold.woff +0 -0
  94. data/app/assets/fonts/roboto/Roboto-Bold.woff2 +0 -0
  95. data/app/assets/fonts/roboto/Roboto-Light.ttf +0 -0
  96. data/app/assets/fonts/roboto/Roboto-Light.woff +0 -0
  97. data/app/assets/fonts/roboto/Roboto-Light.woff2 +0 -0
  98. data/app/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
  99. data/app/assets/fonts/roboto/Roboto-Medium.woff +0 -0
  100. data/app/assets/fonts/roboto/Roboto-Medium.woff2 +0 -0
  101. data/app/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
  102. data/app/assets/fonts/roboto/Roboto-Regular.woff +0 -0
  103. data/app/assets/fonts/roboto/Roboto-Regular.woff2 +0 -0
  104. data/app/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
  105. data/app/assets/fonts/roboto/Roboto-Thin.woff +0 -0
  106. data/app/assets/fonts/roboto/Roboto-Thin.woff2 +0 -0
  107. data/app/assets/javascripts/materialize/animation.js +0 -9
  108. data/app/assets/javascripts/materialize/buttons.js +0 -61
  109. data/app/assets/javascripts/materialize/cards.js +0 -27
  110. data/app/assets/javascripts/materialize/character_counter.js +0 -59
  111. data/app/assets/javascripts/materialize/collapsible.js +0 -139
  112. data/app/assets/javascripts/materialize/date_picker/picker.date.js +0 -1430
  113. data/app/assets/javascripts/materialize/date_picker/picker.js +0 -1123
  114. data/app/assets/javascripts/materialize/dropdown.js +0 -178
  115. data/app/assets/javascripts/materialize/forms.js +0 -456
  116. data/app/assets/javascripts/materialize/global.js +0 -36
  117. data/app/assets/javascripts/materialize/hammer.min.js +0 -1
  118. data/app/assets/javascripts/materialize/init.js +0 -136
  119. data/app/assets/javascripts/materialize/jquery.easing.1.3.js +0 -205
  120. data/app/assets/javascripts/materialize/jquery.hammer.js +0 -33
  121. data/app/assets/javascripts/materialize/jquery.timeago.min.js +0 -1
  122. data/app/assets/javascripts/materialize/leanModal.js +0 -178
  123. data/app/assets/javascripts/materialize/materialbox.js +0 -249
  124. data/app/assets/javascripts/materialize/parallax.js +0 -58
  125. data/app/assets/javascripts/materialize/prism.js +0 -8
  126. data/app/assets/javascripts/materialize/pushpin.js +0 -62
  127. data/app/assets/javascripts/materialize/scrollFire.js +0 -44
  128. data/app/assets/javascripts/materialize/scrollspy.js +0 -284
  129. data/app/assets/javascripts/materialize/sideNav.js +0 -312
  130. data/app/assets/javascripts/materialize/slider.js +0 -301
  131. data/app/assets/javascripts/materialize/tabs.js +0 -136
  132. data/app/assets/javascripts/materialize/toasts.js +0 -125
  133. data/app/assets/javascripts/materialize/tooltip.js +0 -166
  134. data/app/assets/javascripts/materialize/transitions.js +0 -154
  135. data/app/assets/javascripts/materialize/velocity.min.js +0 -4
  136. data/app/assets/javascripts/materialize-sprockets.js +0 -27
  137. data/app/assets/javascripts/materialize.js +0 -6159
  138. data/app/assets/stylesheets/materialize/components/_buttons.scss +0 -157
  139. data/app/assets/stylesheets/materialize/components/_dropdown.scss +0 -40
  140. data/app/assets/stylesheets/materialize/components/_form.scss +0 -886
  141. data/app/assets/stylesheets/materialize/components/_icons-material-design.scss +0 -3257
  142. data/app/assets/stylesheets/materialize/components/_mixins.scss +0 -5
  143. data/app/assets/stylesheets/materialize/components/_normalize.scss +0 -427
  144. data/app/assets/stylesheets/materialize/components/_prefixer.scss +0 -376
  145. data/app/assets/stylesheets/materialize/components/_roboto.scss +0 -38
  146. data/app/assets/stylesheets/materialize/components/_sideNav.scss +0 -111
  147. data/app/assets/stylesheets/materialize/components/_tabs.scss +0 -47
  148. data/app/assets/stylesheets/materialize/components/_tooltip.scss +0 -34
  149. data/app/assets/stylesheets/materialize/components/_variables.scss +0 -152
  150. data/app/assets/stylesheets/materialize/components/_waves.scss +0 -167
  151. data/app/assets/stylesheets/materialize/components/date_picker/_default.date.scss +0 -435
  152. data/app/assets/stylesheets/materialize/components/date_picker/_default.scss +0 -201
  153. data/app/assets/stylesheets/materialize/components/date_picker/_default.time.scss +0 -125
@@ -0,0 +1,328 @@
1
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
2
+
3
+ var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
4
+
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+
7
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
8
+
9
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
+
11
+ (function ($, anim) {
12
+ 'use strict';
13
+
14
+ var _defaults = {
15
+ throttle: 100,
16
+ scrollOffset: 200, // offset - 200 allows elements near bottom of page to scroll
17
+ activeClass: 'active',
18
+ getActiveElement: function (id) {
19
+ return 'a[href="#' + id + '"]';
20
+ }
21
+ };
22
+
23
+ /**
24
+ * @class
25
+ *
26
+ */
27
+
28
+ var ScrollSpy = function (_Component) {
29
+ _inherits(ScrollSpy, _Component);
30
+
31
+ /**
32
+ * Construct ScrollSpy instance
33
+ * @constructor
34
+ * @param {Element} el
35
+ * @param {Object} options
36
+ */
37
+ function ScrollSpy(el, options) {
38
+ _classCallCheck(this, ScrollSpy);
39
+
40
+ var _this = _possibleConstructorReturn(this, (ScrollSpy.__proto__ || Object.getPrototypeOf(ScrollSpy)).call(this, ScrollSpy, el, options));
41
+
42
+ _this.el.M_ScrollSpy = _this;
43
+
44
+ /**
45
+ * Options for the modal
46
+ * @member Modal#options
47
+ * @prop {Number} [throttle=100] - Throttle of scroll handler
48
+ * @prop {Number} [scrollOffset=200] - Offset for centering element when scrolled to
49
+ * @prop {String} [activeClass='active'] - Class applied to active elements
50
+ * @prop {Function} [getActiveElement] - Used to find active element
51
+ */
52
+ _this.options = $.extend({}, ScrollSpy.defaults, options);
53
+
54
+ // setup
55
+ ScrollSpy._elements.push(_this);
56
+ ScrollSpy._count++;
57
+ ScrollSpy._increment++;
58
+ _this.tickId = -1;
59
+ _this.id = ScrollSpy._increment;
60
+ _this._setupEventHandlers();
61
+ _this._handleWindowScroll();
62
+ return _this;
63
+ }
64
+
65
+ _createClass(ScrollSpy, [{
66
+ key: 'destroy',
67
+
68
+
69
+ /**
70
+ * Teardown component
71
+ */
72
+ value: function destroy() {
73
+ ScrollSpy._elements.splice(ScrollSpy._elements.indexOf(this), 1);
74
+ ScrollSpy._elementsInView.splice(ScrollSpy._elementsInView.indexOf(this), 1);
75
+ ScrollSpy._visibleElements.splice(ScrollSpy._visibleElements.indexOf(this.$el), 1);
76
+ ScrollSpy._count--;
77
+ this._removeEventHandlers();
78
+ $(this.options.getActiveElement(this.$el.attr('id'))).removeClass(this.options.activeClass);
79
+ this.el.M_ScrollSpy = undefined;
80
+ }
81
+
82
+ /**
83
+ * Setup Event Handlers
84
+ */
85
+
86
+ }, {
87
+ key: '_setupEventHandlers',
88
+ value: function _setupEventHandlers() {
89
+ var throttledResize = M.throttle(this._handleWindowScroll, 200);
90
+ this._handleThrottledResizeBound = throttledResize.bind(this);
91
+ this._handleWindowScrollBound = this._handleWindowScroll.bind(this);
92
+ if (ScrollSpy._count === 1) {
93
+ window.addEventListener('scroll', this._handleWindowScrollBound);
94
+ window.addEventListener('resize', this._handleThrottledResizeBound);
95
+ document.body.addEventListener('click', this._handleTriggerClick);
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Remove Event Handlers
101
+ */
102
+
103
+ }, {
104
+ key: '_removeEventHandlers',
105
+ value: function _removeEventHandlers() {
106
+ if (ScrollSpy._count === 0) {
107
+ window.removeEventListener('scroll', this._handleWindowScrollBound);
108
+ window.removeEventListener('resize', this._handleThrottledResizeBound);
109
+ document.body.removeEventListener('click', this._handleTriggerClick);
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Handle Trigger Click
115
+ * @param {Event} e
116
+ */
117
+
118
+ }, {
119
+ key: '_handleTriggerClick',
120
+ value: function _handleTriggerClick(e) {
121
+ var $trigger = $(e.target);
122
+ for (var i = ScrollSpy._elements.length - 1; i >= 0; i--) {
123
+ var scrollspy = ScrollSpy._elements[i];
124
+ if ($trigger.is('a[href="#' + scrollspy.$el.attr('id') + '"]')) {
125
+ e.preventDefault();
126
+ var offset = scrollspy.$el.offset().top + 1;
127
+
128
+ anim({
129
+ targets: [document.documentElement, document.body],
130
+ scrollTop: offset - scrollspy.options.scrollOffset,
131
+ duration: 400,
132
+ easing: 'easeOutCubic'
133
+ });
134
+ break;
135
+ }
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Handle Window Scroll
141
+ */
142
+
143
+ }, {
144
+ key: '_handleWindowScroll',
145
+ value: function _handleWindowScroll() {
146
+ // unique tick id
147
+ ScrollSpy._ticks++;
148
+
149
+ // viewport rectangle
150
+ var top = M.getDocumentScrollTop(),
151
+ left = M.getDocumentScrollLeft(),
152
+ right = left + window.innerWidth,
153
+ bottom = top + window.innerHeight;
154
+
155
+ // determine which elements are in view
156
+ var intersections = ScrollSpy._findElements(top, right, bottom, left);
157
+ for (var i = 0; i < intersections.length; i++) {
158
+ var scrollspy = intersections[i];
159
+ var lastTick = scrollspy.tickId;
160
+ if (lastTick < 0) {
161
+ // entered into view
162
+ scrollspy._enter();
163
+ }
164
+
165
+ // update tick id
166
+ scrollspy.tickId = ScrollSpy._ticks;
167
+ }
168
+
169
+ for (var _i = 0; _i < ScrollSpy._elementsInView.length; _i++) {
170
+ var _scrollspy = ScrollSpy._elementsInView[_i];
171
+ var _lastTick = _scrollspy.tickId;
172
+ if (_lastTick >= 0 && _lastTick !== ScrollSpy._ticks) {
173
+ // exited from view
174
+ _scrollspy._exit();
175
+ _scrollspy.tickId = -1;
176
+ }
177
+ }
178
+
179
+ // remember elements in view for next tick
180
+ ScrollSpy._elementsInView = intersections;
181
+ }
182
+
183
+ /**
184
+ * Find elements that are within the boundary
185
+ * @param {number} top
186
+ * @param {number} right
187
+ * @param {number} bottom
188
+ * @param {number} left
189
+ * @return {Array.<ScrollSpy>} A collection of elements
190
+ */
191
+
192
+ }, {
193
+ key: '_enter',
194
+ value: function _enter() {
195
+ ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(function (value) {
196
+ return value.height() != 0;
197
+ });
198
+
199
+ if (ScrollSpy._visibleElements[0]) {
200
+ $(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).removeClass(this.options.activeClass);
201
+ if (ScrollSpy._visibleElements[0][0].M_ScrollSpy && this.id < ScrollSpy._visibleElements[0][0].M_ScrollSpy.id) {
202
+ ScrollSpy._visibleElements.unshift(this.$el);
203
+ } else {
204
+ ScrollSpy._visibleElements.push(this.$el);
205
+ }
206
+ } else {
207
+ ScrollSpy._visibleElements.push(this.$el);
208
+ }
209
+
210
+ $(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).addClass(this.options.activeClass);
211
+ }
212
+ }, {
213
+ key: '_exit',
214
+ value: function _exit() {
215
+ var _this2 = this;
216
+
217
+ ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(function (value) {
218
+ return value.height() != 0;
219
+ });
220
+
221
+ if (ScrollSpy._visibleElements[0]) {
222
+ $(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).removeClass(this.options.activeClass);
223
+
224
+ ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(function (el) {
225
+ return el.attr('id') != _this2.$el.attr('id');
226
+ });
227
+ if (ScrollSpy._visibleElements[0]) {
228
+ // Check if empty
229
+ $(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).addClass(this.options.activeClass);
230
+ }
231
+ }
232
+ }
233
+ }], [{
234
+ key: 'init',
235
+ value: function init(els, options) {
236
+ return _get(ScrollSpy.__proto__ || Object.getPrototypeOf(ScrollSpy), 'init', this).call(this, this, els, options);
237
+ }
238
+
239
+ /**
240
+ * Get Instance
241
+ */
242
+
243
+ }, {
244
+ key: 'getInstance',
245
+ value: function getInstance(el) {
246
+ var domElem = !!el.jquery ? el[0] : el;
247
+ return domElem.M_ScrollSpy;
248
+ }
249
+ }, {
250
+ key: '_findElements',
251
+ value: function _findElements(top, right, bottom, left) {
252
+ var hits = [];
253
+ for (var i = 0; i < ScrollSpy._elements.length; i++) {
254
+ var scrollspy = ScrollSpy._elements[i];
255
+ var currTop = top + scrollspy.options.scrollOffset || 200;
256
+
257
+ if (scrollspy.$el.height() > 0) {
258
+ var elTop = scrollspy.$el.offset().top,
259
+ elLeft = scrollspy.$el.offset().left,
260
+ elRight = elLeft + scrollspy.$el.width(),
261
+ elBottom = elTop + scrollspy.$el.height();
262
+
263
+ var isIntersect = !(elLeft > right || elRight < left || elTop > bottom || elBottom < currTop);
264
+
265
+ if (isIntersect) {
266
+ hits.push(scrollspy);
267
+ }
268
+ }
269
+ }
270
+ return hits;
271
+ }
272
+ }, {
273
+ key: 'defaults',
274
+ get: function () {
275
+ return _defaults;
276
+ }
277
+ }]);
278
+
279
+ return ScrollSpy;
280
+ }(Component);
281
+
282
+ /**
283
+ * @static
284
+ * @memberof ScrollSpy
285
+ * @type {Array.<ScrollSpy>}
286
+ */
287
+
288
+
289
+ ScrollSpy._elements = [];
290
+
291
+ /**
292
+ * @static
293
+ * @memberof ScrollSpy
294
+ * @type {Array.<ScrollSpy>}
295
+ */
296
+ ScrollSpy._elementsInView = [];
297
+
298
+ /**
299
+ * @static
300
+ * @memberof ScrollSpy
301
+ * @type {Array.<cash>}
302
+ */
303
+ ScrollSpy._visibleElements = [];
304
+
305
+ /**
306
+ * @static
307
+ * @memberof ScrollSpy
308
+ */
309
+ ScrollSpy._count = 0;
310
+
311
+ /**
312
+ * @static
313
+ * @memberof ScrollSpy
314
+ */
315
+ ScrollSpy._increment = 0;
316
+
317
+ /**
318
+ * @static
319
+ * @memberof ScrollSpy
320
+ */
321
+ ScrollSpy._ticks = 0;
322
+
323
+ M.ScrollSpy = ScrollSpy;
324
+
325
+ if (M.jQueryLoaded) {
326
+ M.initializeJqueryWrapper(ScrollSpy, 'scrollSpy', 'M_ScrollSpy');
327
+ }
328
+ })(cash, M.anime);