kickstart_rails 3.0.41 → 3.0.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/kickstart_rails/kickstart.js +450 -0
- data/lib/kickstart_rails/version.rb +1 -1
- metadata +2 -16
- data/app/assets/javascripts/kickstart_rails/app.coffee +0 -17
- data/app/assets/javascripts/kickstart_rails/buffer.coffee +0 -32
- data/app/assets/javascripts/kickstart_rails/buttons.coffee +0 -8
- data/app/assets/javascripts/kickstart_rails/debouncer.coffee +0 -14
- data/app/assets/javascripts/kickstart_rails/docs.coffee +0 -179
- data/app/assets/javascripts/kickstart_rails/dropdown.coffee +0 -40
- data/app/assets/javascripts/kickstart_rails/growl.coffee +0 -56
- data/app/assets/javascripts/kickstart_rails/ks.coffee +0 -16
- data/app/assets/javascripts/kickstart_rails/modal.coffee +0 -29
- data/app/assets/javascripts/kickstart_rails/navbar-fixer.coffee +0 -9
- data/app/assets/javascripts/kickstart_rails/navbar.coffee +0 -36
- data/app/assets/javascripts/kickstart_rails/status.coffee +0 -30
- data/app/assets/javascripts/kickstart_rails/tabs.coffee +0 -32
- data/app/assets/javascripts/kickstart_rails/tests.coffee +0 -10
- data/app/assets/javascripts/kickstart_rails/throttler.coffee +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dec7a79c168fab7ca6367949a911b8d98c8ff066
|
4
|
+
data.tar.gz: afa58a07e02fc6b714b1e6ac8bce395534197545
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d26afb65dc8adc9f9fbd3a6245546a538233246844a5095930e853c1dd1db6412633be85cccdcd920e62fb9e77f1f0065f983f3769fde4225a87c1788c370d1e
|
7
|
+
data.tar.gz: 9e579483663e30940ff4cfbda8dd5591bc5cf6e6ab531d249c9a62ecb8f9694fbbcedf51999e7c72af2b92dbf4c1ef0a11b868483ea46195e2ff94f6e57cd408
|
@@ -0,0 +1,450 @@
|
|
1
|
+
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"./lib/coffee/app.coffee":[function(require,module,exports){
|
2
|
+
var Buffer, Buttons, Debounce, Dropdown, Growl, KS, Modal, Navbar, Status, Tabs, Throttler;
|
3
|
+
|
4
|
+
KS = require('./ks');
|
5
|
+
|
6
|
+
Modal = require('./modal');
|
7
|
+
|
8
|
+
Dropdown = require('./dropdown');
|
9
|
+
|
10
|
+
Navbar = require('./navbar');
|
11
|
+
|
12
|
+
Debounce = require('./debouncer');
|
13
|
+
|
14
|
+
Status = require('./status');
|
15
|
+
|
16
|
+
Tabs = require('./tabs');
|
17
|
+
|
18
|
+
Throttler = require('./throttler');
|
19
|
+
|
20
|
+
Buttons = require('./buttons');
|
21
|
+
|
22
|
+
Buffer = require('./buffer');
|
23
|
+
|
24
|
+
Growl = require('./growl');
|
25
|
+
|
26
|
+
k$.ready = function() {
|
27
|
+
k$.button();
|
28
|
+
return k$.dropdown();
|
29
|
+
};
|
30
|
+
|
31
|
+
document.addEventListener('DOMContentLoaded', function() {
|
32
|
+
return k$.ready();
|
33
|
+
});
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
},{"./buffer":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/buffer.coffee","./buttons":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/buttons.coffee","./debouncer":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/debouncer.coffee","./dropdown":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/dropdown.coffee","./growl":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/growl.coffee","./ks":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/ks.coffee","./modal":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/modal.coffee","./navbar":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/navbar.coffee","./status":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/status.coffee","./tabs":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/tabs.coffee","./throttler":"/Users/adamkochanowicz/sites/kickstart/lib/coffee/throttler.coffee"}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/buffer.coffee":[function(require,module,exports){
|
38
|
+
var buffer;
|
39
|
+
|
40
|
+
buffer = function(fn, delay) {
|
41
|
+
var i;
|
42
|
+
k$.bufferArray = k$.bufferArray || new Array();
|
43
|
+
if (!k$.bufferArray.length) {
|
44
|
+
k$.bufferArray = new Array();
|
45
|
+
delay = delay || 500;
|
46
|
+
i = 1;
|
47
|
+
k$.bufferInterval = setInterval(function() {
|
48
|
+
if (k$.bufferArray[i]) {
|
49
|
+
k$.bufferArray[i]();
|
50
|
+
}
|
51
|
+
i++;
|
52
|
+
if (i >= k$.bufferArray.length) {
|
53
|
+
clearInterval(k$.bufferInterval);
|
54
|
+
k$.bufferArray = void 0;
|
55
|
+
return i = 1;
|
56
|
+
}
|
57
|
+
}, delay);
|
58
|
+
}
|
59
|
+
k$.bufferArray.push(fn);
|
60
|
+
if (k$.bufferArray.length === 1) {
|
61
|
+
k$.bufferArray[0]();
|
62
|
+
}
|
63
|
+
return console.info("Function queued (" + k$.bufferArray.length + " in queue)");
|
64
|
+
};
|
65
|
+
|
66
|
+
k$.buffer = buffer;
|
67
|
+
|
68
|
+
module.exports = buffer;
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/buttons.coffee":[function(require,module,exports){
|
73
|
+
var button;
|
74
|
+
|
75
|
+
button = function() {
|
76
|
+
var $button, $buttonDropdown, _i, _j, _len, _len1, _ref, _ref1, _results;
|
77
|
+
_ref = k$.$$("button");
|
78
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
79
|
+
$button = _ref[_i];
|
80
|
+
if ($button.querySelectorAll('ul').length) {
|
81
|
+
$button.classList.add('menu-item');
|
82
|
+
}
|
83
|
+
}
|
84
|
+
_ref1 = k$.$$('.button-dropdown');
|
85
|
+
_results = [];
|
86
|
+
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
87
|
+
$buttonDropdown = _ref1[_j];
|
88
|
+
_results.push($buttonDropdown.parentNode.classList.add('menu-item'));
|
89
|
+
}
|
90
|
+
return _results;
|
91
|
+
};
|
92
|
+
|
93
|
+
k$.button = button;
|
94
|
+
|
95
|
+
module.exports = button;
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/debouncer.coffee":[function(require,module,exports){
|
100
|
+
var debounce;
|
101
|
+
|
102
|
+
debounce = function(fn, id, delay) {
|
103
|
+
var $delay;
|
104
|
+
$delay = delay || 1000;
|
105
|
+
if (k$.debounceQueue === null) {
|
106
|
+
k$.debounceQueue = id;
|
107
|
+
}
|
108
|
+
if (id === k$.debounceQueue) {
|
109
|
+
clearTimeout(k$.debounceTimer);
|
110
|
+
}
|
111
|
+
return k$.debounceTimer = setTimeout(function() {
|
112
|
+
fn();
|
113
|
+
return k$.debounceQueue = null;
|
114
|
+
}, $delay);
|
115
|
+
};
|
116
|
+
|
117
|
+
k$.debounce = debounce;
|
118
|
+
|
119
|
+
module.exports = debounce;
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/dropdown.coffee":[function(require,module,exports){
|
124
|
+
var dropdown;
|
125
|
+
|
126
|
+
dropdown = function() {
|
127
|
+
var $_menuItem, $menuItem, $menuItems, _fn, _i, _len;
|
128
|
+
$menuItems = k$.$$('.menu-item');
|
129
|
+
_fn = function($menuItem) {
|
130
|
+
return $menuItem.addEventListener('click', function(e) {
|
131
|
+
var $openable, _$menuItem, _j, _len1, _ref;
|
132
|
+
if ($menuItem.classList.contains('open')) {
|
133
|
+
$menuItem.classList.remove('open');
|
134
|
+
return;
|
135
|
+
}
|
136
|
+
_ref = document.querySelectorAll('.menu-item');
|
137
|
+
for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
|
138
|
+
_$menuItem = _ref[_j];
|
139
|
+
_$menuItem.classList.remove('open');
|
140
|
+
}
|
141
|
+
$openable = $menuItem.querySelector('ul');
|
142
|
+
if ($openable) {
|
143
|
+
$menuItem.classList.add('open');
|
144
|
+
}
|
145
|
+
return e.stopPropagation();
|
146
|
+
});
|
147
|
+
};
|
148
|
+
for (_i = 0, _len = $menuItems.length; _i < _len; _i++) {
|
149
|
+
$_menuItem = $menuItems[_i];
|
150
|
+
$menuItem = $_menuItem.cloneNode(true);
|
151
|
+
$_menuItem.parentNode.replaceChild($menuItem, $_menuItem);
|
152
|
+
_fn($menuItem);
|
153
|
+
}
|
154
|
+
return document.body.addEventListener('click', function() {
|
155
|
+
var $li, $ul, _j, _k, _len1, _len2, _ref, _ref1, _results;
|
156
|
+
_ref = k$.$$('.menu-item > ul');
|
157
|
+
for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
|
158
|
+
$ul = _ref[_j];
|
159
|
+
$ul.parentNode.classList.remove('open');
|
160
|
+
}
|
161
|
+
_ref1 = k$.$$('.menu-item.open');
|
162
|
+
_results = [];
|
163
|
+
for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {
|
164
|
+
$li = _ref1[_k];
|
165
|
+
_results.push($li.classList.remove('open'));
|
166
|
+
}
|
167
|
+
return _results;
|
168
|
+
});
|
169
|
+
};
|
170
|
+
|
171
|
+
k$.dropdown = dropdown;
|
172
|
+
|
173
|
+
module.exports = dropdown;
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/growl.coffee":[function(require,module,exports){
|
178
|
+
var growl;
|
179
|
+
|
180
|
+
growl = function(params) {
|
181
|
+
return k$.buffer(function() {
|
182
|
+
var className, content, defaults, delay, growlContainer, id;
|
183
|
+
defaults = {
|
184
|
+
title: void 0,
|
185
|
+
text: void 0,
|
186
|
+
delay: 2000,
|
187
|
+
type: 'alert-warn',
|
188
|
+
id: Date.now()
|
189
|
+
};
|
190
|
+
params = k$.extend(defaults, params);
|
191
|
+
if (!k$.$$('.growl_container').length) {
|
192
|
+
growlContainer = document.createElement('div');
|
193
|
+
growlContainer.className = 'growl_container';
|
194
|
+
document.body.appendChild(growlContainer);
|
195
|
+
}
|
196
|
+
growl = document.createElement('div');
|
197
|
+
className = "alert growl show " + params.type + " growl-" + params.id;
|
198
|
+
growl.className = className;
|
199
|
+
content = "";
|
200
|
+
if (params.title) {
|
201
|
+
content += "<h1>" + params.title + "</h1>";
|
202
|
+
}
|
203
|
+
if (params.text) {
|
204
|
+
content += "<p>" + params.text + "</p>";
|
205
|
+
}
|
206
|
+
growl.innerHTML = content;
|
207
|
+
k$.$('.growl_container').appendChild(growl);
|
208
|
+
delay = params.delay;
|
209
|
+
id = params.id;
|
210
|
+
if (delay > 0) {
|
211
|
+
return (function(delay, id) {
|
212
|
+
return setTimeout(function() {
|
213
|
+
var $growl, $newGrowl;
|
214
|
+
$growl = k$.$(".growl-" + id);
|
215
|
+
$growl.classList.remove('show');
|
216
|
+
$newGrowl = $growl.cloneNode(true);
|
217
|
+
$growl.parentNode.replaceChild($newGrowl, $growl);
|
218
|
+
$newGrowl.classList.add('hide');
|
219
|
+
return (function(delay, id) {
|
220
|
+
return setTimeout(function() {
|
221
|
+
if (!k$.$$('.growl.show').length) {
|
222
|
+
return k$.$('.growl_container').parentNode.removeChild(k$.$('.growl_container'));
|
223
|
+
}
|
224
|
+
}, 500);
|
225
|
+
})(delay, id);
|
226
|
+
}, delay);
|
227
|
+
})(delay, id);
|
228
|
+
}
|
229
|
+
});
|
230
|
+
};
|
231
|
+
|
232
|
+
k$.growl = growl;
|
233
|
+
|
234
|
+
module.exports = growl;
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/ks.coffee":[function(require,module,exports){
|
239
|
+
(function (global){
|
240
|
+
global.k$ = new Object();
|
241
|
+
|
242
|
+
k$.$$ = function(el) {
|
243
|
+
return document.querySelectorAll(el);
|
244
|
+
};
|
245
|
+
|
246
|
+
k$.$ = function(el) {
|
247
|
+
return k$.$$(el)[0];
|
248
|
+
};
|
249
|
+
|
250
|
+
k$.debounceTimer = false;
|
251
|
+
|
252
|
+
k$.debounceQueue = null;
|
253
|
+
|
254
|
+
k$.extend = function(destination, source) {
|
255
|
+
var property;
|
256
|
+
for (property in source) {
|
257
|
+
if (source[property] && source[property].constructor && source[property].constructor === Object) {
|
258
|
+
destination[property] = destination[property] || {};
|
259
|
+
arguments.callee(destination[property], source[property]);
|
260
|
+
} else {
|
261
|
+
destination[property] = source[property];
|
262
|
+
}
|
263
|
+
}
|
264
|
+
return destination;
|
265
|
+
};
|
266
|
+
|
267
|
+
module.exports = k$;
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
272
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/modal.coffee":[function(require,module,exports){
|
273
|
+
var modal;
|
274
|
+
|
275
|
+
modal = function(el) {
|
276
|
+
var iOS = /(iPad|iPhone|iPod)/g.test( navigator.userAgent );
|
277
|
+
if (iOS) {
|
278
|
+
document.body.classList.add('dismiss-modal');
|
279
|
+
}
|
280
|
+
(function(el) {
|
281
|
+
var $closer, $hideModal;
|
282
|
+
$hideModal = function() {
|
283
|
+
return k$.$(el).style.display = 'none';
|
284
|
+
};
|
285
|
+
document.body.addEventListener('click', function() {
|
286
|
+
return $hideModal();
|
287
|
+
});
|
288
|
+
k$.$(el).addEventListener('click', function(e) {
|
289
|
+
return e.stopPropagation();
|
290
|
+
});
|
291
|
+
$closer = k$.$(el).querySelector('a[data-modal-close]');
|
292
|
+
if ($closer) {
|
293
|
+
return $closer.addEventListener('click', function() {
|
294
|
+
return $hideModal();
|
295
|
+
});
|
296
|
+
}
|
297
|
+
})(el);
|
298
|
+
return k$.$(el);
|
299
|
+
};
|
300
|
+
|
301
|
+
k$.modal = modal;
|
302
|
+
|
303
|
+
module.exports = modal;
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/navbar.coffee":[function(require,module,exports){
|
308
|
+
var nav;
|
309
|
+
|
310
|
+
nav = function(el) {
|
311
|
+
var $button, $menuItem, $menuItems, e, _$menuItems, _i, _j, _len, _len1;
|
312
|
+
try {
|
313
|
+
$menuItems = k$.$(el).querySelectorAll('ul > li');
|
314
|
+
_$menuItems = new Array();
|
315
|
+
for (_i = 0, _len = $menuItems.length; _i < _len; _i++) {
|
316
|
+
$menuItem = $menuItems[_i];
|
317
|
+
if ($menuItem.querySelectorAll('ul').length && !$menuItem.querySelectorAll('[role="button"]').length) {
|
318
|
+
_$menuItems.push($menuItem);
|
319
|
+
}
|
320
|
+
}
|
321
|
+
$menuItems = _$menuItems;
|
322
|
+
for (_j = 0, _len1 = $menuItems.length; _j < _len1; _j++) {
|
323
|
+
$menuItem = $menuItems[_j];
|
324
|
+
$menuItem.classList.add('menu-item');
|
325
|
+
}
|
326
|
+
k$.dropdown();
|
327
|
+
} catch (_error) {
|
328
|
+
e = _error;
|
329
|
+
console.error("Could not instantiate as a nav.", e.message);
|
330
|
+
}
|
331
|
+
$button = k$.$(el).querySelector('.navbar-title button');
|
332
|
+
if ($button) {
|
333
|
+
return $button.addEventListener('click', function() {
|
334
|
+
var $nav;
|
335
|
+
$nav = k$.$(el).querySelector('nav');
|
336
|
+
if ($nav.classList.contains('expand')) {
|
337
|
+
return $nav.classList.remove('expand');
|
338
|
+
} else {
|
339
|
+
return $nav.classList.add('expand');
|
340
|
+
}
|
341
|
+
});
|
342
|
+
}
|
343
|
+
};
|
344
|
+
|
345
|
+
k$.nav = nav;
|
346
|
+
|
347
|
+
module.exports = nav;
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/status.coffee":[function(require,module,exports){
|
352
|
+
var status;
|
353
|
+
|
354
|
+
status = function(opts) {
|
355
|
+
var $status, $statusBar, defaults, hideStatusBar;
|
356
|
+
defaults = {
|
357
|
+
type: 'status-yellow',
|
358
|
+
delay: 2000
|
359
|
+
};
|
360
|
+
status = k$.extend(defaults, opts);
|
361
|
+
if (!k$.$$('#status_bar').length) {
|
362
|
+
$statusBar = document.createElement('div');
|
363
|
+
$statusBar.id = 'status_bar';
|
364
|
+
$statusBar.className = 'status_bar';
|
365
|
+
$statusBar.innerHTML = "<div class='status_bar-status' id='status_bar-status'></div>";
|
366
|
+
document.body.appendChild($statusBar);
|
367
|
+
}
|
368
|
+
$statusBar = k$.$('#status_bar');
|
369
|
+
hideStatusBar = function() {
|
370
|
+
return $statusBar.parentNode.removeChild($statusBar);
|
371
|
+
};
|
372
|
+
if (status.delay > 0) {
|
373
|
+
k$.debounce(hideStatusBar, 'hideStatusBar', status.delay);
|
374
|
+
}
|
375
|
+
$status = k$.$("#status_bar-status");
|
376
|
+
$status.innerHTML = status.text;
|
377
|
+
return $status.dataset.type = status.type;
|
378
|
+
};
|
379
|
+
|
380
|
+
k$.status = status;
|
381
|
+
|
382
|
+
module.exports = status;
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/tabs.coffee":[function(require,module,exports){
|
387
|
+
var tabs;
|
388
|
+
|
389
|
+
tabs = function(el) {
|
390
|
+
var $_tab, $id, $pane, $paneSet, $tab, $tabLink, $tabSet, _i, _j, _k, _len, _len1, _len2, _results;
|
391
|
+
$tabSet = k$.$(el).querySelectorAll('li');
|
392
|
+
for (_i = 0, _len = $tabSet.length; _i < _len; _i++) {
|
393
|
+
$tab = $tabSet[_i];
|
394
|
+
$tab.classList.add('tab-item');
|
395
|
+
}
|
396
|
+
$paneSet = new Array();
|
397
|
+
for (_j = 0, _len1 = $tabSet.length; _j < _len1; _j++) {
|
398
|
+
$_tab = $tabSet[_j];
|
399
|
+
$id = $_tab.querySelector('a').getAttribute('href');
|
400
|
+
$pane = k$.$("article" + $id);
|
401
|
+
if ($_tab.classList.contains('open')) {
|
402
|
+
$pane.classList.add('open');
|
403
|
+
}
|
404
|
+
$paneSet.push($pane);
|
405
|
+
$pane.dataset.panel = 'true';
|
406
|
+
}
|
407
|
+
_results = [];
|
408
|
+
for (_k = 0, _len2 = $tabSet.length; _k < _len2; _k++) {
|
409
|
+
$tab = $tabSet[_k];
|
410
|
+
$tabLink = $tab.querySelector('a');
|
411
|
+
$tabLink.dataset.link = $tabLink.getAttribute('href');
|
412
|
+
$tabLink.href = 'javascript:void(0);';
|
413
|
+
_results.push((function($tab, $tabLink, $paneSet) {
|
414
|
+
return $tab.addEventListener('click', function() {
|
415
|
+
var _$tab, _l, _len3, _len4, _m;
|
416
|
+
for (_l = 0, _len3 = $paneSet.length; _l < _len3; _l++) {
|
417
|
+
$pane = $paneSet[_l];
|
418
|
+
$pane.classList.remove('open');
|
419
|
+
}
|
420
|
+
for (_m = 0, _len4 = $tabSet.length; _m < _len4; _m++) {
|
421
|
+
_$tab = $tabSet[_m];
|
422
|
+
_$tab.classList.remove('open');
|
423
|
+
}
|
424
|
+
k$.$("article" + $tabLink.dataset.link).classList.add('open');
|
425
|
+
return $tab.classList.add('open');
|
426
|
+
});
|
427
|
+
})($tab, $tabLink, $paneSet));
|
428
|
+
}
|
429
|
+
return _results;
|
430
|
+
};
|
431
|
+
|
432
|
+
k$.tabs = tabs;
|
433
|
+
|
434
|
+
module.exports = tabs;
|
435
|
+
|
436
|
+
|
437
|
+
|
438
|
+
},{}],"/Users/adamkochanowicz/sites/kickstart/lib/coffee/throttler.coffee":[function(require,module,exports){
|
439
|
+
var throttle;
|
440
|
+
|
441
|
+
throttle = function(fn, id, delay) {};
|
442
|
+
|
443
|
+
k$.throttle = throttle;
|
444
|
+
|
445
|
+
module.exports = throttle;
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
},{}]},{},["./lib/coffee/app.coffee"])
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hZGFta29jaGFub3dpY3ovc2l0ZXMva2lja3N0YXJ0L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvYWRhbWtvY2hhbm93aWN6L3NpdGVzL2tpY2tzdGFydC9saWIvY29mZmVlL2FwcC5jb2ZmZWUiLCIvVXNlcnMvYWRhbWtvY2hhbm93aWN6L3NpdGVzL2tpY2tzdGFydC9saWIvY29mZmVlL2J1ZmZlci5jb2ZmZWUiLCIvVXNlcnMvYWRhbWtvY2hhbm93aWN6L3NpdGVzL2tpY2tzdGFydC9saWIvY29mZmVlL2J1dHRvbnMuY29mZmVlIiwiL1VzZXJzL2FkYW1rb2NoYW5vd2ljei9zaXRlcy9raWNrc3RhcnQvbGliL2NvZmZlZS9kZWJvdW5jZXIuY29mZmVlIiwiL1VzZXJzL2FkYW1rb2NoYW5vd2ljei9zaXRlcy9raWNrc3RhcnQvbGliL2NvZmZlZS9kcm9wZG93bi5jb2ZmZWUiLCIvVXNlcnMvYWRhbWtvY2hhbm93aWN6L3NpdGVzL2tpY2tzdGFydC9saWIvY29mZmVlL2dyb3dsLmNvZmZlZSIsIi9Vc2Vycy9hZGFta29jaGFub3dpY3ovc2l0ZXMva2lja3N0YXJ0L2xpYi9jb2ZmZWUva3MuY29mZmVlIiwiL1VzZXJzL2FkYW1rb2NoYW5vd2ljei9zaXRlcy9raWNrc3RhcnQvbGliL2NvZmZlZS9tb2RhbC5jb2ZmZWUiLCIvVXNlcnMvYWRhbWtvY2hhbm93aWN6L3NpdGVzL2tpY2tzdGFydC9saWIvY29mZmVlL25hdmJhci5jb2ZmZWUiLCIvVXNlcnMvYWRhbWtvY2hhbm93aWN6L3NpdGVzL2tpY2tzdGFydC9saWIvY29mZmVlL3N0YXR1cy5jb2ZmZWUiLCIvVXNlcnMvYWRhbWtvY2hhbm93aWN6L3NpdGVzL2tpY2tzdGFydC9saWIvY29mZmVlL3RhYnMuY29mZmVlIiwiL1VzZXJzL2FkYW1rb2NoYW5vd2ljei9zaXRlcy9raWNrc3RhcnQvbGliL2NvZmZlZS90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QSxDQUFYLENBQUE7O0FBQUEsRUFJRSxDQUFDLFFBQUgsR0FBYyxRQUpkLENBQUE7O0FBQUEsTUFNTSxDQUFDLE9BQVAsR0FBaUIsUUFOakIsQ0FBQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJLUyAgICAgICAgPSByZXF1aXJlICcuL2tzJ1xuTW9kYWwgICAgID0gcmVxdWlyZSAnLi9tb2RhbCdcbkRyb3Bkb3duICA9IHJlcXVpcmUgJy4vZHJvcGRvd24nXG5OYXZiYXIgICAgPSByZXF1aXJlICcuL25hdmJhcidcbkRlYm91bmNlICA9IHJlcXVpcmUgJy4vZGVib3VuY2VyJ1xuU3RhdHVzICAgID0gcmVxdWlyZSAnLi9zdGF0dXMnXG5UYWJzICAgICAgPSByZXF1aXJlICcuL3RhYnMnXG5UaHJvdHRsZXIgPSByZXF1aXJlICcuL3Rocm90dGxlcidcbkJ1dHRvbnMgICA9IHJlcXVpcmUgJy4vYnV0dG9ucydcbkJ1ZmZlciAgICA9IHJlcXVpcmUgJy4vYnVmZmVyJ1xuR3Jvd2wgICAgID0gcmVxdWlyZSAnLi9ncm93bCdcblxuayQucmVhZHkgPSAtPlxuICBrJC5idXR0b24oKVxuICBrJC5kcm9wZG93bigpXG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgJ0RPTUNvbnRlbnRMb2FkZWQnLCAtPiBrJC5yZWFkeSgpXG4iLCJidWZmZXIgPSAoZm4sIGRlbGF5KSAtPlxuXG4gICMgQ3JlYXRlIGEgbmV3IGJ1ZmZlckFycmF5IGlmIG9uZSBkb2VzIG5vdCBleGlzdCBhbHJlYWR5LlxuICBrJC5idWZmZXJBcnJheSA9IGskLmJ1ZmZlckFycmF5IHx8IG5ldyBBcnJheSgpXG4gIGlmIG5vdCBrJC5idWZmZXJBcnJheS5sZW5ndGhcbiAgICBrJC5idWZmZXJBcnJheSA9IG5ldyBBcnJheSgpXG5cbiAgICBkZWxheSA9IGRlbGF5IHx8IDUwMFxuXG4gICAgIyBDcmVhdGUgYW4gaW50ZXJ2YWwgdG8gZmlyZSB0aGUgZm5zIGluIGJ1ZmZlckFycmF5XG4gICAgaSA9IDFcblxuICAgIGskLmJ1ZmZlckludGVydmFsID0gc2V0SW50ZXJ2YWwgLT5cbiAgICAgIGskLmJ1ZmZlckFycmF5W2ldKCkgaWYgayQuYnVmZmVyQXJyYXlbaV1cbiAgICAgIGkrK1xuICAgICAgaWYgaSA+PSBrJC5idWZmZXJBcnJheS5sZW5ndGhcbiAgICAgICAgY2xlYXJJbnRlcnZhbCBrJC5idWZmZXJJbnRlcnZhbFxuICAgICAgICBrJC5idWZmZXJBcnJheSA9IHVuZGVmaW5lZFxuICAgICAgICBpID0gMVxuICAgICwgZGVsYXlcblxuICAjIEFkZCB0aGlzIGZ1bmN0aW9uIHRvIHRoZSBhcnJheS5cbiAgayQuYnVmZmVyQXJyYXkucHVzaCBmblxuXG4gICMgRmlyZSByaWdodCBhd2F5IGlmIGl0J3MgdGhlIGZpcnN0IGluIGxpbmUuXG4gIGskLmJ1ZmZlckFycmF5WzBdKCkgaWYgayQuYnVmZmVyQXJyYXkubGVuZ3RoID09IDFcblxuICBjb25zb2xlLmluZm8gXCJGdW5jdGlvbiBxdWV1ZWQgKCN7ayQuYnVmZmVyQXJyYXkubGVuZ3RofSBpbiBxdWV1ZSlcIlxuXG5rJC5idWZmZXIgPSBidWZmZXJcblxubW9kdWxlLmV4cG9ydHMgPSBidWZmZXJcbiIsImJ1dHRvbiA9IC0+XG5cbiAgKCRidXR0b24uY2xhc3NMaXN0LmFkZCAnbWVudS1pdGVtJyBpZiAkYnV0dG9uLnF1ZXJ5U2VsZWN0b3JBbGwoJ3VsJykubGVuZ3RoKSBmb3IgJGJ1dHRvbiBpbiBrJC4kJChcImJ1dHRvblwiKVxuICAkYnV0dG9uRHJvcGRvd24ucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkICdtZW51LWl0ZW0nIGZvciAkYnV0dG9uRHJvcGRvd24gaW4gayQuJCQgJy5idXR0b24tZHJvcGRvd24nXG5cbmskLmJ1dHRvbiA9IGJ1dHRvblxuXG5tb2R1bGUuZXhwb3J0cyA9IGJ1dHRvblxuIiwiZGVib3VuY2UgPSAoZm4sIGlkLCBkZWxheSkgLT5cblxuICAkZGVsYXkgPSBkZWxheSB8fCAxMDAwXG5cbiAgayQuZGVib3VuY2VRdWV1ZSA9IGlkIGlmIGskLmRlYm91bmNlUXVldWUgPT0gbnVsbFxuICBjbGVhclRpbWVvdXQgayQuZGVib3VuY2VUaW1lciBpZiBpZCA9PSBrJC5kZWJvdW5jZVF1ZXVlXG4gIGskLmRlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0IC0+XG4gICAgZm4oKVxuICAgIGskLmRlYm91bmNlUXVldWUgPSBudWxsXG4gICwgJGRlbGF5XG5cbmskLmRlYm91bmNlID0gZGVib3VuY2VcblxubW9kdWxlLmV4cG9ydHMgPSBkZWJvdW5jZVxuIiwiZHJvcGRvd24gPSAoKSAtPlxuXG4gICMgVGhlIGZvbGxvd2luZyBzaG91bGQgYXBwbHkgdG8gc2V2ZXJhbCBlbGVtZW50cy5cblxuICAkbWVudUl0ZW1zID0gayQuJCQgJy5tZW51LWl0ZW0nXG5cbiAgZm9yICRfbWVudUl0ZW0gaW4gJG1lbnVJdGVtc1xuXG4gICAgJG1lbnVJdGVtID0gJF9tZW51SXRlbS5jbG9uZU5vZGUgdHJ1ZVxuICAgICRfbWVudUl0ZW0ucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQgJG1lbnVJdGVtLCAkX21lbnVJdGVtXG5cbiAgICBkbyAoJG1lbnVJdGVtKSAtPlxuICAgICAgIyBUT0RPOiBJcyB0aGVyZSBhIHdheSB3ZSBjb3VsZCBub3QgaGF2ZSBhbiBldmVudCBsaXN0ZW5lciBmb3IgZXZlcnlcbiAgICAgICMgc2luZ2xlIG9uZT9cbiAgICAgICRtZW51SXRlbS5hZGRFdmVudExpc3RlbmVyICdjbGljaycsIChlKSAtPlxuXG4gICAgICAgICMgSnVzdCBjbG9zZSBpdCBpZiBpdCdzIGFscmVhZHkgb3BlblxuICAgICAgICBpZiAkbWVudUl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zICdvcGVuJ1xuICAgICAgICAgICRtZW51SXRlbS5jbGFzc0xpc3QucmVtb3ZlICdvcGVuJ1xuICAgICAgICAgIHJldHVyblxuXG4gICAgICAgICMgUmVzZXQgYWxsXG4gICAgICAgIF8kbWVudUl0ZW0uY2xhc3NMaXN0LnJlbW92ZSAnb3BlbicgZm9yIF8kbWVudUl0ZW0gaW4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1lbnUtaXRlbScpXG4gICAgICAgICRvcGVuYWJsZSA9ICRtZW51SXRlbS5xdWVyeVNlbGVjdG9yICd1bCdcblxuICAgICAgICAjIE9wZW4gdGhpcyBvbmVcbiAgICAgICAgaWYgJG9wZW5hYmxlXG4gICAgICAgICAgJG1lbnVJdGVtLmNsYXNzTGlzdC5hZGQgJ29wZW4nXG5cbiAgICAgICAgIyBQcmV2ZW50IGJ1YmJsaW5nXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcblxuICAjIERpc21pc3MgYWxsXG4gIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lciAnY2xpY2snLCAtPlxuICAgICR1bC5wYXJlbnROb2RlLmNsYXNzTGlzdC5yZW1vdmUgJ29wZW4nIGZvciAkdWwgaW4gayQuJCQoJy5tZW51LWl0ZW0gPiB1bCcpXG4gICAgJGxpLmNsYXNzTGlzdC5yZW1vdmUgJ29wZW4nIGZvciAkbGkgaW4gayQuJCQoJy5tZW51LWl0ZW0ub3BlbicpXG5cbmskLmRyb3Bkb3duID0gZHJvcGRvd25cblxubW9kdWxlLmV4cG9ydHMgPSBkcm9wZG93blxuIiwiZ3Jvd2wgPSAocGFyYW1zKSAtPlxuXG4gIGskLmJ1ZmZlciAtPlxuICAgIGRlZmF1bHRzID1cbiAgICAgIHRpdGxlOiB1bmRlZmluZWRcbiAgICAgIHRleHQ6IHVuZGVmaW5lZFxuICAgICAgZGVsYXk6IDIwMDBcbiAgICAgIHR5cGU6ICdhbGVydC13YXJuJ1xuICAgICAgaWQ6IERhdGUubm93KClcblxuICAgIHBhcmFtcyA9IGskLmV4dGVuZCBkZWZhdWx0cywgcGFyYW1zXG5cbiAgICAjIENyZWF0ZSBncm93bCBjb250YWluZXJcbiAgICBpZiBub3QgayQuJCQoJy5ncm93bF9jb250YWluZXInKS5sZW5ndGhcbiAgICAgIGdyb3dsQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCAnZGl2J1xuICAgICAgZ3Jvd2xDb250YWluZXIuY2xhc3NOYW1lID0gJ2dyb3dsX2NvbnRhaW5lcidcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQgZ3Jvd2xDb250YWluZXJcblxuICAgICMgQ3JlYXRlIGdyb3dsXG4gICAgZ3Jvd2wgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50ICdkaXYnXG5cbiAgICAjIEFkZCBhcHByb3ByaWF0ZSBjbGFzc2VzXG4gICAgY2xhc3NOYW1lID0gXCJhbGVydCBncm93bCBzaG93ICN7cGFyYW1zLnR5cGV9IGdyb3dsLSN7cGFyYW1zLmlkfVwiXG4gICAgZ3Jvd2wuY2xhc3NOYW1lID0gY2xhc3NOYW1lXG5cbiAgICAjIEFkZCBjb250ZW50XG4gICAgY29udGVudCA9IFwiXCJcbiAgICBjb250ZW50ICs9IFwiPGgxPiN7cGFyYW1zLnRpdGxlfTwvaDE+XCIgaWYgcGFyYW1zLnRpdGxlXG4gICAgY29udGVudCArPSBcIjxwPiN7cGFyYW1zLnRleHR9PC9wPlwiIGlmIHBhcmFtcy50ZXh0XG4gICAgZ3Jvd2wuaW5uZXJIVE1MID0gY29udGVudFxuXG4gICAgIyBBcHBlbmQgY2hpbGQgdG8gY29udGFpbmVyXG4gICAgayQuJCgnLmdyb3dsX2NvbnRhaW5lcicpLmFwcGVuZENoaWxkIGdyb3dsXG5cbiAgICBkZWxheSA9IHBhcmFtcy5kZWxheVxuICAgIGlkID0gcGFyYW1zLmlkXG5cbiAgICBpZiBkZWxheSA+IDBcbiAgICAgIGRvIChkZWxheSwgaWQpIC0+XG4gICAgICAgIHNldFRpbWVvdXQgLT5cbiAgICAgICAgICAkZ3Jvd2wgPSBrJC4kKFwiLmdyb3dsLSN7aWR9XCIpXG4gICAgICAgICAgJGdyb3dsLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKVxuICAgICAgICAgICRuZXdHcm93bCA9ICRncm93bC5jbG9uZU5vZGUgdHJ1ZVxuICAgICAgICAgICRncm93bC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCAkbmV3R3Jvd2wsICRncm93bFxuICAgICAgICAgICRuZXdHcm93bC5jbGFzc0xpc3QuYWRkKCdoaWRlJylcblxuICAgICAgICAgIGRvIChkZWxheSwgaWQpIC0+XG4gICAgICAgICAgICBzZXRUaW1lb3V0IC0+XG4gICAgICAgICAgICAgICMgUmVtb3ZlIGdob3N0IGdyb3dsc1xuICAgICAgICAgICAgICBrJC4kKCcuZ3Jvd2xfY29udGFpbmVyJykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCBrJC4kKCcuZ3Jvd2xfY29udGFpbmVyJykgaWYgbm90IGskLiQkKCcuZ3Jvd2wuc2hvdycpLmxlbmd0aFxuICAgICAgICAgICAgLCA1MDBcbiAgICAgICAgLCBkZWxheVxuXG5rJC5ncm93bCA9IGdyb3dsXG5cbm1vZHVsZS5leHBvcnRzID0gZ3Jvd2xcbiIsImdsb2JhbC5rJCA9IG5ldyBPYmplY3QoKVxuXG5rJC4kJCA9IChlbCkgLT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCBlbFxuayQuJCA9IChlbCkgLT4gayQuJCQoZWwpWzBdXG5rJC5kZWJvdW5jZVRpbWVyID0gZmFsc2VcbmskLmRlYm91bmNlUXVldWUgPSBudWxsXG5rJC5leHRlbmQgPSAoZGVzdGluYXRpb24sIHNvdXJjZSkgLT5cbiAgZm9yIHByb3BlcnR5IG9mIHNvdXJjZVxuICAgIGlmIHNvdXJjZVtwcm9wZXJ0eV0gYW5kIHNvdXJjZVtwcm9wZXJ0eV0uY29uc3RydWN0b3IgYW5kIHNvdXJjZVtwcm9wZXJ0eV0uY29uc3RydWN0b3IgaXMgT2JqZWN0XG4gICAgICBkZXN0aW5hdGlvbltwcm9wZXJ0eV0gPSBkZXN0aW5hdGlvbltwcm9wZXJ0eV0gb3Ige31cbiAgICAgIGFyZ3VtZW50cy5jYWxsZWUgZGVzdGluYXRpb25bcHJvcGVydHldLCBzb3VyY2VbcHJvcGVydHldXG4gICAgZWxzZVxuICAgICAgZGVzdGluYXRpb25bcHJvcGVydHldID0gc291cmNlW3Byb3BlcnR5XVxuICBkZXN0aW5hdGlvblxuXG5tb2R1bGUuZXhwb3J0cyA9IGskXG4iLCJtb2RhbCA9IChlbCkgLT5cblxuICBgdmFyIGlPUyA9IC8oaVBhZHxpUGhvbmV8aVBvZCkvZy50ZXN0KCBuYXZpZ2F0b3IudXNlckFnZW50IClgXG4gIFxuICAjIEN1cnNvciBwb2ludGVyIGhhY2sgaWYgaU9TXG4gIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCAnZGlzbWlzcy1tb2RhbCcgaWYgaU9TXG5cbiAgZG8gKGVsKSAtPlxuXG4gICAgJGhpZGVNb2RhbCA9IC0+XG4gICAgICBrJC4kKGVsKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnXG5cbiAgICAjIEFsbG93IG1vZGFsIHRvIGRpc21pc3Mgd2hlbiBjbGlja2VkIG91dHNpZGVcbiAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIgJ2NsaWNrJywgLT5cbiAgICAgICRoaWRlTW9kYWwoKVxuXG4gICAgayQuJChlbCkuYWRkRXZlbnRMaXN0ZW5lciAnY2xpY2snLCAoZSkgLT5cbiAgICAgIHJldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAkY2xvc2VyID0gayQuJChlbCkucXVlcnlTZWxlY3RvcignYVtkYXRhLW1vZGFsLWNsb3NlXScpXG4gICAgaWYgJGNsb3NlclxuICAgICAgJGNsb3Nlci5hZGRFdmVudExpc3RlbmVyICdjbGljaycsIC0+XG4gICAgICAgICRoaWRlTW9kYWwoKVxuXG4gIGskLiQgZWxcblxuayQubW9kYWwgPSBtb2RhbFxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vZGFsXG4iLCJuYXYgPSAoZWwpIC0+XG5cbiAgdHJ5XG4gICAgIyBXaXJlIHVwIG1lbnUgaXRlbXNcbiAgICAkbWVudUl0ZW1zID0gayQuJChlbCkucXVlcnlTZWxlY3RvckFsbCgndWwgPiBsaScpXG5cbiAgICAjIFBydW5lIGl0ZW1zIHRoYXQgZG9uJ3QgY29udGFpbiB1bHNcbiAgICBfJG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpXG4gICAgZm9yICRtZW51SXRlbSBpbiAkbWVudUl0ZW1zXG4gICAgICBpZiAkbWVudUl0ZW0ucXVlcnlTZWxlY3RvckFsbCgndWwnKS5sZW5ndGggYW5kICEkbWVudUl0ZW0ucXVlcnlTZWxlY3RvckFsbCgnW3JvbGU9XCJidXR0b25cIl0nKS5sZW5ndGhcbiAgICAgICAgXyRtZW51SXRlbXMucHVzaCAkbWVudUl0ZW1cblxuICAgICRtZW51SXRlbXMgPSBfJG1lbnVJdGVtc1xuICAgIGZvciAkbWVudUl0ZW0gaW4gJG1lbnVJdGVtc1xuXG4gICAgICAjIEZvciBzdHlsaW5nXG4gICAgICAkbWVudUl0ZW0uY2xhc3NMaXN0LmFkZCAnbWVudS1pdGVtJ1xuXG4gICAgIyBXaXJlIHVwIHRoZSBtZW51XG4gICAgayQuZHJvcGRvd24oKVxuXG4gIGNhdGNoIGVcbiAgICBjb25zb2xlLmVycm9yIFwiQ291bGQgbm90IGluc3RhbnRpYXRlIGFzIGEgbmF2LlwiLCBlLm1lc3NhZ2VcblxuICAkYnV0dG9uID0gayQuJChlbCkucXVlcnlTZWxlY3RvcignLm5hdmJhci10aXRsZSBidXR0b24nKVxuICBpZiAkYnV0dG9uXG4gICAgJGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyICdjbGljaycsIC0+XG4gICAgICAkbmF2ID0gayQuJChlbCkucXVlcnlTZWxlY3RvcignbmF2JylcbiAgICAgIGlmICRuYXYuY2xhc3NMaXN0LmNvbnRhaW5zICdleHBhbmQnXG4gICAgICAgICRuYXYuY2xhc3NMaXN0LnJlbW92ZSAnZXhwYW5kJ1xuICAgICAgZWxzZVxuICAgICAgICAkbmF2LmNsYXNzTGlzdC5hZGQgJ2V4cGFuZCdcblxuayQubmF2ID0gbmF2XG5cbm1vZHVsZS5leHBvcnRzID0gbmF2XG4iLCJzdGF0dXMgPSAob3B0cykgLT5cblxuICBkZWZhdWx0cyA9XG4gICAgdHlwZTogJ3N0YXR1cy15ZWxsb3cnXG4gICAgZGVsYXk6IDIwMDBcblxuICBzdGF0dXMgPSBrJC5leHRlbmQgZGVmYXVsdHMsIG9wdHNcblxuICBpZiBub3QgayQuJCQoJyNzdGF0dXNfYmFyJykubGVuZ3RoXG4gICAgJHN0YXR1c0JhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgJHN0YXR1c0Jhci5pZCA9ICdzdGF0dXNfYmFyJ1xuICAgICRzdGF0dXNCYXIuY2xhc3NOYW1lID0gJ3N0YXR1c19iYXInXG4gICAgJHN0YXR1c0Jhci5pbm5lckhUTUwgPSBcIjxkaXYgY2xhc3M9J3N0YXR1c19iYXItc3RhdHVzJyBpZD0nc3RhdHVzX2Jhci1zdGF0dXMnPjwvZGl2PlwiXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgkc3RhdHVzQmFyKVxuXG4gICRzdGF0dXNCYXIgPSBrJC4kKCcjc3RhdHVzX2JhcicpXG5cbiAgaGlkZVN0YXR1c0JhciA9IC0+XG4gICAgJHN0YXR1c0Jhci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkICRzdGF0dXNCYXJcblxuICBpZiBzdGF0dXMuZGVsYXkgPiAwXG4gICAgayQuZGVib3VuY2UgaGlkZVN0YXR1c0JhciwgJ2hpZGVTdGF0dXNCYXInLCBzdGF0dXMuZGVsYXlcblxuICAkc3RhdHVzID0gayQuJChcIiNzdGF0dXNfYmFyLXN0YXR1c1wiKVxuICAkc3RhdHVzLmlubmVySFRNTCA9IHN0YXR1cy50ZXh0XG4gICRzdGF0dXMuZGF0YXNldC50eXBlID0gc3RhdHVzLnR5cGVcblxuayQuc3RhdHVzID0gc3RhdHVzXG5cbm1vZHVsZS5leHBvcnRzID0gc3RhdHVzXG4iLCJ0YWJzID0gKGVsKSAtPlxuICAkdGFiU2V0ID0gayQuJChlbCkucXVlcnlTZWxlY3RvckFsbCgnbGknKVxuICAkdGFiLmNsYXNzTGlzdC5hZGQoJ3RhYi1pdGVtJykgZm9yICR0YWIgaW4gJHRhYlNldFxuXG4gICRwYW5lU2V0ID0gbmV3IEFycmF5KClcbiAgZm9yICRfdGFiIGluICR0YWJTZXRcbiAgICAkaWQgPSAkX3RhYi5xdWVyeVNlbGVjdG9yKCdhJykuZ2V0QXR0cmlidXRlKCdocmVmJylcbiAgICAkcGFuZSA9IGskLiQoXCJhcnRpY2xlI3skaWR9XCIpXG4gICAgJHBhbmUuY2xhc3NMaXN0LmFkZCAnb3BlbicgaWYgJF90YWIuY2xhc3NMaXN0LmNvbnRhaW5zICdvcGVuJ1xuICAgICRwYW5lU2V0LnB1c2goJHBhbmUpXG4gICAgJHBhbmUuZGF0YXNldC5wYW5lbCA9ICd0cnVlJ1xuXG4gIGZvciAkdGFiIGluICR0YWJTZXRcbiAgICAjIENyZWF0ZSBhbiBhcnJheSBvZiBwYW5lbHMgYnkgcmVhZGluZyB0aGUgbGlua3MgZnJvbSBlYWNoIHRhYi5cbiAgICAkdGFiTGluayA9ICR0YWIucXVlcnlTZWxlY3RvcignYScpXG4gICAgJHRhYkxpbmsuZGF0YXNldC5saW5rID0gJHRhYkxpbmsuZ2V0QXR0cmlidXRlICdocmVmJ1xuICAgICR0YWJMaW5rLmhyZWYgPSAnamF2YXNjcmlwdDp2b2lkKDApOydcblxuICAgIGRvICgkdGFiLCAkdGFiTGluaywgJHBhbmVTZXQpIC0+XG4gICAgICAkdGFiLmFkZEV2ZW50TGlzdGVuZXIgJ2NsaWNrJywgLT5cblxuICAgICAgICAjIFJlc2V0IHRhYnMgYW5kIHBhbmVzIG9ubHkgaW4gdGhpcyB0YWJzZXRcbiAgICAgICAgJHBhbmUuY2xhc3NMaXN0LnJlbW92ZSAnb3BlbicgZm9yICRwYW5lIGluICRwYW5lU2V0XG4gICAgICAgIF8kdGFiLmNsYXNzTGlzdC5yZW1vdmUgJ29wZW4nIGZvciBfJHRhYiBpbiAkdGFiU2V0XG5cbiAgICAgICAgIyBBZGQgYW4gb3BlbiBjbGFzcyB1bmlxdWVseSB0byB0aGlzIHRhYiBhbmQgcGFuZS5cbiAgICAgICAgayQuJChcImFydGljbGUjeyR0YWJMaW5rLmRhdGFzZXQubGlua31cIikuY2xhc3NMaXN0LmFkZCAnb3BlbidcbiAgICAgICAgJHRhYi5jbGFzc0xpc3QuYWRkICdvcGVuJ1xuXG5rJC50YWJzID0gdGFic1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRhYnNcbiIsInRocm90dGxlID0gKGZuLCBpZCwgZGVsYXkpIC0+XG5cbiAgXG5cbmskLnRocm90dGxlID0gdGhyb3R0bGVcblxubW9kdWxlLmV4cG9ydHMgPSB0aHJvdHRsZVxuIl19
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kickstart_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.42
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Kochanowicz
|
@@ -90,21 +90,7 @@ files:
|
|
90
90
|
- README.md
|
91
91
|
- Rakefile
|
92
92
|
- app/assets/javascripts/kickstart_rails.js
|
93
|
-
- app/assets/javascripts/kickstart_rails/
|
94
|
-
- app/assets/javascripts/kickstart_rails/buffer.coffee
|
95
|
-
- app/assets/javascripts/kickstart_rails/buttons.coffee
|
96
|
-
- app/assets/javascripts/kickstart_rails/debouncer.coffee
|
97
|
-
- app/assets/javascripts/kickstart_rails/docs.coffee
|
98
|
-
- app/assets/javascripts/kickstart_rails/dropdown.coffee
|
99
|
-
- app/assets/javascripts/kickstart_rails/growl.coffee
|
100
|
-
- app/assets/javascripts/kickstart_rails/ks.coffee
|
101
|
-
- app/assets/javascripts/kickstart_rails/modal.coffee
|
102
|
-
- app/assets/javascripts/kickstart_rails/navbar-fixer.coffee
|
103
|
-
- app/assets/javascripts/kickstart_rails/navbar.coffee
|
104
|
-
- app/assets/javascripts/kickstart_rails/status.coffee
|
105
|
-
- app/assets/javascripts/kickstart_rails/tabs.coffee
|
106
|
-
- app/assets/javascripts/kickstart_rails/tests.coffee
|
107
|
-
- app/assets/javascripts/kickstart_rails/throttler.coffee
|
93
|
+
- app/assets/javascripts/kickstart_rails/kickstart.js
|
108
94
|
- app/assets/stylesheets/core/_animations.sass
|
109
95
|
- app/assets/stylesheets/core/_base.sass
|
110
96
|
- app/assets/stylesheets/core/_base_components.sass
|
@@ -1,17 +0,0 @@
|
|
1
|
-
KS = require './ks'
|
2
|
-
Modal = require './modal'
|
3
|
-
Dropdown = require './dropdown'
|
4
|
-
Navbar = require './navbar'
|
5
|
-
Debounce = require './debouncer'
|
6
|
-
Status = require './status'
|
7
|
-
Tabs = require './tabs'
|
8
|
-
Throttler = require './throttler'
|
9
|
-
Buttons = require './buttons'
|
10
|
-
Buffer = require './buffer'
|
11
|
-
Growl = require './growl'
|
12
|
-
|
13
|
-
k$.ready = ->
|
14
|
-
k$.button()
|
15
|
-
k$.dropdown()
|
16
|
-
|
17
|
-
document.addEventListener 'DOMContentLoaded', -> k$.ready()
|
@@ -1,32 +0,0 @@
|
|
1
|
-
buffer = (fn, delay) ->
|
2
|
-
|
3
|
-
# Create a new bufferArray if one does not exist already.
|
4
|
-
k$.bufferArray = k$.bufferArray || new Array()
|
5
|
-
if not k$.bufferArray.length
|
6
|
-
k$.bufferArray = new Array()
|
7
|
-
|
8
|
-
delay = delay || 500
|
9
|
-
|
10
|
-
# Create an interval to fire the fns in bufferArray
|
11
|
-
i = 1
|
12
|
-
|
13
|
-
k$.bufferInterval = setInterval ->
|
14
|
-
k$.bufferArray[i]() if k$.bufferArray[i]
|
15
|
-
i++
|
16
|
-
if i >= k$.bufferArray.length
|
17
|
-
clearInterval k$.bufferInterval
|
18
|
-
k$.bufferArray = undefined
|
19
|
-
i = 1
|
20
|
-
, delay
|
21
|
-
|
22
|
-
# Add this function to the array.
|
23
|
-
k$.bufferArray.push fn
|
24
|
-
|
25
|
-
# Fire right away if it's the first in line.
|
26
|
-
k$.bufferArray[0]() if k$.bufferArray.length == 1
|
27
|
-
|
28
|
-
console.info "Function queued (#{k$.bufferArray.length} in queue)"
|
29
|
-
|
30
|
-
k$.buffer = buffer
|
31
|
-
|
32
|
-
module.exports = buffer
|
@@ -1,8 +0,0 @@
|
|
1
|
-
button = ->
|
2
|
-
|
3
|
-
($button.classList.add 'menu-item' if $button.querySelectorAll('ul').length) for $button in k$.$$("button")
|
4
|
-
$buttonDropdown.parentNode.classList.add 'menu-item' for $buttonDropdown in k$.$$ '.button-dropdown'
|
5
|
-
|
6
|
-
k$.button = button
|
7
|
-
|
8
|
-
module.exports = button
|
@@ -1,14 +0,0 @@
|
|
1
|
-
debounce = (fn, id, delay) ->
|
2
|
-
|
3
|
-
$delay = delay || 1000
|
4
|
-
|
5
|
-
k$.debounceQueue = id if k$.debounceQueue == null
|
6
|
-
clearTimeout k$.debounceTimer if id == k$.debounceQueue
|
7
|
-
k$.debounceTimer = setTimeout ->
|
8
|
-
fn()
|
9
|
-
k$.debounceQueue = null
|
10
|
-
, $delay
|
11
|
-
|
12
|
-
k$.debounce = debounce
|
13
|
-
|
14
|
-
module.exports = debounce
|
@@ -1,179 +0,0 @@
|
|
1
|
-
document.addEventListener 'DOMContentLoaded', ->
|
2
|
-
|
3
|
-
window.$$ = (el) -> document.querySelectorAll(el)
|
4
|
-
window.$ = (el) -> $$(el)[0]
|
5
|
-
|
6
|
-
###
|
7
|
-
CRUD DOCUMENTATION SETTINGS
|
8
|
-
###
|
9
|
-
|
10
|
-
# Default settings
|
11
|
-
defaults =
|
12
|
-
viewOptions:
|
13
|
-
jquery: false
|
14
|
-
semantic: true
|
15
|
-
|
16
|
-
booleanViewOptions = ['jquery', 'semantic']
|
17
|
-
|
18
|
-
# Retrieve user's saved settings
|
19
|
-
options = JSON.parse localStorage.getItem 'kickstartDocs'
|
20
|
-
|
21
|
-
# Create shallow extend function
|
22
|
-
# (http://andrewdupont.net/2009/08/28/deep-extending-objects-in-javascript/)
|
23
|
-
extend = (destination, source) ->
|
24
|
-
for property of source
|
25
|
-
if source[property] and source[property].constructor and source[property].constructor is Object
|
26
|
-
destination[property] = destination[property] or {}
|
27
|
-
arguments.callee destination[property], source[property]
|
28
|
-
else
|
29
|
-
destination[property] = source[property]
|
30
|
-
destination
|
31
|
-
|
32
|
-
# Extend from defaults
|
33
|
-
settings = if options then extend defaults, options else defaults
|
34
|
-
|
35
|
-
# Create function to write to localStorage
|
36
|
-
setSettings = (settings) ->
|
37
|
-
localStorage.setItem 'kickstartDocs', JSON.stringify settings
|
38
|
-
|
39
|
-
for option in booleanViewOptions
|
40
|
-
if settings.viewOptions["#{option}"]
|
41
|
-
document.body.classList.add "show-#{option}"
|
42
|
-
else
|
43
|
-
document.body.classList.remove "show-#{option}"
|
44
|
-
|
45
|
-
# Write to localStorage
|
46
|
-
setSettings(settings)
|
47
|
-
|
48
|
-
els = []
|
49
|
-
for option in booleanViewOptions
|
50
|
-
option = "#docs-#{option}"
|
51
|
-
els.push option
|
52
|
-
|
53
|
-
if $$(els).length
|
54
|
-
# This page has checkboxes for view options.
|
55
|
-
for option in booleanViewOptions
|
56
|
-
# Closure needed for event listeners
|
57
|
-
do (option) ->
|
58
|
-
window["$opt#{option}"] = $ "#docs-#{option}"
|
59
|
-
|
60
|
-
# Set state of buttons based on saved options in localStorage
|
61
|
-
window["$opt#{option}"].checked = (if settings.viewOptions["#{option}"] then true else false)
|
62
|
-
|
63
|
-
# Listen for checkbox changes
|
64
|
-
window["$opt#{option}"].addEventListener 'click', ->
|
65
|
-
settings.viewOptions["#{option}"] = this.checked
|
66
|
-
setSettings settings
|
67
|
-
|
68
|
-
# Show growls
|
69
|
-
if k$.$('#example-showGrowl')
|
70
|
-
k$.$('#example-showGrowl').addEventListener 'click', ->
|
71
|
-
growls = [
|
72
|
-
{
|
73
|
-
title: 'Document Saved.',
|
74
|
-
text: 'Your document was successfully saved.'
|
75
|
-
type: 'alert-green'
|
76
|
-
},
|
77
|
-
{
|
78
|
-
title: 'Library book not found'
|
79
|
-
text: 'Sorry, we could find that library book.',
|
80
|
-
type: 'alert-red'
|
81
|
-
},
|
82
|
-
{
|
83
|
-
title: 'Wide clearance selection',
|
84
|
-
text: 'Remember to check out our clearance',
|
85
|
-
type: 'alert-blue'
|
86
|
-
},
|
87
|
-
{
|
88
|
-
title: 'Deadline approaching',
|
89
|
-
text: 'Friendly reminder that your deadline is quickly approaching.',
|
90
|
-
type: 'alert-yellow'
|
91
|
-
}
|
92
|
-
]
|
93
|
-
|
94
|
-
k$.exampleCounter++
|
95
|
-
k$.exampleCounter = 0 if not k$.exampleCounter or k$.exampleCounter > 3
|
96
|
-
|
97
|
-
k$.growl growls[k$.exampleCounter]
|
98
|
-
|
99
|
-
# Show status message
|
100
|
-
if k$.$('#example-showStatus')
|
101
|
-
k$.$('#example-showStatus').addEventListener 'click', ->
|
102
|
-
statuses = [
|
103
|
-
{
|
104
|
-
text: 'Document Saved.',
|
105
|
-
type: 'status-green'
|
106
|
-
},
|
107
|
-
{
|
108
|
-
text: 'Sorry, we could find that library book.',
|
109
|
-
type: 'status-red'
|
110
|
-
},
|
111
|
-
{
|
112
|
-
text: 'Remember to check out our clearance',
|
113
|
-
type: 'status-blue'
|
114
|
-
},
|
115
|
-
{
|
116
|
-
text: 'Deadline is approaching!',
|
117
|
-
type: 'status-yellow'
|
118
|
-
}
|
119
|
-
]
|
120
|
-
|
121
|
-
k$.exampleCounter++
|
122
|
-
k$.exampleCounter = 0 if not k$.exampleCounter or k$.exampleCounter > 3
|
123
|
-
|
124
|
-
k$.status(statuses[k$.exampleCounter])
|
125
|
-
|
126
|
-
k$.slugify = (str) ->
|
127
|
-
`str.toLowerCase().replace(/ /g,'-').replace(/[^\w-]+/g,'')`
|
128
|
-
|
129
|
-
# Create a table of contents
|
130
|
-
|
131
|
-
if k$.$$('#toc').length
|
132
|
-
k$.$('.creating-table').parentNode.removeChild k$.$('.creating-table')
|
133
|
-
$toc = document.createElement 'ul'
|
134
|
-
$toc.className = "list list-unstyled"
|
135
|
-
$link = document.createElement('li')
|
136
|
-
$link.innerHTML = '<a></a>'
|
137
|
-
|
138
|
-
# Assuming proper html, start with h1.
|
139
|
-
$headingLevel = 1
|
140
|
-
|
141
|
-
# The node we're currently appending to. Always a ul.
|
142
|
-
$targetNode = $toc
|
143
|
-
|
144
|
-
$documentContainer = k$.$('.document-container')
|
145
|
-
for heading in $documentContainer.querySelectorAll('h1, h2, h3, h4, h5, h6')
|
146
|
-
# Ignore headings that declare themselves as exempt from the TOC
|
147
|
-
if not heading.classList.contains 'toc-exempt'
|
148
|
-
# For extra unique names.
|
149
|
-
# heading.id = "#{k$.slugify heading.innerHTML}-#{_k}"
|
150
|
-
|
151
|
-
heading.id = k$.slugify heading.innerHTML
|
152
|
-
|
153
|
-
# If this is a lower level.
|
154
|
-
$thisHeadingLevel = parseInt(heading.tagName.substr(1, 2))
|
155
|
-
|
156
|
-
if $thisHeadingLevel > $headingLevel
|
157
|
-
# Append a new submenu and make that the targetNode.
|
158
|
-
$newSubmenu = document.createElement 'ul'
|
159
|
-
$targetNode.children[$targetNode.children.length - 1].appendChild $newSubmenu
|
160
|
-
$targetNode = $newSubmenu
|
161
|
-
$headingLevel = $thisHeadingLevel
|
162
|
-
|
163
|
-
# If this is a higher level
|
164
|
-
if $thisHeadingLevel < $headingLevel
|
165
|
-
$stepsUp = $headingLevel - $thisHeadingLevel
|
166
|
-
|
167
|
-
while $stepsUp > -1
|
168
|
-
$targetNode = $targetNode.parentNode
|
169
|
-
$stepsUp--
|
170
|
-
|
171
|
-
$headingLevel = $thisHeadingLevel
|
172
|
-
|
173
|
-
# Make a new li and append it to the target ul node.
|
174
|
-
$menuItem = $link.cloneNode true
|
175
|
-
$menuItem.querySelector('a').href = "##{heading.id}"
|
176
|
-
$menuItem.querySelector('a').innerHTML = heading.innerHTML
|
177
|
-
$targetNode.appendChild $menuItem
|
178
|
-
|
179
|
-
k$.$('#toc').appendChild $toc
|
@@ -1,40 +0,0 @@
|
|
1
|
-
dropdown = () ->
|
2
|
-
|
3
|
-
# The following should apply to several elements.
|
4
|
-
|
5
|
-
$menuItems = k$.$$ '.menu-item'
|
6
|
-
|
7
|
-
for $_menuItem in $menuItems
|
8
|
-
|
9
|
-
$menuItem = $_menuItem.cloneNode true
|
10
|
-
$_menuItem.parentNode.replaceChild $menuItem, $_menuItem
|
11
|
-
|
12
|
-
do ($menuItem) ->
|
13
|
-
# TODO: Is there a way we could not have an event listener for every
|
14
|
-
# single one?
|
15
|
-
$menuItem.addEventListener 'click', (e) ->
|
16
|
-
|
17
|
-
# Just close it if it's already open
|
18
|
-
if $menuItem.classList.contains 'open'
|
19
|
-
$menuItem.classList.remove 'open'
|
20
|
-
return
|
21
|
-
|
22
|
-
# Reset all
|
23
|
-
_$menuItem.classList.remove 'open' for _$menuItem in document.querySelectorAll('.menu-item')
|
24
|
-
$openable = $menuItem.querySelector 'ul'
|
25
|
-
|
26
|
-
# Open this one
|
27
|
-
if $openable
|
28
|
-
$menuItem.classList.add 'open'
|
29
|
-
|
30
|
-
# Prevent bubbling
|
31
|
-
e.stopPropagation()
|
32
|
-
|
33
|
-
# Dismiss all
|
34
|
-
document.body.addEventListener 'click', ->
|
35
|
-
$ul.parentNode.classList.remove 'open' for $ul in k$.$$('.menu-item > ul')
|
36
|
-
$li.classList.remove 'open' for $li in k$.$$('.menu-item.open')
|
37
|
-
|
38
|
-
k$.dropdown = dropdown
|
39
|
-
|
40
|
-
module.exports = dropdown
|
@@ -1,56 +0,0 @@
|
|
1
|
-
growl = (params) ->
|
2
|
-
|
3
|
-
k$.buffer ->
|
4
|
-
defaults =
|
5
|
-
title: undefined
|
6
|
-
text: undefined
|
7
|
-
delay: 2000
|
8
|
-
type: 'alert-warn'
|
9
|
-
id: Date.now()
|
10
|
-
|
11
|
-
params = k$.extend defaults, params
|
12
|
-
|
13
|
-
# Create growl container
|
14
|
-
if not k$.$$('.growl_container').length
|
15
|
-
growlContainer = document.createElement 'div'
|
16
|
-
growlContainer.className = 'growl_container'
|
17
|
-
document.body.appendChild growlContainer
|
18
|
-
|
19
|
-
# Create growl
|
20
|
-
growl = document.createElement 'div'
|
21
|
-
|
22
|
-
# Add appropriate classes
|
23
|
-
className = "alert growl show #{params.type} growl-#{params.id}"
|
24
|
-
growl.className = className
|
25
|
-
|
26
|
-
# Add content
|
27
|
-
content = ""
|
28
|
-
content += "<h1>#{params.title}</h1>" if params.title
|
29
|
-
content += "<p>#{params.text}</p>" if params.text
|
30
|
-
growl.innerHTML = content
|
31
|
-
|
32
|
-
# Append child to container
|
33
|
-
k$.$('.growl_container').appendChild growl
|
34
|
-
|
35
|
-
delay = params.delay
|
36
|
-
id = params.id
|
37
|
-
|
38
|
-
if delay > 0
|
39
|
-
do (delay, id) ->
|
40
|
-
setTimeout ->
|
41
|
-
$growl = k$.$(".growl-#{id}")
|
42
|
-
$growl.classList.remove('show')
|
43
|
-
$newGrowl = $growl.cloneNode true
|
44
|
-
$growl.parentNode.replaceChild $newGrowl, $growl
|
45
|
-
$newGrowl.classList.add('hide')
|
46
|
-
|
47
|
-
do (delay, id) ->
|
48
|
-
setTimeout ->
|
49
|
-
# Remove ghost growls
|
50
|
-
k$.$('.growl_container').parentNode.removeChild k$.$('.growl_container') if not k$.$$('.growl.show').length
|
51
|
-
, 500
|
52
|
-
, delay
|
53
|
-
|
54
|
-
k$.growl = growl
|
55
|
-
|
56
|
-
module.exports = growl
|
@@ -1,16 +0,0 @@
|
|
1
|
-
global.k$ = new Object()
|
2
|
-
|
3
|
-
k$.$$ = (el) -> document.querySelectorAll el
|
4
|
-
k$.$ = (el) -> k$.$$(el)[0]
|
5
|
-
k$.debounceTimer = false
|
6
|
-
k$.debounceQueue = null
|
7
|
-
k$.extend = (destination, source) ->
|
8
|
-
for property of source
|
9
|
-
if source[property] and source[property].constructor and source[property].constructor is Object
|
10
|
-
destination[property] = destination[property] or {}
|
11
|
-
arguments.callee destination[property], source[property]
|
12
|
-
else
|
13
|
-
destination[property] = source[property]
|
14
|
-
destination
|
15
|
-
|
16
|
-
module.exports = k$
|
@@ -1,29 +0,0 @@
|
|
1
|
-
modal = (el) ->
|
2
|
-
|
3
|
-
`var iOS = /(iPad|iPhone|iPod)/g.test( navigator.userAgent )`
|
4
|
-
|
5
|
-
# Cursor pointer hack if iOS
|
6
|
-
document.body.classList.add 'dismiss-modal' if iOS
|
7
|
-
|
8
|
-
do (el) ->
|
9
|
-
|
10
|
-
$hideModal = ->
|
11
|
-
k$.$(el).style.display = 'none'
|
12
|
-
|
13
|
-
# Allow modal to dismiss when clicked outside
|
14
|
-
document.body.addEventListener 'click', ->
|
15
|
-
$hideModal()
|
16
|
-
|
17
|
-
k$.$(el).addEventListener 'click', (e) ->
|
18
|
-
return e.stopPropagation()
|
19
|
-
|
20
|
-
$closer = k$.$(el).querySelector('a[data-modal-close]')
|
21
|
-
if $closer
|
22
|
-
$closer.addEventListener 'click', ->
|
23
|
-
$hideModal()
|
24
|
-
|
25
|
-
k$.$ el
|
26
|
-
|
27
|
-
k$.modal = modal
|
28
|
-
|
29
|
-
module.exports = modal
|
@@ -1,9 +0,0 @@
|
|
1
|
-
window.onscroll = ->
|
2
|
-
$marker = k$.$('#marker')
|
3
|
-
$fixedArea = k$.$('.fixed-area')
|
4
|
-
$offset = $marker.getBoundingClientRect().top
|
5
|
-
$isFixed = $fixedArea.classList.contains 'fixed'
|
6
|
-
if $offset < 1
|
7
|
-
$fixedArea.classList.add 'fixed' if not $isFixed
|
8
|
-
else
|
9
|
-
$fixedArea.classList.remove 'fixed' if $isFixed
|
@@ -1,36 +0,0 @@
|
|
1
|
-
nav = (el) ->
|
2
|
-
|
3
|
-
try
|
4
|
-
# Wire up menu items
|
5
|
-
$menuItems = k$.$(el).querySelectorAll('ul > li')
|
6
|
-
|
7
|
-
# Prune items that don't contain uls
|
8
|
-
_$menuItems = new Array()
|
9
|
-
for $menuItem in $menuItems
|
10
|
-
if $menuItem.querySelectorAll('ul').length and !$menuItem.querySelectorAll('[role="button"]').length
|
11
|
-
_$menuItems.push $menuItem
|
12
|
-
|
13
|
-
$menuItems = _$menuItems
|
14
|
-
for $menuItem in $menuItems
|
15
|
-
|
16
|
-
# For styling
|
17
|
-
$menuItem.classList.add 'menu-item'
|
18
|
-
|
19
|
-
# Wire up the menu
|
20
|
-
k$.dropdown()
|
21
|
-
|
22
|
-
catch e
|
23
|
-
console.error "Could not instantiate as a nav.", e.message
|
24
|
-
|
25
|
-
$button = k$.$(el).querySelector('.navbar-title button')
|
26
|
-
if $button
|
27
|
-
$button.addEventListener 'click', ->
|
28
|
-
$nav = k$.$(el).querySelector('nav')
|
29
|
-
if $nav.classList.contains 'expand'
|
30
|
-
$nav.classList.remove 'expand'
|
31
|
-
else
|
32
|
-
$nav.classList.add 'expand'
|
33
|
-
|
34
|
-
k$.nav = nav
|
35
|
-
|
36
|
-
module.exports = nav
|
@@ -1,30 +0,0 @@
|
|
1
|
-
status = (opts) ->
|
2
|
-
|
3
|
-
defaults =
|
4
|
-
type: 'status-yellow'
|
5
|
-
delay: 2000
|
6
|
-
|
7
|
-
status = k$.extend defaults, opts
|
8
|
-
|
9
|
-
if not k$.$$('#status_bar').length
|
10
|
-
$statusBar = document.createElement('div')
|
11
|
-
$statusBar.id = 'status_bar'
|
12
|
-
$statusBar.className = 'status_bar'
|
13
|
-
$statusBar.innerHTML = "<div class='status_bar-status' id='status_bar-status'></div>"
|
14
|
-
document.body.appendChild($statusBar)
|
15
|
-
|
16
|
-
$statusBar = k$.$('#status_bar')
|
17
|
-
|
18
|
-
hideStatusBar = ->
|
19
|
-
$statusBar.parentNode.removeChild $statusBar
|
20
|
-
|
21
|
-
if status.delay > 0
|
22
|
-
k$.debounce hideStatusBar, 'hideStatusBar', status.delay
|
23
|
-
|
24
|
-
$status = k$.$("#status_bar-status")
|
25
|
-
$status.innerHTML = status.text
|
26
|
-
$status.dataset.type = status.type
|
27
|
-
|
28
|
-
k$.status = status
|
29
|
-
|
30
|
-
module.exports = status
|
@@ -1,32 +0,0 @@
|
|
1
|
-
tabs = (el) ->
|
2
|
-
$tabSet = k$.$(el).querySelectorAll('li')
|
3
|
-
$tab.classList.add('tab-item') for $tab in $tabSet
|
4
|
-
|
5
|
-
$paneSet = new Array()
|
6
|
-
for $_tab in $tabSet
|
7
|
-
$id = $_tab.querySelector('a').getAttribute('href')
|
8
|
-
$pane = k$.$("article#{$id}")
|
9
|
-
$pane.classList.add 'open' if $_tab.classList.contains 'open'
|
10
|
-
$paneSet.push($pane)
|
11
|
-
$pane.dataset.panel = 'true'
|
12
|
-
|
13
|
-
for $tab in $tabSet
|
14
|
-
# Create an array of panels by reading the links from each tab.
|
15
|
-
$tabLink = $tab.querySelector('a')
|
16
|
-
$tabLink.dataset.link = $tabLink.getAttribute 'href'
|
17
|
-
$tabLink.href = 'javascript:void(0);'
|
18
|
-
|
19
|
-
do ($tab, $tabLink, $paneSet) ->
|
20
|
-
$tab.addEventListener 'click', ->
|
21
|
-
|
22
|
-
# Reset tabs and panes only in this tabset
|
23
|
-
$pane.classList.remove 'open' for $pane in $paneSet
|
24
|
-
_$tab.classList.remove 'open' for _$tab in $tabSet
|
25
|
-
|
26
|
-
# Add an open class uniquely to this tab and pane.
|
27
|
-
k$.$("article#{$tabLink.dataset.link}").classList.add 'open'
|
28
|
-
$tab.classList.add 'open'
|
29
|
-
|
30
|
-
k$.tabs = tabs
|
31
|
-
|
32
|
-
module.exports = tabs
|
@@ -1,10 +0,0 @@
|
|
1
|
-
App = require './app'
|
2
|
-
testDef = require '../tests/default'
|
3
|
-
testModal = require '../tests/modal'
|
4
|
-
testNavbar = require '../tests/navbar'
|
5
|
-
testGrowl = require '../tests/growl'
|
6
|
-
testDropdownButtons = require '../tests/dropdown-buttons'
|
7
|
-
testTabs = require '../tests/tabs'
|
8
|
-
testStatus = require '../tests/status'
|
9
|
-
testDebouncer = require '../tests/debouncer'
|
10
|
-
testBuffer = require '../tests/buffer'
|