listjs-rails 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 087d23fbff7afa8239893b3f78d337af7499b357
4
+ data.tar.gz: c44407750874ae87527f8fb8034df2532a506b2d
5
+ SHA512:
6
+ metadata.gz: 295bd6c59d5c1ae38dfc4dfa9cb423b0acb47090758d8a58ea6b95fa999552e83bbed7c5a6fbd4fadcb78a2599d8e11545bb974b4669e615af6070a80a70af6b
7
+ data.tar.gz: 65615a75bcfeaaf888b9723f042b45ebd4d283c180665bdf62759df29b4ded41ef56d0ac1744507b563bca739c999e3e1dbf8213ec08f41a339a62bfa9130dae
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in listjs-rails.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Jonny Strömberg, Artur Rodrigues
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,35 @@
1
+ # List.js for Rails Asset Pipeline
2
+
3
+ Gem installation of javascript framework for list and table manipulation, List.js
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'listjs-rails'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ ```bash
16
+ $ bundle
17
+ ```
18
+
19
+ Make sure List.js is preset in `app/assets/javascripts/application.js`
20
+
21
+ ```
22
+ ...
23
+ //= require list
24
+ ...
25
+ ```
26
+
27
+ ## Contributing
28
+
29
+ Feel free to open an issue ticket if you find something that could be improved.
30
+
31
+ ## Acknowledgements
32
+
33
+ Many thanks are due to [Jonny Strömberg](https://github.com/javve) and [List.js' contributors](https://github.com/javve/list.js#contributors)
34
+
35
+ Copyright (c) 2014 Artur Rodrigues, released under the MIT License.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,1436 @@
1
+ ;(function(){
2
+
3
+ /**
4
+ * Require the given path.
5
+ *
6
+ * @param {String} path
7
+ * @return {Object} exports
8
+ * @api public
9
+ */
10
+
11
+ function require(path, parent, orig) {
12
+ var resolved = require.resolve(path);
13
+
14
+ // lookup failed
15
+ if (null == resolved) {
16
+ orig = orig || path;
17
+ parent = parent || 'root';
18
+ var err = new Error('Failed to require "' + orig + '" from "' + parent + '"');
19
+ err.path = orig;
20
+ err.parent = parent;
21
+ err.require = true;
22
+ throw err;
23
+ }
24
+
25
+ var module = require.modules[resolved];
26
+
27
+ // perform real require()
28
+ // by invoking the module's
29
+ // registered function
30
+ if (!module._resolving && !module.exports) {
31
+ var mod = {};
32
+ mod.exports = {};
33
+ mod.client = mod.component = true;
34
+ module._resolving = true;
35
+ module.call(this, mod.exports, require.relative(resolved), mod);
36
+ delete module._resolving;
37
+ module.exports = mod.exports;
38
+ }
39
+
40
+ return module.exports;
41
+ }
42
+
43
+ /**
44
+ * Registered modules.
45
+ */
46
+
47
+ require.modules = {};
48
+
49
+ /**
50
+ * Registered aliases.
51
+ */
52
+
53
+ require.aliases = {};
54
+
55
+ /**
56
+ * Resolve `path`.
57
+ *
58
+ * Lookup:
59
+ *
60
+ * - PATH/index.js
61
+ * - PATH.js
62
+ * - PATH
63
+ *
64
+ * @param {String} path
65
+ * @return {String} path or null
66
+ * @api private
67
+ */
68
+
69
+ require.resolve = function(path) {
70
+ if (path.charAt(0) === '/') path = path.slice(1);
71
+
72
+ var paths = [
73
+ path,
74
+ path + '.js',
75
+ path + '.json',
76
+ path + '/index.js',
77
+ path + '/index.json'
78
+ ];
79
+
80
+ for (var i = 0; i < paths.length; i++) {
81
+ var path = paths[i];
82
+ if (require.modules.hasOwnProperty(path)) return path;
83
+ if (require.aliases.hasOwnProperty(path)) return require.aliases[path];
84
+ }
85
+ };
86
+
87
+ /**
88
+ * Normalize `path` relative to the current path.
89
+ *
90
+ * @param {String} curr
91
+ * @param {String} path
92
+ * @return {String}
93
+ * @api private
94
+ */
95
+
96
+ require.normalize = function(curr, path) {
97
+ var segs = [];
98
+
99
+ if ('.' != path.charAt(0)) return path;
100
+
101
+ curr = curr.split('/');
102
+ path = path.split('/');
103
+
104
+ for (var i = 0; i < path.length; ++i) {
105
+ if ('..' == path[i]) {
106
+ curr.pop();
107
+ } else if ('.' != path[i] && '' != path[i]) {
108
+ segs.push(path[i]);
109
+ }
110
+ }
111
+
112
+ return curr.concat(segs).join('/');
113
+ };
114
+
115
+ /**
116
+ * Register module at `path` with callback `definition`.
117
+ *
118
+ * @param {String} path
119
+ * @param {Function} definition
120
+ * @api private
121
+ */
122
+
123
+ require.register = function(path, definition) {
124
+ require.modules[path] = definition;
125
+ };
126
+
127
+ /**
128
+ * Alias a module definition.
129
+ *
130
+ * @param {String} from
131
+ * @param {String} to
132
+ * @api private
133
+ */
134
+
135
+ require.alias = function(from, to) {
136
+ if (!require.modules.hasOwnProperty(from)) {
137
+ throw new Error('Failed to alias "' + from + '", it does not exist');
138
+ }
139
+ require.aliases[to] = from;
140
+ };
141
+
142
+ /**
143
+ * Return a require function relative to the `parent` path.
144
+ *
145
+ * @param {String} parent
146
+ * @return {Function}
147
+ * @api private
148
+ */
149
+
150
+ require.relative = function(parent) {
151
+ var p = require.normalize(parent, '..');
152
+
153
+ /**
154
+ * lastIndexOf helper.
155
+ */
156
+
157
+ function lastIndexOf(arr, obj) {
158
+ var i = arr.length;
159
+ while (i--) {
160
+ if (arr[i] === obj) return i;
161
+ }
162
+ return -1;
163
+ }
164
+
165
+ /**
166
+ * The relative require() itself.
167
+ */
168
+
169
+ function localRequire(path) {
170
+ var resolved = localRequire.resolve(path);
171
+ return require(resolved, parent, path);
172
+ }
173
+
174
+ /**
175
+ * Resolve relative to the parent.
176
+ */
177
+
178
+ localRequire.resolve = function(path) {
179
+ var c = path.charAt(0);
180
+ if ('/' == c) return path.slice(1);
181
+ if ('.' == c) return require.normalize(p, path);
182
+
183
+ // resolve deps by returning
184
+ // the dep in the nearest "deps"
185
+ // directory
186
+ var segs = parent.split('/');
187
+ var i = lastIndexOf(segs, 'deps') + 1;
188
+ if (!i) i = 0;
189
+ path = segs.slice(0, i + 1).join('/') + '/deps/' + path;
190
+ return path;
191
+ };
192
+
193
+ /**
194
+ * Check if module is defined at `path`.
195
+ */
196
+
197
+ localRequire.exists = function(path) {
198
+ return require.modules.hasOwnProperty(localRequire.resolve(path));
199
+ };
200
+
201
+ return localRequire;
202
+ };
203
+ require.register("component-classes/index.js", function(exports, require, module){
204
+ /**
205
+ * Module dependencies.
206
+ */
207
+
208
+ var index = require('indexof');
209
+
210
+ /**
211
+ * Whitespace regexp.
212
+ */
213
+
214
+ var re = /\s+/;
215
+
216
+ /**
217
+ * toString reference.
218
+ */
219
+
220
+ var toString = Object.prototype.toString;
221
+
222
+ /**
223
+ * Wrap `el` in a `ClassList`.
224
+ *
225
+ * @param {Element} el
226
+ * @return {ClassList}
227
+ * @api public
228
+ */
229
+
230
+ module.exports = function(el){
231
+ return new ClassList(el);
232
+ };
233
+
234
+ /**
235
+ * Initialize a new ClassList for `el`.
236
+ *
237
+ * @param {Element} el
238
+ * @api private
239
+ */
240
+
241
+ function ClassList(el) {
242
+ if (!el) throw new Error('A DOM element reference is required');
243
+ this.el = el;
244
+ this.list = el.classList;
245
+ }
246
+
247
+ /**
248
+ * Add class `name` if not already present.
249
+ *
250
+ * @param {String} name
251
+ * @return {ClassList}
252
+ * @api public
253
+ */
254
+
255
+ ClassList.prototype.add = function(name){
256
+ // classList
257
+ if (this.list) {
258
+ this.list.add(name);
259
+ return this;
260
+ }
261
+
262
+ // fallback
263
+ var arr = this.array();
264
+ var i = index(arr, name);
265
+ if (!~i) arr.push(name);
266
+ this.el.className = arr.join(' ');
267
+ return this;
268
+ };
269
+
270
+ /**
271
+ * Remove class `name` when present, or
272
+ * pass a regular expression to remove
273
+ * any which match.
274
+ *
275
+ * @param {String|RegExp} name
276
+ * @return {ClassList}
277
+ * @api public
278
+ */
279
+
280
+ ClassList.prototype.remove = function(name){
281
+ if ('[object RegExp]' == toString.call(name)) {
282
+ return this.removeMatching(name);
283
+ }
284
+
285
+ // classList
286
+ if (this.list) {
287
+ this.list.remove(name);
288
+ return this;
289
+ }
290
+
291
+ // fallback
292
+ var arr = this.array();
293
+ var i = index(arr, name);
294
+ if (~i) arr.splice(i, 1);
295
+ this.el.className = arr.join(' ');
296
+ return this;
297
+ };
298
+
299
+ /**
300
+ * Remove all classes matching `re`.
301
+ *
302
+ * @param {RegExp} re
303
+ * @return {ClassList}
304
+ * @api private
305
+ */
306
+
307
+ ClassList.prototype.removeMatching = function(re){
308
+ var arr = this.array();
309
+ for (var i = 0; i < arr.length; i++) {
310
+ if (re.test(arr[i])) {
311
+ this.remove(arr[i]);
312
+ }
313
+ }
314
+ return this;
315
+ };
316
+
317
+ /**
318
+ * Toggle class `name`.
319
+ *
320
+ * @param {String} name
321
+ * @return {ClassList}
322
+ * @api public
323
+ */
324
+
325
+ ClassList.prototype.toggle = function(name){
326
+ // classList
327
+ if (this.list) {
328
+ this.list.toggle(name);
329
+ return this;
330
+ }
331
+
332
+ // fallback
333
+ if (this.has(name)) {
334
+ this.remove(name);
335
+ } else {
336
+ this.add(name);
337
+ }
338
+ return this;
339
+ };
340
+
341
+ /**
342
+ * Return an array of classes.
343
+ *
344
+ * @return {Array}
345
+ * @api public
346
+ */
347
+
348
+ ClassList.prototype.array = function(){
349
+ var str = this.el.className.replace(/^\s+|\s+$/g, '');
350
+ var arr = str.split(re);
351
+ if ('' === arr[0]) arr.shift();
352
+ return arr;
353
+ };
354
+
355
+ /**
356
+ * Check if class `name` is present.
357
+ *
358
+ * @param {String} name
359
+ * @return {ClassList}
360
+ * @api public
361
+ */
362
+
363
+ ClassList.prototype.has =
364
+ ClassList.prototype.contains = function(name){
365
+ return this.list
366
+ ? this.list.contains(name)
367
+ : !! ~index(this.array(), name);
368
+ };
369
+
370
+ });
371
+ require.register("segmentio-extend/index.js", function(exports, require, module){
372
+
373
+ module.exports = function extend (object) {
374
+ // Takes an unlimited number of extenders.
375
+ var args = Array.prototype.slice.call(arguments, 1);
376
+
377
+ // For each extender, copy their properties on our object.
378
+ for (var i = 0, source; source = args[i]; i++) {
379
+ if (!source) continue;
380
+ for (var property in source) {
381
+ object[property] = source[property];
382
+ }
383
+ }
384
+
385
+ return object;
386
+ };
387
+ });
388
+ require.register("component-indexof/index.js", function(exports, require, module){
389
+ module.exports = function(arr, obj){
390
+ if (arr.indexOf) return arr.indexOf(obj);
391
+ for (var i = 0; i < arr.length; ++i) {
392
+ if (arr[i] === obj) return i;
393
+ }
394
+ return -1;
395
+ };
396
+ });
397
+ require.register("component-event/index.js", function(exports, require, module){
398
+ var bind = window.addEventListener ? 'addEventListener' : 'attachEvent',
399
+ unbind = window.removeEventListener ? 'removeEventListener' : 'detachEvent',
400
+ prefix = bind !== 'addEventListener' ? 'on' : '';
401
+
402
+ /**
403
+ * Bind `el` event `type` to `fn`.
404
+ *
405
+ * @param {Element} el
406
+ * @param {String} type
407
+ * @param {Function} fn
408
+ * @param {Boolean} capture
409
+ * @return {Function}
410
+ * @api public
411
+ */
412
+
413
+ exports.bind = function(el, type, fn, capture){
414
+ el[bind](prefix + type, fn, capture || false);
415
+ return fn;
416
+ };
417
+
418
+ /**
419
+ * Unbind `el` event `type`'s callback `fn`.
420
+ *
421
+ * @param {Element} el
422
+ * @param {String} type
423
+ * @param {Function} fn
424
+ * @param {Boolean} capture
425
+ * @return {Function}
426
+ * @api public
427
+ */
428
+
429
+ exports.unbind = function(el, type, fn, capture){
430
+ el[unbind](prefix + type, fn, capture || false);
431
+ return fn;
432
+ };
433
+ });
434
+ require.register("javve-is-collection/index.js", function(exports, require, module){
435
+ var typeOf = require('type')
436
+
437
+ /**
438
+ * Evaluates _obj_ to determine if it's an array, an array-like collection, or
439
+ * something else. This is useful when working with the function `arguments`
440
+ * collection and `HTMLElement` collections.
441
+ * Note: This implementation doesn't consider elements that are also
442
+ *
443
+ *
444
+
445
+ collections, such as `<form>` and `<select>`, to be array-like.
446
+
447
+ @method test
448
+ @param {Object} obj Object to test.
449
+ @return {Number} A number indicating the results of the test:
450
+
451
+ * 0: Neither an array nor an array-like collection.
452
+ * 1: Real array.
453
+ * 2: Array-like collection.
454
+
455
+ @api private
456
+ **/
457
+ module.exports = function isCollection(obj) {
458
+ var type = typeOf(obj)
459
+ if (type === 'array') return 1
460
+ switch (type) {
461
+ case 'arguments': return 2
462
+ case 'object':
463
+ if (isNodeList(obj)) return 2
464
+ try {
465
+ // indexed, but no tagName (element) or scrollTo/document (window. From DOM.isWindow test which we can't use here),
466
+ // or functions without apply/call (Safari
467
+ // HTMLElementCollection bug).
468
+ if ('length' in obj
469
+ && !obj.tagName
470
+ && !(obj.scrollTo && obj.document)
471
+ && !obj.apply) {
472
+ return 2
473
+ }
474
+ } catch (ex) {}
475
+ case 'function':
476
+ if (isNodeList(obj)) return 2
477
+ try {
478
+ // indexed, but no tagName (element) or scrollTo/document (window. From DOM.isWindow test which we can't use here),
479
+ // or functions without apply/call (Safari
480
+ // HTMLElementCollection bug).
481
+ if ('length' in obj
482
+ && !obj.tagName
483
+ && !(obj.scrollTo && obj.document)
484
+ && !obj.apply) {
485
+ return 2
486
+ }
487
+ } catch (ex) {}
488
+ default:
489
+ return 0
490
+ }
491
+ }
492
+
493
+ function isNodeList(nodes) {
494
+ return typeof nodes === 'object'
495
+ && /^\[object (NodeList)\]$/.test(Object.prototype.toString.call(nodes))
496
+ && nodes.hasOwnProperty('length')
497
+ && (nodes.length == 0 || (typeof nodes[0] === "object" && nodes[0].nodeType > 0))
498
+ }
499
+
500
+
501
+ });
502
+ require.register("javve-events/index.js", function(exports, require, module){
503
+ var events = require('event'),
504
+ isCollection = require('is-collection');
505
+
506
+ /**
507
+ * Bind `el` event `type` to `fn`.
508
+ *
509
+ * @param {Element} el, NodeList, HTMLCollection or Array
510
+ * @param {String} type
511
+ * @param {Function} fn
512
+ * @param {Boolean} capture
513
+ * @api public
514
+ */
515
+
516
+ exports.bind = function(el, type, fn, capture){
517
+ if (!isCollection(el)) {
518
+ events.bind(el, type, fn, capture);
519
+ } else if ( el && el[0] !== undefined ) {
520
+ for ( var i = 0; i < el.length; i++ ) {
521
+ events.bind(el[i], type, fn, capture);
522
+ }
523
+ }
524
+ };
525
+
526
+ /**
527
+ * Unbind `el` event `type`'s callback `fn`.
528
+ *
529
+ * @param {Element} el, NodeList, HTMLCollection or Array
530
+ * @param {String} type
531
+ * @param {Function} fn
532
+ * @param {Boolean} capture
533
+ * @api public
534
+ */
535
+
536
+ exports.unbind = function(el, type, fn, capture){
537
+ if (!isCollection(el)) {
538
+ events.unbind(el, type, fn, capture);
539
+ } else if ( el && el[0] !== undefined ) {
540
+ for ( var i = 0; i < el.length; i++ ) {
541
+ events.unbind(el[i], type, fn, capture);
542
+ }
543
+ }
544
+ };
545
+ });
546
+ require.register("javve-get-by-class/index.js", function(exports, require, module){
547
+ /**
548
+ * Find all elements with class `className` inside `container`.
549
+ * Use `single = true` to increase performance in older browsers
550
+ * when only one element is needed.
551
+ *
552
+ * @param {String} className
553
+ * @param {Element} container
554
+ * @param {Boolean} single
555
+ * @api public
556
+ */
557
+
558
+ module.exports = (function() {
559
+ if (document.getElementsByClassName) {
560
+ return function(container, className, single) {
561
+ if (single) {
562
+ return container.getElementsByClassName(className)[0];
563
+ } else {
564
+ return container.getElementsByClassName(className);
565
+ }
566
+ };
567
+ } else if (document.querySelector) {
568
+ return function(container, className, single) {
569
+ className = '.' + className;
570
+ if (single) {
571
+ return container.querySelector(className);
572
+ } else {
573
+ return container.querySelectorAll(className);
574
+ }
575
+ };
576
+ } else {
577
+ return function(container, className, single) {
578
+ var classElements = [],
579
+ tag = '*';
580
+ if (container == null) {
581
+ container = document;
582
+ }
583
+ var els = container.getElementsByTagName(tag);
584
+ var elsLen = els.length;
585
+ var pattern = new RegExp("(^|\\s)"+className+"(\\s|$)");
586
+ for (var i = 0, j = 0; i < elsLen; i++) {
587
+ if ( pattern.test(els[i].className) ) {
588
+ if (single) {
589
+ return els[i];
590
+ } else {
591
+ classElements[j] = els[i];
592
+ j++;
593
+ }
594
+ }
595
+ }
596
+ return classElements;
597
+ };
598
+ }
599
+ })();
600
+
601
+ });
602
+ require.register("javve-get-attribute/index.js", function(exports, require, module){
603
+ /**
604
+ * Return the value for `attr` at `element`.
605
+ *
606
+ * @param {Element} el
607
+ * @param {String} attr
608
+ * @api public
609
+ */
610
+
611
+ module.exports = function(el, attr) {
612
+ var result = (el.getAttribute && el.getAttribute(attr)) || null;
613
+ if( !result ) {
614
+ var attrs = el.attributes;
615
+ var length = attrs.length;
616
+ for(var i = 0; i < length; i++) {
617
+ if (attr[i] !== undefined) {
618
+ if(attr[i].nodeName === attr) {
619
+ result = attr[i].nodeValue;
620
+ }
621
+ }
622
+ }
623
+ }
624
+ return result;
625
+ }
626
+ });
627
+ require.register("javve-natural-sort/index.js", function(exports, require, module){
628
+ /*
629
+ * Natural Sort algorithm for Javascript - Version 0.7 - Released under MIT license
630
+ * Author: Jim Palmer (based on chunking idea from Dave Koelle)
631
+ */
632
+
633
+ module.exports = function(a, b, options) {
634
+ var re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,
635
+ sre = /(^[ ]*|[ ]*$)/g,
636
+ dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,
637
+ hre = /^0x[0-9a-f]+$/i,
638
+ ore = /^0/,
639
+ options = options || {},
640
+ i = function(s) { return options.insensitive && (''+s).toLowerCase() || ''+s },
641
+ // convert all to strings strip whitespace
642
+ x = i(a).replace(sre, '') || '',
643
+ y = i(b).replace(sre, '') || '',
644
+ // chunk/tokenize
645
+ xN = x.replace(re, '\0$1\0').replace(/\0$/,'').replace(/^\0/,'').split('\0'),
646
+ yN = y.replace(re, '\0$1\0').replace(/\0$/,'').replace(/^\0/,'').split('\0'),
647
+ // numeric, hex or date detection
648
+ xD = parseInt(x.match(hre)) || (xN.length != 1 && x.match(dre) && Date.parse(x)),
649
+ yD = parseInt(y.match(hre)) || xD && y.match(dre) && Date.parse(y) || null,
650
+ oFxNcL, oFyNcL,
651
+ mult = options.desc ? -1 : 1;
652
+ // first try and sort Hex codes or Dates
653
+ if (yD)
654
+ if ( xD < yD ) return -1 * mult;
655
+ else if ( xD > yD ) return 1 * mult;
656
+ // natural sorting through split numeric strings and default strings
657
+ for(var cLoc=0, numS=Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {
658
+ // find floats not starting with '0', string or 0 if not defined (Clint Priest)
659
+ oFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;
660
+ oFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;
661
+ // handle numeric vs string comparison - number < string - (Kyle Adams)
662
+ if (isNaN(oFxNcL) !== isNaN(oFyNcL)) { return (isNaN(oFxNcL)) ? 1 : -1; }
663
+ // rely on string comparison if different types - i.e. '02' < 2 != '02' < '2'
664
+ else if (typeof oFxNcL !== typeof oFyNcL) {
665
+ oFxNcL += '';
666
+ oFyNcL += '';
667
+ }
668
+ if (oFxNcL < oFyNcL) return -1 * mult;
669
+ if (oFxNcL > oFyNcL) return 1 * mult;
670
+ }
671
+ return 0;
672
+ };
673
+
674
+ /*
675
+ var defaultSort = getSortFunction();
676
+
677
+ module.exports = function(a, b, options) {
678
+ if (arguments.length == 1) {
679
+ options = a;
680
+ return getSortFunction(options);
681
+ } else {
682
+ return defaultSort(a,b);
683
+ }
684
+ }
685
+ */
686
+ });
687
+ require.register("javve-to-string/index.js", function(exports, require, module){
688
+ module.exports = function(s) {
689
+ s = (s === undefined) ? "" : s;
690
+ s = (s === null) ? "" : s;
691
+ s = s.toString();
692
+ return s;
693
+ };
694
+
695
+ });
696
+ require.register("component-type/index.js", function(exports, require, module){
697
+ /**
698
+ * toString ref.
699
+ */
700
+
701
+ var toString = Object.prototype.toString;
702
+
703
+ /**
704
+ * Return the type of `val`.
705
+ *
706
+ * @param {Mixed} val
707
+ * @return {String}
708
+ * @api public
709
+ */
710
+
711
+ module.exports = function(val){
712
+ switch (toString.call(val)) {
713
+ case '[object Date]': return 'date';
714
+ case '[object RegExp]': return 'regexp';
715
+ case '[object Arguments]': return 'arguments';
716
+ case '[object Array]': return 'array';
717
+ }
718
+
719
+ if (val === null) return 'null';
720
+ if (val === undefined) return 'undefined';
721
+ if (val && val.nodeType === 1) return 'element';
722
+
723
+ return typeof val.valueOf();
724
+ };
725
+
726
+ });
727
+ require.register("list.js/index.js", function(exports, require, module){
728
+ /*
729
+ ListJS with beta 1.0.0
730
+ By Jonny Strömberg (www.jonnystromberg.com, www.listjs.com)
731
+ */
732
+ (function( window, undefined ) {
733
+ "use strict";
734
+
735
+ var document = window.document,
736
+ events = require('events'),
737
+ getByClass = require('get-by-class'),
738
+ extend = require('extend'),
739
+ indexOf = require('indexof');
740
+
741
+ var List = function(id, options, values) {
742
+
743
+ var self = this,
744
+ init,
745
+ Item = require('./src/item')(self),
746
+ addAsync = require('./src/add-async')(self),
747
+ parse = require('./src/parse')(self);
748
+
749
+ this.listClass = "list";
750
+ this.searchClass = "search";
751
+ this.sortClass = "sort";
752
+ this.page = 200;
753
+ this.i = 1;
754
+ this.items = [];
755
+ this.visibleItems = [];
756
+ this.matchingItems = [];
757
+ this.searched = false;
758
+ this.filtered = false;
759
+ this.handlers = { 'updated': [] };
760
+ this.plugins = {};
761
+
762
+ extend(this, options);
763
+
764
+ this.listContainer = (typeof(id) === 'string') ? document.getElementById(id) : id;
765
+ if (!this.listContainer) { return; }
766
+ this.list = getByClass(this.listContainer, this.listClass, true);
767
+
768
+ this.templater = require('./src/templater')(self);
769
+ this.sort = require('./src/sort')(self);
770
+ this.search = require('./src/search')(self);
771
+ this.filter = require('./src/filter')(self);
772
+
773
+ init = {
774
+ start: function(values) {
775
+ parse(self.list);
776
+ if (values !== undefined) {
777
+ self.add(values);
778
+ }
779
+ self.update();
780
+ this.plugins();
781
+ },
782
+ plugins: function() {
783
+ for (var i = 0; i < self.plugins.length; i++) {
784
+ var plugin = self.plugins[i];
785
+ self[plugin.name] = plugin;
786
+ plugin.init(self);
787
+ }
788
+ }
789
+ };
790
+
791
+
792
+ /*
793
+ * Add object to list
794
+ */
795
+ this.add = function(values, callback) {
796
+ if (callback) {
797
+ addAsync(values, callback);
798
+ return;
799
+ }
800
+ var added = [],
801
+ notCreate = false;
802
+ if (values[0] === undefined){
803
+ values = [values];
804
+ }
805
+ for (var i = 0, il = values.length; i < il; i++) {
806
+ var item = null;
807
+ if (values[i] instanceof Item) {
808
+ item = values[i];
809
+ item.reload();
810
+ } else {
811
+ notCreate = (self.items.length > self.page) ? true : false;
812
+ item = new Item(values[i], undefined, notCreate);
813
+ }
814
+ self.items.push(item);
815
+ added.push(item);
816
+ }
817
+ self.update();
818
+ return added;
819
+ };
820
+
821
+ this.show = function(i, page) {
822
+ this.i = i;
823
+ this.page = page;
824
+ self.update();
825
+ return self;
826
+ };
827
+
828
+ /* Removes object from list.
829
+ * Loops through the list and removes objects where
830
+ * property "valuename" === value
831
+ */
832
+ this.remove = function(valueName, value, options) {
833
+ var found = 0;
834
+ for (var i = 0, il = self.items.length; i < il; i++) {
835
+ if (self.items[i].values()[valueName] == value) {
836
+ self.templater.remove(self.items[i], options);
837
+ self.items.splice(i,1);
838
+ il--;
839
+ i--;
840
+ found++;
841
+ }
842
+ }
843
+ self.update();
844
+ return found;
845
+ };
846
+
847
+ /* Gets the objects in the list which
848
+ * property "valueName" === value
849
+ */
850
+ this.get = function(valueName, value) {
851
+ var matchedItems = [];
852
+ for (var i = 0, il = self.items.length; i < il; i++) {
853
+ var item = self.items[i];
854
+ if (item.values()[valueName] == value) {
855
+ matchedItems.push(item);
856
+ }
857
+ }
858
+ return matchedItems;
859
+ };
860
+
861
+ /*
862
+ * Get size of the list
863
+ */
864
+ this.size = function() {
865
+ return self.items.length;
866
+ };
867
+
868
+ /*
869
+ * Removes all items from the list
870
+ */
871
+ this.clear = function() {
872
+ self.templater.clear();
873
+ self.items = [];
874
+ return self;
875
+ };
876
+
877
+ this.on = function(event, callback) {
878
+ self.handlers[event].push(callback);
879
+ return self;
880
+ };
881
+
882
+ this.off = function(event, callback) {
883
+ var e = self.handlers[event];
884
+ var index = indexOf(e, callback);
885
+ if (index > -1) {
886
+ e.splice(index, 1);
887
+ }
888
+ return self;
889
+ };
890
+
891
+ this.trigger = function(event) {
892
+ var i = self.handlers[event].length;
893
+ while(i--) {
894
+ self.handlers[event][i](self);
895
+ }
896
+ return self;
897
+ };
898
+
899
+ this.reset = {
900
+ filter: function() {
901
+ var is = self.items,
902
+ il = is.length;
903
+ while (il--) {
904
+ is[il].filtered = false;
905
+ }
906
+ return self;
907
+ },
908
+ search: function() {
909
+ var is = self.items,
910
+ il = is.length;
911
+ while (il--) {
912
+ is[il].found = false;
913
+ }
914
+ return self;
915
+ }
916
+ };
917
+
918
+ this.update = function() {
919
+ var is = self.items,
920
+ il = is.length;
921
+
922
+ self.visibleItems = [];
923
+ self.matchingItems = [];
924
+ self.templater.clear();
925
+ for (var i = 0; i < il; i++) {
926
+ if (is[i].matching() && ((self.matchingItems.length+1) >= self.i && self.visibleItems.length < self.page)) {
927
+ is[i].show();
928
+ self.visibleItems.push(is[i]);
929
+ self.matchingItems.push(is[i]);
930
+ } else if (is[i].matching()) {
931
+ self.matchingItems.push(is[i]);
932
+ is[i].hide();
933
+ } else {
934
+ is[i].hide();
935
+ }
936
+ }
937
+ self.trigger('updated');
938
+ return self;
939
+ };
940
+
941
+ init.start(values);
942
+ };
943
+
944
+ module.exports = List;
945
+
946
+ })(window);
947
+
948
+ });
949
+ require.register("list.js/src/search.js", function(exports, require, module){
950
+ var events = require('events'),
951
+ getByClass = require('get-by-class'),
952
+ toString = require('to-string');
953
+
954
+ module.exports = function(list) {
955
+ var item,
956
+ text,
957
+ columns,
958
+ searchString,
959
+ customSearch;
960
+
961
+ var prepare = {
962
+ resetList: function() {
963
+ list.i = 1;
964
+ list.templater.clear();
965
+ customSearch = undefined;
966
+ },
967
+ setOptions: function(args) {
968
+ if (args.length == 2 && args[1] instanceof Array) {
969
+ columns = args[1];
970
+ } else if (args.length == 2 && typeof(args[1]) == "function") {
971
+ customSearch = args[1];
972
+ } else if (args.length == 3) {
973
+ columns = args[1];
974
+ customSearch = args[2];
975
+ }
976
+ },
977
+ setColumns: function() {
978
+ columns = (columns === undefined) ? prepare.toArray(list.items[0].values()) : columns;
979
+ },
980
+ setSearchString: function(s) {
981
+ s = toString(s).toLowerCase();
982
+ s = s.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&"); // Escape regular expression characters
983
+ searchString = s;
984
+ },
985
+ toArray: function(values) {
986
+ var tmpColumn = [];
987
+ for (var name in values) {
988
+ tmpColumn.push(name);
989
+ }
990
+ return tmpColumn;
991
+ }
992
+ };
993
+ var search = {
994
+ list: function() {
995
+ for (var k = 0, kl = list.items.length; k < kl; k++) {
996
+ search.item(list.items[k]);
997
+ }
998
+ },
999
+ item: function(item) {
1000
+ item.found = false;
1001
+ for (var j = 0, jl = columns.length; j < jl; j++) {
1002
+ if (search.values(item.values(), columns[j])) {
1003
+ item.found = true;
1004
+ return;
1005
+ }
1006
+ }
1007
+ },
1008
+ values: function(values, column) {
1009
+ if (values.hasOwnProperty(column)) {
1010
+ text = toString(values[column]).toLowerCase();
1011
+ if ((searchString !== "") && (text.search(searchString) > -1)) {
1012
+ return true;
1013
+ }
1014
+ }
1015
+ return false;
1016
+ },
1017
+ reset: function() {
1018
+ list.reset.search();
1019
+ list.searched = false;
1020
+ }
1021
+ };
1022
+
1023
+ var searchMethod = function(str) {
1024
+ list.trigger('searchStart');
1025
+
1026
+ prepare.resetList();
1027
+ prepare.setSearchString(str);
1028
+ prepare.setOptions(arguments); // str, cols|searchFunction, searchFunction
1029
+ prepare.setColumns();
1030
+
1031
+ if (searchString === "" ) {
1032
+ search.reset();
1033
+ } else {
1034
+ list.searched = true;
1035
+ if (customSearch) {
1036
+ customSearch(searchString, columns);
1037
+ } else {
1038
+ search.list();
1039
+ }
1040
+ }
1041
+
1042
+ list.update();
1043
+ list.trigger('searchComplete');
1044
+ return list.visibleItems;
1045
+ };
1046
+
1047
+ list.handlers.searchStart = list.handlers.searchStart || [];
1048
+ list.handlers.searchComplete = list.handlers.searchComplete || [];
1049
+
1050
+ events.bind(getByClass(list.listContainer, list.searchClass), 'keyup', function(e) {
1051
+ var target = e.target || e.srcElement; // IE have srcElement
1052
+ searchMethod(target.value);
1053
+ });
1054
+
1055
+ return searchMethod;
1056
+ };
1057
+
1058
+ });
1059
+ require.register("list.js/src/sort.js", function(exports, require, module){
1060
+ var naturalSort = require('natural-sort'),
1061
+ classes = require('classes'),
1062
+ events = require('events'),
1063
+ getByClass = require('get-by-class'),
1064
+ getAttribute = require('get-attribute'),
1065
+ sortButtons;
1066
+
1067
+ var clearPreviousSorting = function() {
1068
+ for (var i = 0, il = sortButtons.length; i < il; i++) {
1069
+ classes(sortButtons[i]).remove('asc');
1070
+ classes(sortButtons[i]).remove('desc');
1071
+ }
1072
+ };
1073
+
1074
+ module.exports = function(list) {
1075
+ var sort = function() {
1076
+ var options = {},
1077
+ valueName;
1078
+
1079
+ if (arguments[0].currentTarget || arguments[0].srcElement) {
1080
+ var e = arguments[0],
1081
+ target = e.currentTarget || e.srcElement,
1082
+ newSortingOrder;
1083
+
1084
+ valueName = getAttribute(target, 'data-sort');
1085
+
1086
+ if (classes(target).has('desc')) {
1087
+ options.desc = false;
1088
+ newSortingOrder = 'asc';
1089
+ } else if (classes(target).has('asc')) {
1090
+ options.desc = true;
1091
+ newSortingOrder = 'desc';
1092
+ } else {
1093
+ options.desc = false;
1094
+ newSortingOrder = 'asc';
1095
+ }
1096
+ clearPreviousSorting();
1097
+ classes(target).add(newSortingOrder);
1098
+ } else {
1099
+ valueName = arguments[0];
1100
+ options = arguments[1] || options;
1101
+ }
1102
+
1103
+ options.insensitive = (typeof options.insensitive == "undefined") ? true : options.insensitive;
1104
+ options.sortFunction = options.sortFunction || function(a, b) {
1105
+ return naturalSort(a.values()[valueName], b.values()[valueName], options);
1106
+ };
1107
+
1108
+ list.trigger('sortStart');
1109
+ list.items.sort(options.sortFunction);
1110
+ list.update();
1111
+ list.trigger('sortComplete');
1112
+ };
1113
+
1114
+ // Add handlers
1115
+ list.handlers.sortStart = list.handlers.sortStart || [];
1116
+ list.handlers.sortComplete = list.handlers.sortComplete || [];
1117
+
1118
+ sortButtons = getByClass(list.listContainer, list.sortClass);
1119
+ events.bind(sortButtons, 'click', sort);
1120
+
1121
+ return sort;
1122
+ };
1123
+
1124
+ });
1125
+ require.register("list.js/src/item.js", function(exports, require, module){
1126
+ module.exports = function(list) {
1127
+ return function(initValues, element, notCreate) {
1128
+ var item = this;
1129
+
1130
+ this._values = {};
1131
+
1132
+ this.found = false; // Show if list.searched == true and this.found == true
1133
+ this.filtered = false;// Show if list.filtered == true and this.filtered == true
1134
+
1135
+ var init = function(initValues, element, notCreate) {
1136
+ if (element === undefined) {
1137
+ if (notCreate) {
1138
+ item.values(initValues, notCreate);
1139
+ } else {
1140
+ item.values(initValues);
1141
+ }
1142
+ } else {
1143
+ item.elm = element;
1144
+ var values = list.templater.get(item, initValues);
1145
+ item.values(values);
1146
+ }
1147
+ };
1148
+ this.values = function(newValues, notCreate) {
1149
+ if (newValues !== undefined) {
1150
+ for(var name in newValues) {
1151
+ item._values[name] = newValues[name];
1152
+ }
1153
+ if (notCreate !== true) {
1154
+ list.templater.set(item, item.values());
1155
+ }
1156
+ } else {
1157
+ return item._values;
1158
+ }
1159
+ };
1160
+ this.show = function() {
1161
+ list.templater.show(item);
1162
+ };
1163
+ this.hide = function() {
1164
+ list.templater.hide(item);
1165
+ };
1166
+ this.matching = function() {
1167
+ return (
1168
+ (list.filtered && list.searched && item.found && item.filtered) ||
1169
+ (list.filtered && !list.searched && item.filtered) ||
1170
+ (!list.filtered && list.searched && item.found) ||
1171
+ (!list.filtered && !list.searched)
1172
+ );
1173
+ };
1174
+ this.visible = function() {
1175
+ return (item.elm.parentNode == list.list) ? true : false;
1176
+ };
1177
+ init(initValues, element, notCreate);
1178
+ };
1179
+ };
1180
+
1181
+ });
1182
+ require.register("list.js/src/templater.js", function(exports, require, module){
1183
+ var getByClass = require('get-by-class');
1184
+
1185
+ var Templater = function(list) {
1186
+ var itemSource = getItemSource(list.item),
1187
+ templater = this;
1188
+
1189
+ function getItemSource(item) {
1190
+ if (item === undefined) {
1191
+ var nodes = list.list.childNodes,
1192
+ items = [];
1193
+
1194
+ for (var i = 0, il = nodes.length; i < il; i++) {
1195
+ // Only textnodes have a data attribute
1196
+ if (nodes[i].data === undefined) {
1197
+ return nodes[i];
1198
+ }
1199
+ }
1200
+ return null;
1201
+ } else if (item.indexOf("<") !== -1) { // Try create html element of list, do not work for tables!!
1202
+ var div = document.createElement('div');
1203
+ div.innerHTML = item;
1204
+ return div.firstChild;
1205
+ } else {
1206
+ return document.getElementById(list.item);
1207
+ }
1208
+ }
1209
+
1210
+ /* Get values from element */
1211
+ this.get = function(item, valueNames) {
1212
+ templater.create(item);
1213
+ var values = {};
1214
+ for(var i = 0, il = valueNames.length; i < il; i++) {
1215
+ var elm = getByClass(item.elm, valueNames[i], true);
1216
+ values[valueNames[i]] = elm ? elm.innerHTML : "";
1217
+ }
1218
+ return values;
1219
+ };
1220
+
1221
+ /* Sets values at element */
1222
+ this.set = function(item, values) {
1223
+ if (!templater.create(item)) {
1224
+ for(var v in values) {
1225
+ if (values.hasOwnProperty(v)) {
1226
+ // TODO speed up if possible
1227
+ var elm = getByClass(item.elm, v, true);
1228
+ if (elm) {
1229
+ /* src attribute for image tag & text for other tags */
1230
+ if (elm.tagName === "IMG" && values[v] !== "") {
1231
+ elm.src = values[v];
1232
+ } else {
1233
+ elm.innerHTML = values[v];
1234
+ }
1235
+ }
1236
+ }
1237
+ }
1238
+ }
1239
+ };
1240
+
1241
+ this.create = function(item) {
1242
+ if (item.elm !== undefined) {
1243
+ return false;
1244
+ }
1245
+ /* If item source does not exists, use the first item in list as
1246
+ source for new items */
1247
+ var newItem = itemSource.cloneNode(true);
1248
+ newItem.removeAttribute('id');
1249
+ item.elm = newItem;
1250
+ templater.set(item, item.values());
1251
+ return true;
1252
+ };
1253
+ this.remove = function(item) {
1254
+ list.list.removeChild(item.elm);
1255
+ };
1256
+ this.show = function(item) {
1257
+ templater.create(item);
1258
+ list.list.appendChild(item.elm);
1259
+ };
1260
+ this.hide = function(item) {
1261
+ if (item.elm !== undefined && item.elm.parentNode === list.list) {
1262
+ list.list.removeChild(item.elm);
1263
+ }
1264
+ };
1265
+ this.clear = function() {
1266
+ /* .innerHTML = ''; fucks up IE */
1267
+ if (list.list.hasChildNodes()) {
1268
+ while (list.list.childNodes.length >= 1)
1269
+ {
1270
+ list.list.removeChild(list.list.firstChild);
1271
+ }
1272
+ }
1273
+ };
1274
+ };
1275
+
1276
+ module.exports = function(list) {
1277
+ return new Templater(list);
1278
+ };
1279
+
1280
+ });
1281
+ require.register("list.js/src/filter.js", function(exports, require, module){
1282
+ module.exports = function(list) {
1283
+
1284
+ // Add handlers
1285
+ list.handlers.filterStart = list.handlers.filterStart || [];
1286
+ list.handlers.filterComplete = list.handlers.filterComplete || [];
1287
+
1288
+ return function(filterFunction) {
1289
+ list.trigger('filterStart');
1290
+ list.i = 1; // Reset paging
1291
+ list.reset.filter();
1292
+ if (filterFunction === undefined) {
1293
+ list.filtered = false;
1294
+ } else {
1295
+ list.filtered = true;
1296
+ var is = list.items;
1297
+ for (var i = 0, il = is.length; i < il; i++) {
1298
+ var item = is[i];
1299
+ if (filterFunction(item)) {
1300
+ item.filtered = true;
1301
+ } else {
1302
+ item.filtered = false;
1303
+ }
1304
+ }
1305
+ }
1306
+ list.update();
1307
+ list.trigger('filterComplete');
1308
+ return list.visibleItems;
1309
+ };
1310
+ };
1311
+
1312
+ });
1313
+ require.register("list.js/src/add-async.js", function(exports, require, module){
1314
+ module.exports = function(list) {
1315
+ return function(values, callback, items) {
1316
+ var valuesToAdd = values.splice(0, 100);
1317
+ items = items || [];
1318
+ items = items.concat(list.add(valuesToAdd));
1319
+ if (values.length > 0) {
1320
+ setTimeout(function() {
1321
+ addAsync(values, callback, items);
1322
+ }, 10);
1323
+ } else {
1324
+ list.update();
1325
+ callback(items);
1326
+ }
1327
+ };
1328
+ };
1329
+ });
1330
+ require.register("list.js/src/parse.js", function(exports, require, module){
1331
+ module.exports = function(list) {
1332
+
1333
+ var Item = require('./item')(list);
1334
+
1335
+ var getChildren = function(parent) {
1336
+ var nodes = parent.childNodes,
1337
+ items = [];
1338
+ for (var i = 0, il = nodes.length; i < il; i++) {
1339
+ // Only textnodes have a data attribute
1340
+ if (nodes[i].data === undefined) {
1341
+ items.push(nodes[i]);
1342
+ }
1343
+ }
1344
+ return items;
1345
+ };
1346
+
1347
+ var parse = function(itemElements, valueNames) {
1348
+ for (var i = 0, il = itemElements.length; i < il; i++) {
1349
+ list.items.push(new Item(valueNames, itemElements[i]));
1350
+ }
1351
+ };
1352
+ var parseAsync = function(itemElements, valueNames) {
1353
+ var itemsToIndex = itemElements.splice(0, 100); // TODO: If < 100 items, what happens in IE etc?
1354
+ parse(itemsToIndex, valueNames);
1355
+ if (itemElements.length > 0) {
1356
+ setTimeout(function() {
1357
+ init.items.indexAsync(itemElements, valueNames);
1358
+ }, 10);
1359
+ } else {
1360
+ list.update();
1361
+ // TODO: Add indexed callback
1362
+ }
1363
+ };
1364
+
1365
+ return function() {
1366
+ var itemsToIndex = getChildren(list.list),
1367
+ valueNames = list.valueNames;
1368
+
1369
+ if (list.indexAsync) {
1370
+ parseAsync(itemsToIndex, valueNames);
1371
+ } else {
1372
+ parse(itemsToIndex, valueNames);
1373
+ }
1374
+ };
1375
+ };
1376
+
1377
+ });
1378
+
1379
+
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+ require.alias("component-classes/index.js", "list.js/deps/classes/index.js");
1399
+ require.alias("component-classes/index.js", "classes/index.js");
1400
+ require.alias("component-indexof/index.js", "component-classes/deps/indexof/index.js");
1401
+
1402
+ require.alias("segmentio-extend/index.js", "list.js/deps/extend/index.js");
1403
+ require.alias("segmentio-extend/index.js", "extend/index.js");
1404
+
1405
+ require.alias("component-indexof/index.js", "list.js/deps/indexof/index.js");
1406
+ require.alias("component-indexof/index.js", "indexof/index.js");
1407
+
1408
+ require.alias("javve-events/index.js", "list.js/deps/events/index.js");
1409
+ require.alias("javve-events/index.js", "events/index.js");
1410
+ require.alias("component-event/index.js", "javve-events/deps/event/index.js");
1411
+
1412
+ require.alias("javve-is-collection/index.js", "javve-events/deps/is-collection/index.js");
1413
+ require.alias("component-type/index.js", "javve-is-collection/deps/type/index.js");
1414
+
1415
+ require.alias("javve-get-by-class/index.js", "list.js/deps/get-by-class/index.js");
1416
+ require.alias("javve-get-by-class/index.js", "get-by-class/index.js");
1417
+
1418
+ require.alias("javve-get-attribute/index.js", "list.js/deps/get-attribute/index.js");
1419
+ require.alias("javve-get-attribute/index.js", "get-attribute/index.js");
1420
+
1421
+ require.alias("javve-natural-sort/index.js", "list.js/deps/natural-sort/index.js");
1422
+ require.alias("javve-natural-sort/index.js", "natural-sort/index.js");
1423
+
1424
+ require.alias("javve-to-string/index.js", "list.js/deps/to-string/index.js");
1425
+ require.alias("javve-to-string/index.js", "list.js/deps/to-string/index.js");
1426
+ require.alias("javve-to-string/index.js", "to-string/index.js");
1427
+ require.alias("javve-to-string/index.js", "javve-to-string/index.js");
1428
+ require.alias("component-type/index.js", "list.js/deps/type/index.js");
1429
+ require.alias("component-type/index.js", "type/index.js");
1430
+ if (typeof exports == "object") {
1431
+ module.exports = require("list.js");
1432
+ } else if (typeof define == "function" && define.amd) {
1433
+ define(function(){ return require("list.js"); });
1434
+ } else {
1435
+ this["List"] = require("list.js");
1436
+ }})();