Show More
@@ -6,6 +6,7 b'' | |||
|
6 | 6 | }, |
|
7 | 7 | "js": { |
|
8 | 8 | "src": "rhodecode/public/js/src", |
|
9 | "src_rc": "rhodecode/public/js/rhodecode", | |
|
9 | 10 | "dest": "rhodecode/public/js", |
|
10 | 11 | "bower": "bower_components", |
|
11 | 12 | "node_modules": "node_modules" |
@@ -31,14 +32,14 b'' | |||
|
31 | 32 | }, |
|
32 | 33 | "dist": { |
|
33 | 34 | "src": [ |
|
34 |
"<%= dirs.js.s |
|
|
35 | "<%= dirs.js.node_modules %>/jquery/dist/jquery.min.js", | |
|
36 | "<%= dirs.js.node_modules %>/mousetrap/mousetrap.min.js", | |
|
37 | "<%= dirs.js.node_modules %>/moment/min/moment.min.js", | |
|
38 | "<%= dirs.js.node_modules %>/clipboard/dist/clipboard.min.js", | |
|
39 | "<%= dirs.js.node_modules %>/favico.js/favico-0.3.10.min.js", | |
|
40 | "<%= dirs.js.node_modules %>/appenlight-client/appenlight-client.min.js", | |
|
35 | 41 | "<%= dirs.js.src %>/logging.js", |
|
36 | 42 | "<%= dirs.js.src %>/bootstrap.js", |
|
37 | "<%= dirs.js.src %>/mousetrap.js", | |
|
38 | "<%= dirs.js.src %>/moment.js", | |
|
39 | "<%= dirs.js.src %>/clipboard.min.js", | |
|
40 | "<%= dirs.js.node_modules %>/appenlight-client/appenlight-client.min.js", | |
|
41 | "<%= dirs.js.node_modules %>/favico.js/favico-0.3.10.min.js", | |
|
42 | 43 | "<%= dirs.js.src %>/i18n_utils.js", |
|
43 | 44 | "<%= dirs.js.src %>/deform.js", |
|
44 | 45 | "<%= dirs.js.src %>/plugins/jquery.pjax.js", |
@@ -58,7 +59,7 b'' | |||
|
58 | 59 | "<%= dirs.js.src %>/codemirror/codemirror_placeholder.js", |
|
59 | 60 | "<%= dirs.js.dest %>/mode/meta.js", |
|
60 | 61 | "<%= dirs.js.dest %>/mode/meta_ext.js", |
|
61 |
"<%= dirs.js. |
|
|
62 | "<%= dirs.js.src_rc %>/i18n/select2/translations.js", | |
|
62 | 63 | "<%= dirs.js.src %>/rhodecode/utils/array.js", |
|
63 | 64 | "<%= dirs.js.src %>/rhodecode/utils/string.js", |
|
64 | 65 | "<%= dirs.js.src %>/rhodecode/utils/pyroutes.js", |
@@ -12,9 +12,14 b'' | |||
|
12 | 12 | "vulcanize": "^1.14.8", |
|
13 | 13 | "grunt-crisper": "^1.0.1", |
|
14 | 14 | "grunt-vulcanize": "^1.0.0", |
|
15 | "node2nix": "^1.0.0", | |
|
15 | 16 | "jshint": "^2.9.1-rc3", |
|
16 | 17 | "bower": "^1.7.9", |
|
18 | "jquery": "1.11.3", | |
|
17 | 19 | "favico.js": "^0.3.10", |
|
18 | "appenlight-client": "git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.0" | |
|
20 | "clipboard": "^1.7.1", | |
|
21 | "moment": "^2.18.1", | |
|
22 | "mousetrap": "^1.6.1", | |
|
23 | "appenlight-client": "git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.1" | |
|
19 | 24 | } |
|
20 | 25 | } |
This diff has been collapsed as it changes many lines, (2397 lines changed) Show them Hide them | |||
@@ -40,13 +40,13 b' let' | |||
|
40 | 40 | sha1 = "f6b2f06fc715264837a7ab6c69a1ce1a689c2c29"; |
|
41 | 41 | }; |
|
42 | 42 | }; |
|
43 |
"grunt-contrib-less-1.4. |
|
|
43 | "grunt-contrib-less-1.4.1" = { | |
|
44 | 44 | name = "grunt-contrib-less"; |
|
45 | 45 | packageName = "grunt-contrib-less"; |
|
46 |
version = "1.4. |
|
|
46 | version = "1.4.1"; | |
|
47 | 47 | src = fetchurl { |
|
48 |
url = "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4. |
|
|
49 | sha1 = "17ee79cad21c9720ee07b3a991fab5103b513514"; | |
|
48 | url = "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.1.tgz"; | |
|
49 | sha1 = "3bbdec0b75d12ceaa55d62943625c0b0861cdf6f"; | |
|
50 | 50 | }; |
|
51 | 51 | }; |
|
52 | 52 | "grunt-contrib-watch-0.6.1" = { |
@@ -58,22 +58,22 b' let' | |||
|
58 | 58 | sha1 = "64fdcba25a635f5b4da1b6ce6f90da0aeb6e3f15"; |
|
59 | 59 | }; |
|
60 | 60 | }; |
|
61 |
"crisper-2. |
|
|
61 | "crisper-2.1.1" = { | |
|
62 | 62 | name = "crisper"; |
|
63 | 63 | packageName = "crisper"; |
|
64 |
version = "2. |
|
|
64 | version = "2.1.1"; | |
|
65 | 65 | src = fetchurl { |
|
66 |
url = "https://registry.npmjs.org/crisper/-/crisper-2. |
|
|
67 | sha1 = "188a7da3d00dcf0c64eff7f253d23dacffba7197"; | |
|
66 | url = "https://registry.npmjs.org/crisper/-/crisper-2.1.1.tgz"; | |
|
67 | sha1 = "4cc7321c3e90f3c5cbdc3503217f118fd7d5c51c"; | |
|
68 | 68 | }; |
|
69 | 69 | }; |
|
70 |
"vulcanize-1.1 |
|
|
70 | "vulcanize-1.16.0" = { | |
|
71 | 71 | name = "vulcanize"; |
|
72 | 72 | packageName = "vulcanize"; |
|
73 |
version = "1.1 |
|
|
73 | version = "1.16.0"; | |
|
74 | 74 | src = fetchurl { |
|
75 |
url = "https://registry.npmjs.org/vulcanize/-/vulcanize-1.1 |
|
|
76 | sha1 = "3cdd6f81d9baf2c5796ddd6d2d289e45975086f7"; | |
|
75 | url = "https://registry.npmjs.org/vulcanize/-/vulcanize-1.16.0.tgz"; | |
|
76 | sha1 = "b0ce3b0044d194ad4908ae4f1a6c6110a6e4d5e6"; | |
|
77 | 77 | }; |
|
78 | 78 | }; |
|
79 | 79 | "grunt-crisper-1.0.1" = { |
@@ -94,22 +94,40 b' let' | |||
|
94 | 94 | sha1 = "f4d6cfef274f8216c06f6c290e7dbb3b9e9e3b0f"; |
|
95 | 95 | }; |
|
96 | 96 | }; |
|
97 |
" |
|
|
97 | "node2nix-1.3.0" = { | |
|
98 | name = "node2nix"; | |
|
99 | packageName = "node2nix"; | |
|
100 | version = "1.3.0"; | |
|
101 | src = fetchurl { | |
|
102 | url = "https://registry.npmjs.org/node2nix/-/node2nix-1.3.0.tgz"; | |
|
103 | sha1 = "e830a3bc5880dd22ae47be71a147f776542850cc"; | |
|
104 | }; | |
|
105 | }; | |
|
106 | "jshint-2.9.5" = { | |
|
98 | 107 | name = "jshint"; |
|
99 | 108 | packageName = "jshint"; |
|
100 |
version = "2.9. |
|
|
109 | version = "2.9.5"; | |
|
101 | 110 | src = fetchurl { |
|
102 |
url = "https://registry.npmjs.org/jshint/-/jshint-2.9. |
|
|
103 | sha1 = "a2e14ff85c2d6bf8c8080e5aa55129ebc6a2d320"; | |
|
111 | url = "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz"; | |
|
112 | sha1 = "1e7252915ce681b40827ee14248c46d34e9aa62c"; | |
|
104 | 113 | }; |
|
105 | 114 | }; |
|
106 |
"bower-1. |
|
|
115 | "bower-1.8.2" = { | |
|
107 | 116 | name = "bower"; |
|
108 | 117 | packageName = "bower"; |
|
109 |
version = "1. |
|
|
118 | version = "1.8.2"; | |
|
110 | 119 | src = fetchurl { |
|
111 |
url = "https://registry.npmjs.org/bower/-/bower-1. |
|
|
112 | sha1 = "b7296c2393e0d75edaa6ca39648132dd255812b0"; | |
|
120 | url = "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz"; | |
|
121 | sha1 = "adf53529c8d4af02ef24fb8d5341c1419d33e2f7"; | |
|
122 | }; | |
|
123 | }; | |
|
124 | "jquery-1.11.3" = { | |
|
125 | name = "jquery"; | |
|
126 | packageName = "jquery"; | |
|
127 | version = "1.11.3"; | |
|
128 | src = fetchurl { | |
|
129 | url = "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz"; | |
|
130 | sha1 = "dd8b74278b27102d29df63eae28308a8cfa1b583"; | |
|
113 | 131 | }; |
|
114 | 132 | }; |
|
115 | 133 | "favico.js-0.3.10" = { |
@@ -121,14 +139,41 b' let' | |||
|
121 | 139 | sha1 = "80586e27a117f24a8d51c18a99bdc714d4339301"; |
|
122 | 140 | }; |
|
123 | 141 | }; |
|
124 | "appenlight-client-git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.0" = { | |
|
142 | "clipboard-1.7.1" = { | |
|
143 | name = "clipboard"; | |
|
144 | packageName = "clipboard"; | |
|
145 | version = "1.7.1"; | |
|
146 | src = fetchurl { | |
|
147 | url = "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz"; | |
|
148 | sha1 = "360d6d6946e99a7a1fef395e42ba92b5e9b5a16b"; | |
|
149 | }; | |
|
150 | }; | |
|
151 | "moment-2.18.1" = { | |
|
152 | name = "moment"; | |
|
153 | packageName = "moment"; | |
|
154 | version = "2.18.1"; | |
|
155 | src = fetchurl { | |
|
156 | url = "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz"; | |
|
157 | sha1 = "c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"; | |
|
158 | }; | |
|
159 | }; | |
|
160 | "mousetrap-1.6.1" = { | |
|
161 | name = "mousetrap"; | |
|
162 | packageName = "mousetrap"; | |
|
163 | version = "1.6.1"; | |
|
164 | src = fetchurl { | |
|
165 | url = "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.1.tgz"; | |
|
166 | sha1 = "2a085f5c751294c75e7e81f6ec2545b29cbf42d9"; | |
|
167 | }; | |
|
168 | }; | |
|
169 | "appenlight-client-git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.1" = { | |
|
125 | 170 | name = "appenlight-client"; |
|
126 | 171 | packageName = "appenlight-client"; |
|
127 |
version = "0.5. |
|
|
172 | version = "0.5.1"; | |
|
128 | 173 | src = fetchgit { |
|
129 | 174 | url = "https://git@github.com/AppEnlight/appenlight-client-js.git"; |
|
130 | rev = "b1d6853345dc3e96468b34537810b3eb77e0764f"; | |
|
131 | sha256 = "2ef00aef7dafdecdc1666d2e83fc190a796849985d04a8f0fad148d64aa4f8db"; | |
|
175 | rev = "14712c64c230fbbe94fcbc8094aef5eb3b90b307"; | |
|
176 | sha256 = "92111f1104cbf0b31303c366c0fa752cf68af7ddde40d0161edd1b5fd9dd07f7"; | |
|
132 | 177 | }; |
|
133 | 178 | }; |
|
134 | 179 | "async-0.1.22" = { |
@@ -383,13 +428,13 b' let' | |||
|
383 | 428 | sha1 = "ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"; |
|
384 | 429 | }; |
|
385 | 430 | }; |
|
386 |
"abbrev-1.0 |
|
|
431 | "abbrev-1.1.0" = { | |
|
387 | 432 | name = "abbrev"; |
|
388 | 433 | packageName = "abbrev"; |
|
389 |
version = "1.0 |
|
|
434 | version = "1.1.0"; | |
|
390 | 435 | src = fetchurl { |
|
391 |
url = "https://registry.npmjs.org/abbrev/-/abbrev-1.0 |
|
|
392 | sha1 = "91b4792588a7738c25f35dd6f63752a2f8776135"; | |
|
436 | url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz"; | |
|
437 | sha1 = "d0554c2256636e2f56e7c2e5ad183f859428d81f"; | |
|
393 | 438 | }; |
|
394 | 439 | }; |
|
395 | 440 | "argparse-0.1.16" = { |
@@ -509,13 +554,13 b' let' | |||
|
509 | 554 | sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; |
|
510 | 555 | }; |
|
511 | 556 | }; |
|
512 |
"ansi-regex-2. |
|
|
557 | "ansi-regex-2.1.1" = { | |
|
513 | 558 | name = "ansi-regex"; |
|
514 | 559 | packageName = "ansi-regex"; |
|
515 |
version = "2. |
|
|
560 | version = "2.1.1"; | |
|
516 | 561 | src = fetchurl { |
|
517 |
url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2. |
|
|
518 | sha1 = "c5061b6e0ef8a81775e50f5d66151bf6bf371107"; | |
|
562 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; | |
|
563 | sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; | |
|
519 | 564 | }; |
|
520 | 565 | }; |
|
521 | 566 | "chalk-0.5.1" = { |
@@ -581,40 +626,40 b' let' | |||
|
581 | 626 | sha1 = "0d8e946967a3d8143f93e24e298525fc1b2235f9"; |
|
582 | 627 | }; |
|
583 | 628 | }; |
|
584 |
"amdefine-1.0. |
|
|
629 | "amdefine-1.0.1" = { | |
|
585 | 630 | name = "amdefine"; |
|
586 | 631 | packageName = "amdefine"; |
|
587 |
version = "1.0. |
|
|
632 | version = "1.0.1"; | |
|
588 | 633 | src = fetchurl { |
|
589 |
url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0. |
|
|
590 | sha1 = "fd17474700cb5cc9c2b709f0be9d23ce3c198c33"; | |
|
634 | url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"; | |
|
635 | sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5"; | |
|
591 | 636 | }; |
|
592 | 637 | }; |
|
593 |
"async-2.0 |
|
|
638 | "async-2.5.0" = { | |
|
594 | 639 | name = "async"; |
|
595 | 640 | packageName = "async"; |
|
596 |
version = "2.0 |
|
|
641 | version = "2.5.0"; | |
|
597 | 642 | src = fetchurl { |
|
598 |
url = "https://registry.npmjs.org/async/-/async-2.0 |
|
|
599 | sha1 = "b709cc0280a9c36f09f4536be823c838a9049e25"; | |
|
643 | url = "https://registry.npmjs.org/async/-/async-2.5.0.tgz"; | |
|
644 | sha1 = "843190fd6b7357a0b9e1c956edddd5ec8462b54d"; | |
|
600 | 645 | }; |
|
601 | 646 | }; |
|
602 |
"less-2.7. |
|
|
647 | "less-2.7.2" = { | |
|
603 | 648 | name = "less"; |
|
604 | 649 | packageName = "less"; |
|
605 |
version = "2.7. |
|
|
650 | version = "2.7.2"; | |
|
606 | 651 | src = fetchurl { |
|
607 |
url = "https://registry.npmjs.org/less/-/less-2.7. |
|
|
608 | sha1 = "6cbfea22b3b830304e9a5fb371d54fa480c9d7cf"; | |
|
652 | url = "https://registry.npmjs.org/less/-/less-2.7.2.tgz"; | |
|
653 | sha1 = "368d6cc73e1fb03981183280918743c5dcf9b3df"; | |
|
609 | 654 | }; |
|
610 | 655 | }; |
|
611 |
"lodash-4.1 |
|
|
656 | "lodash-4.17.4" = { | |
|
612 | 657 | name = "lodash"; |
|
613 | 658 | packageName = "lodash"; |
|
614 |
version = "4.1 |
|
|
659 | version = "4.17.4"; | |
|
615 | 660 | src = fetchurl { |
|
616 |
url = "https://registry.npmjs.org/lodash/-/lodash-4.1 |
|
|
617 | sha1 = "3e626db827048a699281a8a125226326cfc0e652"; | |
|
661 | url = "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"; | |
|
662 | sha1 = "78203a4d1c328ae1d86dca6460e369b57f4055ae"; | |
|
618 | 663 | }; |
|
619 | 664 | }; |
|
620 | 665 | "errno-0.1.4" = { |
@@ -626,31 +671,31 b' let' | |||
|
626 | 671 | sha1 = "b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"; |
|
627 | 672 | }; |
|
628 | 673 | }; |
|
629 |
"graceful-fs-4.1. |
|
|
674 | "graceful-fs-4.1.11" = { | |
|
630 | 675 | name = "graceful-fs"; |
|
631 | 676 | packageName = "graceful-fs"; |
|
632 |
version = "4.1. |
|
|
677 | version = "4.1.11"; | |
|
633 | 678 | src = fetchurl { |
|
634 |
url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1. |
|
|
635 | sha1 = "da3e11135eb2168bdd374532c4e2649751672890"; | |
|
679 | url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"; | |
|
680 | sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"; | |
|
636 | 681 | }; |
|
637 | 682 | }; |
|
638 |
"image-size-0.5. |
|
|
683 | "image-size-0.5.5" = { | |
|
639 | 684 | name = "image-size"; |
|
640 | 685 | packageName = "image-size"; |
|
641 |
version = "0.5. |
|
|
686 | version = "0.5.5"; | |
|
642 | 687 | src = fetchurl { |
|
643 |
url = "https://registry.npmjs.org/image-size/-/image-size-0.5. |
|
|
644 | sha1 = "be7aed1c37b5ac3d9ba1d66a24b4c47ff8397651"; | |
|
688 | url = "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz"; | |
|
689 | sha1 = "09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"; | |
|
645 | 690 | }; |
|
646 | 691 | }; |
|
647 |
"mime-1. |
|
|
692 | "mime-1.4.0" = { | |
|
648 | 693 | name = "mime"; |
|
649 | 694 | packageName = "mime"; |
|
650 |
version = "1. |
|
|
695 | version = "1.4.0"; | |
|
651 | 696 | src = fetchurl { |
|
652 |
url = "https://registry.npmjs.org/mime/-/mime-1. |
|
|
653 | sha1 = "115f9e3b6b3daf2959983cb38f149a2d40eb5d53"; | |
|
697 | url = "https://registry.npmjs.org/mime/-/mime-1.4.0.tgz"; | |
|
698 | sha1 = "69e9e0db51d44f2a3b56e48b7817d7d137f1a343"; | |
|
654 | 699 | }; |
|
655 | 700 | }; |
|
656 | 701 | "mkdirp-0.5.1" = { |
@@ -662,22 +707,31 b' let' | |||
|
662 | 707 | sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; |
|
663 | 708 | }; |
|
664 | 709 | }; |
|
665 |
"promise-7. |
|
|
710 | "promise-7.3.1" = { | |
|
666 | 711 | name = "promise"; |
|
667 | 712 | packageName = "promise"; |
|
668 |
version = "7. |
|
|
713 | version = "7.3.1"; | |
|
669 | 714 | src = fetchurl { |
|
670 |
url = "https://registry.npmjs.org/promise/-/promise-7. |
|
|
671 | sha1 = "489654c692616b8aa55b0724fa809bb7db49c5bf"; | |
|
715 | url = "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz"; | |
|
716 | sha1 = "064b72602b18f90f29192b8b1bc418ffd1ebd3bf"; | |
|
672 | 717 | }; |
|
673 | 718 | }; |
|
674 |
"source-map-0.5. |
|
|
719 | "source-map-0.5.7" = { | |
|
675 | 720 | name = "source-map"; |
|
676 | 721 | packageName = "source-map"; |
|
677 |
version = "0.5. |
|
|
722 | version = "0.5.7"; | |
|
678 | 723 | src = fetchurl { |
|
679 |
url = "https://registry.npmjs.org/source-map/-/source-map-0.5. |
|
|
680 | sha1 = "75ce38f52bf0733c5a7f0c118d81334a2bb5f412"; | |
|
724 | url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"; | |
|
725 | sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; | |
|
726 | }; | |
|
727 | }; | |
|
728 | "request-2.82.0" = { | |
|
729 | name = "request"; | |
|
730 | packageName = "request"; | |
|
731 | version = "2.82.0"; | |
|
732 | src = fetchurl { | |
|
733 | url = "https://registry.npmjs.org/request/-/request-2.82.0.tgz"; | |
|
734 | sha1 = "2ba8a92cd7ac45660ea2b10a53ae67cd247516ea"; | |
|
681 | 735 | }; |
|
682 | 736 | }; |
|
683 | 737 | "prr-0.0.0" = { |
@@ -698,13 +752,481 b' let' | |||
|
698 | 752 | sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; |
|
699 | 753 | }; |
|
700 | 754 | }; |
|
701 |
"asap-2.0. |
|
|
755 | "asap-2.0.6" = { | |
|
702 | 756 | name = "asap"; |
|
703 | 757 | packageName = "asap"; |
|
704 |
version = "2.0. |
|
|
758 | version = "2.0.6"; | |
|
759 | src = fetchurl { | |
|
760 | url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"; | |
|
761 | sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46"; | |
|
762 | }; | |
|
763 | }; | |
|
764 | "aws-sign2-0.7.0" = { | |
|
765 | name = "aws-sign2"; | |
|
766 | packageName = "aws-sign2"; | |
|
767 | version = "0.7.0"; | |
|
768 | src = fetchurl { | |
|
769 | url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; | |
|
770 | sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; | |
|
771 | }; | |
|
772 | }; | |
|
773 | "aws4-1.6.0" = { | |
|
774 | name = "aws4"; | |
|
775 | packageName = "aws4"; | |
|
776 | version = "1.6.0"; | |
|
777 | src = fetchurl { | |
|
778 | url = "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"; | |
|
779 | sha1 = "83ef5ca860b2b32e4a0deedee8c771b9db57471e"; | |
|
780 | }; | |
|
781 | }; | |
|
782 | "caseless-0.12.0" = { | |
|
783 | name = "caseless"; | |
|
784 | packageName = "caseless"; | |
|
785 | version = "0.12.0"; | |
|
786 | src = fetchurl { | |
|
787 | url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; | |
|
788 | sha1 = "1b681c21ff84033c826543090689420d187151dc"; | |
|
789 | }; | |
|
790 | }; | |
|
791 | "combined-stream-1.0.5" = { | |
|
792 | name = "combined-stream"; | |
|
793 | packageName = "combined-stream"; | |
|
794 | version = "1.0.5"; | |
|
795 | src = fetchurl { | |
|
796 | url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"; | |
|
797 | sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009"; | |
|
798 | }; | |
|
799 | }; | |
|
800 | "extend-3.0.1" = { | |
|
801 | name = "extend"; | |
|
802 | packageName = "extend"; | |
|
803 | version = "3.0.1"; | |
|
804 | src = fetchurl { | |
|
805 | url = "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz"; | |
|
806 | sha1 = "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"; | |
|
807 | }; | |
|
808 | }; | |
|
809 | "forever-agent-0.6.1" = { | |
|
810 | name = "forever-agent"; | |
|
811 | packageName = "forever-agent"; | |
|
812 | version = "0.6.1"; | |
|
813 | src = fetchurl { | |
|
814 | url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; | |
|
815 | sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; | |
|
816 | }; | |
|
817 | }; | |
|
818 | "form-data-2.3.1" = { | |
|
819 | name = "form-data"; | |
|
820 | packageName = "form-data"; | |
|
821 | version = "2.3.1"; | |
|
822 | src = fetchurl { | |
|
823 | url = "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz"; | |
|
824 | sha1 = "6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"; | |
|
825 | }; | |
|
826 | }; | |
|
827 | "har-validator-5.0.3" = { | |
|
828 | name = "har-validator"; | |
|
829 | packageName = "har-validator"; | |
|
830 | version = "5.0.3"; | |
|
831 | src = fetchurl { | |
|
832 | url = "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz"; | |
|
833 | sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd"; | |
|
834 | }; | |
|
835 | }; | |
|
836 | "hawk-6.0.2" = { | |
|
837 | name = "hawk"; | |
|
838 | packageName = "hawk"; | |
|
839 | version = "6.0.2"; | |
|
840 | src = fetchurl { | |
|
841 | url = "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz"; | |
|
842 | sha1 = "af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"; | |
|
843 | }; | |
|
844 | }; | |
|
845 | "http-signature-1.2.0" = { | |
|
846 | name = "http-signature"; | |
|
847 | packageName = "http-signature"; | |
|
848 | version = "1.2.0"; | |
|
849 | src = fetchurl { | |
|
850 | url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; | |
|
851 | sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; | |
|
852 | }; | |
|
853 | }; | |
|
854 | "is-typedarray-1.0.0" = { | |
|
855 | name = "is-typedarray"; | |
|
856 | packageName = "is-typedarray"; | |
|
857 | version = "1.0.0"; | |
|
858 | src = fetchurl { | |
|
859 | url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; | |
|
860 | sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; | |
|
861 | }; | |
|
862 | }; | |
|
863 | "isstream-0.1.2" = { | |
|
864 | name = "isstream"; | |
|
865 | packageName = "isstream"; | |
|
866 | version = "0.1.2"; | |
|
867 | src = fetchurl { | |
|
868 | url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; | |
|
869 | sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; | |
|
870 | }; | |
|
871 | }; | |
|
872 | "json-stringify-safe-5.0.1" = { | |
|
873 | name = "json-stringify-safe"; | |
|
874 | packageName = "json-stringify-safe"; | |
|
875 | version = "5.0.1"; | |
|
876 | src = fetchurl { | |
|
877 | url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; | |
|
878 | sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; | |
|
879 | }; | |
|
880 | }; | |
|
881 | "mime-types-2.1.17" = { | |
|
882 | name = "mime-types"; | |
|
883 | packageName = "mime-types"; | |
|
884 | version = "2.1.17"; | |
|
885 | src = fetchurl { | |
|
886 | url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz"; | |
|
887 | sha1 = "09d7a393f03e995a79f8af857b70a9e0ab16557a"; | |
|
888 | }; | |
|
889 | }; | |
|
890 | "oauth-sign-0.8.2" = { | |
|
891 | name = "oauth-sign"; | |
|
892 | packageName = "oauth-sign"; | |
|
893 | version = "0.8.2"; | |
|
894 | src = fetchurl { | |
|
895 | url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"; | |
|
896 | sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"; | |
|
897 | }; | |
|
898 | }; | |
|
899 | "performance-now-2.1.0" = { | |
|
900 | name = "performance-now"; | |
|
901 | packageName = "performance-now"; | |
|
902 | version = "2.1.0"; | |
|
903 | src = fetchurl { | |
|
904 | url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; | |
|
905 | sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; | |
|
906 | }; | |
|
907 | }; | |
|
908 | "qs-6.5.1" = { | |
|
909 | name = "qs"; | |
|
910 | packageName = "qs"; | |
|
911 | version = "6.5.1"; | |
|
912 | src = fetchurl { | |
|
913 | url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz"; | |
|
914 | sha1 = "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"; | |
|
915 | }; | |
|
916 | }; | |
|
917 | "safe-buffer-5.1.1" = { | |
|
918 | name = "safe-buffer"; | |
|
919 | packageName = "safe-buffer"; | |
|
920 | version = "5.1.1"; | |
|
921 | src = fetchurl { | |
|
922 | url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"; | |
|
923 | sha1 = "893312af69b2123def71f57889001671eeb2c853"; | |
|
924 | }; | |
|
925 | }; | |
|
926 | "stringstream-0.0.5" = { | |
|
927 | name = "stringstream"; | |
|
928 | packageName = "stringstream"; | |
|
929 | version = "0.0.5"; | |
|
930 | src = fetchurl { | |
|
931 | url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"; | |
|
932 | sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878"; | |
|
933 | }; | |
|
934 | }; | |
|
935 | "tough-cookie-2.3.3" = { | |
|
936 | name = "tough-cookie"; | |
|
937 | packageName = "tough-cookie"; | |
|
938 | version = "2.3.3"; | |
|
939 | src = fetchurl { | |
|
940 | url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz"; | |
|
941 | sha1 = "0b618a5565b6dea90bf3425d04d55edc475a7561"; | |
|
942 | }; | |
|
943 | }; | |
|
944 | "tunnel-agent-0.6.0" = { | |
|
945 | name = "tunnel-agent"; | |
|
946 | packageName = "tunnel-agent"; | |
|
947 | version = "0.6.0"; | |
|
948 | src = fetchurl { | |
|
949 | url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; | |
|
950 | sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; | |
|
951 | }; | |
|
952 | }; | |
|
953 | "uuid-3.1.0" = { | |
|
954 | name = "uuid"; | |
|
955 | packageName = "uuid"; | |
|
956 | version = "3.1.0"; | |
|
957 | src = fetchurl { | |
|
958 | url = "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"; | |
|
959 | sha1 = "3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"; | |
|
960 | }; | |
|
961 | }; | |
|
962 | "delayed-stream-1.0.0" = { | |
|
963 | name = "delayed-stream"; | |
|
964 | packageName = "delayed-stream"; | |
|
965 | version = "1.0.0"; | |
|
966 | src = fetchurl { | |
|
967 | url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; | |
|
968 | sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; | |
|
969 | }; | |
|
970 | }; | |
|
971 | "asynckit-0.4.0" = { | |
|
972 | name = "asynckit"; | |
|
973 | packageName = "asynckit"; | |
|
974 | version = "0.4.0"; | |
|
975 | src = fetchurl { | |
|
976 | url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; | |
|
977 | sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; | |
|
978 | }; | |
|
979 | }; | |
|
980 | "ajv-5.2.2" = { | |
|
981 | name = "ajv"; | |
|
982 | packageName = "ajv"; | |
|
983 | version = "5.2.2"; | |
|
984 | src = fetchurl { | |
|
985 | url = "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz"; | |
|
986 | sha1 = "47c68d69e86f5d953103b0074a9430dc63da5e39"; | |
|
987 | }; | |
|
988 | }; | |
|
989 | "har-schema-2.0.0" = { | |
|
990 | name = "har-schema"; | |
|
991 | packageName = "har-schema"; | |
|
992 | version = "2.0.0"; | |
|
705 | 993 | src = fetchurl { |
|
706 |
url = "https://registry.npmjs.org/asa |
|
|
707 | sha1 = "522765b50c3510490e52d7dcfe085ef9ba96958f"; | |
|
994 | url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; | |
|
995 | sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; | |
|
996 | }; | |
|
997 | }; | |
|
998 | "co-4.6.0" = { | |
|
999 | name = "co"; | |
|
1000 | packageName = "co"; | |
|
1001 | version = "4.6.0"; | |
|
1002 | src = fetchurl { | |
|
1003 | url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz"; | |
|
1004 | sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"; | |
|
1005 | }; | |
|
1006 | }; | |
|
1007 | "fast-deep-equal-1.0.0" = { | |
|
1008 | name = "fast-deep-equal"; | |
|
1009 | packageName = "fast-deep-equal"; | |
|
1010 | version = "1.0.0"; | |
|
1011 | src = fetchurl { | |
|
1012 | url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz"; | |
|
1013 | sha1 = "96256a3bc975595eb36d82e9929d060d893439ff"; | |
|
1014 | }; | |
|
1015 | }; | |
|
1016 | "json-schema-traverse-0.3.1" = { | |
|
1017 | name = "json-schema-traverse"; | |
|
1018 | packageName = "json-schema-traverse"; | |
|
1019 | version = "0.3.1"; | |
|
1020 | src = fetchurl { | |
|
1021 | url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz"; | |
|
1022 | sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340"; | |
|
1023 | }; | |
|
1024 | }; | |
|
1025 | "json-stable-stringify-1.0.1" = { | |
|
1026 | name = "json-stable-stringify"; | |
|
1027 | packageName = "json-stable-stringify"; | |
|
1028 | version = "1.0.1"; | |
|
1029 | src = fetchurl { | |
|
1030 | url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"; | |
|
1031 | sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af"; | |
|
1032 | }; | |
|
1033 | }; | |
|
1034 | "jsonify-0.0.0" = { | |
|
1035 | name = "jsonify"; | |
|
1036 | packageName = "jsonify"; | |
|
1037 | version = "0.0.0"; | |
|
1038 | src = fetchurl { | |
|
1039 | url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"; | |
|
1040 | sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; | |
|
1041 | }; | |
|
1042 | }; | |
|
1043 | "hoek-4.2.0" = { | |
|
1044 | name = "hoek"; | |
|
1045 | packageName = "hoek"; | |
|
1046 | version = "4.2.0"; | |
|
1047 | src = fetchurl { | |
|
1048 | url = "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz"; | |
|
1049 | sha1 = "72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"; | |
|
1050 | }; | |
|
1051 | }; | |
|
1052 | "boom-4.3.1" = { | |
|
1053 | name = "boom"; | |
|
1054 | packageName = "boom"; | |
|
1055 | version = "4.3.1"; | |
|
1056 | src = fetchurl { | |
|
1057 | url = "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz"; | |
|
1058 | sha1 = "4f8a3005cb4a7e3889f749030fd25b96e01d2e31"; | |
|
1059 | }; | |
|
1060 | }; | |
|
1061 | "cryptiles-3.1.2" = { | |
|
1062 | name = "cryptiles"; | |
|
1063 | packageName = "cryptiles"; | |
|
1064 | version = "3.1.2"; | |
|
1065 | src = fetchurl { | |
|
1066 | url = "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz"; | |
|
1067 | sha1 = "a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"; | |
|
1068 | }; | |
|
1069 | }; | |
|
1070 | "sntp-2.0.2" = { | |
|
1071 | name = "sntp"; | |
|
1072 | packageName = "sntp"; | |
|
1073 | version = "2.0.2"; | |
|
1074 | src = fetchurl { | |
|
1075 | url = "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz"; | |
|
1076 | sha1 = "5064110f0af85f7cfdb7d6b67a40028ce52b4b2b"; | |
|
1077 | }; | |
|
1078 | }; | |
|
1079 | "boom-5.2.0" = { | |
|
1080 | name = "boom"; | |
|
1081 | packageName = "boom"; | |
|
1082 | version = "5.2.0"; | |
|
1083 | src = fetchurl { | |
|
1084 | url = "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz"; | |
|
1085 | sha1 = "5dd9da6ee3a5f302077436290cb717d3f4a54e02"; | |
|
1086 | }; | |
|
1087 | }; | |
|
1088 | "assert-plus-1.0.0" = { | |
|
1089 | name = "assert-plus"; | |
|
1090 | packageName = "assert-plus"; | |
|
1091 | version = "1.0.0"; | |
|
1092 | src = fetchurl { | |
|
1093 | url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; | |
|
1094 | sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; | |
|
1095 | }; | |
|
1096 | }; | |
|
1097 | "jsprim-1.4.1" = { | |
|
1098 | name = "jsprim"; | |
|
1099 | packageName = "jsprim"; | |
|
1100 | version = "1.4.1"; | |
|
1101 | src = fetchurl { | |
|
1102 | url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; | |
|
1103 | sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; | |
|
1104 | }; | |
|
1105 | }; | |
|
1106 | "sshpk-1.13.1" = { | |
|
1107 | name = "sshpk"; | |
|
1108 | packageName = "sshpk"; | |
|
1109 | version = "1.13.1"; | |
|
1110 | src = fetchurl { | |
|
1111 | url = "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz"; | |
|
1112 | sha1 = "512df6da6287144316dc4c18fe1cf1d940739be3"; | |
|
1113 | }; | |
|
1114 | }; | |
|
1115 | "extsprintf-1.3.0" = { | |
|
1116 | name = "extsprintf"; | |
|
1117 | packageName = "extsprintf"; | |
|
1118 | version = "1.3.0"; | |
|
1119 | src = fetchurl { | |
|
1120 | url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; | |
|
1121 | sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; | |
|
1122 | }; | |
|
1123 | }; | |
|
1124 | "json-schema-0.2.3" = { | |
|
1125 | name = "json-schema"; | |
|
1126 | packageName = "json-schema"; | |
|
1127 | version = "0.2.3"; | |
|
1128 | src = fetchurl { | |
|
1129 | url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; | |
|
1130 | sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; | |
|
1131 | }; | |
|
1132 | }; | |
|
1133 | "verror-1.10.0" = { | |
|
1134 | name = "verror"; | |
|
1135 | packageName = "verror"; | |
|
1136 | version = "1.10.0"; | |
|
1137 | src = fetchurl { | |
|
1138 | url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; | |
|
1139 | sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; | |
|
1140 | }; | |
|
1141 | }; | |
|
1142 | "core-util-is-1.0.2" = { | |
|
1143 | name = "core-util-is"; | |
|
1144 | packageName = "core-util-is"; | |
|
1145 | version = "1.0.2"; | |
|
1146 | src = fetchurl { | |
|
1147 | url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; | |
|
1148 | sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; | |
|
1149 | }; | |
|
1150 | }; | |
|
1151 | "asn1-0.2.3" = { | |
|
1152 | name = "asn1"; | |
|
1153 | packageName = "asn1"; | |
|
1154 | version = "0.2.3"; | |
|
1155 | src = fetchurl { | |
|
1156 | url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"; | |
|
1157 | sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86"; | |
|
1158 | }; | |
|
1159 | }; | |
|
1160 | "dashdash-1.14.1" = { | |
|
1161 | name = "dashdash"; | |
|
1162 | packageName = "dashdash"; | |
|
1163 | version = "1.14.1"; | |
|
1164 | src = fetchurl { | |
|
1165 | url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; | |
|
1166 | sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; | |
|
1167 | }; | |
|
1168 | }; | |
|
1169 | "getpass-0.1.7" = { | |
|
1170 | name = "getpass"; | |
|
1171 | packageName = "getpass"; | |
|
1172 | version = "0.1.7"; | |
|
1173 | src = fetchurl { | |
|
1174 | url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; | |
|
1175 | sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; | |
|
1176 | }; | |
|
1177 | }; | |
|
1178 | "jsbn-0.1.1" = { | |
|
1179 | name = "jsbn"; | |
|
1180 | packageName = "jsbn"; | |
|
1181 | version = "0.1.1"; | |
|
1182 | src = fetchurl { | |
|
1183 | url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; | |
|
1184 | sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; | |
|
1185 | }; | |
|
1186 | }; | |
|
1187 | "tweetnacl-0.14.5" = { | |
|
1188 | name = "tweetnacl"; | |
|
1189 | packageName = "tweetnacl"; | |
|
1190 | version = "0.14.5"; | |
|
1191 | src = fetchurl { | |
|
1192 | url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; | |
|
1193 | sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; | |
|
1194 | }; | |
|
1195 | }; | |
|
1196 | "ecc-jsbn-0.1.1" = { | |
|
1197 | name = "ecc-jsbn"; | |
|
1198 | packageName = "ecc-jsbn"; | |
|
1199 | version = "0.1.1"; | |
|
1200 | src = fetchurl { | |
|
1201 | url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"; | |
|
1202 | sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505"; | |
|
1203 | }; | |
|
1204 | }; | |
|
1205 | "bcrypt-pbkdf-1.0.1" = { | |
|
1206 | name = "bcrypt-pbkdf"; | |
|
1207 | packageName = "bcrypt-pbkdf"; | |
|
1208 | version = "1.0.1"; | |
|
1209 | src = fetchurl { | |
|
1210 | url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"; | |
|
1211 | sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d"; | |
|
1212 | }; | |
|
1213 | }; | |
|
1214 | "mime-db-1.30.0" = { | |
|
1215 | name = "mime-db"; | |
|
1216 | packageName = "mime-db"; | |
|
1217 | version = "1.30.0"; | |
|
1218 | src = fetchurl { | |
|
1219 | url = "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz"; | |
|
1220 | sha1 = "74c643da2dd9d6a45399963465b26d5ca7d71f01"; | |
|
1221 | }; | |
|
1222 | }; | |
|
1223 | "punycode-1.4.1" = { | |
|
1224 | name = "punycode"; | |
|
1225 | packageName = "punycode"; | |
|
1226 | version = "1.4.1"; | |
|
1227 | src = fetchurl { | |
|
1228 | url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; | |
|
1229 | sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; | |
|
708 | 1230 | }; |
|
709 | 1231 | }; |
|
710 | 1232 | "gaze-0.5.2" = { |
@@ -797,13 +1319,22 b' let' | |||
|
797 | 1319 | sha1 = "ca7416f20a5e3f9c3b86180f96295fa3d0b52e0d"; |
|
798 | 1320 | }; |
|
799 | 1321 | }; |
|
800 |
"command-line-args- |
|
|
1322 | "command-line-args-3.0.5" = { | |
|
801 | 1323 | name = "command-line-args"; |
|
802 | 1324 | packageName = "command-line-args"; |
|
803 |
version = " |
|
|
1325 | version = "3.0.5"; | |
|
804 | 1326 | src = fetchurl { |
|
805 |
url = "https://registry.npmjs.org/command-line-args/-/command-line-args- |
|
|
806 | sha1 = "f197d6eaff34c9085577484b2864375b294f5697"; | |
|
1327 | url = "https://registry.npmjs.org/command-line-args/-/command-line-args-3.0.5.tgz"; | |
|
1328 | sha1 = "5bd4ad45e7983e5c1344918e40280ee2693c5ac0"; | |
|
1329 | }; | |
|
1330 | }; | |
|
1331 | "command-line-usage-3.0.8" = { | |
|
1332 | name = "command-line-usage"; | |
|
1333 | packageName = "command-line-usage"; | |
|
1334 | version = "3.0.8"; | |
|
1335 | src = fetchurl { | |
|
1336 | url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-3.0.8.tgz"; | |
|
1337 | sha1 = "b6a20978c1b383477f5c11a529428b880bfe0f4d"; | |
|
807 | 1338 | }; |
|
808 | 1339 | }; |
|
809 | 1340 | "dom5-1.3.6" = { |
@@ -815,31 +1346,13 b' let' | |||
|
815 | 1346 | sha1 = "a7088a9fc5f3b08dc9f6eda4c7abaeb241945e0d"; |
|
816 | 1347 | }; |
|
817 | 1348 | }; |
|
818 |
"array-back-1.0. |
|
|
1349 | "array-back-1.0.4" = { | |
|
819 | 1350 | name = "array-back"; |
|
820 | 1351 | packageName = "array-back"; |
|
821 |
version = "1.0. |
|
|
822 | src = fetchurl { | |
|
823 | url = "https://registry.npmjs.org/array-back/-/array-back-1.0.3.tgz"; | |
|
824 | sha1 = "f1128a5cf1b91c80bed4a218f8c5b635c8b10663"; | |
|
825 | }; | |
|
826 | }; | |
|
827 | "command-line-usage-2.0.5" = { | |
|
828 | name = "command-line-usage"; | |
|
829 | packageName = "command-line-usage"; | |
|
830 | version = "2.0.5"; | |
|
1352 | version = "1.0.4"; | |
|
831 | 1353 | src = fetchurl { |
|
832 |
url = "https://registry.npmjs.org/c |
|
|
833 | sha1 = "f80c35ca5e8624841923ea3be3b9bfbf4f7be27b"; | |
|
834 | }; | |
|
835 | }; | |
|
836 | "core-js-2.4.1" = { | |
|
837 | name = "core-js"; | |
|
838 | packageName = "core-js"; | |
|
839 | version = "2.4.1"; | |
|
840 | src = fetchurl { | |
|
841 | url = "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"; | |
|
842 | sha1 = "4de911e667b0eae9124e34254b53aea6fc618d3e"; | |
|
1354 | url = "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz"; | |
|
1355 | sha1 = "644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b"; | |
|
843 | 1356 | }; |
|
844 | 1357 | }; |
|
845 | 1358 | "feature-detect-es6-1.3.1" = { |
@@ -851,139 +1364,22 b' let' | |||
|
851 | 1364 | sha1 = "f888736af9cb0c91f55663bfa4762eb96ee7047f"; |
|
852 | 1365 | }; |
|
853 | 1366 | }; |
|
854 |
"find-replace-1.0. |
|
|
1367 | "find-replace-1.0.3" = { | |
|
855 | 1368 | name = "find-replace"; |
|
856 | 1369 | packageName = "find-replace"; |
|
857 |
version = "1.0. |
|
|
858 | src = fetchurl { | |
|
859 | url = "https://registry.npmjs.org/find-replace/-/find-replace-1.0.2.tgz"; | |
|
860 | sha1 = "a2d6ce740d15f0d92b1b26763e2ce9c0e361fd98"; | |
|
861 | }; | |
|
862 | }; | |
|
863 | "typical-2.6.0" = { | |
|
864 | name = "typical"; | |
|
865 | packageName = "typical"; | |
|
866 | version = "2.6.0"; | |
|
867 | src = fetchurl { | |
|
868 | url = "https://registry.npmjs.org/typical/-/typical-2.6.0.tgz"; | |
|
869 | sha1 = "89d51554ab139848a65bcc2c8772f8fb450c40ed"; | |
|
870 | }; | |
|
871 | }; | |
|
872 | "ansi-escape-sequences-2.2.2" = { | |
|
873 | name = "ansi-escape-sequences"; | |
|
874 | packageName = "ansi-escape-sequences"; | |
|
875 | version = "2.2.2"; | |
|
876 | src = fetchurl { | |
|
877 | url = "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-2.2.2.tgz"; | |
|
878 | sha1 = "174c78d6f8b7de75f8957ae81c7f72210c701635"; | |
|
879 | }; | |
|
880 | }; | |
|
881 | "column-layout-2.1.4" = { | |
|
882 | name = "column-layout"; | |
|
883 | packageName = "column-layout"; | |
|
884 | version = "2.1.4"; | |
|
1370 | version = "1.0.3"; | |
|
885 | 1371 | src = fetchurl { |
|
886 |
url = "https://registry.npmjs.org/ |
|
|
887 | sha1 = "ed2857092ccf8338026fe538379d9672d70b3641"; | |
|
888 | }; | |
|
889 | }; | |
|
890 | "wordwrapjs-1.2.1" = { | |
|
891 | name = "wordwrapjs"; | |
|
892 | packageName = "wordwrapjs"; | |
|
893 | version = "1.2.1"; | |
|
894 | src = fetchurl { | |
|
895 | url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-1.2.1.tgz"; | |
|
896 | sha1 = "754a5ea0664cfbff50540dc32d67bda3289fc34b"; | |
|
897 | }; | |
|
898 | }; | |
|
899 | "collect-all-0.2.1" = { | |
|
900 | name = "collect-all"; | |
|
901 | packageName = "collect-all"; | |
|
902 | version = "0.2.1"; | |
|
903 | src = fetchurl { | |
|
904 | url = "https://registry.npmjs.org/collect-all/-/collect-all-0.2.1.tgz"; | |
|
905 | sha1 = "7225fb4585c22d4ffac886f0abaf5abc563a1a6a"; | |
|
906 | }; | |
|
907 | }; | |
|
908 | "stream-connect-1.0.2" = { | |
|
909 | name = "stream-connect"; | |
|
910 | packageName = "stream-connect"; | |
|
911 | version = "1.0.2"; | |
|
912 | src = fetchurl { | |
|
913 | url = "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz"; | |
|
914 | sha1 = "18bc81f2edb35b8b5d9a8009200a985314428a97"; | |
|
1372 | url = "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz"; | |
|
1373 | sha1 = "b88e7364d2d9c959559f388c66670d6130441fa0"; | |
|
915 | 1374 | }; |
|
916 | 1375 | }; |
|
917 |
" |
|
|
918 |
name = " |
|
|
919 |
packageName = " |
|
|
920 |
version = " |
|
|
921 | src = fetchurl { | |
|
922 | url = "https://registry.npmjs.org/stream-via/-/stream-via-0.1.1.tgz"; | |
|
923 | sha1 = "0cee5df9c959fb1d3f4eda4819f289d5f9205afc"; | |
|
924 | }; | |
|
925 | }; | |
|
926 | "collect-json-1.0.8" = { | |
|
927 | name = "collect-json"; | |
|
928 | packageName = "collect-json"; | |
|
929 | version = "1.0.8"; | |
|
930 | src = fetchurl { | |
|
931 | url = "https://registry.npmjs.org/collect-json/-/collect-json-1.0.8.tgz"; | |
|
932 | sha1 = "aa2fa52b4d1d9444ce690f07a1e3617ab74bb827"; | |
|
933 | }; | |
|
934 | }; | |
|
935 | "deep-extend-0.4.1" = { | |
|
936 | name = "deep-extend"; | |
|
937 | packageName = "deep-extend"; | |
|
938 | version = "0.4.1"; | |
|
939 | src = fetchurl { | |
|
940 | url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz"; | |
|
941 | sha1 = "efe4113d08085f4e6f9687759810f807469e2253"; | |
|
942 | }; | |
|
943 | }; | |
|
944 | "object-tools-2.0.6" = { | |
|
945 | name = "object-tools"; | |
|
946 | packageName = "object-tools"; | |
|
947 | version = "2.0.6"; | |
|
1376 | "typical-2.6.1" = { | |
|
1377 | name = "typical"; | |
|
1378 | packageName = "typical"; | |
|
1379 | version = "2.6.1"; | |
|
948 | 1380 | src = fetchurl { |
|
949 |
url = "https://registry.npmjs.org/ |
|
|
950 | sha1 = "f3fe1c350cda4a6f5d99d9646dc4892a02476ddd"; | |
|
951 | }; | |
|
952 | }; | |
|
953 | "collect-all-1.0.2" = { | |
|
954 | name = "collect-all"; | |
|
955 | packageName = "collect-all"; | |
|
956 | version = "1.0.2"; | |
|
957 | src = fetchurl { | |
|
958 | url = "https://registry.npmjs.org/collect-all/-/collect-all-1.0.2.tgz"; | |
|
959 | sha1 = "39450f1e7aa6086570a006bce93ccf1218a77ea1"; | |
|
960 | }; | |
|
961 | }; | |
|
962 | "stream-via-1.0.3" = { | |
|
963 | name = "stream-via"; | |
|
964 | packageName = "stream-via"; | |
|
965 | version = "1.0.3"; | |
|
966 | src = fetchurl { | |
|
967 | url = "https://registry.npmjs.org/stream-via/-/stream-via-1.0.3.tgz"; | |
|
968 | sha1 = "cebd32a5a59d74b3b68e3404942e867184ad4ac9"; | |
|
969 | }; | |
|
970 | }; | |
|
971 | "object-get-2.1.0" = { | |
|
972 | name = "object-get"; | |
|
973 | packageName = "object-get"; | |
|
974 | version = "2.1.0"; | |
|
975 | src = fetchurl { | |
|
976 | url = "https://registry.npmjs.org/object-get/-/object-get-2.1.0.tgz"; | |
|
977 | sha1 = "722bbdb60039efa47cad3c6dc2ce51a85c02c5ae"; | |
|
978 | }; | |
|
979 | }; | |
|
980 | "test-value-1.1.0" = { | |
|
981 | name = "test-value"; | |
|
982 | packageName = "test-value"; | |
|
983 | version = "1.1.0"; | |
|
984 | src = fetchurl { | |
|
985 | url = "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz"; | |
|
986 | sha1 = "a09136f72ec043d27c893707c2b159bfad7de93f"; | |
|
1381 | url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz"; | |
|
1382 | sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d"; | |
|
987 | 1383 | }; |
|
988 | 1384 | }; |
|
989 | 1385 | "test-value-2.1.0" = { |
@@ -995,6 +1391,60 b' let' | |||
|
995 | 1391 | sha1 = "11da6ff670f3471a73b625ca4f3fdcf7bb748291"; |
|
996 | 1392 | }; |
|
997 | 1393 | }; |
|
1394 | "ansi-escape-sequences-3.0.0" = { | |
|
1395 | name = "ansi-escape-sequences"; | |
|
1396 | packageName = "ansi-escape-sequences"; | |
|
1397 | version = "3.0.0"; | |
|
1398 | src = fetchurl { | |
|
1399 | url = "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-3.0.0.tgz"; | |
|
1400 | sha1 = "1c18394b6af9b76ff9a63509fa497669fd2ce53e"; | |
|
1401 | }; | |
|
1402 | }; | |
|
1403 | "table-layout-0.3.0" = { | |
|
1404 | name = "table-layout"; | |
|
1405 | packageName = "table-layout"; | |
|
1406 | version = "0.3.0"; | |
|
1407 | src = fetchurl { | |
|
1408 | url = "https://registry.npmjs.org/table-layout/-/table-layout-0.3.0.tgz"; | |
|
1409 | sha1 = "6ee20dc483db371b3e5c87f704ed2f7c799d2c9a"; | |
|
1410 | }; | |
|
1411 | }; | |
|
1412 | "core-js-2.5.1" = { | |
|
1413 | name = "core-js"; | |
|
1414 | packageName = "core-js"; | |
|
1415 | version = "2.5.1"; | |
|
1416 | src = fetchurl { | |
|
1417 | url = "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz"; | |
|
1418 | sha1 = "ae6874dc66937789b80754ff5428df66819ca50b"; | |
|
1419 | }; | |
|
1420 | }; | |
|
1421 | "deep-extend-0.4.2" = { | |
|
1422 | name = "deep-extend"; | |
|
1423 | packageName = "deep-extend"; | |
|
1424 | version = "0.4.2"; | |
|
1425 | src = fetchurl { | |
|
1426 | url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz"; | |
|
1427 | sha1 = "48b699c27e334bf89f10892be432f6e4c7d34a7f"; | |
|
1428 | }; | |
|
1429 | }; | |
|
1430 | "wordwrapjs-2.0.0" = { | |
|
1431 | name = "wordwrapjs"; | |
|
1432 | packageName = "wordwrapjs"; | |
|
1433 | version = "2.0.0"; | |
|
1434 | src = fetchurl { | |
|
1435 | url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-2.0.0.tgz"; | |
|
1436 | sha1 = "ab55f695e6118da93858fdd70c053d1c5e01ac20"; | |
|
1437 | }; | |
|
1438 | }; | |
|
1439 | "reduce-flatten-1.0.1" = { | |
|
1440 | name = "reduce-flatten"; | |
|
1441 | packageName = "reduce-flatten"; | |
|
1442 | version = "1.0.1"; | |
|
1443 | src = fetchurl { | |
|
1444 | url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz"; | |
|
1445 | sha1 = "258c78efd153ddf93cb561237f61184f3696e327"; | |
|
1446 | }; | |
|
1447 | }; | |
|
998 | 1448 | "@types/clone-0.1.30" = { |
|
999 | 1449 | name = "@types/clone"; |
|
1000 | 1450 | packageName = "@types/clone"; |
@@ -1004,13 +1454,13 b' let' | |||
|
1004 | 1454 | sha1 = "e7365648c1b42136a59c7d5040637b3b5c83b614"; |
|
1005 | 1455 | }; |
|
1006 | 1456 | }; |
|
1007 |
"@types/node-4. |
|
|
1457 | "@types/node-4.2.20" = { | |
|
1008 | 1458 | name = "@types/node"; |
|
1009 | 1459 | packageName = "@types/node"; |
|
1010 |
version = "4. |
|
|
1460 | version = "4.2.20"; | |
|
1011 | 1461 | src = fetchurl { |
|
1012 |
url = "https://registry.npmjs.org/@types/node/-/node-4. |
|
|
1013 | sha1 = "553f490ed3030311620f88003e7abfc0edcb301e"; | |
|
1462 | url = "https://registry.npmjs.org/@types/node/-/node-4.2.20.tgz"; | |
|
1463 | sha1 = "3f7dceff43e07cfff4407fc3495d98a533b32267"; | |
|
1014 | 1464 | }; |
|
1015 | 1465 | }; |
|
1016 | 1466 | "@types/parse5-0.0.31" = { |
@@ -1040,13 +1490,13 b' let' | |||
|
1040 | 1490 | sha1 = "9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"; |
|
1041 | 1491 | }; |
|
1042 | 1492 | }; |
|
1043 |
"@types/node-6.0. |
|
|
1493 | "@types/node-6.0.88" = { | |
|
1044 | 1494 | name = "@types/node"; |
|
1045 | 1495 | packageName = "@types/node"; |
|
1046 |
version = "6.0. |
|
|
1496 | version = "6.0.88"; | |
|
1047 | 1497 | src = fetchurl { |
|
1048 |
url = "https://registry.npmjs.org/@types/node/-/node-6.0. |
|
|
1049 | sha1 = "578cf53aaec65887bcaf16792f8722932e8ff8ea"; | |
|
1498 | url = "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz"; | |
|
1499 | sha1 = "f618f11a944f6a18d92b5c472028728a3e3d4b66"; | |
|
1050 | 1500 | }; |
|
1051 | 1501 | }; |
|
1052 | 1502 | "es6-promise-2.3.0" = { |
@@ -1058,13 +1508,13 b' let' | |||
|
1058 | 1508 | sha1 = "96edb9f2fdb01995822b263dd8aadab6748181bc"; |
|
1059 | 1509 | }; |
|
1060 | 1510 | }; |
|
1061 |
"hydrolysis-1.2 |
|
|
1511 | "hydrolysis-1.25.0" = { | |
|
1062 | 1512 | name = "hydrolysis"; |
|
1063 | 1513 | packageName = "hydrolysis"; |
|
1064 |
version = "1.2 |
|
|
1514 | version = "1.25.0"; | |
|
1065 | 1515 | src = fetchurl { |
|
1066 |
url = "https://registry.npmjs.org/hydrolysis/-/hydrolysis-1.2 |
|
|
1067 | sha1 = "0f94f055d1065ac0d81ff40b762d143fef07eff4"; | |
|
1516 | url = "https://registry.npmjs.org/hydrolysis/-/hydrolysis-1.25.0.tgz"; | |
|
1517 | sha1 = "a4fb14a37a1e03b0db52d8aaa57c682272a14d84"; | |
|
1068 | 1518 | }; |
|
1069 | 1519 | }; |
|
1070 | 1520 | "nopt-3.0.6" = { |
@@ -1085,22 +1535,22 b' let' | |||
|
1085 | 1535 | sha1 = "06b26113f56beab042545a23bfa88003ccac260f"; |
|
1086 | 1536 | }; |
|
1087 | 1537 | }; |
|
1088 | "update-notifier-0.6.3" = { | |
|
1089 |
name = " |
|
|
1090 |
packageName = " |
|
|
1091 |
version = " |
|
|
1538 | "acorn-3.3.0" = { | |
|
1539 | name = "acorn"; | |
|
1540 | packageName = "acorn"; | |
|
1541 | version = "3.3.0"; | |
|
1092 | 1542 | src = fetchurl { |
|
1093 |
url = "https://registry.npmjs.org/ |
|
|
1094 | sha1 = "776dec8daa13e962a341e8a1d98354306b67ae08"; | |
|
1543 | url = "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"; | |
|
1544 | sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a"; | |
|
1095 | 1545 | }; |
|
1096 | 1546 | }; |
|
1097 |
"babel-polyfill-6. |
|
|
1547 | "babel-polyfill-6.26.0" = { | |
|
1098 | 1548 | name = "babel-polyfill"; |
|
1099 | 1549 | packageName = "babel-polyfill"; |
|
1100 |
version = "6. |
|
|
1550 | version = "6.26.0"; | |
|
1101 | 1551 | src = fetchurl { |
|
1102 |
url = "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6. |
|
|
1103 | sha1 = "5978215c25d49a697eb78afc54e63c9d3a73d5ec"; | |
|
1552 | url = "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz"; | |
|
1553 | sha1 = "379937abc67d7895970adc621f284cd966cf2153"; | |
|
1104 | 1554 | }; |
|
1105 | 1555 | }; |
|
1106 | 1556 | "doctrine-0.7.2" = { |
@@ -1112,22 +1562,31 b' let' | |||
|
1112 | 1562 | sha1 = "7cb860359ba3be90e040b26b729ce4bfa654c523"; |
|
1113 | 1563 | }; |
|
1114 | 1564 | }; |
|
1115 |
" |
|
|
1565 | "dom5-1.1.0" = { | |
|
1566 | name = "dom5"; | |
|
1567 | packageName = "dom5"; | |
|
1568 | version = "1.1.0"; | |
|
1569 | src = fetchurl { | |
|
1570 | url = "https://registry.npmjs.org/dom5/-/dom5-1.1.0.tgz"; | |
|
1571 | sha1 = "3a0c7700c083ab4c4d26938a78b0f0c6dcc37794"; | |
|
1572 | }; | |
|
1573 | }; | |
|
1574 | "escodegen-1.9.0" = { | |
|
1116 | 1575 | name = "escodegen"; |
|
1117 | 1576 | packageName = "escodegen"; |
|
1118 |
version = "1. |
|
|
1577 | version = "1.9.0"; | |
|
1119 | 1578 | src = fetchurl { |
|
1120 |
url = "https://registry.npmjs.org/escodegen/-/escodegen-1. |
|
|
1121 | sha1 = "5a5b53af4693110bebb0867aa3430dd3b70a1018"; | |
|
1579 | url = "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz"; | |
|
1580 | sha1 = "9811a2f265dc1cd3894420ee3717064b632b8852"; | |
|
1122 | 1581 | }; |
|
1123 | 1582 | }; |
|
1124 |
"espree-3. |
|
|
1583 | "espree-3.5.1" = { | |
|
1125 | 1584 | name = "espree"; |
|
1126 | 1585 | packageName = "espree"; |
|
1127 |
version = "3. |
|
|
1586 | version = "3.5.1"; | |
|
1128 | 1587 | src = fetchurl { |
|
1129 |
url = "https://registry.npmjs.org/espree/-/espree-3. |
|
|
1130 | sha1 = "42107376856738a65ff3b5877f3a58bd52497643"; | |
|
1588 | url = "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz"; | |
|
1589 | sha1 = "0c988b8ab46db53100a1954ae4ba995ddd27d87e"; | |
|
1131 | 1590 | }; |
|
1132 | 1591 | }; |
|
1133 | 1592 | "estraverse-3.1.0" = { |
@@ -1139,31 +1598,40 b' let' | |||
|
1139 | 1598 | sha1 = "15e28a446b8b82bc700ccc8b96c78af4da0d6cba"; |
|
1140 | 1599 | }; |
|
1141 | 1600 | }; |
|
1142 |
"path-is-absolute-1.0. |
|
|
1601 | "path-is-absolute-1.0.1" = { | |
|
1143 | 1602 | name = "path-is-absolute"; |
|
1144 | 1603 | packageName = "path-is-absolute"; |
|
1145 |
version = "1.0. |
|
|
1604 | version = "1.0.1"; | |
|
1146 | 1605 | src = fetchurl { |
|
1147 |
url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0. |
|
|
1148 | sha1 = "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912"; | |
|
1606 | url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; | |
|
1607 | sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; | |
|
1149 | 1608 | }; |
|
1150 | 1609 | }; |
|
1151 |
"babel-runtime-6. |
|
|
1610 | "babel-runtime-6.26.0" = { | |
|
1152 | 1611 | name = "babel-runtime"; |
|
1153 | 1612 | packageName = "babel-runtime"; |
|
1154 |
version = "6. |
|
|
1613 | version = "6.26.0"; | |
|
1155 | 1614 | src = fetchurl { |
|
1156 |
url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6. |
|
|
1157 | sha1 = "6db707fef2d49c49bfa3cb64efdb436b518b8222"; | |
|
1615 | url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"; | |
|
1616 | sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe"; | |
|
1158 | 1617 | }; |
|
1159 | 1618 | }; |
|
1160 |
"regenerator-runtime-0. |
|
|
1619 | "regenerator-runtime-0.10.5" = { | |
|
1161 | 1620 | name = "regenerator-runtime"; |
|
1162 | 1621 | packageName = "regenerator-runtime"; |
|
1163 |
version = "0. |
|
|
1622 | version = "0.10.5"; | |
|
1164 | 1623 | src = fetchurl { |
|
1165 |
url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0. |
|
|
1166 | sha1 = "403d6d40a4bdff9c330dd9392dcbb2d9a8bba1fc"; | |
|
1624 | url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz"; | |
|
1625 | sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658"; | |
|
1626 | }; | |
|
1627 | }; | |
|
1628 | "regenerator-runtime-0.11.0" = { | |
|
1629 | name = "regenerator-runtime"; | |
|
1630 | packageName = "regenerator-runtime"; | |
|
1631 | version = "0.11.0"; | |
|
1632 | src = fetchurl { | |
|
1633 | url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz"; | |
|
1634 | sha1 = "7e54fe5b5ccd5d6624ea6255c3473be090b802e1"; | |
|
1167 | 1635 | }; |
|
1168 | 1636 | }; |
|
1169 | 1637 | "esutils-1.1.6" = { |
@@ -1184,13 +1652,13 b' let' | |||
|
1184 | 1652 | sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; |
|
1185 | 1653 | }; |
|
1186 | 1654 | }; |
|
1187 |
"estraverse- |
|
|
1655 | "estraverse-4.2.0" = { | |
|
1188 | 1656 | name = "estraverse"; |
|
1189 | 1657 | packageName = "estraverse"; |
|
1190 |
version = " |
|
|
1658 | version = "4.2.0"; | |
|
1191 | 1659 | src = fetchurl { |
|
1192 |
url = "https://registry.npmjs.org/estraverse/-/estraverse- |
|
|
1193 | sha1 = "af67f2dc922582415950926091a4005d29c9bb44"; | |
|
1660 | url = "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"; | |
|
1661 | sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13"; | |
|
1194 | 1662 | }; |
|
1195 | 1663 | }; |
|
1196 | 1664 | "esutils-2.0.2" = { |
@@ -1202,13 +1670,13 b' let' | |||
|
1202 | 1670 | sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"; |
|
1203 | 1671 | }; |
|
1204 | 1672 | }; |
|
1205 |
"esprima- |
|
|
1673 | "esprima-3.1.3" = { | |
|
1206 | 1674 | name = "esprima"; |
|
1207 | 1675 | packageName = "esprima"; |
|
1208 |
version = " |
|
|
1676 | version = "3.1.3"; | |
|
1209 | 1677 | src = fetchurl { |
|
1210 |
url = "https://registry.npmjs.org/esprima/-/esprima- |
|
|
1211 | sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581"; | |
|
1678 | url = "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"; | |
|
1679 | sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633"; | |
|
1212 | 1680 | }; |
|
1213 | 1681 | }; |
|
1214 | 1682 | "optionator-0.8.2" = { |
@@ -1220,15 +1688,6 b' let' | |||
|
1220 | 1688 | sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64"; |
|
1221 | 1689 | }; |
|
1222 | 1690 | }; |
|
1223 | "source-map-0.2.0" = { | |
|
1224 | name = "source-map"; | |
|
1225 | packageName = "source-map"; | |
|
1226 | version = "0.2.0"; | |
|
1227 | src = fetchurl { | |
|
1228 | url = "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz"; | |
|
1229 | sha1 = "dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"; | |
|
1230 | }; | |
|
1231 | }; | |
|
1232 | 1691 | "prelude-ls-1.1.2" = { |
|
1233 | 1692 | name = "prelude-ls"; |
|
1234 | 1693 | packageName = "prelude-ls"; |
@@ -1274,22 +1733,22 b' let' | |||
|
1274 | 1733 | sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; |
|
1275 | 1734 | }; |
|
1276 | 1735 | }; |
|
1277 |
"fast-levenshtein-2.0. |
|
|
1736 | "fast-levenshtein-2.0.6" = { | |
|
1278 | 1737 | name = "fast-levenshtein"; |
|
1279 | 1738 | packageName = "fast-levenshtein"; |
|
1280 |
version = "2.0. |
|
|
1739 | version = "2.0.6"; | |
|
1281 | 1740 | src = fetchurl { |
|
1282 |
url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0. |
|
|
1283 | sha1 = "e31e729eea62233c60a7bc9dce2bdcc88b4fffe3"; | |
|
1741 | url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; | |
|
1742 | sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; | |
|
1284 | 1743 | }; |
|
1285 | 1744 | }; |
|
1286 |
"acorn- |
|
|
1745 | "acorn-5.1.2" = { | |
|
1287 | 1746 | name = "acorn"; |
|
1288 | 1747 | packageName = "acorn"; |
|
1289 |
version = " |
|
|
1748 | version = "5.1.2"; | |
|
1290 | 1749 | src = fetchurl { |
|
1291 |
url = "https://registry.npmjs.org/acorn/-/acorn- |
|
|
1292 | sha1 = "1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1"; | |
|
1750 | url = "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz"; | |
|
1751 | sha1 = "911cb53e036807cf0fa778dc5d370fbd864246d7"; | |
|
1293 | 1752 | }; |
|
1294 | 1753 | }; |
|
1295 | 1754 | "acorn-jsx-3.0.1" = { |
@@ -1301,220 +1760,166 b' let' | |||
|
1301 | 1760 | sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b"; |
|
1302 | 1761 | }; |
|
1303 | 1762 | }; |
|
1304 |
"a |
|
|
1305 |
name = "a |
|
|
1306 |
packageName = "a |
|
|
1307 |
version = " |
|
|
1763 | "object-assign-4.1.1" = { | |
|
1764 | name = "object-assign"; | |
|
1765 | packageName = "object-assign"; | |
|
1766 | version = "4.1.1"; | |
|
1308 | 1767 | src = fetchurl { |
|
1309 |
url = "https://registry.npmjs.org/a |
|
|
1310 | sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a"; | |
|
1311 | }; | |
|
1312 | }; | |
|
1313 | "boxen-0.3.1" = { | |
|
1314 | name = "boxen"; | |
|
1315 | packageName = "boxen"; | |
|
1316 | version = "0.3.1"; | |
|
1317 | src = fetchurl { | |
|
1318 | url = "https://registry.npmjs.org/boxen/-/boxen-0.3.1.tgz"; | |
|
1319 | sha1 = "a7d898243ae622f7abb6bb604d740a76c6a5461b"; | |
|
1768 | url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; | |
|
1769 | sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; | |
|
1320 | 1770 | }; |
|
1321 | 1771 | }; |
|
1322 |
"c |
|
|
1323 |
name = "c |
|
|
1324 |
packageName = "c |
|
|
1325 |
version = "2 |
|
|
1772 | "crisper-1.2.0" = { | |
|
1773 | name = "crisper"; | |
|
1774 | packageName = "crisper"; | |
|
1775 | version = "1.2.0"; | |
|
1326 | 1776 | src = fetchurl { |
|
1327 |
url = "https://registry.npmjs.org/c |
|
|
1328 | sha1 = "737a3a7036e9886102aa6099e47bb33ab1aba1a1"; | |
|
1777 | url = "https://registry.npmjs.org/crisper/-/crisper-1.2.0.tgz"; | |
|
1778 | sha1 = "9a91f597d71f6110294e076ad44dbb3408568e46"; | |
|
1329 | 1779 | }; |
|
1330 | 1780 | }; |
|
1331 |
" |
|
|
1332 |
name = " |
|
|
1333 |
packageName = " |
|
|
1334 |
version = "1.0. |
|
|
1781 | "optparse-1.0.5" = { | |
|
1782 | name = "optparse"; | |
|
1783 | packageName = "optparse"; | |
|
1784 | version = "1.0.5"; | |
|
1335 | 1785 | src = fetchurl { |
|
1336 |
url = "https://registry.npmjs.org/ |
|
|
1337 | sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4"; | |
|
1338 | }; | |
|
1339 | }; | |
|
1340 | "latest-version-2.0.0" = { | |
|
1341 | name = "latest-version"; | |
|
1342 | packageName = "latest-version"; | |
|
1343 | version = "2.0.0"; | |
|
1344 | src = fetchurl { | |
|
1345 | url = "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz"; | |
|
1346 | sha1 = "56f8d6139620847b8017f8f1f4d78e211324168b"; | |
|
1786 | url = "https://registry.npmjs.org/optparse/-/optparse-1.0.5.tgz"; | |
|
1787 | sha1 = "75e75a96506611eb1c65ba89018ff08a981e2c16"; | |
|
1347 | 1788 | }; |
|
1348 | 1789 | }; |
|
1349 |
"semver- |
|
|
1350 |
name = "semver |
|
|
1351 |
packageName = "semver |
|
|
1352 |
version = " |
|
|
1790 | "semver-5.4.1" = { | |
|
1791 | name = "semver"; | |
|
1792 | packageName = "semver"; | |
|
1793 | version = "5.4.1"; | |
|
1353 | 1794 | src = fetchurl { |
|
1354 |
url = "https://registry.npmjs.org/semver |
|
|
1355 | sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"; | |
|
1795 | url = "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz"; | |
|
1796 | sha1 = "e059c09d8571f0540823733433505d3a2f00b18e"; | |
|
1356 | 1797 | }; |
|
1357 | 1798 | }; |
|
1358 | "filled-array-1.1.0" = { | |
|
1359 |
name = " |
|
|
1360 |
packageName = " |
|
|
1361 |
version = " |
|
|
1799 | "npm-registry-client-8.4.0" = { | |
|
1800 | name = "npm-registry-client"; | |
|
1801 | packageName = "npm-registry-client"; | |
|
1802 | version = "8.4.0"; | |
|
1362 | 1803 | src = fetchurl { |
|
1363 |
url = "https://registry.npmjs.org/ |
|
|
1364 | sha1 = "c3c4f6c663b923459a9aa29912d2d031f1507f84"; | |
|
1804 | url = "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.4.0.tgz"; | |
|
1805 | sha1 = "d52b901685647fc62a4c03eafecb6ceaa5018d4c"; | |
|
1365 | 1806 | }; |
|
1366 | 1807 | }; |
|
1367 | "object-assign-4.1.0" = { | |
|
1368 |
name = "o |
|
|
1369 |
packageName = "o |
|
|
1370 |
version = " |
|
|
1808 | "npmconf-2.1.2" = { | |
|
1809 | name = "npmconf"; | |
|
1810 | packageName = "npmconf"; | |
|
1811 | version = "2.1.2"; | |
|
1371 | 1812 | src = fetchurl { |
|
1372 |
url = "https://registry.npmjs.org/o |
|
|
1373 | sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"; | |
|
1813 | url = "https://registry.npmjs.org/npmconf/-/npmconf-2.1.2.tgz"; | |
|
1814 | sha1 = "66606a4a736f1e77a059aa071a79c94ab781853a"; | |
|
1374 | 1815 | }; |
|
1375 | 1816 | }; |
|
1376 |
"r |
|
|
1377 |
name = "r |
|
|
1378 |
packageName = "r |
|
|
1379 |
version = " |
|
|
1817 | "tar-3.1.15" = { | |
|
1818 | name = "tar"; | |
|
1819 | packageName = "tar"; | |
|
1820 | version = "3.1.15"; | |
|
1380 | 1821 | src = fetchurl { |
|
1381 |
url = "https://registry.npmjs.org/r |
|
|
1382 | sha1 = "5214c53a926d3552707527fbab415dbc08d06dda"; | |
|
1822 | url = "https://registry.npmjs.org/tar/-/tar-3.1.15.tgz"; | |
|
1823 | sha1 = "cccdc35b90917d58e4c3837795d5d022d7a1f46f"; | |
|
1383 | 1824 | }; |
|
1384 | 1825 | }; |
|
1385 | "string-width-1.0.2" = { | |
|
1386 |
name = " |
|
|
1387 |
packageName = " |
|
|
1388 |
version = " |
|
|
1826 | "temp-0.8.3" = { | |
|
1827 | name = "temp"; | |
|
1828 | packageName = "temp"; | |
|
1829 | version = "0.8.3"; | |
|
1389 | 1830 | src = fetchurl { |
|
1390 |
url = "https://registry.npmjs.org/ |
|
|
1391 | sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; | |
|
1392 | }; | |
|
1393 | }; | |
|
1394 | "widest-line-1.0.0" = { | |
|
1395 | name = "widest-line"; | |
|
1396 | packageName = "widest-line"; | |
|
1397 | version = "1.0.0"; | |
|
1398 | src = fetchurl { | |
|
1399 | url = "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz"; | |
|
1400 | sha1 = "0c09c85c2a94683d0d7eaf8ee097d564bf0e105c"; | |
|
1831 | url = "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz"; | |
|
1832 | sha1 = "e0c6bc4d26b903124410e4fed81103014dfc1f59"; | |
|
1401 | 1833 | }; |
|
1402 | 1834 | }; |
|
1403 |
" |
|
|
1404 |
name = " |
|
|
1405 |
packageName = " |
|
|
1406 |
version = "1. |
|
|
1835 | "fs.extra-1.3.2" = { | |
|
1836 | name = "fs.extra"; | |
|
1837 | packageName = "fs.extra"; | |
|
1838 | version = "1.3.2"; | |
|
1407 | 1839 | src = fetchurl { |
|
1408 |
url = "https://registry.npmjs.org/ |
|
|
1409 | sha1 = "6438603eaebe2793948ff4a4262ec8db3d62597b"; | |
|
1410 | }; | |
|
1411 | }; | |
|
1412 | "number-is-nan-1.0.0" = { | |
|
1413 | name = "number-is-nan"; | |
|
1414 | packageName = "number-is-nan"; | |
|
1415 | version = "1.0.0"; | |
|
1416 | src = fetchurl { | |
|
1417 | url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz"; | |
|
1418 | sha1 = "c020f529c5282adfdd233d91d4b181c3d686dc4b"; | |
|
1840 | url = "https://registry.npmjs.org/fs.extra/-/fs.extra-1.3.2.tgz"; | |
|
1841 | sha1 = "dd023f93013bee24531f1b33514c37b20fd93349"; | |
|
1419 | 1842 | }; |
|
1420 | 1843 | }; |
|
1421 |
" |
|
|
1422 |
name = " |
|
|
1423 |
packageName = " |
|
|
1424 |
version = " |
|
|
1844 | "findit-2.0.0" = { | |
|
1845 | name = "findit"; | |
|
1846 | packageName = "findit"; | |
|
1847 | version = "2.0.0"; | |
|
1425 | 1848 | src = fetchurl { |
|
1426 |
url = "https://registry.npmjs.org/ |
|
|
1427 | sha1 = "f69b192d3f7d91e382e4b71bddb77878619ab0c6"; | |
|
1849 | url = "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz"; | |
|
1850 | sha1 = "6509f0126af4c178551cfa99394e032e13a4d56e"; | |
|
1428 | 1851 | }; |
|
1429 | 1852 | }; |
|
1430 | "is-fullwidth-code-point-1.0.0" = { | |
|
1431 | name = "is-fullwidth-code-point"; | |
|
1432 |
packageName = " |
|
|
1433 |
version = "1. |
|
|
1853 | "base64-js-1.2.1" = { | |
|
1854 | name = "base64-js"; | |
|
1855 | packageName = "base64-js"; | |
|
1856 | version = "1.2.1"; | |
|
1434 | 1857 | src = fetchurl { |
|
1435 |
url = "https://registry.npmjs.org/ |
|
|
1436 | sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; | |
|
1858 | url = "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz"; | |
|
1859 | sha1 = "a91947da1f4a516ea38e5b4ec0ec3773675e0886"; | |
|
1437 | 1860 | }; |
|
1438 | 1861 | }; |
|
1439 |
" |
|
|
1440 |
name = " |
|
|
1441 |
packageName = " |
|
|
1442 |
version = " |
|
|
1862 | "slasp-0.0.4" = { | |
|
1863 | name = "slasp"; | |
|
1864 | packageName = "slasp"; | |
|
1865 | version = "0.0.4"; | |
|
1443 | 1866 | src = fetchurl { |
|
1444 |
url = "https://registry.npmjs.org/ |
|
|
1445 | sha1 = "1b708af094a49c9a0e7dbcad790aba539dac1177"; | |
|
1446 | }; | |
|
1447 | }; | |
|
1448 | "os-tmpdir-1.0.1" = { | |
|
1449 | name = "os-tmpdir"; | |
|
1450 | packageName = "os-tmpdir"; | |
|
1451 | version = "1.0.1"; | |
|
1452 | src = fetchurl { | |
|
1453 | url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz"; | |
|
1454 | sha1 = "e9b423a1edaf479882562e92ed71d7743a071b6e"; | |
|
1867 | url = "https://registry.npmjs.org/slasp/-/slasp-0.0.4.tgz"; | |
|
1868 | sha1 = "9adc26ee729a0f95095851a5489f87a5258d57a9"; | |
|
1455 | 1869 | }; |
|
1456 | 1870 | }; |
|
1457 |
" |
|
|
1458 |
name = " |
|
|
1459 |
packageName = " |
|
|
1460 |
version = "0. |
|
|
1871 | "nijs-0.0.23" = { | |
|
1872 | name = "nijs"; | |
|
1873 | packageName = "nijs"; | |
|
1874 | version = "0.0.23"; | |
|
1461 | 1875 | src = fetchurl { |
|
1462 |
url = "https://registry.npmjs.org/ |
|
|
1463 | sha1 = "83cf05c6d6458fc4d5ac6362ea325d92f2754217"; | |
|
1876 | url = "https://registry.npmjs.org/nijs/-/nijs-0.0.23.tgz"; | |
|
1877 | sha1 = "dbf8f4a0acafbe3b8d9b71c24cbd1d851de6c31a"; | |
|
1464 | 1878 | }; |
|
1465 | 1879 | }; |
|
1466 | "uuid-2.0.3" = { | |
|
1467 |
name = " |
|
|
1468 |
packageName = " |
|
|
1469 |
version = " |
|
|
1880 | "concat-stream-1.6.0" = { | |
|
1881 | name = "concat-stream"; | |
|
1882 | packageName = "concat-stream"; | |
|
1883 | version = "1.6.0"; | |
|
1470 | 1884 | src = fetchurl { |
|
1471 |
url = "https://registry.npmjs.org/ |
|
|
1472 | sha1 = "67e2e863797215530dff318e5bf9dcebfd47b21a"; | |
|
1473 | }; | |
|
1474 | }; | |
|
1475 | "write-file-atomic-1.2.0" = { | |
|
1476 | name = "write-file-atomic"; | |
|
1477 | packageName = "write-file-atomic"; | |
|
1478 | version = "1.2.0"; | |
|
1479 | src = fetchurl { | |
|
1480 | url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.2.0.tgz"; | |
|
1481 | sha1 = "14c66d4e4cb3ca0565c28cf3b7a6f3e4d5938fab"; | |
|
1885 | url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz"; | |
|
1886 | sha1 = "0aac662fd52be78964d5532f694784e70110acf7"; | |
|
1482 | 1887 | }; |
|
1483 | 1888 | }; |
|
1484 | "xdg-basedir-2.0.0" = { | |
|
1485 | name = "xdg-basedir"; | |
|
1486 |
packageName = " |
|
|
1487 |
version = "2. |
|
|
1889 | "normalize-package-data-2.4.0" = { | |
|
1890 | name = "normalize-package-data"; | |
|
1891 | packageName = "normalize-package-data"; | |
|
1892 | version = "2.4.0"; | |
|
1488 | 1893 | src = fetchurl { |
|
1489 |
url = "https://registry.npmjs.org/ |
|
|
1490 | sha1 = "edbc903cc385fc04523d966a335504b5504d1bd2"; | |
|
1894 | url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz"; | |
|
1895 | sha1 = "12f95a307d58352075a04907b84ac8be98ac012f"; | |
|
1491 | 1896 | }; |
|
1492 | 1897 | }; |
|
1493 | "is-obj-1.0.1" = { | |
|
1494 |
name = " |
|
|
1495 |
packageName = " |
|
|
1496 |
version = "1. |
|
|
1898 | "npm-package-arg-5.1.2" = { | |
|
1899 | name = "npm-package-arg"; | |
|
1900 | packageName = "npm-package-arg"; | |
|
1901 | version = "5.1.2"; | |
|
1497 | 1902 | src = fetchurl { |
|
1498 |
url = "https://registry.npmjs.org/ |
|
|
1499 | sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"; | |
|
1903 | url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz"; | |
|
1904 | sha1 = "fb18d17bb61e60900d6312619919bd753755ab37"; | |
|
1500 | 1905 | }; |
|
1501 | 1906 | }; |
|
1502 |
"o |
|
|
1503 |
name = "o |
|
|
1504 |
packageName = "o |
|
|
1505 |
version = "1.0 |
|
|
1907 | "once-1.4.0" = { | |
|
1908 | name = "once"; | |
|
1909 | packageName = "once"; | |
|
1910 | version = "1.4.0"; | |
|
1506 | 1911 | src = fetchurl { |
|
1507 |
url = "https://registry.npmjs.org/o |
|
|
1508 | sha1 = "0d62bdf44b916fd3bbdcf2cab191948fb094f007"; | |
|
1912 | url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; | |
|
1913 | sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; | |
|
1509 | 1914 | }; |
|
1510 | 1915 | }; |
|
1511 |
" |
|
|
1512 |
name = " |
|
|
1513 |
packageName = " |
|
|
1514 |
version = "0.1. |
|
|
1916 | "retry-0.10.1" = { | |
|
1917 | name = "retry"; | |
|
1918 | packageName = "retry"; | |
|
1919 | version = "0.10.1"; | |
|
1515 | 1920 | src = fetchurl { |
|
1516 |
url = "https://registry.npmjs.org/ |
|
|
1517 | sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; | |
|
1921 | url = "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz"; | |
|
1922 | sha1 = "e76388d217992c252750241d3d3956fed98d8ff4"; | |
|
1518 | 1923 | }; |
|
1519 | 1924 | }; |
|
1520 | 1925 | "slide-1.1.6" = { |
@@ -1526,238 +1931,40 b' let' | |||
|
1526 | 1931 | sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"; |
|
1527 | 1932 | }; |
|
1528 | 1933 | }; |
|
1529 | "package-json-2.4.0" = { | |
|
1530 |
name = " |
|
|
1531 |
packageName = " |
|
|
1532 |
version = " |
|
|
1533 | src = fetchurl { | |
|
1534 | url = "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz"; | |
|
1535 | sha1 = "0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb"; | |
|
1536 | }; | |
|
1537 | }; | |
|
1538 | "got-5.6.0" = { | |
|
1539 | name = "got"; | |
|
1540 | packageName = "got"; | |
|
1541 | version = "5.6.0"; | |
|
1542 | src = fetchurl { | |
|
1543 | url = "https://registry.npmjs.org/got/-/got-5.6.0.tgz"; | |
|
1544 | sha1 = "bb1d7ee163b78082bbc8eb836f3f395004ea6fbf"; | |
|
1545 | }; | |
|
1546 | }; | |
|
1547 | "registry-auth-token-3.0.1" = { | |
|
1548 | name = "registry-auth-token"; | |
|
1549 | packageName = "registry-auth-token"; | |
|
1550 | version = "3.0.1"; | |
|
1551 | src = fetchurl { | |
|
1552 | url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.0.1.tgz"; | |
|
1553 | sha1 = "c3ee5ec585bce29f88bf41629a3944c71ed53e25"; | |
|
1554 | }; | |
|
1555 | }; | |
|
1556 | "registry-url-3.1.0" = { | |
|
1557 | name = "registry-url"; | |
|
1558 | packageName = "registry-url"; | |
|
1559 | version = "3.1.0"; | |
|
1560 | src = fetchurl { | |
|
1561 | url = "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz"; | |
|
1562 | sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942"; | |
|
1563 | }; | |
|
1564 | }; | |
|
1565 | "semver-5.3.0" = { | |
|
1566 | name = "semver"; | |
|
1567 | packageName = "semver"; | |
|
1568 | version = "5.3.0"; | |
|
1569 | src = fetchurl { | |
|
1570 | url = "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"; | |
|
1571 | sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"; | |
|
1572 | }; | |
|
1573 | }; | |
|
1574 | "create-error-class-3.0.2" = { | |
|
1575 | name = "create-error-class"; | |
|
1576 | packageName = "create-error-class"; | |
|
1577 | version = "3.0.2"; | |
|
1934 | "ssri-4.1.6" = { | |
|
1935 | name = "ssri"; | |
|
1936 | packageName = "ssri"; | |
|
1937 | version = "4.1.6"; | |
|
1578 | 1938 | src = fetchurl { |
|
1579 |
url = "https://registry.npmjs.org/ |
|
|
1580 | sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6"; | |
|
1581 | }; | |
|
1582 | }; | |
|
1583 | "duplexer2-0.1.4" = { | |
|
1584 | name = "duplexer2"; | |
|
1585 | packageName = "duplexer2"; | |
|
1586 | version = "0.1.4"; | |
|
1587 | src = fetchurl { | |
|
1588 | url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz"; | |
|
1589 | sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1"; | |
|
1590 | }; | |
|
1591 | }; | |
|
1592 | "is-plain-obj-1.1.0" = { | |
|
1593 | name = "is-plain-obj"; | |
|
1594 | packageName = "is-plain-obj"; | |
|
1595 | version = "1.1.0"; | |
|
1596 | src = fetchurl { | |
|
1597 | url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz"; | |
|
1598 | sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e"; | |
|
1599 | }; | |
|
1600 | }; | |
|
1601 | "is-redirect-1.0.0" = { | |
|
1602 | name = "is-redirect"; | |
|
1603 | packageName = "is-redirect"; | |
|
1604 | version = "1.0.0"; | |
|
1605 | src = fetchurl { | |
|
1606 | url = "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz"; | |
|
1607 | sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"; | |
|
1608 | }; | |
|
1609 | }; | |
|
1610 | "is-retry-allowed-1.1.0" = { | |
|
1611 | name = "is-retry-allowed"; | |
|
1612 | packageName = "is-retry-allowed"; | |
|
1613 | version = "1.1.0"; | |
|
1614 | src = fetchurl { | |
|
1615 | url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz"; | |
|
1616 | sha1 = "11a060568b67339444033d0125a61a20d564fb34"; | |
|
1617 | }; | |
|
1618 | }; | |
|
1619 | "is-stream-1.1.0" = { | |
|
1620 | name = "is-stream"; | |
|
1621 | packageName = "is-stream"; | |
|
1622 | version = "1.1.0"; | |
|
1623 | src = fetchurl { | |
|
1624 | url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"; | |
|
1625 | sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; | |
|
1626 | }; | |
|
1627 | }; | |
|
1628 | "lowercase-keys-1.0.0" = { | |
|
1629 | name = "lowercase-keys"; | |
|
1630 | packageName = "lowercase-keys"; | |
|
1631 | version = "1.0.0"; | |
|
1632 | src = fetchurl { | |
|
1633 | url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz"; | |
|
1634 | sha1 = "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"; | |
|
1939 | url = "https://registry.npmjs.org/ssri/-/ssri-4.1.6.tgz"; | |
|
1940 | sha1 = "0cb49b6ac84457e7bdd466cb730c3cb623e9a25b"; | |
|
1635 | 1941 | }; |
|
1636 | 1942 | }; |
|
1637 | "node-status-codes-1.0.0" = { | |
|
1638 |
name = "no |
|
|
1639 |
packageName = "no |
|
|
1640 |
version = "1. |
|
|
1641 | src = fetchurl { | |
|
1642 | url = "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz"; | |
|
1643 | sha1 = "5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"; | |
|
1644 | }; | |
|
1645 | }; | |
|
1646 | "parse-json-2.2.0" = { | |
|
1647 | name = "parse-json"; | |
|
1648 | packageName = "parse-json"; | |
|
1649 | version = "2.2.0"; | |
|
1650 | src = fetchurl { | |
|
1651 | url = "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz"; | |
|
1652 | sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9"; | |
|
1653 | }; | |
|
1654 | }; | |
|
1655 | "pinkie-promise-2.0.1" = { | |
|
1656 | name = "pinkie-promise"; | |
|
1657 | packageName = "pinkie-promise"; | |
|
1658 | version = "2.0.1"; | |
|
1943 | "npmlog-4.1.2" = { | |
|
1944 | name = "npmlog"; | |
|
1945 | packageName = "npmlog"; | |
|
1946 | version = "4.1.2"; | |
|
1659 | 1947 | src = fetchurl { |
|
1660 |
url = "https://registry.npmjs.org/p |
|
|
1661 | sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; | |
|
1662 | }; | |
|
1663 | }; | |
|
1664 | "read-all-stream-3.1.0" = { | |
|
1665 | name = "read-all-stream"; | |
|
1666 | packageName = "read-all-stream"; | |
|
1667 | version = "3.1.0"; | |
|
1668 | src = fetchurl { | |
|
1669 | url = "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz"; | |
|
1670 | sha1 = "35c3e177f2078ef789ee4bfafa4373074eaef4fa"; | |
|
1671 | }; | |
|
1672 | }; | |
|
1673 | "readable-stream-2.1.5" = { | |
|
1674 | name = "readable-stream"; | |
|
1675 | packageName = "readable-stream"; | |
|
1676 | version = "2.1.5"; | |
|
1677 | src = fetchurl { | |
|
1678 | url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz"; | |
|
1679 | sha1 = "66fa8b720e1438b364681f2ad1a63c618448c9d0"; | |
|
1680 | }; | |
|
1681 | }; | |
|
1682 | "timed-out-2.0.0" = { | |
|
1683 | name = "timed-out"; | |
|
1684 | packageName = "timed-out"; | |
|
1685 | version = "2.0.0"; | |
|
1686 | src = fetchurl { | |
|
1687 | url = "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz"; | |
|
1688 | sha1 = "f38b0ae81d3747d628001f41dafc652ace671c0a"; | |
|
1948 | url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; | |
|
1949 | sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b"; | |
|
1689 | 1950 | }; |
|
1690 | 1951 | }; |
|
1691 | "unzip-response-1.0.1" = { | |
|
1692 |
name = " |
|
|
1693 |
packageName = " |
|
|
1694 |
version = " |
|
|
1952 | "typedarray-0.0.6" = { | |
|
1953 | name = "typedarray"; | |
|
1954 | packageName = "typedarray"; | |
|
1955 | version = "0.0.6"; | |
|
1695 | 1956 | src = fetchurl { |
|
1696 |
url = "https://registry.npmjs.org/ |
|
|
1697 | sha1 = "4a73959f2989470fa503791cefb54e1dbbc68412"; | |
|
1698 | }; | |
|
1699 | }; | |
|
1700 | "url-parse-lax-1.0.0" = { | |
|
1701 | name = "url-parse-lax"; | |
|
1702 | packageName = "url-parse-lax"; | |
|
1703 | version = "1.0.0"; | |
|
1704 | src = fetchurl { | |
|
1705 | url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz"; | |
|
1706 | sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73"; | |
|
1707 | }; | |
|
1708 | }; | |
|
1709 | "capture-stack-trace-1.0.0" = { | |
|
1710 | name = "capture-stack-trace"; | |
|
1711 | packageName = "capture-stack-trace"; | |
|
1712 | version = "1.0.0"; | |
|
1713 | src = fetchurl { | |
|
1714 | url = "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz"; | |
|
1715 | sha1 = "4a6fa07399c26bba47f0b2496b4d0fb408c5550d"; | |
|
1957 | url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"; | |
|
1958 | sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; | |
|
1716 | 1959 | }; |
|
1717 | 1960 | }; |
|
1718 | "error-ex-1.3.0" = { | |
|
1719 |
name = "er |
|
|
1720 |
packageName = "er |
|
|
1721 |
version = " |
|
|
1722 | src = fetchurl { | |
|
1723 | url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz"; | |
|
1724 | sha1 = "e67b43f3e82c96ea3a584ffee0b9fc3325d802d9"; | |
|
1725 | }; | |
|
1726 | }; | |
|
1727 | "is-arrayish-0.2.1" = { | |
|
1728 | name = "is-arrayish"; | |
|
1729 | packageName = "is-arrayish"; | |
|
1730 | version = "0.2.1"; | |
|
1961 | "readable-stream-2.3.3" = { | |
|
1962 | name = "readable-stream"; | |
|
1963 | packageName = "readable-stream"; | |
|
1964 | version = "2.3.3"; | |
|
1731 | 1965 | src = fetchurl { |
|
1732 |
url = "https://registry.npmjs.org/ |
|
|
1733 | sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; | |
|
1734 | }; | |
|
1735 | }; | |
|
1736 | "pinkie-2.0.4" = { | |
|
1737 | name = "pinkie"; | |
|
1738 | packageName = "pinkie"; | |
|
1739 | version = "2.0.4"; | |
|
1740 | src = fetchurl { | |
|
1741 | url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"; | |
|
1742 | sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; | |
|
1743 | }; | |
|
1744 | }; | |
|
1745 | "buffer-shims-1.0.0" = { | |
|
1746 | name = "buffer-shims"; | |
|
1747 | packageName = "buffer-shims"; | |
|
1748 | version = "1.0.0"; | |
|
1749 | src = fetchurl { | |
|
1750 | url = "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"; | |
|
1751 | sha1 = "9978ce317388c649ad8793028c3477ef044a8b51"; | |
|
1752 | }; | |
|
1753 | }; | |
|
1754 | "core-util-is-1.0.2" = { | |
|
1755 | name = "core-util-is"; | |
|
1756 | packageName = "core-util-is"; | |
|
1757 | version = "1.0.2"; | |
|
1758 | src = fetchurl { | |
|
1759 | url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; | |
|
1760 | sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; | |
|
1966 | url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"; | |
|
1967 | sha1 = "368f2512d79f9d46fdfc71349ae7878bbc1eb95c"; | |
|
1761 | 1968 | }; |
|
1762 | 1969 | }; |
|
1763 | 1970 | "isarray-1.0.0" = { |
@@ -1778,13 +1985,13 b' let' | |||
|
1778 | 1985 | sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3"; |
|
1779 | 1986 | }; |
|
1780 | 1987 | }; |
|
1781 |
"string_decoder- |
|
|
1988 | "string_decoder-1.0.3" = { | |
|
1782 | 1989 | name = "string_decoder"; |
|
1783 | 1990 | packageName = "string_decoder"; |
|
1784 |
version = " |
|
|
1991 | version = "1.0.3"; | |
|
1785 | 1992 | src = fetchurl { |
|
1786 |
url = "https://registry.npmjs.org/string_decoder/-/string_decoder- |
|
|
1787 | sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; | |
|
1993 | url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"; | |
|
1994 | sha1 = "0fc67d7c141825de94282dd536bec6b9bce860ab"; | |
|
1788 | 1995 | }; |
|
1789 | 1996 | }; |
|
1790 | 1997 | "util-deprecate-1.0.2" = { |
@@ -1796,22 +2003,247 b' let' | |||
|
1796 | 2003 | sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; |
|
1797 | 2004 | }; |
|
1798 | 2005 | }; |
|
1799 | "prepend-http-1.0.4" = { | |
|
1800 |
name = " |
|
|
1801 |
packageName = " |
|
|
2006 | "hosted-git-info-2.5.0" = { | |
|
2007 | name = "hosted-git-info"; | |
|
2008 | packageName = "hosted-git-info"; | |
|
2009 | version = "2.5.0"; | |
|
2010 | src = fetchurl { | |
|
2011 | url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz"; | |
|
2012 | sha1 = "6d60e34b3abbc8313062c3b798ef8d901a07af3c"; | |
|
2013 | }; | |
|
2014 | }; | |
|
2015 | "is-builtin-module-1.0.0" = { | |
|
2016 | name = "is-builtin-module"; | |
|
2017 | packageName = "is-builtin-module"; | |
|
2018 | version = "1.0.0"; | |
|
2019 | src = fetchurl { | |
|
2020 | url = "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz"; | |
|
2021 | sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe"; | |
|
2022 | }; | |
|
2023 | }; | |
|
2024 | "validate-npm-package-license-3.0.1" = { | |
|
2025 | name = "validate-npm-package-license"; | |
|
2026 | packageName = "validate-npm-package-license"; | |
|
2027 | version = "3.0.1"; | |
|
2028 | src = fetchurl { | |
|
2029 | url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz"; | |
|
2030 | sha1 = "2804babe712ad3379459acfbe24746ab2c303fbc"; | |
|
2031 | }; | |
|
2032 | }; | |
|
2033 | "builtin-modules-1.1.1" = { | |
|
2034 | name = "builtin-modules"; | |
|
2035 | packageName = "builtin-modules"; | |
|
2036 | version = "1.1.1"; | |
|
2037 | src = fetchurl { | |
|
2038 | url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"; | |
|
2039 | sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f"; | |
|
2040 | }; | |
|
2041 | }; | |
|
2042 | "spdx-correct-1.0.2" = { | |
|
2043 | name = "spdx-correct"; | |
|
2044 | packageName = "spdx-correct"; | |
|
2045 | version = "1.0.2"; | |
|
2046 | src = fetchurl { | |
|
2047 | url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz"; | |
|
2048 | sha1 = "4b3073d933ff51f3912f03ac5519498a4150db40"; | |
|
2049 | }; | |
|
2050 | }; | |
|
2051 | "spdx-expression-parse-1.0.4" = { | |
|
2052 | name = "spdx-expression-parse"; | |
|
2053 | packageName = "spdx-expression-parse"; | |
|
1802 | 2054 | version = "1.0.4"; |
|
1803 | 2055 | src = fetchurl { |
|
1804 |
url = "https://registry.npmjs.org/prepe |
|
|
1805 | sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"; | |
|
2056 | url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz"; | |
|
2057 | sha1 = "9bdf2f20e1f40ed447fbe273266191fced51626c"; | |
|
2058 | }; | |
|
2059 | }; | |
|
2060 | "spdx-license-ids-1.2.2" = { | |
|
2061 | name = "spdx-license-ids"; | |
|
2062 | packageName = "spdx-license-ids"; | |
|
2063 | version = "1.2.2"; | |
|
2064 | src = fetchurl { | |
|
2065 | url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz"; | |
|
2066 | sha1 = "c9df7a3424594ade6bd11900d596696dc06bac57"; | |
|
2067 | }; | |
|
2068 | }; | |
|
2069 | "osenv-0.1.4" = { | |
|
2070 | name = "osenv"; | |
|
2071 | packageName = "osenv"; | |
|
2072 | version = "0.1.4"; | |
|
2073 | src = fetchurl { | |
|
2074 | url = "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz"; | |
|
2075 | sha1 = "42fe6d5953df06c8064be6f176c3d05aaaa34644"; | |
|
2076 | }; | |
|
2077 | }; | |
|
2078 | "validate-npm-package-name-3.0.0" = { | |
|
2079 | name = "validate-npm-package-name"; | |
|
2080 | packageName = "validate-npm-package-name"; | |
|
2081 | version = "3.0.0"; | |
|
2082 | src = fetchurl { | |
|
2083 | url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz"; | |
|
2084 | sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e"; | |
|
2085 | }; | |
|
2086 | }; | |
|
2087 | "os-homedir-1.0.2" = { | |
|
2088 | name = "os-homedir"; | |
|
2089 | packageName = "os-homedir"; | |
|
2090 | version = "1.0.2"; | |
|
2091 | src = fetchurl { | |
|
2092 | url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; | |
|
2093 | sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; | |
|
2094 | }; | |
|
2095 | }; | |
|
2096 | "os-tmpdir-1.0.2" = { | |
|
2097 | name = "os-tmpdir"; | |
|
2098 | packageName = "os-tmpdir"; | |
|
2099 | version = "1.0.2"; | |
|
2100 | src = fetchurl { | |
|
2101 | url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; | |
|
2102 | sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; | |
|
2103 | }; | |
|
2104 | }; | |
|
2105 | "builtins-1.0.3" = { | |
|
2106 | name = "builtins"; | |
|
2107 | packageName = "builtins"; | |
|
2108 | version = "1.0.3"; | |
|
2109 | src = fetchurl { | |
|
2110 | url = "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz"; | |
|
2111 | sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88"; | |
|
2112 | }; | |
|
2113 | }; | |
|
2114 | "wrappy-1.0.2" = { | |
|
2115 | name = "wrappy"; | |
|
2116 | packageName = "wrappy"; | |
|
2117 | version = "1.0.2"; | |
|
2118 | src = fetchurl { | |
|
2119 | url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; | |
|
2120 | sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; | |
|
2121 | }; | |
|
2122 | }; | |
|
2123 | "are-we-there-yet-1.1.4" = { | |
|
2124 | name = "are-we-there-yet"; | |
|
2125 | packageName = "are-we-there-yet"; | |
|
2126 | version = "1.1.4"; | |
|
2127 | src = fetchurl { | |
|
2128 | url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz"; | |
|
2129 | sha1 = "bb5dca382bb94f05e15194373d16fd3ba1ca110d"; | |
|
2130 | }; | |
|
2131 | }; | |
|
2132 | "console-control-strings-1.1.0" = { | |
|
2133 | name = "console-control-strings"; | |
|
2134 | packageName = "console-control-strings"; | |
|
2135 | version = "1.1.0"; | |
|
2136 | src = fetchurl { | |
|
2137 | url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; | |
|
2138 | sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; | |
|
2139 | }; | |
|
2140 | }; | |
|
2141 | "gauge-2.7.4" = { | |
|
2142 | name = "gauge"; | |
|
2143 | packageName = "gauge"; | |
|
2144 | version = "2.7.4"; | |
|
2145 | src = fetchurl { | |
|
2146 | url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; | |
|
2147 | sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; | |
|
1806 | 2148 | }; |
|
1807 | 2149 | }; |
|
1808 |
" |
|
|
1809 |
name = " |
|
|
1810 |
packageName = " |
|
|
1811 |
version = " |
|
|
2150 | "set-blocking-2.0.0" = { | |
|
2151 | name = "set-blocking"; | |
|
2152 | packageName = "set-blocking"; | |
|
2153 | version = "2.0.0"; | |
|
2154 | src = fetchurl { | |
|
2155 | url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; | |
|
2156 | sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; | |
|
2157 | }; | |
|
2158 | }; | |
|
2159 | "delegates-1.0.0" = { | |
|
2160 | name = "delegates"; | |
|
2161 | packageName = "delegates"; | |
|
2162 | version = "1.0.0"; | |
|
2163 | src = fetchurl { | |
|
2164 | url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; | |
|
2165 | sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; | |
|
2166 | }; | |
|
2167 | }; | |
|
2168 | "aproba-1.2.0" = { | |
|
2169 | name = "aproba"; | |
|
2170 | packageName = "aproba"; | |
|
2171 | version = "1.2.0"; | |
|
2172 | src = fetchurl { | |
|
2173 | url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; | |
|
2174 | sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a"; | |
|
2175 | }; | |
|
2176 | }; | |
|
2177 | "has-unicode-2.0.1" = { | |
|
2178 | name = "has-unicode"; | |
|
2179 | packageName = "has-unicode"; | |
|
2180 | version = "2.0.1"; | |
|
2181 | src = fetchurl { | |
|
2182 | url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; | |
|
2183 | sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; | |
|
2184 | }; | |
|
2185 | }; | |
|
2186 | "signal-exit-3.0.2" = { | |
|
2187 | name = "signal-exit"; | |
|
2188 | packageName = "signal-exit"; | |
|
2189 | version = "3.0.2"; | |
|
1812 | 2190 | src = fetchurl { |
|
1813 |
url = "https://registry.npmjs.org/ |
|
|
1814 | sha1 = "43651b76b6ae53b5c802f1151fa3fc3b059969c9"; | |
|
2191 | url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"; | |
|
2192 | sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; | |
|
2193 | }; | |
|
2194 | }; | |
|
2195 | "string-width-1.0.2" = { | |
|
2196 | name = "string-width"; | |
|
2197 | packageName = "string-width"; | |
|
2198 | version = "1.0.2"; | |
|
2199 | src = fetchurl { | |
|
2200 | url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; | |
|
2201 | sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; | |
|
2202 | }; | |
|
2203 | }; | |
|
2204 | "wide-align-1.1.2" = { | |
|
2205 | name = "wide-align"; | |
|
2206 | packageName = "wide-align"; | |
|
2207 | version = "1.1.2"; | |
|
2208 | src = fetchurl { | |
|
2209 | url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz"; | |
|
2210 | sha1 = "571e0f1b0604636ebc0dfc21b0339bbe31341710"; | |
|
2211 | }; | |
|
2212 | }; | |
|
2213 | "code-point-at-1.1.0" = { | |
|
2214 | name = "code-point-at"; | |
|
2215 | packageName = "code-point-at"; | |
|
2216 | version = "1.1.0"; | |
|
2217 | src = fetchurl { | |
|
2218 | url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; | |
|
2219 | sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; | |
|
2220 | }; | |
|
2221 | }; | |
|
2222 | "is-fullwidth-code-point-1.0.0" = { | |
|
2223 | name = "is-fullwidth-code-point"; | |
|
2224 | packageName = "is-fullwidth-code-point"; | |
|
2225 | version = "1.0.0"; | |
|
2226 | src = fetchurl { | |
|
2227 | url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; | |
|
2228 | sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; | |
|
2229 | }; | |
|
2230 | }; | |
|
2231 | "number-is-nan-1.0.1" = { | |
|
2232 | name = "number-is-nan"; | |
|
2233 | packageName = "number-is-nan"; | |
|
2234 | version = "1.0.1"; | |
|
2235 | src = fetchurl { | |
|
2236 | url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; | |
|
2237 | sha1 = "097b602b53422a522c1afb8790318336941a011d"; | |
|
2238 | }; | |
|
2239 | }; | |
|
2240 | "config-chain-1.1.11" = { | |
|
2241 | name = "config-chain"; | |
|
2242 | packageName = "config-chain"; | |
|
2243 | version = "1.1.11"; | |
|
2244 | src = fetchurl { | |
|
2245 | url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz"; | |
|
2246 | sha1 = "aba09747dfbe4c3e70e766a6e41586e1859fc6f2"; | |
|
1815 | 2247 | }; |
|
1816 | 2248 | }; |
|
1817 | 2249 | "ini-1.3.4" = { |
@@ -1823,40 +2255,130 b' let' | |||
|
1823 | 2255 | sha1 = "0537cb79daf59b59a1a517dff706c86ec039162e"; |
|
1824 | 2256 | }; |
|
1825 | 2257 | }; |
|
1826 |
" |
|
|
1827 |
name = " |
|
|
1828 |
packageName = " |
|
|
1829 |
version = "1. |
|
|
2258 | "once-1.3.3" = { | |
|
2259 | name = "once"; | |
|
2260 | packageName = "once"; | |
|
2261 | version = "1.3.3"; | |
|
2262 | src = fetchurl { | |
|
2263 | url = "https://registry.npmjs.org/once/-/once-1.3.3.tgz"; | |
|
2264 | sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20"; | |
|
2265 | }; | |
|
2266 | }; | |
|
2267 | "semver-4.3.6" = { | |
|
2268 | name = "semver"; | |
|
2269 | packageName = "semver"; | |
|
2270 | version = "4.3.6"; | |
|
2271 | src = fetchurl { | |
|
2272 | url = "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz"; | |
|
2273 | sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da"; | |
|
2274 | }; | |
|
2275 | }; | |
|
2276 | "uid-number-0.0.5" = { | |
|
2277 | name = "uid-number"; | |
|
2278 | packageName = "uid-number"; | |
|
2279 | version = "0.0.5"; | |
|
1830 | 2280 | src = fetchurl { |
|
1831 |
url = "https://registry.npmjs.org/m |
|
|
1832 | sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; | |
|
2281 | url = "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz"; | |
|
2282 | sha1 = "5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e"; | |
|
2283 | }; | |
|
2284 | }; | |
|
2285 | "proto-list-1.2.4" = { | |
|
2286 | name = "proto-list"; | |
|
2287 | packageName = "proto-list"; | |
|
2288 | version = "1.2.4"; | |
|
2289 | src = fetchurl { | |
|
2290 | url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz"; | |
|
2291 | sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; | |
|
2292 | }; | |
|
2293 | }; | |
|
2294 | "minipass-2.2.1" = { | |
|
2295 | name = "minipass"; | |
|
2296 | packageName = "minipass"; | |
|
2297 | version = "2.2.1"; | |
|
2298 | src = fetchurl { | |
|
2299 | url = "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz"; | |
|
2300 | sha1 = "5ada97538b1027b4cf7213432428578cb564011f"; | |
|
2301 | }; | |
|
2302 | }; | |
|
2303 | "minizlib-1.0.3" = { | |
|
2304 | name = "minizlib"; | |
|
2305 | packageName = "minizlib"; | |
|
2306 | version = "1.0.3"; | |
|
2307 | src = fetchurl { | |
|
2308 | url = "https://registry.npmjs.org/minizlib/-/minizlib-1.0.3.tgz"; | |
|
2309 | sha1 = "d5c1abf77be154619952e253336eccab9b2a32f5"; | |
|
1833 | 2310 | }; |
|
1834 | 2311 | }; |
|
1835 | "strip-json-comments-1.0.4" = { | |
|
1836 |
name = "st |
|
|
1837 |
packageName = "st |
|
|
1838 |
version = " |
|
|
2312 | "yallist-3.0.2" = { | |
|
2313 | name = "yallist"; | |
|
2314 | packageName = "yallist"; | |
|
2315 | version = "3.0.2"; | |
|
1839 | 2316 | src = fetchurl { |
|
1840 |
url = "https://registry.npmjs.org/st |
|
|
1841 | sha1 = "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"; | |
|
2317 | url = "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz"; | |
|
2318 | sha1 = "8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"; | |
|
2319 | }; | |
|
2320 | }; | |
|
2321 | "fs-extra-0.6.4" = { | |
|
2322 | name = "fs-extra"; | |
|
2323 | packageName = "fs-extra"; | |
|
2324 | version = "0.6.4"; | |
|
2325 | src = fetchurl { | |
|
2326 | url = "https://registry.npmjs.org/fs-extra/-/fs-extra-0.6.4.tgz"; | |
|
2327 | sha1 = "f46f0c75b7841f8d200b3348cd4d691d5a099d15"; | |
|
2328 | }; | |
|
2329 | }; | |
|
2330 | "mkdirp-0.3.5" = { | |
|
2331 | name = "mkdirp"; | |
|
2332 | packageName = "mkdirp"; | |
|
2333 | version = "0.3.5"; | |
|
2334 | src = fetchurl { | |
|
2335 | url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"; | |
|
2336 | sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7"; | |
|
1842 | 2337 | }; |
|
1843 | 2338 | }; |
|
1844 |
" |
|
|
1845 |
name = " |
|
|
1846 |
packageName = " |
|
|
1847 |
version = " |
|
|
2339 | "walk-2.3.9" = { | |
|
2340 | name = "walk"; | |
|
2341 | packageName = "walk"; | |
|
2342 | version = "2.3.9"; | |
|
1848 | 2343 | src = fetchurl { |
|
1849 |
url = "https://registry.npmjs.org/ |
|
|
1850 | sha1 = "9a91f597d71f6110294e076ad44dbb3408568e46"; | |
|
2344 | url = "https://registry.npmjs.org/walk/-/walk-2.3.9.tgz"; | |
|
2345 | sha1 = "31b4db6678f2ae01c39ea9fb8725a9031e558a7b"; | |
|
2346 | }; | |
|
2347 | }; | |
|
2348 | "ncp-0.4.2" = { | |
|
2349 | name = "ncp"; | |
|
2350 | packageName = "ncp"; | |
|
2351 | version = "0.4.2"; | |
|
2352 | src = fetchurl { | |
|
2353 | url = "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz"; | |
|
2354 | sha1 = "abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574"; | |
|
1851 | 2355 | }; |
|
1852 | 2356 | }; |
|
1853 |
" |
|
|
2357 | "jsonfile-1.0.1" = { | |
|
2358 | name = "jsonfile"; | |
|
2359 | packageName = "jsonfile"; | |
|
2360 | version = "1.0.1"; | |
|
2361 | src = fetchurl { | |
|
2362 | url = "https://registry.npmjs.org/jsonfile/-/jsonfile-1.0.1.tgz"; | |
|
2363 | sha1 = "ea5efe40b83690b98667614a7392fc60e842c0dd"; | |
|
2364 | }; | |
|
2365 | }; | |
|
2366 | "foreachasync-3.0.0" = { | |
|
2367 | name = "foreachasync"; | |
|
2368 | packageName = "foreachasync"; | |
|
2369 | version = "3.0.0"; | |
|
2370 | src = fetchurl { | |
|
2371 | url = "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz"; | |
|
2372 | sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6"; | |
|
2373 | }; | |
|
2374 | }; | |
|
2375 | "cli-1.0.1" = { | |
|
1854 | 2376 | name = "cli"; |
|
1855 | 2377 | packageName = "cli"; |
|
1856 |
version = "1.0. |
|
|
2378 | version = "1.0.1"; | |
|
1857 | 2379 | src = fetchurl { |
|
1858 |
url = "https://registry.npmjs.org/cli/-/cli-1.0. |
|
|
1859 | sha1 = "ee07dfc1390e3f2e6a9957cf88e1d4bfa777719d"; | |
|
2380 | url = "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz"; | |
|
2381 | sha1 = "22817534f24bfa4950c34d532d48ecbc621b8c14"; | |
|
1860 | 2382 | }; |
|
1861 | 2383 | }; |
|
1862 | 2384 | "console-browserify-1.1.0" = { |
@@ -1877,13 +2399,13 b' let' | |||
|
1877 | 2399 | sha1 = "996c28b191516a8be86501a7d79757e5c70c1068"; |
|
1878 | 2400 | }; |
|
1879 | 2401 | }; |
|
1880 |
"minimatch-3.0. |
|
|
2402 | "minimatch-3.0.4" = { | |
|
1881 | 2403 | name = "minimatch"; |
|
1882 | 2404 | packageName = "minimatch"; |
|
1883 |
version = "3.0. |
|
|
2405 | version = "3.0.4"; | |
|
1884 | 2406 | src = fetchurl { |
|
1885 |
url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0. |
|
|
1886 | sha1 = "2a4e4090b96b2db06a9d7df01055a62a77c9b774"; | |
|
2407 | url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; | |
|
2408 | sha1 = "5166e286457f03306064be5497e8dbb0c3d32083"; | |
|
1887 | 2409 | }; |
|
1888 | 2410 | }; |
|
1889 | 2411 | "shelljs-0.3.0" = { |
@@ -1895,6 +2417,15 b' let' | |||
|
1895 | 2417 | sha1 = "3596e6307a781544f591f37da618360f31db57b1"; |
|
1896 | 2418 | }; |
|
1897 | 2419 | }; |
|
2420 | "strip-json-comments-1.0.4" = { | |
|
2421 | name = "strip-json-comments"; | |
|
2422 | packageName = "strip-json-comments"; | |
|
2423 | version = "1.0.4"; | |
|
2424 | src = fetchurl { | |
|
2425 | url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz"; | |
|
2426 | sha1 = "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"; | |
|
2427 | }; | |
|
2428 | }; | |
|
1898 | 2429 | "lodash-3.7.0" = { |
|
1899 | 2430 | name = "lodash"; |
|
1900 | 2431 | packageName = "lodash"; |
@@ -1904,13 +2435,13 b' let' | |||
|
1904 | 2435 | sha1 = "3678bd8ab995057c07ade836ed2ef087da811d45"; |
|
1905 | 2436 | }; |
|
1906 | 2437 | }; |
|
1907 |
"glob-7.1. |
|
|
2438 | "glob-7.1.2" = { | |
|
1908 | 2439 | name = "glob"; |
|
1909 | 2440 | packageName = "glob"; |
|
1910 |
version = "7.1. |
|
|
2441 | version = "7.1.2"; | |
|
1911 | 2442 | src = fetchurl { |
|
1912 |
url = "https://registry.npmjs.org/glob/-/glob-7.1. |
|
|
1913 | sha1 = "36add856d746d0d99e4cc2797bba1ae2c67272fd"; | |
|
2443 | url = "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"; | |
|
2444 | sha1 = "c19c9df9a028702d678612384a6552404c636d15"; | |
|
1914 | 2445 | }; |
|
1915 | 2446 | }; |
|
1916 | 2447 | "fs.realpath-1.0.0" = { |
@@ -1922,49 +2453,31 b' let' | |||
|
1922 | 2453 | sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; |
|
1923 | 2454 | }; |
|
1924 | 2455 | }; |
|
1925 |
"inflight-1.0. |
|
|
2456 | "inflight-1.0.6" = { | |
|
1926 | 2457 | name = "inflight"; |
|
1927 | 2458 | packageName = "inflight"; |
|
1928 |
version = "1.0. |
|
|
2459 | version = "1.0.6"; | |
|
1929 | 2460 | src = fetchurl { |
|
1930 |
url = "https://registry.npmjs.org/inflight/-/inflight-1.0. |
|
|
1931 | sha1 = "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a"; | |
|
1932 | }; | |
|
1933 | }; | |
|
1934 | "once-1.4.0" = { | |
|
1935 | name = "once"; | |
|
1936 | packageName = "once"; | |
|
1937 | version = "1.4.0"; | |
|
1938 | src = fetchurl { | |
|
1939 | url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; | |
|
1940 | sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; | |
|
2461 | url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; | |
|
2462 | sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; | |
|
1941 | 2463 | }; |
|
1942 | 2464 | }; |
|
1943 |
" |
|
|
1944 | name = "wrappy"; | |
|
1945 | packageName = "wrappy"; | |
|
1946 | version = "1.0.2"; | |
|
1947 | src = fetchurl { | |
|
1948 | url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; | |
|
1949 | sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; | |
|
1950 | }; | |
|
1951 | }; | |
|
1952 | "brace-expansion-1.1.6" = { | |
|
2465 | "brace-expansion-1.1.8" = { | |
|
1953 | 2466 | name = "brace-expansion"; |
|
1954 | 2467 | packageName = "brace-expansion"; |
|
1955 |
version = "1.1. |
|
|
2468 | version = "1.1.8"; | |
|
1956 | 2469 | src = fetchurl { |
|
1957 |
url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1. |
|
|
1958 | sha1 = "7197d7eaa9b87e648390ea61fc66c84427420df9"; | |
|
2470 | url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"; | |
|
2471 | sha1 = "c07b211c7c952ec1f8efd51a77ef0d1d3990a292"; | |
|
1959 | 2472 | }; |
|
1960 | 2473 | }; |
|
1961 |
"balanced-match-0. |
|
|
2474 | "balanced-match-1.0.0" = { | |
|
1962 | 2475 | name = "balanced-match"; |
|
1963 | 2476 | packageName = "balanced-match"; |
|
1964 |
version = "0. |
|
|
2477 | version = "1.0.0"; | |
|
1965 | 2478 | src = fetchurl { |
|
1966 |
url = "https://registry.npmjs.org/balanced-match/-/balanced-match-0. |
|
|
1967 | sha1 = "cb3f3e3c732dc0f01ee70b403f302e61d7709838"; | |
|
2479 | url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; | |
|
2480 | sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; | |
|
1968 | 2481 | }; |
|
1969 | 2482 | }; |
|
1970 | 2483 | "concat-map-0.0.1" = { |
@@ -2057,6 +2570,51 b' let' | |||
|
2057 | 2570 | sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"; |
|
2058 | 2571 | }; |
|
2059 | 2572 | }; |
|
2573 | "string_decoder-0.10.31" = { | |
|
2574 | name = "string_decoder"; | |
|
2575 | packageName = "string_decoder"; | |
|
2576 | version = "0.10.31"; | |
|
2577 | src = fetchurl { | |
|
2578 | url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"; | |
|
2579 | sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; | |
|
2580 | }; | |
|
2581 | }; | |
|
2582 | "good-listener-1.2.2" = { | |
|
2583 | name = "good-listener"; | |
|
2584 | packageName = "good-listener"; | |
|
2585 | version = "1.2.2"; | |
|
2586 | src = fetchurl { | |
|
2587 | url = "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz"; | |
|
2588 | sha1 = "d53b30cdf9313dffb7dc9a0d477096aa6d145c50"; | |
|
2589 | }; | |
|
2590 | }; | |
|
2591 | "select-1.1.2" = { | |
|
2592 | name = "select"; | |
|
2593 | packageName = "select"; | |
|
2594 | version = "1.1.2"; | |
|
2595 | src = fetchurl { | |
|
2596 | url = "https://registry.npmjs.org/select/-/select-1.1.2.tgz"; | |
|
2597 | sha1 = "0e7350acdec80b1108528786ec1d4418d11b396d"; | |
|
2598 | }; | |
|
2599 | }; | |
|
2600 | "tiny-emitter-2.0.2" = { | |
|
2601 | name = "tiny-emitter"; | |
|
2602 | packageName = "tiny-emitter"; | |
|
2603 | version = "2.0.2"; | |
|
2604 | src = fetchurl { | |
|
2605 | url = "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz"; | |
|
2606 | sha1 = "82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c"; | |
|
2607 | }; | |
|
2608 | }; | |
|
2609 | "delegate-3.1.3" = { | |
|
2610 | name = "delegate"; | |
|
2611 | packageName = "delegate"; | |
|
2612 | version = "3.1.3"; | |
|
2613 | src = fetchurl { | |
|
2614 | url = "https://registry.npmjs.org/delegate/-/delegate-3.1.3.tgz"; | |
|
2615 | sha1 = "9a8251a777d7025faa55737bc3b071742127a9fd"; | |
|
2616 | }; | |
|
2617 | }; | |
|
2060 | 2618 | }; |
|
2061 | 2619 | args = { |
|
2062 | 2620 | name = "rhodecode-enterprise"; |
@@ -2077,10 +2635,10 b' let' | |||
|
2077 | 2635 | ]; |
|
2078 | 2636 | }) |
|
2079 | 2637 | sources."grunt-contrib-jshint-0.12.0" |
|
2080 |
(sources."grunt-contrib-less-1.4. |
|
|
2638 | (sources."grunt-contrib-less-1.4.1" // { | |
|
2081 | 2639 | dependencies = [ |
|
2082 |
sources."async-2.0 |
|
|
2083 |
sources."lodash-4.1 |
|
|
2640 | sources."async-2.5.0" | |
|
2641 | sources."lodash-4.17.4" | |
|
2084 | 2642 | ]; |
|
2085 | 2643 | }) |
|
2086 | 2644 | (sources."grunt-contrib-watch-0.6.1" // { |
@@ -2089,8 +2647,8 b' let' | |||
|
2089 | 2647 | sources."async-0.2.10" |
|
2090 | 2648 | ]; |
|
2091 | 2649 | }) |
|
2092 |
sources."crisper-2. |
|
|
2093 |
(sources."vulcanize-1.1 |
|
|
2650 | sources."crisper-2.1.1" | |
|
2651 | (sources."vulcanize-1.16.0" // { | |
|
2094 | 2652 | dependencies = [ |
|
2095 | 2653 | sources."nopt-3.0.6" |
|
2096 | 2654 | ]; |
@@ -2102,15 +2660,20 b' let' | |||
|
2102 | 2660 | sources."nopt-3.0.6" |
|
2103 | 2661 | ]; |
|
2104 | 2662 | }) |
|
2105 |
|
|
|
2663 | sources."node2nix-1.3.0" | |
|
2664 | (sources."jshint-2.9.5" // { | |
|
2106 | 2665 | dependencies = [ |
|
2107 |
sources."minimatch-3.0. |
|
|
2666 | sources."minimatch-3.0.4" | |
|
2108 | 2667 | sources."lodash-3.7.0" |
|
2109 | 2668 | ]; |
|
2110 | 2669 | }) |
|
2111 |
sources."bower-1. |
|
|
2670 | sources."bower-1.8.2" | |
|
2671 | sources."jquery-1.11.3" | |
|
2112 | 2672 | sources."favico.js-0.3.10" |
|
2113 | sources."appenlight-client-git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.0" | |
|
2673 | sources."clipboard-1.7.1" | |
|
2674 | sources."moment-2.18.1" | |
|
2675 | sources."mousetrap-1.6.1" | |
|
2676 | sources."appenlight-client-git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.1" | |
|
2114 | 2677 | sources."async-0.1.22" |
|
2115 | 2678 | sources."coffee-script-1.3.3" |
|
2116 | 2679 | sources."colors-0.6.2" |
@@ -2150,7 +2713,7 b' let' | |||
|
2150 | 2713 | sources."lru-cache-2.7.3" |
|
2151 | 2714 | sources."sigmund-1.0.1" |
|
2152 | 2715 | sources."graceful-fs-1.2.3" |
|
2153 |
sources."abbrev-1.0 |
|
|
2716 | sources."abbrev-1.1.0" | |
|
2154 | 2717 | (sources."argparse-0.1.16" // { |
|
2155 | 2718 | dependencies = [ |
|
2156 | 2719 | sources."underscore.string-2.4.0" |
@@ -2171,31 +2734,90 b' let' | |||
|
2171 | 2734 | sources."has-ansi-2.0.0" |
|
2172 | 2735 | sources."strip-ansi-3.0.1" |
|
2173 | 2736 | sources."supports-color-2.0.0" |
|
2174 |
sources."ansi-regex-2. |
|
|
2737 | sources."ansi-regex-2.1.1" | |
|
2175 | 2738 | sources."source-map-0.3.0" |
|
2176 |
sources."amdefine-1.0. |
|
|
2177 |
(sources."less-2.7. |
|
|
2739 | sources."amdefine-1.0.1" | |
|
2740 | (sources."less-2.7.2" // { | |
|
2178 | 2741 | dependencies = [ |
|
2179 |
sources."graceful-fs-4.1. |
|
|
2180 |
sources."source-map-0.5. |
|
|
2742 | sources."graceful-fs-4.1.11" | |
|
2743 | sources."source-map-0.5.7" | |
|
2181 | 2744 | ]; |
|
2182 | 2745 | }) |
|
2183 | 2746 | sources."errno-0.1.4" |
|
2184 |
sources."image-size-0.5. |
|
|
2185 |
sources."mime-1. |
|
|
2747 | sources."image-size-0.5.5" | |
|
2748 | sources."mime-1.4.0" | |
|
2186 | 2749 | sources."mkdirp-0.5.1" |
|
2187 |
sources."promise-7. |
|
|
2750 | sources."promise-7.3.1" | |
|
2751 | sources."request-2.82.0" | |
|
2188 | 2752 | sources."prr-0.0.0" |
|
2189 | 2753 | sources."minimist-0.0.8" |
|
2190 |
sources."asap-2.0. |
|
|
2754 | sources."asap-2.0.6" | |
|
2755 | sources."aws-sign2-0.7.0" | |
|
2756 | sources."aws4-1.6.0" | |
|
2757 | sources."caseless-0.12.0" | |
|
2758 | sources."combined-stream-1.0.5" | |
|
2759 | sources."extend-3.0.1" | |
|
2760 | sources."forever-agent-0.6.1" | |
|
2761 | sources."form-data-2.3.1" | |
|
2762 | sources."har-validator-5.0.3" | |
|
2763 | sources."hawk-6.0.2" | |
|
2764 | sources."http-signature-1.2.0" | |
|
2765 | sources."is-typedarray-1.0.0" | |
|
2766 | sources."isstream-0.1.2" | |
|
2767 | sources."json-stringify-safe-5.0.1" | |
|
2768 | sources."mime-types-2.1.17" | |
|
2769 | sources."oauth-sign-0.8.2" | |
|
2770 | sources."performance-now-2.1.0" | |
|
2771 | sources."qs-6.5.1" | |
|
2772 | sources."safe-buffer-5.1.1" | |
|
2773 | sources."stringstream-0.0.5" | |
|
2774 | sources."tough-cookie-2.3.3" | |
|
2775 | sources."tunnel-agent-0.6.0" | |
|
2776 | sources."uuid-3.1.0" | |
|
2777 | sources."delayed-stream-1.0.0" | |
|
2778 | sources."asynckit-0.4.0" | |
|
2779 | sources."ajv-5.2.2" | |
|
2780 | sources."har-schema-2.0.0" | |
|
2781 | sources."co-4.6.0" | |
|
2782 | sources."fast-deep-equal-1.0.0" | |
|
2783 | sources."json-schema-traverse-0.3.1" | |
|
2784 | sources."json-stable-stringify-1.0.1" | |
|
2785 | sources."jsonify-0.0.0" | |
|
2786 | sources."hoek-4.2.0" | |
|
2787 | sources."boom-4.3.1" | |
|
2788 | (sources."cryptiles-3.1.2" // { | |
|
2789 | dependencies = [ | |
|
2790 | sources."boom-5.2.0" | |
|
2791 | ]; | |
|
2792 | }) | |
|
2793 | sources."sntp-2.0.2" | |
|
2794 | sources."assert-plus-1.0.0" | |
|
2795 | sources."jsprim-1.4.1" | |
|
2796 | sources."sshpk-1.13.1" | |
|
2797 | sources."extsprintf-1.3.0" | |
|
2798 | sources."json-schema-0.2.3" | |
|
2799 | sources."verror-1.10.0" | |
|
2800 | sources."core-util-is-1.0.2" | |
|
2801 | sources."asn1-0.2.3" | |
|
2802 | sources."dashdash-1.14.1" | |
|
2803 | sources."getpass-0.1.7" | |
|
2804 | sources."jsbn-0.1.1" | |
|
2805 | sources."tweetnacl-0.14.5" | |
|
2806 | sources."ecc-jsbn-0.1.1" | |
|
2807 | sources."bcrypt-pbkdf-1.0.1" | |
|
2808 | sources."mime-db-1.30.0" | |
|
2809 | sources."punycode-1.4.1" | |
|
2191 | 2810 | sources."gaze-0.5.2" |
|
2192 | sources."tiny-lr-fork-0.0.5" | |
|
2811 | (sources."tiny-lr-fork-0.0.5" // { | |
|
2812 | dependencies = [ | |
|
2813 | sources."qs-0.5.6" | |
|
2814 | ]; | |
|
2815 | }) | |
|
2193 | 2816 | (sources."globule-0.1.0" // { |
|
2194 | 2817 | dependencies = [ |
|
2195 | 2818 | sources."lodash-1.0.2" |
|
2196 | 2819 | ]; |
|
2197 | 2820 | }) |
|
2198 | sources."qs-0.5.6" | |
|
2199 | 2821 | sources."faye-websocket-0.4.4" |
|
2200 | 2822 | (sources."noptify-0.0.3" // { |
|
2201 | 2823 | dependencies = [ |
@@ -2203,62 +2825,60 b' let' | |||
|
2203 | 2825 | ]; |
|
2204 | 2826 | }) |
|
2205 | 2827 | sources."debug-0.7.4" |
|
2206 |
sources."command-line-args- |
|
|
2828 | sources."command-line-args-3.0.5" | |
|
2829 | sources."command-line-usage-3.0.8" | |
|
2207 | 2830 | sources."dom5-1.3.6" |
|
2208 |
sources."array-back-1.0. |
|
|
2209 | sources."command-line-usage-2.0.5" | |
|
2210 | sources."core-js-2.4.1" | |
|
2831 | sources."array-back-1.0.4" | |
|
2211 | 2832 | sources."feature-detect-es6-1.3.1" |
|
2212 |
|
|
|
2213 | dependencies = [ | |
|
2214 |
|
|
|
2215 | ]; | |
|
2216 | }) | |
|
2217 |
sources." |
|
|
2218 |
sources." |
|
|
2219 |
sources." |
|
|
2220 |
sources." |
|
|
2221 | sources."collect-all-0.2.1" | |
|
2222 | sources."stream-connect-1.0.2" | |
|
2223 | sources."stream-via-0.1.1" | |
|
2224 | (sources."collect-json-1.0.8" // { | |
|
2225 | dependencies = [ | |
|
2226 | sources."collect-all-1.0.2" | |
|
2227 | sources."stream-via-1.0.3" | |
|
2228 | ]; | |
|
2229 | }) | |
|
2230 | sources."deep-extend-0.4.1" | |
|
2231 | sources."object-tools-2.0.6" | |
|
2232 | sources."object-get-2.1.0" | |
|
2233 | sources."test-value-1.1.0" | |
|
2833 | sources."find-replace-1.0.3" | |
|
2834 | sources."typical-2.6.1" | |
|
2835 | sources."test-value-2.1.0" | |
|
2836 | sources."ansi-escape-sequences-3.0.0" | |
|
2837 | sources."table-layout-0.3.0" | |
|
2838 | sources."core-js-2.5.1" | |
|
2839 | sources."deep-extend-0.4.2" | |
|
2840 | sources."wordwrapjs-2.0.0" | |
|
2841 | sources."reduce-flatten-1.0.1" | |
|
2234 | 2842 | sources."@types/clone-0.1.30" |
|
2235 |
sources."@types/node-4. |
|
|
2843 | sources."@types/node-4.2.20" | |
|
2236 | 2844 | (sources."@types/parse5-0.0.31" // { |
|
2237 | 2845 | dependencies = [ |
|
2238 |
sources."@types/node-6.0. |
|
|
2846 | sources."@types/node-6.0.88" | |
|
2239 | 2847 | ]; |
|
2240 | 2848 | }) |
|
2241 | 2849 | sources."clone-1.0.2" |
|
2242 | 2850 | sources."parse5-1.5.1" |
|
2243 | 2851 | sources."es6-promise-2.3.0" |
|
2244 |
sources."hydrolysis-1.2 |
|
|
2245 | sources."path-posix-1.0.0" | |
|
2246 | sources."update-notifier-0.6.3" | |
|
2247 | sources."babel-polyfill-6.13.0" | |
|
2248 | sources."doctrine-0.7.2" | |
|
2249 | (sources."escodegen-1.8.1" // { | |
|
2852 | (sources."hydrolysis-1.25.0" // { | |
|
2250 | 2853 | dependencies = [ |
|
2251 |
sources." |
|
|
2252 | sources."esutils-2.0.2" | |
|
2253 | sources."esprima-2.7.3" | |
|
2254 | sources."source-map-0.2.0" | |
|
2854 | sources."dom5-1.1.0" | |
|
2255 | 2855 | ]; |
|
2256 | 2856 | }) |
|
2257 |
sources." |
|
|
2857 | sources."path-posix-1.0.0" | |
|
2858 | sources."acorn-3.3.0" | |
|
2859 | sources."babel-polyfill-6.26.0" | |
|
2860 | sources."doctrine-0.7.2" | |
|
2861 | (sources."escodegen-1.9.0" // { | |
|
2862 | dependencies = [ | |
|
2863 | sources."estraverse-4.2.0" | |
|
2864 | sources."esutils-2.0.2" | |
|
2865 | sources."esprima-3.1.3" | |
|
2866 | sources."source-map-0.5.7" | |
|
2867 | ]; | |
|
2868 | }) | |
|
2869 | (sources."espree-3.5.1" // { | |
|
2870 | dependencies = [ | |
|
2871 | sources."acorn-5.1.2" | |
|
2872 | ]; | |
|
2873 | }) | |
|
2258 | 2874 | sources."estraverse-3.1.0" |
|
2259 |
sources."path-is-absolute-1.0. |
|
|
2260 |
sources."babel-runtime-6. |
|
|
2261 | sources."regenerator-runtime-0.9.5" | |
|
2875 | sources."path-is-absolute-1.0.1" | |
|
2876 | (sources."babel-runtime-6.26.0" // { | |
|
2877 | dependencies = [ | |
|
2878 | sources."regenerator-runtime-0.11.0" | |
|
2879 | ]; | |
|
2880 | }) | |
|
2881 | sources."regenerator-runtime-0.10.5" | |
|
2262 | 2882 | sources."esutils-1.1.6" |
|
2263 | 2883 | sources."isarray-0.0.1" |
|
2264 | 2884 | sources."optionator-0.8.2" |
@@ -2267,105 +2887,112 b' let' | |||
|
2267 | 2887 | sources."wordwrap-1.0.0" |
|
2268 | 2888 | sources."type-check-0.3.2" |
|
2269 | 2889 | sources."levn-0.3.0" |
|
2270 |
sources."fast-levenshtein-2.0. |
|
|
2271 |
sources."acorn- |
|
|
2272 |
|
|
|
2890 | sources."fast-levenshtein-2.0.6" | |
|
2891 | sources."acorn-jsx-3.0.1" | |
|
2892 | sources."object-assign-4.1.1" | |
|
2893 | sources."optparse-1.0.5" | |
|
2894 | sources."semver-5.4.1" | |
|
2895 | (sources."npm-registry-client-8.4.0" // { | |
|
2273 | 2896 | dependencies = [ |
|
2274 |
sources."ac |
|
|
2897 | sources."graceful-fs-4.1.11" | |
|
2275 | 2898 | ]; |
|
2276 | 2899 | }) |
|
2277 |
sources." |
|
|
2278 | (sources."configstore-2.1.0" // { | |
|
2900 | (sources."npmconf-2.1.2" // { | |
|
2279 | 2901 | dependencies = [ |
|
2280 |
sources." |
|
|
2902 | sources."nopt-3.0.6" | |
|
2903 | sources."once-1.3.3" | |
|
2904 | sources."semver-4.3.6" | |
|
2281 | 2905 | ]; |
|
2282 | 2906 | }) |
|
2283 |
sources." |
|
|
2284 |
sources." |
|
|
2285 |
sources."se |
|
|
2286 | sources."filled-array-1.1.0" | |
|
2287 | sources."object-assign-4.1.0" | |
|
2288 | sources."repeating-2.0.1" | |
|
2289 | sources."string-width-1.0.2" | |
|
2290 | sources."widest-line-1.0.0" | |
|
2291 | sources."is-finite-1.0.1" | |
|
2292 | sources."number-is-nan-1.0.0" | |
|
2293 | sources."code-point-at-1.0.0" | |
|
2294 | sources."is-fullwidth-code-point-1.0.0" | |
|
2295 | sources."dot-prop-3.0.0" | |
|
2296 | sources."os-tmpdir-1.0.1" | |
|
2297 | sources."osenv-0.1.3" | |
|
2298 | sources."uuid-2.0.3" | |
|
2299 | (sources."write-file-atomic-1.2.0" // { | |
|
2907 | sources."tar-3.1.15" | |
|
2908 | sources."temp-0.8.3" | |
|
2909 | (sources."fs.extra-1.3.2" // { | |
|
2300 | 2910 | dependencies = [ |
|
2301 |
sources." |
|
|
2911 | sources."mkdirp-0.3.5" | |
|
2302 | 2912 | ]; |
|
2303 | 2913 | }) |
|
2304 |
sources." |
|
|
2305 |
sources." |
|
|
2306 |
sources." |
|
|
2307 |
sources."i |
|
|
2914 | sources."findit-2.0.0" | |
|
2915 | sources."base64-js-1.2.1" | |
|
2916 | sources."slasp-0.0.4" | |
|
2917 | sources."nijs-0.0.23" | |
|
2918 | sources."concat-stream-1.6.0" | |
|
2919 | sources."normalize-package-data-2.4.0" | |
|
2920 | sources."npm-package-arg-5.1.2" | |
|
2921 | sources."once-1.4.0" | |
|
2922 | sources."retry-0.10.1" | |
|
2308 | 2923 | sources."slide-1.1.6" |
|
2309 |
sources." |
|
|
2310 |
sources."g |
|
|
2311 |
sources."r |
|
|
2312 |
sources."re |
|
|
2313 | sources."semver-5.3.0" | |
|
2314 | sources."create-error-class-3.0.2" | |
|
2315 | sources."duplexer2-0.1.4" | |
|
2316 | sources."is-plain-obj-1.1.0" | |
|
2317 | sources."is-redirect-1.0.0" | |
|
2318 | sources."is-retry-allowed-1.1.0" | |
|
2319 | sources."is-stream-1.1.0" | |
|
2320 | sources."lowercase-keys-1.0.0" | |
|
2321 | sources."node-status-codes-1.0.0" | |
|
2322 | sources."parse-json-2.2.0" | |
|
2323 | sources."pinkie-promise-2.0.1" | |
|
2324 | sources."read-all-stream-3.1.0" | |
|
2325 | (sources."readable-stream-2.1.5" // { | |
|
2924 | sources."ssri-4.1.6" | |
|
2925 | sources."npmlog-4.1.2" | |
|
2926 | sources."typedarray-0.0.6" | |
|
2927 | (sources."readable-stream-2.3.3" // { | |
|
2326 | 2928 | dependencies = [ |
|
2327 | 2929 | sources."isarray-1.0.0" |
|
2328 | 2930 | ]; |
|
2329 | 2931 | }) |
|
2330 | sources."timed-out-2.0.0" | |
|
2331 | sources."unzip-response-1.0.1" | |
|
2332 | sources."url-parse-lax-1.0.0" | |
|
2333 | sources."capture-stack-trace-1.0.0" | |
|
2334 | sources."error-ex-1.3.0" | |
|
2335 | sources."is-arrayish-0.2.1" | |
|
2336 | sources."pinkie-2.0.4" | |
|
2337 | sources."buffer-shims-1.0.0" | |
|
2338 | sources."core-util-is-1.0.2" | |
|
2339 | 2932 | sources."process-nextick-args-1.0.7" |
|
2340 |
sources."string_decoder- |
|
|
2933 | sources."string_decoder-1.0.3" | |
|
2341 | 2934 | sources."util-deprecate-1.0.2" |
|
2342 |
sources." |
|
|
2343 | (sources."rc-1.1.6" // { | |
|
2935 | sources."hosted-git-info-2.5.0" | |
|
2936 | sources."is-builtin-module-1.0.0" | |
|
2937 | sources."validate-npm-package-license-3.0.1" | |
|
2938 | sources."builtin-modules-1.1.1" | |
|
2939 | sources."spdx-correct-1.0.2" | |
|
2940 | sources."spdx-expression-parse-1.0.4" | |
|
2941 | sources."spdx-license-ids-1.2.2" | |
|
2942 | sources."osenv-0.1.4" | |
|
2943 | sources."validate-npm-package-name-3.0.0" | |
|
2944 | sources."os-homedir-1.0.2" | |
|
2945 | sources."os-tmpdir-1.0.2" | |
|
2946 | sources."builtins-1.0.3" | |
|
2947 | sources."wrappy-1.0.2" | |
|
2948 | sources."are-we-there-yet-1.1.4" | |
|
2949 | sources."console-control-strings-1.1.0" | |
|
2950 | sources."gauge-2.7.4" | |
|
2951 | sources."set-blocking-2.0.0" | |
|
2952 | sources."delegates-1.0.0" | |
|
2953 | sources."aproba-1.2.0" | |
|
2954 | sources."has-unicode-2.0.1" | |
|
2955 | sources."signal-exit-3.0.2" | |
|
2956 | sources."string-width-1.0.2" | |
|
2957 | sources."wide-align-1.1.2" | |
|
2958 | sources."code-point-at-1.1.0" | |
|
2959 | sources."is-fullwidth-code-point-1.0.0" | |
|
2960 | sources."number-is-nan-1.0.1" | |
|
2961 | sources."config-chain-1.1.11" | |
|
2962 | sources."ini-1.3.4" | |
|
2963 | sources."uid-number-0.0.5" | |
|
2964 | sources."proto-list-1.2.4" | |
|
2965 | sources."minipass-2.2.1" | |
|
2966 | sources."minizlib-1.0.3" | |
|
2967 | sources."yallist-3.0.2" | |
|
2968 | (sources."fs-extra-0.6.4" // { | |
|
2344 | 2969 | dependencies = [ |
|
2345 |
sources."mi |
|
|
2970 | sources."mkdirp-0.3.5" | |
|
2346 | 2971 | ]; |
|
2347 | 2972 | }) |
|
2348 |
sources." |
|
|
2349 |
sources." |
|
|
2350 |
|
|
|
2973 | sources."walk-2.3.9" | |
|
2974 | sources."ncp-0.4.2" | |
|
2975 | sources."jsonfile-1.0.1" | |
|
2976 | sources."foreachasync-3.0.0" | |
|
2977 | (sources."cli-1.0.1" // { | |
|
2351 | 2978 | dependencies = [ |
|
2352 |
sources."glob-7.1. |
|
|
2353 |
sources."minimatch-3.0. |
|
|
2979 | sources."glob-7.1.2" | |
|
2980 | sources."minimatch-3.0.4" | |
|
2354 | 2981 | ]; |
|
2355 | 2982 | }) |
|
2356 | 2983 | sources."console-browserify-1.1.0" |
|
2357 | 2984 | (sources."htmlparser2-3.8.3" // { |
|
2358 | 2985 | dependencies = [ |
|
2359 | 2986 | sources."readable-stream-1.1.14" |
|
2987 | sources."string_decoder-0.10.31" | |
|
2360 | 2988 | ]; |
|
2361 | 2989 | }) |
|
2362 | 2990 | sources."shelljs-0.3.0" |
|
2991 | sources."strip-json-comments-1.0.4" | |
|
2363 | 2992 | sources."fs.realpath-1.0.0" |
|
2364 |
sources."inflight-1.0. |
|
|
2365 |
sources." |
|
|
2366 |
sources." |
|
|
2367 | sources."brace-expansion-1.1.6" | |
|
2368 | sources."balanced-match-0.4.2" | |
|
2993 | sources."inflight-1.0.6" | |
|
2994 | sources."brace-expansion-1.1.8" | |
|
2995 | sources."balanced-match-1.0.0" | |
|
2369 | 2996 | sources."concat-map-0.0.1" |
|
2370 | 2997 | sources."date-now-0.1.4" |
|
2371 | 2998 | sources."domhandler-2.3.0" |
@@ -2378,6 +3005,10 b' let' | |||
|
2378 | 3005 | sources."entities-1.1.1" |
|
2379 | 3006 | ]; |
|
2380 | 3007 | }) |
|
3008 | sources."good-listener-1.2.2" | |
|
3009 | sources."select-1.1.2" | |
|
3010 | sources."tiny-emitter-2.0.2" | |
|
3011 | sources."delegate-3.1.3" | |
|
2381 | 3012 | ]; |
|
2382 | 3013 | meta = { |
|
2383 | 3014 | }; |
|
1 | NO CONTENT: file renamed from rhodecode/public/js/excanvas.min.js to rhodecode/public/js/src/excanvas.min.js |
|
1 | NO CONTENT: file renamed from rhodecode/public/js/jquery.commits-graph.js to rhodecode/public/js/src/plugins/jquery.commits-graph.js |
@@ -117,7 +117,7 b" c.template_context['default_user'] = {" | |||
|
117 | 117 | </script> |
|
118 | 118 | <%include file="/base/plugins_base.mako"/> |
|
119 | 119 | <!--[if lt IE 9]> |
|
120 | <script language="javascript" type="text/javascript" src="${h.asset('js/excanvas.min.js')}"></script> | |
|
120 | <script language="javascript" type="text/javascript" src="${h.asset('js/src/excanvas.min.js')}"></script> | |
|
121 | 121 | <![endif]--> |
|
122 | 122 | <script language="javascript" type="text/javascript" src="${h.asset('js/rhodecode/routes.js', ver=c.rhodecode_version_hash)}"></script> |
|
123 | 123 | <script> var alertMessagePayloads = ${h.flash.json_alerts(request=request)|n}; </script> |
@@ -71,7 +71,7 b'' | |||
|
71 | 71 | </div> |
|
72 | 72 | |
|
73 | 73 | % if c.pagination: |
|
74 | <script type="text/javascript" src="${h.asset('js/jquery.commits-graph.js')}"></script> | |
|
74 | <script type="text/javascript" src="${h.asset('js/src/plugins/jquery.commits-graph.js')}"></script> | |
|
75 | 75 | |
|
76 | 76 | <div class="graph-header"> |
|
77 | 77 | <div id="filter_changelog"> |
@@ -1,7 +0,0 b'' | |||
|
1 | /*! | |
|
2 | * clipboard.js v1.7.1 | |
|
3 | * https://zenorocha.github.io/clipboard.js | |
|
4 | * | |
|
5 | * Licensed MIT Β© Zeno Rocha | |
|
6 | */ | |
|
7 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n||t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<o.length;a++)i(o[a]);return i}({1:[function(t,e,n){function o(t,e){for(;t&&t.nodeType!==i;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var i=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}e.exports=o},{}],2:[function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&o.call(t,n)}}var r=t("./closest");e.exports=o},{"./closest":1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},{}],4:[function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return i(t,e,n);if(c.nodeList(t))return r(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function r(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return l(document.body,t,e,n)}var c=t("./is"),l=t("delegate");e.exports=o},{"./is":3,delegate:2}],5:[function(t,e,n){function o(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),i=document.createRange();i.selectNodeContents(t),o.removeAllRanges(),o.addRange(i),e=o.toString()}return e}e.exports=o},{}],6:[function(t,e,n){function o(){}o.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){i.off(t,o),e.apply(n,arguments)}var i=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,i=n.length;for(o;o<i;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],i=[];if(o&&e)for(var r=0,a=o.length;r<a;r++)o[r].fn!==e&&o[r].fn._!==e&&i.push(o[r]);return i.length?n[t]=i:delete n[t],this}},e.exports=o},{}],7:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","select"],r);else if(void 0!==o)r(n,e("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),c=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return a(t,[{key:"resolveOptions",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function t(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function t(){var e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function t(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function t(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function t(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function t(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function t(){this.removeFake()}},{key:"action",set:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function t(){return this._target}}]),t}();t.exports=c})},{select:5}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if(void 0!==o)r(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(t,e,n,o){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var s=i(e),u=i(n),f=i(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){r(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),h(e,[{key:"resolveOptions",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===d(e.container)?e.container:document.body}},{key:"listenClick",value:function t(e){var n=this;this.listener=(0,f.default)(e,"click",function(t){return n.onClick(t)})}},{key:"onClick",value:function t(e){var n=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),container:this.container,trigger:n,emitter:this})}},{key:"defaultAction",value:function t(e){return l("action",e)}},{key:"defaultTarget",value:function t(e){var n=l("target",e);if(n)return document.querySelector(n)}},{key:"defaultText",value:function t(e){return l("text",e)}},{key:"destroy",value:function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),e}(u.default);t.exports=p})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); No newline at end of file |
@@ -1,4 +0,0 b'' | |||
|
1 | /*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ | |
|
2 | !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; | |
|
3 | if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px") | |
|
4 | },cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m}); |
@@ -1,1 +0,0 b'' | |||
|
1 | {"version":3,"file":"jquery-1.11.1.min.js","sources":["jquery-1.11.1.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","deletedIds","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","isEmptyObject","key","nodeType","e","ownLast","globalEval","data","trim","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","makeArray","arr","results","Object","inArray","max","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","strundefined","MAX_NEGATIVE","pop","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","childNodes","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","parentNode","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","doc","parent","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","innerHTML","firstChild","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","charAt","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","sibling","n","r","targets","closest","l","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","list","stack","once","fire","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","body","setTimeout","triggerHandler","off","detach","removeEventListener","completed","detachEvent","event","readyState","frameElement","doScroll","doScrollCheck","inlineBlockNeedsLayout","container","style","cssText","zoom","offsetWidth","deleteExpando","acceptData","noData","rbrace","rmultiDash","dataAttr","parseJSON","isEmptyDataObject","internalData","pvt","thisCache","internalKey","isNode","toJSON","internalRemoveData","cleanData","applet ","embed ","object ","hasData","removeData","_data","_removeData","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","access","chainable","emptyGet","raw","bulk","rcheckableType","fragment","createDocumentFragment","leadingWhitespace","tbody","htmlSerialize","html5Clone","cloneNode","outerHTML","appendChecked","noCloneChecked","checkClone","noCloneEvent","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","types","events","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","prop","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","createSafeFragment","nodeNames","safeFrag","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","getAll","found","fixDefaultChecked","defaultChecked","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultSelected","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","display","getDefaultComputedStyle","defaultDisplay","write","close","shrinkWrapBlocksVal","shrinkWrapBlocks","width","rmargin","rnumnonpx","getStyles","curCSS","rposition","getComputedStyle","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","addGetHookIf","conditionFn","hookFn","condition","pixelPositionVal","boxSizingReliableVal","reliableHiddenOffsetsVal","reliableMarginRightVal","opacity","cssFloat","backgroundClip","clearCloneStyle","boxSizing","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","computeStyleTests","boxSizingReliable","pixelPosition","reliableMarginRight","marginRight","offsetHeight","swap","ralpha","ropacity","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","showHide","show","hidden","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","*","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","checkDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","ActiveXObject","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","status","abort","statusText","finalText","success","method","crossDomain","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","createStandardXHR","createActiveXHR","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","XMLHttpRequest","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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"} No newline at end of file |
This diff has been collapsed as it changes many lines, (3606 lines changed) Show them Hide them | |||
@@ -1,3606 +0,0 b'' | |||
|
1 | //! moment.js | |
|
2 | //! version : 2.11.2 | |
|
3 | //! authors : Tim Wood, Iskren Chernev, Moment.js contributors | |
|
4 | //! license : MIT | |
|
5 | //! momentjs.com | |
|
6 | ||
|
7 | ;(function (global, factory) { | |
|
8 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | |
|
9 | typeof define === 'function' && define.amd ? define(factory) : | |
|
10 | global.moment = factory() | |
|
11 | }(this, function () { 'use strict'; | |
|
12 | ||
|
13 | var hookCallback; | |
|
14 | ||
|
15 | function utils_hooks__hooks () { | |
|
16 | return hookCallback.apply(null, arguments); | |
|
17 | } | |
|
18 | ||
|
19 | // This is done to register the method called with moment() | |
|
20 | // without creating circular dependencies. | |
|
21 | function setHookCallback (callback) { | |
|
22 | hookCallback = callback; | |
|
23 | } | |
|
24 | ||
|
25 | function isArray(input) { | |
|
26 | return Object.prototype.toString.call(input) === '[object Array]'; | |
|
27 | } | |
|
28 | ||
|
29 | function isDate(input) { | |
|
30 | return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; | |
|
31 | } | |
|
32 | ||
|
33 | function map(arr, fn) { | |
|
34 | var res = [], i; | |
|
35 | for (i = 0; i < arr.length; ++i) { | |
|
36 | res.push(fn(arr[i], i)); | |
|
37 | } | |
|
38 | return res; | |
|
39 | } | |
|
40 | ||
|
41 | function hasOwnProp(a, b) { | |
|
42 | return Object.prototype.hasOwnProperty.call(a, b); | |
|
43 | } | |
|
44 | ||
|
45 | function extend(a, b) { | |
|
46 | for (var i in b) { | |
|
47 | if (hasOwnProp(b, i)) { | |
|
48 | a[i] = b[i]; | |
|
49 | } | |
|
50 | } | |
|
51 | ||
|
52 | if (hasOwnProp(b, 'toString')) { | |
|
53 | a.toString = b.toString; | |
|
54 | } | |
|
55 | ||
|
56 | if (hasOwnProp(b, 'valueOf')) { | |
|
57 | a.valueOf = b.valueOf; | |
|
58 | } | |
|
59 | ||
|
60 | return a; | |
|
61 | } | |
|
62 | ||
|
63 | function create_utc__createUTC (input, format, locale, strict) { | |
|
64 | return createLocalOrUTC(input, format, locale, strict, true).utc(); | |
|
65 | } | |
|
66 | ||
|
67 | function defaultParsingFlags() { | |
|
68 | // We need to deep clone this object. | |
|
69 | return { | |
|
70 | empty : false, | |
|
71 | unusedTokens : [], | |
|
72 | unusedInput : [], | |
|
73 | overflow : -2, | |
|
74 | charsLeftOver : 0, | |
|
75 | nullInput : false, | |
|
76 | invalidMonth : null, | |
|
77 | invalidFormat : false, | |
|
78 | userInvalidated : false, | |
|
79 | iso : false | |
|
80 | }; | |
|
81 | } | |
|
82 | ||
|
83 | function getParsingFlags(m) { | |
|
84 | if (m._pf == null) { | |
|
85 | m._pf = defaultParsingFlags(); | |
|
86 | } | |
|
87 | return m._pf; | |
|
88 | } | |
|
89 | ||
|
90 | function valid__isValid(m) { | |
|
91 | if (m._isValid == null) { | |
|
92 | var flags = getParsingFlags(m); | |
|
93 | m._isValid = !isNaN(m._d.getTime()) && | |
|
94 | flags.overflow < 0 && | |
|
95 | !flags.empty && | |
|
96 | !flags.invalidMonth && | |
|
97 | !flags.invalidWeekday && | |
|
98 | !flags.nullInput && | |
|
99 | !flags.invalidFormat && | |
|
100 | !flags.userInvalidated; | |
|
101 | ||
|
102 | if (m._strict) { | |
|
103 | m._isValid = m._isValid && | |
|
104 | flags.charsLeftOver === 0 && | |
|
105 | flags.unusedTokens.length === 0 && | |
|
106 | flags.bigHour === undefined; | |
|
107 | } | |
|
108 | } | |
|
109 | return m._isValid; | |
|
110 | } | |
|
111 | ||
|
112 | function valid__createInvalid (flags) { | |
|
113 | var m = create_utc__createUTC(NaN); | |
|
114 | if (flags != null) { | |
|
115 | extend(getParsingFlags(m), flags); | |
|
116 | } | |
|
117 | else { | |
|
118 | getParsingFlags(m).userInvalidated = true; | |
|
119 | } | |
|
120 | ||
|
121 | return m; | |
|
122 | } | |
|
123 | ||
|
124 | function isUndefined(input) { | |
|
125 | return input === void 0; | |
|
126 | } | |
|
127 | ||
|
128 | // Plugins that add properties should also add the key here (null value), | |
|
129 | // so we can properly clone ourselves. | |
|
130 | var momentProperties = utils_hooks__hooks.momentProperties = []; | |
|
131 | ||
|
132 | function copyConfig(to, from) { | |
|
133 | var i, prop, val; | |
|
134 | ||
|
135 | if (!isUndefined(from._isAMomentObject)) { | |
|
136 | to._isAMomentObject = from._isAMomentObject; | |
|
137 | } | |
|
138 | if (!isUndefined(from._i)) { | |
|
139 | to._i = from._i; | |
|
140 | } | |
|
141 | if (!isUndefined(from._f)) { | |
|
142 | to._f = from._f; | |
|
143 | } | |
|
144 | if (!isUndefined(from._l)) { | |
|
145 | to._l = from._l; | |
|
146 | } | |
|
147 | if (!isUndefined(from._strict)) { | |
|
148 | to._strict = from._strict; | |
|
149 | } | |
|
150 | if (!isUndefined(from._tzm)) { | |
|
151 | to._tzm = from._tzm; | |
|
152 | } | |
|
153 | if (!isUndefined(from._isUTC)) { | |
|
154 | to._isUTC = from._isUTC; | |
|
155 | } | |
|
156 | if (!isUndefined(from._offset)) { | |
|
157 | to._offset = from._offset; | |
|
158 | } | |
|
159 | if (!isUndefined(from._pf)) { | |
|
160 | to._pf = getParsingFlags(from); | |
|
161 | } | |
|
162 | if (!isUndefined(from._locale)) { | |
|
163 | to._locale = from._locale; | |
|
164 | } | |
|
165 | ||
|
166 | if (momentProperties.length > 0) { | |
|
167 | for (i in momentProperties) { | |
|
168 | prop = momentProperties[i]; | |
|
169 | val = from[prop]; | |
|
170 | if (!isUndefined(val)) { | |
|
171 | to[prop] = val; | |
|
172 | } | |
|
173 | } | |
|
174 | } | |
|
175 | ||
|
176 | return to; | |
|
177 | } | |
|
178 | ||
|
179 | var updateInProgress = false; | |
|
180 | ||
|
181 | // Moment prototype object | |
|
182 | function Moment(config) { | |
|
183 | copyConfig(this, config); | |
|
184 | this._d = new Date(config._d != null ? config._d.getTime() : NaN); | |
|
185 | // Prevent infinite loop in case updateOffset creates new moment | |
|
186 | // objects. | |
|
187 | if (updateInProgress === false) { | |
|
188 | updateInProgress = true; | |
|
189 | utils_hooks__hooks.updateOffset(this); | |
|
190 | updateInProgress = false; | |
|
191 | } | |
|
192 | } | |
|
193 | ||
|
194 | function isMoment (obj) { | |
|
195 | return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); | |
|
196 | } | |
|
197 | ||
|
198 | function absFloor (number) { | |
|
199 | if (number < 0) { | |
|
200 | return Math.ceil(number); | |
|
201 | } else { | |
|
202 | return Math.floor(number); | |
|
203 | } | |
|
204 | } | |
|
205 | ||
|
206 | function toInt(argumentForCoercion) { | |
|
207 | var coercedNumber = +argumentForCoercion, | |
|
208 | value = 0; | |
|
209 | ||
|
210 | if (coercedNumber !== 0 && isFinite(coercedNumber)) { | |
|
211 | value = absFloor(coercedNumber); | |
|
212 | } | |
|
213 | ||
|
214 | return value; | |
|
215 | } | |
|
216 | ||
|
217 | // compare two arrays, return the number of differences | |
|
218 | function compareArrays(array1, array2, dontConvert) { | |
|
219 | var len = Math.min(array1.length, array2.length), | |
|
220 | lengthDiff = Math.abs(array1.length - array2.length), | |
|
221 | diffs = 0, | |
|
222 | i; | |
|
223 | for (i = 0; i < len; i++) { | |
|
224 | if ((dontConvert && array1[i] !== array2[i]) || | |
|
225 | (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { | |
|
226 | diffs++; | |
|
227 | } | |
|
228 | } | |
|
229 | return diffs + lengthDiff; | |
|
230 | } | |
|
231 | ||
|
232 | function Locale() { | |
|
233 | } | |
|
234 | ||
|
235 | // internal storage for locale config files | |
|
236 | var locales = {}; | |
|
237 | var globalLocale; | |
|
238 | ||
|
239 | function normalizeLocale(key) { | |
|
240 | return key ? key.toLowerCase().replace('_', '-') : key; | |
|
241 | } | |
|
242 | ||
|
243 | // pick the locale from the array | |
|
244 | // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each | |
|
245 | // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root | |
|
246 | function chooseLocale(names) { | |
|
247 | var i = 0, j, next, locale, split; | |
|
248 | ||
|
249 | while (i < names.length) { | |
|
250 | split = normalizeLocale(names[i]).split('-'); | |
|
251 | j = split.length; | |
|
252 | next = normalizeLocale(names[i + 1]); | |
|
253 | next = next ? next.split('-') : null; | |
|
254 | while (j > 0) { | |
|
255 | locale = loadLocale(split.slice(0, j).join('-')); | |
|
256 | if (locale) { | |
|
257 | return locale; | |
|
258 | } | |
|
259 | if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { | |
|
260 | //the next array item is better than a shallower substring of this one | |
|
261 | break; | |
|
262 | } | |
|
263 | j--; | |
|
264 | } | |
|
265 | i++; | |
|
266 | } | |
|
267 | return null; | |
|
268 | } | |
|
269 | ||
|
270 | function loadLocale(name) { | |
|
271 | var oldLocale = null; | |
|
272 | // TODO: Find a better way to register and load all the locales in Node | |
|
273 | if (!locales[name] && (typeof module !== 'undefined') && | |
|
274 | module && module.exports) { | |
|
275 | try { | |
|
276 | oldLocale = globalLocale._abbr; | |
|
277 | require('./locale/' + name); | |
|
278 | // because defineLocale currently also sets the global locale, we | |
|
279 | // want to undo that for lazy loaded locales | |
|
280 | locale_locales__getSetGlobalLocale(oldLocale); | |
|
281 | } catch (e) { } | |
|
282 | } | |
|
283 | return locales[name]; | |
|
284 | } | |
|
285 | ||
|
286 | // This function will load locale and then set the global locale. If | |
|
287 | // no arguments are passed in, it will simply return the current global | |
|
288 | // locale key. | |
|
289 | function locale_locales__getSetGlobalLocale (key, values) { | |
|
290 | var data; | |
|
291 | if (key) { | |
|
292 | if (isUndefined(values)) { | |
|
293 | data = locale_locales__getLocale(key); | |
|
294 | } | |
|
295 | else { | |
|
296 | data = defineLocale(key, values); | |
|
297 | } | |
|
298 | ||
|
299 | if (data) { | |
|
300 | // moment.duration._locale = moment._locale = data; | |
|
301 | globalLocale = data; | |
|
302 | } | |
|
303 | } | |
|
304 | ||
|
305 | return globalLocale._abbr; | |
|
306 | } | |
|
307 | ||
|
308 | function defineLocale (name, values) { | |
|
309 | if (values !== null) { | |
|
310 | values.abbr = name; | |
|
311 | locales[name] = locales[name] || new Locale(); | |
|
312 | locales[name].set(values); | |
|
313 | ||
|
314 | // backwards compat for now: also set the locale | |
|
315 | locale_locales__getSetGlobalLocale(name); | |
|
316 | ||
|
317 | return locales[name]; | |
|
318 | } else { | |
|
319 | // useful for testing | |
|
320 | delete locales[name]; | |
|
321 | return null; | |
|
322 | } | |
|
323 | } | |
|
324 | ||
|
325 | // returns locale data | |
|
326 | function locale_locales__getLocale (key) { | |
|
327 | var locale; | |
|
328 | ||
|
329 | if (key && key._locale && key._locale._abbr) { | |
|
330 | key = key._locale._abbr; | |
|
331 | } | |
|
332 | ||
|
333 | if (!key) { | |
|
334 | return globalLocale; | |
|
335 | } | |
|
336 | ||
|
337 | if (!isArray(key)) { | |
|
338 | //short-circuit everything else | |
|
339 | locale = loadLocale(key); | |
|
340 | if (locale) { | |
|
341 | return locale; | |
|
342 | } | |
|
343 | key = [key]; | |
|
344 | } | |
|
345 | ||
|
346 | return chooseLocale(key); | |
|
347 | } | |
|
348 | ||
|
349 | var aliases = {}; | |
|
350 | ||
|
351 | function addUnitAlias (unit, shorthand) { | |
|
352 | var lowerCase = unit.toLowerCase(); | |
|
353 | aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; | |
|
354 | } | |
|
355 | ||
|
356 | function normalizeUnits(units) { | |
|
357 | return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; | |
|
358 | } | |
|
359 | ||
|
360 | function normalizeObjectUnits(inputObject) { | |
|
361 | var normalizedInput = {}, | |
|
362 | normalizedProp, | |
|
363 | prop; | |
|
364 | ||
|
365 | for (prop in inputObject) { | |
|
366 | if (hasOwnProp(inputObject, prop)) { | |
|
367 | normalizedProp = normalizeUnits(prop); | |
|
368 | if (normalizedProp) { | |
|
369 | normalizedInput[normalizedProp] = inputObject[prop]; | |
|
370 | } | |
|
371 | } | |
|
372 | } | |
|
373 | ||
|
374 | return normalizedInput; | |
|
375 | } | |
|
376 | ||
|
377 | function isFunction(input) { | |
|
378 | return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; | |
|
379 | } | |
|
380 | ||
|
381 | function makeGetSet (unit, keepTime) { | |
|
382 | return function (value) { | |
|
383 | if (value != null) { | |
|
384 | get_set__set(this, unit, value); | |
|
385 | utils_hooks__hooks.updateOffset(this, keepTime); | |
|
386 | return this; | |
|
387 | } else { | |
|
388 | return get_set__get(this, unit); | |
|
389 | } | |
|
390 | }; | |
|
391 | } | |
|
392 | ||
|
393 | function get_set__get (mom, unit) { | |
|
394 | return mom.isValid() ? | |
|
395 | mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; | |
|
396 | } | |
|
397 | ||
|
398 | function get_set__set (mom, unit, value) { | |
|
399 | if (mom.isValid()) { | |
|
400 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); | |
|
401 | } | |
|
402 | } | |
|
403 | ||
|
404 | // MOMENTS | |
|
405 | ||
|
406 | function getSet (units, value) { | |
|
407 | var unit; | |
|
408 | if (typeof units === 'object') { | |
|
409 | for (unit in units) { | |
|
410 | this.set(unit, units[unit]); | |
|
411 | } | |
|
412 | } else { | |
|
413 | units = normalizeUnits(units); | |
|
414 | if (isFunction(this[units])) { | |
|
415 | return this[units](value); | |
|
416 | } | |
|
417 | } | |
|
418 | return this; | |
|
419 | } | |
|
420 | ||
|
421 | function zeroFill(number, targetLength, forceSign) { | |
|
422 | var absNumber = '' + Math.abs(number), | |
|
423 | zerosToFill = targetLength - absNumber.length, | |
|
424 | sign = number >= 0; | |
|
425 | return (sign ? (forceSign ? '+' : '') : '-') + | |
|
426 | Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; | |
|
427 | } | |
|
428 | ||
|
429 | var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; | |
|
430 | ||
|
431 | var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; | |
|
432 | ||
|
433 | var formatFunctions = {}; | |
|
434 | ||
|
435 | var formatTokenFunctions = {}; | |
|
436 | ||
|
437 | // token: 'M' | |
|
438 | // padded: ['MM', 2] | |
|
439 | // ordinal: 'Mo' | |
|
440 | // callback: function () { this.month() + 1 } | |
|
441 | function addFormatToken (token, padded, ordinal, callback) { | |
|
442 | var func = callback; | |
|
443 | if (typeof callback === 'string') { | |
|
444 | func = function () { | |
|
445 | return this[callback](); | |
|
446 | }; | |
|
447 | } | |
|
448 | if (token) { | |
|
449 | formatTokenFunctions[token] = func; | |
|
450 | } | |
|
451 | if (padded) { | |
|
452 | formatTokenFunctions[padded[0]] = function () { | |
|
453 | return zeroFill(func.apply(this, arguments), padded[1], padded[2]); | |
|
454 | }; | |
|
455 | } | |
|
456 | if (ordinal) { | |
|
457 | formatTokenFunctions[ordinal] = function () { | |
|
458 | return this.localeData().ordinal(func.apply(this, arguments), token); | |
|
459 | }; | |
|
460 | } | |
|
461 | } | |
|
462 | ||
|
463 | function removeFormattingTokens(input) { | |
|
464 | if (input.match(/\[[\s\S]/)) { | |
|
465 | return input.replace(/^\[|\]$/g, ''); | |
|
466 | } | |
|
467 | return input.replace(/\\/g, ''); | |
|
468 | } | |
|
469 | ||
|
470 | function makeFormatFunction(format) { | |
|
471 | var array = format.match(formattingTokens), i, length; | |
|
472 | ||
|
473 | for (i = 0, length = array.length; i < length; i++) { | |
|
474 | if (formatTokenFunctions[array[i]]) { | |
|
475 | array[i] = formatTokenFunctions[array[i]]; | |
|
476 | } else { | |
|
477 | array[i] = removeFormattingTokens(array[i]); | |
|
478 | } | |
|
479 | } | |
|
480 | ||
|
481 | return function (mom) { | |
|
482 | var output = ''; | |
|
483 | for (i = 0; i < length; i++) { | |
|
484 | output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; | |
|
485 | } | |
|
486 | return output; | |
|
487 | }; | |
|
488 | } | |
|
489 | ||
|
490 | // format date using native date object | |
|
491 | function formatMoment(m, format) { | |
|
492 | if (!m.isValid()) { | |
|
493 | return m.localeData().invalidDate(); | |
|
494 | } | |
|
495 | ||
|
496 | format = expandFormat(format, m.localeData()); | |
|
497 | formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); | |
|
498 | ||
|
499 | return formatFunctions[format](m); | |
|
500 | } | |
|
501 | ||
|
502 | function expandFormat(format, locale) { | |
|
503 | var i = 5; | |
|
504 | ||
|
505 | function replaceLongDateFormatTokens(input) { | |
|
506 | return locale.longDateFormat(input) || input; | |
|
507 | } | |
|
508 | ||
|
509 | localFormattingTokens.lastIndex = 0; | |
|
510 | while (i >= 0 && localFormattingTokens.test(format)) { | |
|
511 | format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); | |
|
512 | localFormattingTokens.lastIndex = 0; | |
|
513 | i -= 1; | |
|
514 | } | |
|
515 | ||
|
516 | return format; | |
|
517 | } | |
|
518 | ||
|
519 | var match1 = /\d/; // 0 - 9 | |
|
520 | var match2 = /\d\d/; // 00 - 99 | |
|
521 | var match3 = /\d{3}/; // 000 - 999 | |
|
522 | var match4 = /\d{4}/; // 0000 - 9999 | |
|
523 | var match6 = /[+-]?\d{6}/; // -999999 - 999999 | |
|
524 | var match1to2 = /\d\d?/; // 0 - 99 | |
|
525 | var match3to4 = /\d\d\d\d?/; // 999 - 9999 | |
|
526 | var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 | |
|
527 | var match1to3 = /\d{1,3}/; // 0 - 999 | |
|
528 | var match1to4 = /\d{1,4}/; // 0 - 9999 | |
|
529 | var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 | |
|
530 | ||
|
531 | var matchUnsigned = /\d+/; // 0 - inf | |
|
532 | var matchSigned = /[+-]?\d+/; // -inf - inf | |
|
533 | ||
|
534 | var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z | |
|
535 | var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z | |
|
536 | ||
|
537 | var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 | |
|
538 | ||
|
539 | // any word (or two) characters or numbers including two/three word month in arabic. | |
|
540 | // includes scottish gaelic two word and hyphenated months | |
|
541 | var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; | |
|
542 | ||
|
543 | ||
|
544 | var regexes = {}; | |
|
545 | ||
|
546 | function addRegexToken (token, regex, strictRegex) { | |
|
547 | regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { | |
|
548 | return (isStrict && strictRegex) ? strictRegex : regex; | |
|
549 | }; | |
|
550 | } | |
|
551 | ||
|
552 | function getParseRegexForToken (token, config) { | |
|
553 | if (!hasOwnProp(regexes, token)) { | |
|
554 | return new RegExp(unescapeFormat(token)); | |
|
555 | } | |
|
556 | ||
|
557 | return regexes[token](config._strict, config._locale); | |
|
558 | } | |
|
559 | ||
|
560 | // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript | |
|
561 | function unescapeFormat(s) { | |
|
562 | return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { | |
|
563 | return p1 || p2 || p3 || p4; | |
|
564 | })); | |
|
565 | } | |
|
566 | ||
|
567 | function regexEscape(s) { | |
|
568 | return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); | |
|
569 | } | |
|
570 | ||
|
571 | var tokens = {}; | |
|
572 | ||
|
573 | function addParseToken (token, callback) { | |
|
574 | var i, func = callback; | |
|
575 | if (typeof token === 'string') { | |
|
576 | token = [token]; | |
|
577 | } | |
|
578 | if (typeof callback === 'number') { | |
|
579 | func = function (input, array) { | |
|
580 | array[callback] = toInt(input); | |
|
581 | }; | |
|
582 | } | |
|
583 | for (i = 0; i < token.length; i++) { | |
|
584 | tokens[token[i]] = func; | |
|
585 | } | |
|
586 | } | |
|
587 | ||
|
588 | function addWeekParseToken (token, callback) { | |
|
589 | addParseToken(token, function (input, array, config, token) { | |
|
590 | config._w = config._w || {}; | |
|
591 | callback(input, config._w, config, token); | |
|
592 | }); | |
|
593 | } | |
|
594 | ||
|
595 | function addTimeToArrayFromToken(token, input, config) { | |
|
596 | if (input != null && hasOwnProp(tokens, token)) { | |
|
597 | tokens[token](input, config._a, config, token); | |
|
598 | } | |
|
599 | } | |
|
600 | ||
|
601 | var YEAR = 0; | |
|
602 | var MONTH = 1; | |
|
603 | var DATE = 2; | |
|
604 | var HOUR = 3; | |
|
605 | var MINUTE = 4; | |
|
606 | var SECOND = 5; | |
|
607 | var MILLISECOND = 6; | |
|
608 | var WEEK = 7; | |
|
609 | var WEEKDAY = 8; | |
|
610 | ||
|
611 | function daysInMonth(year, month) { | |
|
612 | return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); | |
|
613 | } | |
|
614 | ||
|
615 | // FORMATTING | |
|
616 | ||
|
617 | addFormatToken('M', ['MM', 2], 'Mo', function () { | |
|
618 | return this.month() + 1; | |
|
619 | }); | |
|
620 | ||
|
621 | addFormatToken('MMM', 0, 0, function (format) { | |
|
622 | return this.localeData().monthsShort(this, format); | |
|
623 | }); | |
|
624 | ||
|
625 | addFormatToken('MMMM', 0, 0, function (format) { | |
|
626 | return this.localeData().months(this, format); | |
|
627 | }); | |
|
628 | ||
|
629 | // ALIASES | |
|
630 | ||
|
631 | addUnitAlias('month', 'M'); | |
|
632 | ||
|
633 | // PARSING | |
|
634 | ||
|
635 | addRegexToken('M', match1to2); | |
|
636 | addRegexToken('MM', match1to2, match2); | |
|
637 | addRegexToken('MMM', function (isStrict, locale) { | |
|
638 | return locale.monthsShortRegex(isStrict); | |
|
639 | }); | |
|
640 | addRegexToken('MMMM', function (isStrict, locale) { | |
|
641 | return locale.monthsRegex(isStrict); | |
|
642 | }); | |
|
643 | ||
|
644 | addParseToken(['M', 'MM'], function (input, array) { | |
|
645 | array[MONTH] = toInt(input) - 1; | |
|
646 | }); | |
|
647 | ||
|
648 | addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { | |
|
649 | var month = config._locale.monthsParse(input, token, config._strict); | |
|
650 | // if we didn't find a month name, mark the date as invalid. | |
|
651 | if (month != null) { | |
|
652 | array[MONTH] = month; | |
|
653 | } else { | |
|
654 | getParsingFlags(config).invalidMonth = input; | |
|
655 | } | |
|
656 | }); | |
|
657 | ||
|
658 | // LOCALES | |
|
659 | ||
|
660 | var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; | |
|
661 | var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); | |
|
662 | function localeMonths (m, format) { | |
|
663 | return isArray(this._months) ? this._months[m.month()] : | |
|
664 | this._months[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; | |
|
665 | } | |
|
666 | ||
|
667 | var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); | |
|
668 | function localeMonthsShort (m, format) { | |
|
669 | return isArray(this._monthsShort) ? this._monthsShort[m.month()] : | |
|
670 | this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; | |
|
671 | } | |
|
672 | ||
|
673 | function localeMonthsParse (monthName, format, strict) { | |
|
674 | var i, mom, regex; | |
|
675 | ||
|
676 | if (!this._monthsParse) { | |
|
677 | this._monthsParse = []; | |
|
678 | this._longMonthsParse = []; | |
|
679 | this._shortMonthsParse = []; | |
|
680 | } | |
|
681 | ||
|
682 | for (i = 0; i < 12; i++) { | |
|
683 | // make the regex if we don't have it already | |
|
684 | mom = create_utc__createUTC([2000, i]); | |
|
685 | if (strict && !this._longMonthsParse[i]) { | |
|
686 | this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); | |
|
687 | this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); | |
|
688 | } | |
|
689 | if (!strict && !this._monthsParse[i]) { | |
|
690 | regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); | |
|
691 | this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); | |
|
692 | } | |
|
693 | // test the regex | |
|
694 | if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { | |
|
695 | return i; | |
|
696 | } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { | |
|
697 | return i; | |
|
698 | } else if (!strict && this._monthsParse[i].test(monthName)) { | |
|
699 | return i; | |
|
700 | } | |
|
701 | } | |
|
702 | } | |
|
703 | ||
|
704 | // MOMENTS | |
|
705 | ||
|
706 | function setMonth (mom, value) { | |
|
707 | var dayOfMonth; | |
|
708 | ||
|
709 | if (!mom.isValid()) { | |
|
710 | // No op | |
|
711 | return mom; | |
|
712 | } | |
|
713 | ||
|
714 | // TODO: Move this out of here! | |
|
715 | if (typeof value === 'string') { | |
|
716 | value = mom.localeData().monthsParse(value); | |
|
717 | // TODO: Another silent failure? | |
|
718 | if (typeof value !== 'number') { | |
|
719 | return mom; | |
|
720 | } | |
|
721 | } | |
|
722 | ||
|
723 | dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); | |
|
724 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); | |
|
725 | return mom; | |
|
726 | } | |
|
727 | ||
|
728 | function getSetMonth (value) { | |
|
729 | if (value != null) { | |
|
730 | setMonth(this, value); | |
|
731 | utils_hooks__hooks.updateOffset(this, true); | |
|
732 | return this; | |
|
733 | } else { | |
|
734 | return get_set__get(this, 'Month'); | |
|
735 | } | |
|
736 | } | |
|
737 | ||
|
738 | function getDaysInMonth () { | |
|
739 | return daysInMonth(this.year(), this.month()); | |
|
740 | } | |
|
741 | ||
|
742 | var defaultMonthsShortRegex = matchWord; | |
|
743 | function monthsShortRegex (isStrict) { | |
|
744 | if (this._monthsParseExact) { | |
|
745 | if (!hasOwnProp(this, '_monthsRegex')) { | |
|
746 | computeMonthsParse.call(this); | |
|
747 | } | |
|
748 | if (isStrict) { | |
|
749 | return this._monthsShortStrictRegex; | |
|
750 | } else { | |
|
751 | return this._monthsShortRegex; | |
|
752 | } | |
|
753 | } else { | |
|
754 | return this._monthsShortStrictRegex && isStrict ? | |
|
755 | this._monthsShortStrictRegex : this._monthsShortRegex; | |
|
756 | } | |
|
757 | } | |
|
758 | ||
|
759 | var defaultMonthsRegex = matchWord; | |
|
760 | function monthsRegex (isStrict) { | |
|
761 | if (this._monthsParseExact) { | |
|
762 | if (!hasOwnProp(this, '_monthsRegex')) { | |
|
763 | computeMonthsParse.call(this); | |
|
764 | } | |
|
765 | if (isStrict) { | |
|
766 | return this._monthsStrictRegex; | |
|
767 | } else { | |
|
768 | return this._monthsRegex; | |
|
769 | } | |
|
770 | } else { | |
|
771 | return this._monthsStrictRegex && isStrict ? | |
|
772 | this._monthsStrictRegex : this._monthsRegex; | |
|
773 | } | |
|
774 | } | |
|
775 | ||
|
776 | function computeMonthsParse () { | |
|
777 | function cmpLenRev(a, b) { | |
|
778 | return b.length - a.length; | |
|
779 | } | |
|
780 | ||
|
781 | var shortPieces = [], longPieces = [], mixedPieces = [], | |
|
782 | i, mom; | |
|
783 | for (i = 0; i < 12; i++) { | |
|
784 | // make the regex if we don't have it already | |
|
785 | mom = create_utc__createUTC([2000, i]); | |
|
786 | shortPieces.push(this.monthsShort(mom, '')); | |
|
787 | longPieces.push(this.months(mom, '')); | |
|
788 | mixedPieces.push(this.months(mom, '')); | |
|
789 | mixedPieces.push(this.monthsShort(mom, '')); | |
|
790 | } | |
|
791 | // Sorting makes sure if one month (or abbr) is a prefix of another it | |
|
792 | // will match the longer piece. | |
|
793 | shortPieces.sort(cmpLenRev); | |
|
794 | longPieces.sort(cmpLenRev); | |
|
795 | mixedPieces.sort(cmpLenRev); | |
|
796 | for (i = 0; i < 12; i++) { | |
|
797 | shortPieces[i] = regexEscape(shortPieces[i]); | |
|
798 | longPieces[i] = regexEscape(longPieces[i]); | |
|
799 | mixedPieces[i] = regexEscape(mixedPieces[i]); | |
|
800 | } | |
|
801 | ||
|
802 | this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); | |
|
803 | this._monthsShortRegex = this._monthsRegex; | |
|
804 | this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')$', 'i'); | |
|
805 | this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')$', 'i'); | |
|
806 | } | |
|
807 | ||
|
808 | function checkOverflow (m) { | |
|
809 | var overflow; | |
|
810 | var a = m._a; | |
|
811 | ||
|
812 | if (a && getParsingFlags(m).overflow === -2) { | |
|
813 | overflow = | |
|
814 | a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : | |
|
815 | a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : | |
|
816 | a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : | |
|
817 | a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : | |
|
818 | a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : | |
|
819 | a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : | |
|
820 | -1; | |
|
821 | ||
|
822 | if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { | |
|
823 | overflow = DATE; | |
|
824 | } | |
|
825 | if (getParsingFlags(m)._overflowWeeks && overflow === -1) { | |
|
826 | overflow = WEEK; | |
|
827 | } | |
|
828 | if (getParsingFlags(m)._overflowWeekday && overflow === -1) { | |
|
829 | overflow = WEEKDAY; | |
|
830 | } | |
|
831 | ||
|
832 | getParsingFlags(m).overflow = overflow; | |
|
833 | } | |
|
834 | ||
|
835 | return m; | |
|
836 | } | |
|
837 | ||
|
838 | function warn(msg) { | |
|
839 | if (utils_hooks__hooks.suppressDeprecationWarnings === false && | |
|
840 | (typeof console !== 'undefined') && console.warn) { | |
|
841 | console.warn('Deprecation warning: ' + msg); | |
|
842 | } | |
|
843 | } | |
|
844 | ||
|
845 | function deprecate(msg, fn) { | |
|
846 | var firstTime = true; | |
|
847 | ||
|
848 | return extend(function () { | |
|
849 | if (firstTime) { | |
|
850 | warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); | |
|
851 | firstTime = false; | |
|
852 | } | |
|
853 | return fn.apply(this, arguments); | |
|
854 | }, fn); | |
|
855 | } | |
|
856 | ||
|
857 | var deprecations = {}; | |
|
858 | ||
|
859 | function deprecateSimple(name, msg) { | |
|
860 | if (!deprecations[name]) { | |
|
861 | warn(msg); | |
|
862 | deprecations[name] = true; | |
|
863 | } | |
|
864 | } | |
|
865 | ||
|
866 | utils_hooks__hooks.suppressDeprecationWarnings = false; | |
|
867 | ||
|
868 | // iso 8601 regex | |
|
869 | // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) | |
|
870 | var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; | |
|
871 | var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; | |
|
872 | ||
|
873 | var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; | |
|
874 | ||
|
875 | var isoDates = [ | |
|
876 | ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], | |
|
877 | ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], | |
|
878 | ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], | |
|
879 | ['GGGG-[W]WW', /\d{4}-W\d\d/, false], | |
|
880 | ['YYYY-DDD', /\d{4}-\d{3}/], | |
|
881 | ['YYYY-MM', /\d{4}-\d\d/, false], | |
|
882 | ['YYYYYYMMDD', /[+-]\d{10}/], | |
|
883 | ['YYYYMMDD', /\d{8}/], | |
|
884 | // YYYYMM is NOT allowed by the standard | |
|
885 | ['GGGG[W]WWE', /\d{4}W\d{3}/], | |
|
886 | ['GGGG[W]WW', /\d{4}W\d{2}/, false], | |
|
887 | ['YYYYDDD', /\d{7}/] | |
|
888 | ]; | |
|
889 | ||
|
890 | // iso time formats and regexes | |
|
891 | var isoTimes = [ | |
|
892 | ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], | |
|
893 | ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], | |
|
894 | ['HH:mm:ss', /\d\d:\d\d:\d\d/], | |
|
895 | ['HH:mm', /\d\d:\d\d/], | |
|
896 | ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], | |
|
897 | ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], | |
|
898 | ['HHmmss', /\d\d\d\d\d\d/], | |
|
899 | ['HHmm', /\d\d\d\d/], | |
|
900 | ['HH', /\d\d/] | |
|
901 | ]; | |
|
902 | ||
|
903 | var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; | |
|
904 | ||
|
905 | // date from iso format | |
|
906 | function configFromISO(config) { | |
|
907 | var i, l, | |
|
908 | string = config._i, | |
|
909 | match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), | |
|
910 | allowTime, dateFormat, timeFormat, tzFormat; | |
|
911 | ||
|
912 | if (match) { | |
|
913 | getParsingFlags(config).iso = true; | |
|
914 | ||
|
915 | for (i = 0, l = isoDates.length; i < l; i++) { | |
|
916 | if (isoDates[i][1].exec(match[1])) { | |
|
917 | dateFormat = isoDates[i][0]; | |
|
918 | allowTime = isoDates[i][2] !== false; | |
|
919 | break; | |
|
920 | } | |
|
921 | } | |
|
922 | if (dateFormat == null) { | |
|
923 | config._isValid = false; | |
|
924 | return; | |
|
925 | } | |
|
926 | if (match[3]) { | |
|
927 | for (i = 0, l = isoTimes.length; i < l; i++) { | |
|
928 | if (isoTimes[i][1].exec(match[3])) { | |
|
929 | // match[2] should be 'T' or space | |
|
930 | timeFormat = (match[2] || ' ') + isoTimes[i][0]; | |
|
931 | break; | |
|
932 | } | |
|
933 | } | |
|
934 | if (timeFormat == null) { | |
|
935 | config._isValid = false; | |
|
936 | return; | |
|
937 | } | |
|
938 | } | |
|
939 | if (!allowTime && timeFormat != null) { | |
|
940 | config._isValid = false; | |
|
941 | return; | |
|
942 | } | |
|
943 | if (match[4]) { | |
|
944 | if (tzRegex.exec(match[4])) { | |
|
945 | tzFormat = 'Z'; | |
|
946 | } else { | |
|
947 | config._isValid = false; | |
|
948 | return; | |
|
949 | } | |
|
950 | } | |
|
951 | config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); | |
|
952 | configFromStringAndFormat(config); | |
|
953 | } else { | |
|
954 | config._isValid = false; | |
|
955 | } | |
|
956 | } | |
|
957 | ||
|
958 | // date from iso format or fallback | |
|
959 | function configFromString(config) { | |
|
960 | var matched = aspNetJsonRegex.exec(config._i); | |
|
961 | ||
|
962 | if (matched !== null) { | |
|
963 | config._d = new Date(+matched[1]); | |
|
964 | return; | |
|
965 | } | |
|
966 | ||
|
967 | configFromISO(config); | |
|
968 | if (config._isValid === false) { | |
|
969 | delete config._isValid; | |
|
970 | utils_hooks__hooks.createFromInputFallback(config); | |
|
971 | } | |
|
972 | } | |
|
973 | ||
|
974 | utils_hooks__hooks.createFromInputFallback = deprecate( | |
|
975 | 'moment construction falls back to js Date. This is ' + | |
|
976 | 'discouraged and will be removed in upcoming major ' + | |
|
977 | 'release. Please refer to ' + | |
|
978 | 'https://github.com/moment/moment/issues/1407 for more info.', | |
|
979 | function (config) { | |
|
980 | config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); | |
|
981 | } | |
|
982 | ); | |
|
983 | ||
|
984 | function createDate (y, m, d, h, M, s, ms) { | |
|
985 | //can't just apply() to create a date: | |
|
986 | //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply | |
|
987 | var date = new Date(y, m, d, h, M, s, ms); | |
|
988 | ||
|
989 | //the date constructor remaps years 0-99 to 1900-1999 | |
|
990 | if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { | |
|
991 | date.setFullYear(y); | |
|
992 | } | |
|
993 | return date; | |
|
994 | } | |
|
995 | ||
|
996 | function createUTCDate (y) { | |
|
997 | var date = new Date(Date.UTC.apply(null, arguments)); | |
|
998 | ||
|
999 | //the Date.UTC function remaps years 0-99 to 1900-1999 | |
|
1000 | if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { | |
|
1001 | date.setUTCFullYear(y); | |
|
1002 | } | |
|
1003 | return date; | |
|
1004 | } | |
|
1005 | ||
|
1006 | // FORMATTING | |
|
1007 | ||
|
1008 | addFormatToken('Y', 0, 0, function () { | |
|
1009 | var y = this.year(); | |
|
1010 | return y <= 9999 ? '' + y : '+' + y; | |
|
1011 | }); | |
|
1012 | ||
|
1013 | addFormatToken(0, ['YY', 2], 0, function () { | |
|
1014 | return this.year() % 100; | |
|
1015 | }); | |
|
1016 | ||
|
1017 | addFormatToken(0, ['YYYY', 4], 0, 'year'); | |
|
1018 | addFormatToken(0, ['YYYYY', 5], 0, 'year'); | |
|
1019 | addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); | |
|
1020 | ||
|
1021 | // ALIASES | |
|
1022 | ||
|
1023 | addUnitAlias('year', 'y'); | |
|
1024 | ||
|
1025 | // PARSING | |
|
1026 | ||
|
1027 | addRegexToken('Y', matchSigned); | |
|
1028 | addRegexToken('YY', match1to2, match2); | |
|
1029 | addRegexToken('YYYY', match1to4, match4); | |
|
1030 | addRegexToken('YYYYY', match1to6, match6); | |
|
1031 | addRegexToken('YYYYYY', match1to6, match6); | |
|
1032 | ||
|
1033 | addParseToken(['YYYYY', 'YYYYYY'], YEAR); | |
|
1034 | addParseToken('YYYY', function (input, array) { | |
|
1035 | array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); | |
|
1036 | }); | |
|
1037 | addParseToken('YY', function (input, array) { | |
|
1038 | array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); | |
|
1039 | }); | |
|
1040 | addParseToken('Y', function (input, array) { | |
|
1041 | array[YEAR] = parseInt(input, 10); | |
|
1042 | }); | |
|
1043 | ||
|
1044 | // HELPERS | |
|
1045 | ||
|
1046 | function daysInYear(year) { | |
|
1047 | return isLeapYear(year) ? 366 : 365; | |
|
1048 | } | |
|
1049 | ||
|
1050 | function isLeapYear(year) { | |
|
1051 | return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; | |
|
1052 | } | |
|
1053 | ||
|
1054 | // HOOKS | |
|
1055 | ||
|
1056 | utils_hooks__hooks.parseTwoDigitYear = function (input) { | |
|
1057 | return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); | |
|
1058 | }; | |
|
1059 | ||
|
1060 | // MOMENTS | |
|
1061 | ||
|
1062 | var getSetYear = makeGetSet('FullYear', false); | |
|
1063 | ||
|
1064 | function getIsLeapYear () { | |
|
1065 | return isLeapYear(this.year()); | |
|
1066 | } | |
|
1067 | ||
|
1068 | // start-of-first-week - start-of-year | |
|
1069 | function firstWeekOffset(year, dow, doy) { | |
|
1070 | var // first-week day -- which january is always in the first week (4 for iso, 1 for other) | |
|
1071 | fwd = 7 + dow - doy, | |
|
1072 | // first-week day local weekday -- which local weekday is fwd | |
|
1073 | fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; | |
|
1074 | ||
|
1075 | return -fwdlw + fwd - 1; | |
|
1076 | } | |
|
1077 | ||
|
1078 | //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday | |
|
1079 | function dayOfYearFromWeeks(year, week, weekday, dow, doy) { | |
|
1080 | var localWeekday = (7 + weekday - dow) % 7, | |
|
1081 | weekOffset = firstWeekOffset(year, dow, doy), | |
|
1082 | dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, | |
|
1083 | resYear, resDayOfYear; | |
|
1084 | ||
|
1085 | if (dayOfYear <= 0) { | |
|
1086 | resYear = year - 1; | |
|
1087 | resDayOfYear = daysInYear(resYear) + dayOfYear; | |
|
1088 | } else if (dayOfYear > daysInYear(year)) { | |
|
1089 | resYear = year + 1; | |
|
1090 | resDayOfYear = dayOfYear - daysInYear(year); | |
|
1091 | } else { | |
|
1092 | resYear = year; | |
|
1093 | resDayOfYear = dayOfYear; | |
|
1094 | } | |
|
1095 | ||
|
1096 | return { | |
|
1097 | year: resYear, | |
|
1098 | dayOfYear: resDayOfYear | |
|
1099 | }; | |
|
1100 | } | |
|
1101 | ||
|
1102 | function weekOfYear(mom, dow, doy) { | |
|
1103 | var weekOffset = firstWeekOffset(mom.year(), dow, doy), | |
|
1104 | week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, | |
|
1105 | resWeek, resYear; | |
|
1106 | ||
|
1107 | if (week < 1) { | |
|
1108 | resYear = mom.year() - 1; | |
|
1109 | resWeek = week + weeksInYear(resYear, dow, doy); | |
|
1110 | } else if (week > weeksInYear(mom.year(), dow, doy)) { | |
|
1111 | resWeek = week - weeksInYear(mom.year(), dow, doy); | |
|
1112 | resYear = mom.year() + 1; | |
|
1113 | } else { | |
|
1114 | resYear = mom.year(); | |
|
1115 | resWeek = week; | |
|
1116 | } | |
|
1117 | ||
|
1118 | return { | |
|
1119 | week: resWeek, | |
|
1120 | year: resYear | |
|
1121 | }; | |
|
1122 | } | |
|
1123 | ||
|
1124 | function weeksInYear(year, dow, doy) { | |
|
1125 | var weekOffset = firstWeekOffset(year, dow, doy), | |
|
1126 | weekOffsetNext = firstWeekOffset(year + 1, dow, doy); | |
|
1127 | return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; | |
|
1128 | } | |
|
1129 | ||
|
1130 | // Pick the first defined of two or three arguments. | |
|
1131 | function defaults(a, b, c) { | |
|
1132 | if (a != null) { | |
|
1133 | return a; | |
|
1134 | } | |
|
1135 | if (b != null) { | |
|
1136 | return b; | |
|
1137 | } | |
|
1138 | return c; | |
|
1139 | } | |
|
1140 | ||
|
1141 | function currentDateArray(config) { | |
|
1142 | // hooks is actually the exported moment object | |
|
1143 | var nowValue = new Date(utils_hooks__hooks.now()); | |
|
1144 | if (config._useUTC) { | |
|
1145 | return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; | |
|
1146 | } | |
|
1147 | return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; | |
|
1148 | } | |
|
1149 | ||
|
1150 | // convert an array to a date. | |
|
1151 | // the array should mirror the parameters below | |
|
1152 | // note: all values past the year are optional and will default to the lowest possible value. | |
|
1153 | // [year, month, day , hour, minute, second, millisecond] | |
|
1154 | function configFromArray (config) { | |
|
1155 | var i, date, input = [], currentDate, yearToUse; | |
|
1156 | ||
|
1157 | if (config._d) { | |
|
1158 | return; | |
|
1159 | } | |
|
1160 | ||
|
1161 | currentDate = currentDateArray(config); | |
|
1162 | ||
|
1163 | //compute day of the year from weeks and weekdays | |
|
1164 | if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { | |
|
1165 | dayOfYearFromWeekInfo(config); | |
|
1166 | } | |
|
1167 | ||
|
1168 | //if the day of the year is set, figure out what it is | |
|
1169 | if (config._dayOfYear) { | |
|
1170 | yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); | |
|
1171 | ||
|
1172 | if (config._dayOfYear > daysInYear(yearToUse)) { | |
|
1173 | getParsingFlags(config)._overflowDayOfYear = true; | |
|
1174 | } | |
|
1175 | ||
|
1176 | date = createUTCDate(yearToUse, 0, config._dayOfYear); | |
|
1177 | config._a[MONTH] = date.getUTCMonth(); | |
|
1178 | config._a[DATE] = date.getUTCDate(); | |
|
1179 | } | |
|
1180 | ||
|
1181 | // Default to current date. | |
|
1182 | // * if no year, month, day of month are given, default to today | |
|
1183 | // * if day of month is given, default month and year | |
|
1184 | // * if month is given, default only year | |
|
1185 | // * if year is given, don't default anything | |
|
1186 | for (i = 0; i < 3 && config._a[i] == null; ++i) { | |
|
1187 | config._a[i] = input[i] = currentDate[i]; | |
|
1188 | } | |
|
1189 | ||
|
1190 | // Zero out whatever was not defaulted, including time | |
|
1191 | for (; i < 7; i++) { | |
|
1192 | config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; | |
|
1193 | } | |
|
1194 | ||
|
1195 | // Check for 24:00:00.000 | |
|
1196 | if (config._a[HOUR] === 24 && | |
|
1197 | config._a[MINUTE] === 0 && | |
|
1198 | config._a[SECOND] === 0 && | |
|
1199 | config._a[MILLISECOND] === 0) { | |
|
1200 | config._nextDay = true; | |
|
1201 | config._a[HOUR] = 0; | |
|
1202 | } | |
|
1203 | ||
|
1204 | config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); | |
|
1205 | // Apply timezone offset from input. The actual utcOffset can be changed | |
|
1206 | // with parseZone. | |
|
1207 | if (config._tzm != null) { | |
|
1208 | config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); | |
|
1209 | } | |
|
1210 | ||
|
1211 | if (config._nextDay) { | |
|
1212 | config._a[HOUR] = 24; | |
|
1213 | } | |
|
1214 | } | |
|
1215 | ||
|
1216 | function dayOfYearFromWeekInfo(config) { | |
|
1217 | var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; | |
|
1218 | ||
|
1219 | w = config._w; | |
|
1220 | if (w.GG != null || w.W != null || w.E != null) { | |
|
1221 | dow = 1; | |
|
1222 | doy = 4; | |
|
1223 | ||
|
1224 | // TODO: We need to take the current isoWeekYear, but that depends on | |
|
1225 | // how we interpret now (local, utc, fixed offset). So create | |
|
1226 | // a now version of current config (take local/utc/offset flags, and | |
|
1227 | // create now). | |
|
1228 | weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); | |
|
1229 | week = defaults(w.W, 1); | |
|
1230 | weekday = defaults(w.E, 1); | |
|
1231 | if (weekday < 1 || weekday > 7) { | |
|
1232 | weekdayOverflow = true; | |
|
1233 | } | |
|
1234 | } else { | |
|
1235 | dow = config._locale._week.dow; | |
|
1236 | doy = config._locale._week.doy; | |
|
1237 | ||
|
1238 | weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); | |
|
1239 | week = defaults(w.w, 1); | |
|
1240 | ||
|
1241 | if (w.d != null) { | |
|
1242 | // weekday -- low day numbers are considered next week | |
|
1243 | weekday = w.d; | |
|
1244 | if (weekday < 0 || weekday > 6) { | |
|
1245 | weekdayOverflow = true; | |
|
1246 | } | |
|
1247 | } else if (w.e != null) { | |
|
1248 | // local weekday -- counting starts from begining of week | |
|
1249 | weekday = w.e + dow; | |
|
1250 | if (w.e < 0 || w.e > 6) { | |
|
1251 | weekdayOverflow = true; | |
|
1252 | } | |
|
1253 | } else { | |
|
1254 | // default to begining of week | |
|
1255 | weekday = dow; | |
|
1256 | } | |
|
1257 | } | |
|
1258 | if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { | |
|
1259 | getParsingFlags(config)._overflowWeeks = true; | |
|
1260 | } else if (weekdayOverflow != null) { | |
|
1261 | getParsingFlags(config)._overflowWeekday = true; | |
|
1262 | } else { | |
|
1263 | temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); | |
|
1264 | config._a[YEAR] = temp.year; | |
|
1265 | config._dayOfYear = temp.dayOfYear; | |
|
1266 | } | |
|
1267 | } | |
|
1268 | ||
|
1269 | // constant that refers to the ISO standard | |
|
1270 | utils_hooks__hooks.ISO_8601 = function () {}; | |
|
1271 | ||
|
1272 | // date from string and format string | |
|
1273 | function configFromStringAndFormat(config) { | |
|
1274 | // TODO: Move this to another part of the creation flow to prevent circular deps | |
|
1275 | if (config._f === utils_hooks__hooks.ISO_8601) { | |
|
1276 | configFromISO(config); | |
|
1277 | return; | |
|
1278 | } | |
|
1279 | ||
|
1280 | config._a = []; | |
|
1281 | getParsingFlags(config).empty = true; | |
|
1282 | ||
|
1283 | // This array is used to make a Date, either with `new Date` or `Date.UTC` | |
|
1284 | var string = '' + config._i, | |
|
1285 | i, parsedInput, tokens, token, skipped, | |
|
1286 | stringLength = string.length, | |
|
1287 | totalParsedInputLength = 0; | |
|
1288 | ||
|
1289 | tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; | |
|
1290 | ||
|
1291 | for (i = 0; i < tokens.length; i++) { | |
|
1292 | token = tokens[i]; | |
|
1293 | parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; | |
|
1294 | // console.log('token', token, 'parsedInput', parsedInput, | |
|
1295 | // 'regex', getParseRegexForToken(token, config)); | |
|
1296 | if (parsedInput) { | |
|
1297 | skipped = string.substr(0, string.indexOf(parsedInput)); | |
|
1298 | if (skipped.length > 0) { | |
|
1299 | getParsingFlags(config).unusedInput.push(skipped); | |
|
1300 | } | |
|
1301 | string = string.slice(string.indexOf(parsedInput) + parsedInput.length); | |
|
1302 | totalParsedInputLength += parsedInput.length; | |
|
1303 | } | |
|
1304 | // don't parse if it's not a known token | |
|
1305 | if (formatTokenFunctions[token]) { | |
|
1306 | if (parsedInput) { | |
|
1307 | getParsingFlags(config).empty = false; | |
|
1308 | } | |
|
1309 | else { | |
|
1310 | getParsingFlags(config).unusedTokens.push(token); | |
|
1311 | } | |
|
1312 | addTimeToArrayFromToken(token, parsedInput, config); | |
|
1313 | } | |
|
1314 | else if (config._strict && !parsedInput) { | |
|
1315 | getParsingFlags(config).unusedTokens.push(token); | |
|
1316 | } | |
|
1317 | } | |
|
1318 | ||
|
1319 | // add remaining unparsed input length to the string | |
|
1320 | getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; | |
|
1321 | if (string.length > 0) { | |
|
1322 | getParsingFlags(config).unusedInput.push(string); | |
|
1323 | } | |
|
1324 | ||
|
1325 | // clear _12h flag if hour is <= 12 | |
|
1326 | if (getParsingFlags(config).bigHour === true && | |
|
1327 | config._a[HOUR] <= 12 && | |
|
1328 | config._a[HOUR] > 0) { | |
|
1329 | getParsingFlags(config).bigHour = undefined; | |
|
1330 | } | |
|
1331 | // handle meridiem | |
|
1332 | config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); | |
|
1333 | ||
|
1334 | configFromArray(config); | |
|
1335 | checkOverflow(config); | |
|
1336 | } | |
|
1337 | ||
|
1338 | ||
|
1339 | function meridiemFixWrap (locale, hour, meridiem) { | |
|
1340 | var isPm; | |
|
1341 | ||
|
1342 | if (meridiem == null) { | |
|
1343 | // nothing to do | |
|
1344 | return hour; | |
|
1345 | } | |
|
1346 | if (locale.meridiemHour != null) { | |
|
1347 | return locale.meridiemHour(hour, meridiem); | |
|
1348 | } else if (locale.isPM != null) { | |
|
1349 | // Fallback | |
|
1350 | isPm = locale.isPM(meridiem); | |
|
1351 | if (isPm && hour < 12) { | |
|
1352 | hour += 12; | |
|
1353 | } | |
|
1354 | if (!isPm && hour === 12) { | |
|
1355 | hour = 0; | |
|
1356 | } | |
|
1357 | return hour; | |
|
1358 | } else { | |
|
1359 | // this is not supposed to happen | |
|
1360 | return hour; | |
|
1361 | } | |
|
1362 | } | |
|
1363 | ||
|
1364 | // date from string and array of format strings | |
|
1365 | function configFromStringAndArray(config) { | |
|
1366 | var tempConfig, | |
|
1367 | bestMoment, | |
|
1368 | ||
|
1369 | scoreToBeat, | |
|
1370 | i, | |
|
1371 | currentScore; | |
|
1372 | ||
|
1373 | if (config._f.length === 0) { | |
|
1374 | getParsingFlags(config).invalidFormat = true; | |
|
1375 | config._d = new Date(NaN); | |
|
1376 | return; | |
|
1377 | } | |
|
1378 | ||
|
1379 | for (i = 0; i < config._f.length; i++) { | |
|
1380 | currentScore = 0; | |
|
1381 | tempConfig = copyConfig({}, config); | |
|
1382 | if (config._useUTC != null) { | |
|
1383 | tempConfig._useUTC = config._useUTC; | |
|
1384 | } | |
|
1385 | tempConfig._f = config._f[i]; | |
|
1386 | configFromStringAndFormat(tempConfig); | |
|
1387 | ||
|
1388 | if (!valid__isValid(tempConfig)) { | |
|
1389 | continue; | |
|
1390 | } | |
|
1391 | ||
|
1392 | // if there is any input that was not parsed add a penalty for that format | |
|
1393 | currentScore += getParsingFlags(tempConfig).charsLeftOver; | |
|
1394 | ||
|
1395 | //or tokens | |
|
1396 | currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; | |
|
1397 | ||
|
1398 | getParsingFlags(tempConfig).score = currentScore; | |
|
1399 | ||
|
1400 | if (scoreToBeat == null || currentScore < scoreToBeat) { | |
|
1401 | scoreToBeat = currentScore; | |
|
1402 | bestMoment = tempConfig; | |
|
1403 | } | |
|
1404 | } | |
|
1405 | ||
|
1406 | extend(config, bestMoment || tempConfig); | |
|
1407 | } | |
|
1408 | ||
|
1409 | function configFromObject(config) { | |
|
1410 | if (config._d) { | |
|
1411 | return; | |
|
1412 | } | |
|
1413 | ||
|
1414 | var i = normalizeObjectUnits(config._i); | |
|
1415 | config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { | |
|
1416 | return obj && parseInt(obj, 10); | |
|
1417 | }); | |
|
1418 | ||
|
1419 | configFromArray(config); | |
|
1420 | } | |
|
1421 | ||
|
1422 | function createFromConfig (config) { | |
|
1423 | var res = new Moment(checkOverflow(prepareConfig(config))); | |
|
1424 | if (res._nextDay) { | |
|
1425 | // Adding is smart enough around DST | |
|
1426 | res.add(1, 'd'); | |
|
1427 | res._nextDay = undefined; | |
|
1428 | } | |
|
1429 | ||
|
1430 | return res; | |
|
1431 | } | |
|
1432 | ||
|
1433 | function prepareConfig (config) { | |
|
1434 | var input = config._i, | |
|
1435 | format = config._f; | |
|
1436 | ||
|
1437 | config._locale = config._locale || locale_locales__getLocale(config._l); | |
|
1438 | ||
|
1439 | if (input === null || (format === undefined && input === '')) { | |
|
1440 | return valid__createInvalid({nullInput: true}); | |
|
1441 | } | |
|
1442 | ||
|
1443 | if (typeof input === 'string') { | |
|
1444 | config._i = input = config._locale.preparse(input); | |
|
1445 | } | |
|
1446 | ||
|
1447 | if (isMoment(input)) { | |
|
1448 | return new Moment(checkOverflow(input)); | |
|
1449 | } else if (isArray(format)) { | |
|
1450 | configFromStringAndArray(config); | |
|
1451 | } else if (format) { | |
|
1452 | configFromStringAndFormat(config); | |
|
1453 | } else if (isDate(input)) { | |
|
1454 | config._d = input; | |
|
1455 | } else { | |
|
1456 | configFromInput(config); | |
|
1457 | } | |
|
1458 | ||
|
1459 | if (!valid__isValid(config)) { | |
|
1460 | config._d = null; | |
|
1461 | } | |
|
1462 | ||
|
1463 | return config; | |
|
1464 | } | |
|
1465 | ||
|
1466 | function configFromInput(config) { | |
|
1467 | var input = config._i; | |
|
1468 | if (input === undefined) { | |
|
1469 | config._d = new Date(utils_hooks__hooks.now()); | |
|
1470 | } else if (isDate(input)) { | |
|
1471 | config._d = new Date(+input); | |
|
1472 | } else if (typeof input === 'string') { | |
|
1473 | configFromString(config); | |
|
1474 | } else if (isArray(input)) { | |
|
1475 | config._a = map(input.slice(0), function (obj) { | |
|
1476 | return parseInt(obj, 10); | |
|
1477 | }); | |
|
1478 | configFromArray(config); | |
|
1479 | } else if (typeof(input) === 'object') { | |
|
1480 | configFromObject(config); | |
|
1481 | } else if (typeof(input) === 'number') { | |
|
1482 | // from milliseconds | |
|
1483 | config._d = new Date(input); | |
|
1484 | } else { | |
|
1485 | utils_hooks__hooks.createFromInputFallback(config); | |
|
1486 | } | |
|
1487 | } | |
|
1488 | ||
|
1489 | function createLocalOrUTC (input, format, locale, strict, isUTC) { | |
|
1490 | var c = {}; | |
|
1491 | ||
|
1492 | if (typeof(locale) === 'boolean') { | |
|
1493 | strict = locale; | |
|
1494 | locale = undefined; | |
|
1495 | } | |
|
1496 | // object construction must be done this way. | |
|
1497 | // https://github.com/moment/moment/issues/1423 | |
|
1498 | c._isAMomentObject = true; | |
|
1499 | c._useUTC = c._isUTC = isUTC; | |
|
1500 | c._l = locale; | |
|
1501 | c._i = input; | |
|
1502 | c._f = format; | |
|
1503 | c._strict = strict; | |
|
1504 | ||
|
1505 | return createFromConfig(c); | |
|
1506 | } | |
|
1507 | ||
|
1508 | function local__createLocal (input, format, locale, strict) { | |
|
1509 | return createLocalOrUTC(input, format, locale, strict, false); | |
|
1510 | } | |
|
1511 | ||
|
1512 | var prototypeMin = deprecate( | |
|
1513 | 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', | |
|
1514 | function () { | |
|
1515 | var other = local__createLocal.apply(null, arguments); | |
|
1516 | if (this.isValid() && other.isValid()) { | |
|
1517 | return other < this ? this : other; | |
|
1518 | } else { | |
|
1519 | return valid__createInvalid(); | |
|
1520 | } | |
|
1521 | } | |
|
1522 | ); | |
|
1523 | ||
|
1524 | var prototypeMax = deprecate( | |
|
1525 | 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', | |
|
1526 | function () { | |
|
1527 | var other = local__createLocal.apply(null, arguments); | |
|
1528 | if (this.isValid() && other.isValid()) { | |
|
1529 | return other > this ? this : other; | |
|
1530 | } else { | |
|
1531 | return valid__createInvalid(); | |
|
1532 | } | |
|
1533 | } | |
|
1534 | ); | |
|
1535 | ||
|
1536 | // Pick a moment m from moments so that m[fn](other) is true for all | |
|
1537 | // other. This relies on the function fn to be transitive. | |
|
1538 | // | |
|
1539 | // moments should either be an array of moment objects or an array, whose | |
|
1540 | // first element is an array of moment objects. | |
|
1541 | function pickBy(fn, moments) { | |
|
1542 | var res, i; | |
|
1543 | if (moments.length === 1 && isArray(moments[0])) { | |
|
1544 | moments = moments[0]; | |
|
1545 | } | |
|
1546 | if (!moments.length) { | |
|
1547 | return local__createLocal(); | |
|
1548 | } | |
|
1549 | res = moments[0]; | |
|
1550 | for (i = 1; i < moments.length; ++i) { | |
|
1551 | if (!moments[i].isValid() || moments[i][fn](res)) { | |
|
1552 | res = moments[i]; | |
|
1553 | } | |
|
1554 | } | |
|
1555 | return res; | |
|
1556 | } | |
|
1557 | ||
|
1558 | // TODO: Use [].sort instead? | |
|
1559 | function min () { | |
|
1560 | var args = [].slice.call(arguments, 0); | |
|
1561 | ||
|
1562 | return pickBy('isBefore', args); | |
|
1563 | } | |
|
1564 | ||
|
1565 | function max () { | |
|
1566 | var args = [].slice.call(arguments, 0); | |
|
1567 | ||
|
1568 | return pickBy('isAfter', args); | |
|
1569 | } | |
|
1570 | ||
|
1571 | var now = function () { | |
|
1572 | return Date.now ? Date.now() : +(new Date()); | |
|
1573 | }; | |
|
1574 | ||
|
1575 | function Duration (duration) { | |
|
1576 | var normalizedInput = normalizeObjectUnits(duration), | |
|
1577 | years = normalizedInput.year || 0, | |
|
1578 | quarters = normalizedInput.quarter || 0, | |
|
1579 | months = normalizedInput.month || 0, | |
|
1580 | weeks = normalizedInput.week || 0, | |
|
1581 | days = normalizedInput.day || 0, | |
|
1582 | hours = normalizedInput.hour || 0, | |
|
1583 | minutes = normalizedInput.minute || 0, | |
|
1584 | seconds = normalizedInput.second || 0, | |
|
1585 | milliseconds = normalizedInput.millisecond || 0; | |
|
1586 | ||
|
1587 | // representation for dateAddRemove | |
|
1588 | this._milliseconds = +milliseconds + | |
|
1589 | seconds * 1e3 + // 1000 | |
|
1590 | minutes * 6e4 + // 1000 * 60 | |
|
1591 | hours * 36e5; // 1000 * 60 * 60 | |
|
1592 | // Because of dateAddRemove treats 24 hours as different from a | |
|
1593 | // day when working around DST, we need to store them separately | |
|
1594 | this._days = +days + | |
|
1595 | weeks * 7; | |
|
1596 | // It is impossible translate months into days without knowing | |
|
1597 | // which months you are are talking about, so we have to store | |
|
1598 | // it separately. | |
|
1599 | this._months = +months + | |
|
1600 | quarters * 3 + | |
|
1601 | years * 12; | |
|
1602 | ||
|
1603 | this._data = {}; | |
|
1604 | ||
|
1605 | this._locale = locale_locales__getLocale(); | |
|
1606 | ||
|
1607 | this._bubble(); | |
|
1608 | } | |
|
1609 | ||
|
1610 | function isDuration (obj) { | |
|
1611 | return obj instanceof Duration; | |
|
1612 | } | |
|
1613 | ||
|
1614 | // FORMATTING | |
|
1615 | ||
|
1616 | function offset (token, separator) { | |
|
1617 | addFormatToken(token, 0, 0, function () { | |
|
1618 | var offset = this.utcOffset(); | |
|
1619 | var sign = '+'; | |
|
1620 | if (offset < 0) { | |
|
1621 | offset = -offset; | |
|
1622 | sign = '-'; | |
|
1623 | } | |
|
1624 | return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); | |
|
1625 | }); | |
|
1626 | } | |
|
1627 | ||
|
1628 | offset('Z', ':'); | |
|
1629 | offset('ZZ', ''); | |
|
1630 | ||
|
1631 | // PARSING | |
|
1632 | ||
|
1633 | addRegexToken('Z', matchShortOffset); | |
|
1634 | addRegexToken('ZZ', matchShortOffset); | |
|
1635 | addParseToken(['Z', 'ZZ'], function (input, array, config) { | |
|
1636 | config._useUTC = true; | |
|
1637 | config._tzm = offsetFromString(matchShortOffset, input); | |
|
1638 | }); | |
|
1639 | ||
|
1640 | // HELPERS | |
|
1641 | ||
|
1642 | // timezone chunker | |
|
1643 | // '+10:00' > ['10', '00'] | |
|
1644 | // '-1530' > ['-15', '30'] | |
|
1645 | var chunkOffset = /([\+\-]|\d\d)/gi; | |
|
1646 | ||
|
1647 | function offsetFromString(matcher, string) { | |
|
1648 | var matches = ((string || '').match(matcher) || []); | |
|
1649 | var chunk = matches[matches.length - 1] || []; | |
|
1650 | var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; | |
|
1651 | var minutes = +(parts[1] * 60) + toInt(parts[2]); | |
|
1652 | ||
|
1653 | return parts[0] === '+' ? minutes : -minutes; | |
|
1654 | } | |
|
1655 | ||
|
1656 | // Return a moment from input, that is local/utc/zone equivalent to model. | |
|
1657 | function cloneWithOffset(input, model) { | |
|
1658 | var res, diff; | |
|
1659 | if (model._isUTC) { | |
|
1660 | res = model.clone(); | |
|
1661 | diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); | |
|
1662 | // Use low-level api, because this fn is low-level api. | |
|
1663 | res._d.setTime(+res._d + diff); | |
|
1664 | utils_hooks__hooks.updateOffset(res, false); | |
|
1665 | return res; | |
|
1666 | } else { | |
|
1667 | return local__createLocal(input).local(); | |
|
1668 | } | |
|
1669 | } | |
|
1670 | ||
|
1671 | function getDateOffset (m) { | |
|
1672 | // On Firefox.24 Date#getTimezoneOffset returns a floating point. | |
|
1673 | // https://github.com/moment/moment/pull/1871 | |
|
1674 | return -Math.round(m._d.getTimezoneOffset() / 15) * 15; | |
|
1675 | } | |
|
1676 | ||
|
1677 | // HOOKS | |
|
1678 | ||
|
1679 | // This function will be called whenever a moment is mutated. | |
|
1680 | // It is intended to keep the offset in sync with the timezone. | |
|
1681 | utils_hooks__hooks.updateOffset = function () {}; | |
|
1682 | ||
|
1683 | // MOMENTS | |
|
1684 | ||
|
1685 | // keepLocalTime = true means only change the timezone, without | |
|
1686 | // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> | |
|
1687 | // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset | |
|
1688 | // +0200, so we adjust the time as needed, to be valid. | |
|
1689 | // | |
|
1690 | // Keeping the time actually adds/subtracts (one hour) | |
|
1691 | // from the actual represented time. That is why we call updateOffset | |
|
1692 | // a second time. In case it wants us to change the offset again | |
|
1693 | // _changeInProgress == true case, then we have to adjust, because | |
|
1694 | // there is no such time in the given timezone. | |
|
1695 | function getSetOffset (input, keepLocalTime) { | |
|
1696 | var offset = this._offset || 0, | |
|
1697 | localAdjust; | |
|
1698 | if (!this.isValid()) { | |
|
1699 | return input != null ? this : NaN; | |
|
1700 | } | |
|
1701 | if (input != null) { | |
|
1702 | if (typeof input === 'string') { | |
|
1703 | input = offsetFromString(matchShortOffset, input); | |
|
1704 | } else if (Math.abs(input) < 16) { | |
|
1705 | input = input * 60; | |
|
1706 | } | |
|
1707 | if (!this._isUTC && keepLocalTime) { | |
|
1708 | localAdjust = getDateOffset(this); | |
|
1709 | } | |
|
1710 | this._offset = input; | |
|
1711 | this._isUTC = true; | |
|
1712 | if (localAdjust != null) { | |
|
1713 | this.add(localAdjust, 'm'); | |
|
1714 | } | |
|
1715 | if (offset !== input) { | |
|
1716 | if (!keepLocalTime || this._changeInProgress) { | |
|
1717 | add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); | |
|
1718 | } else if (!this._changeInProgress) { | |
|
1719 | this._changeInProgress = true; | |
|
1720 | utils_hooks__hooks.updateOffset(this, true); | |
|
1721 | this._changeInProgress = null; | |
|
1722 | } | |
|
1723 | } | |
|
1724 | return this; | |
|
1725 | } else { | |
|
1726 | return this._isUTC ? offset : getDateOffset(this); | |
|
1727 | } | |
|
1728 | } | |
|
1729 | ||
|
1730 | function getSetZone (input, keepLocalTime) { | |
|
1731 | if (input != null) { | |
|
1732 | if (typeof input !== 'string') { | |
|
1733 | input = -input; | |
|
1734 | } | |
|
1735 | ||
|
1736 | this.utcOffset(input, keepLocalTime); | |
|
1737 | ||
|
1738 | return this; | |
|
1739 | } else { | |
|
1740 | return -this.utcOffset(); | |
|
1741 | } | |
|
1742 | } | |
|
1743 | ||
|
1744 | function setOffsetToUTC (keepLocalTime) { | |
|
1745 | return this.utcOffset(0, keepLocalTime); | |
|
1746 | } | |
|
1747 | ||
|
1748 | function setOffsetToLocal (keepLocalTime) { | |
|
1749 | if (this._isUTC) { | |
|
1750 | this.utcOffset(0, keepLocalTime); | |
|
1751 | this._isUTC = false; | |
|
1752 | ||
|
1753 | if (keepLocalTime) { | |
|
1754 | this.subtract(getDateOffset(this), 'm'); | |
|
1755 | } | |
|
1756 | } | |
|
1757 | return this; | |
|
1758 | } | |
|
1759 | ||
|
1760 | function setOffsetToParsedOffset () { | |
|
1761 | if (this._tzm) { | |
|
1762 | this.utcOffset(this._tzm); | |
|
1763 | } else if (typeof this._i === 'string') { | |
|
1764 | this.utcOffset(offsetFromString(matchOffset, this._i)); | |
|
1765 | } | |
|
1766 | return this; | |
|
1767 | } | |
|
1768 | ||
|
1769 | function hasAlignedHourOffset (input) { | |
|
1770 | if (!this.isValid()) { | |
|
1771 | return false; | |
|
1772 | } | |
|
1773 | input = input ? local__createLocal(input).utcOffset() : 0; | |
|
1774 | ||
|
1775 | return (this.utcOffset() - input) % 60 === 0; | |
|
1776 | } | |
|
1777 | ||
|
1778 | function isDaylightSavingTime () { | |
|
1779 | return ( | |
|
1780 | this.utcOffset() > this.clone().month(0).utcOffset() || | |
|
1781 | this.utcOffset() > this.clone().month(5).utcOffset() | |
|
1782 | ); | |
|
1783 | } | |
|
1784 | ||
|
1785 | function isDaylightSavingTimeShifted () { | |
|
1786 | if (!isUndefined(this._isDSTShifted)) { | |
|
1787 | return this._isDSTShifted; | |
|
1788 | } | |
|
1789 | ||
|
1790 | var c = {}; | |
|
1791 | ||
|
1792 | copyConfig(c, this); | |
|
1793 | c = prepareConfig(c); | |
|
1794 | ||
|
1795 | if (c._a) { | |
|
1796 | var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); | |
|
1797 | this._isDSTShifted = this.isValid() && | |
|
1798 | compareArrays(c._a, other.toArray()) > 0; | |
|
1799 | } else { | |
|
1800 | this._isDSTShifted = false; | |
|
1801 | } | |
|
1802 | ||
|
1803 | return this._isDSTShifted; | |
|
1804 | } | |
|
1805 | ||
|
1806 | function isLocal () { | |
|
1807 | return this.isValid() ? !this._isUTC : false; | |
|
1808 | } | |
|
1809 | ||
|
1810 | function isUtcOffset () { | |
|
1811 | return this.isValid() ? this._isUTC : false; | |
|
1812 | } | |
|
1813 | ||
|
1814 | function isUtc () { | |
|
1815 | return this.isValid() ? this._isUTC && this._offset === 0 : false; | |
|
1816 | } | |
|
1817 | ||
|
1818 | // ASP.NET json date format regex | |
|
1819 | var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/; | |
|
1820 | ||
|
1821 | // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html | |
|
1822 | // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere | |
|
1823 | var isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; | |
|
1824 | ||
|
1825 | function create__createDuration (input, key) { | |
|
1826 | var duration = input, | |
|
1827 | // matching against regexp is expensive, do it on demand | |
|
1828 | match = null, | |
|
1829 | sign, | |
|
1830 | ret, | |
|
1831 | diffRes; | |
|
1832 | ||
|
1833 | if (isDuration(input)) { | |
|
1834 | duration = { | |
|
1835 | ms : input._milliseconds, | |
|
1836 | d : input._days, | |
|
1837 | M : input._months | |
|
1838 | }; | |
|
1839 | } else if (typeof input === 'number') { | |
|
1840 | duration = {}; | |
|
1841 | if (key) { | |
|
1842 | duration[key] = input; | |
|
1843 | } else { | |
|
1844 | duration.milliseconds = input; | |
|
1845 | } | |
|
1846 | } else if (!!(match = aspNetRegex.exec(input))) { | |
|
1847 | sign = (match[1] === '-') ? -1 : 1; | |
|
1848 | duration = { | |
|
1849 | y : 0, | |
|
1850 | d : toInt(match[DATE]) * sign, | |
|
1851 | h : toInt(match[HOUR]) * sign, | |
|
1852 | m : toInt(match[MINUTE]) * sign, | |
|
1853 | s : toInt(match[SECOND]) * sign, | |
|
1854 | ms : toInt(match[MILLISECOND]) * sign | |
|
1855 | }; | |
|
1856 | } else if (!!(match = isoRegex.exec(input))) { | |
|
1857 | sign = (match[1] === '-') ? -1 : 1; | |
|
1858 | duration = { | |
|
1859 | y : parseIso(match[2], sign), | |
|
1860 | M : parseIso(match[3], sign), | |
|
1861 | d : parseIso(match[4], sign), | |
|
1862 | h : parseIso(match[5], sign), | |
|
1863 | m : parseIso(match[6], sign), | |
|
1864 | s : parseIso(match[7], sign), | |
|
1865 | w : parseIso(match[8], sign) | |
|
1866 | }; | |
|
1867 | } else if (duration == null) {// checks for null or undefined | |
|
1868 | duration = {}; | |
|
1869 | } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { | |
|
1870 | diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); | |
|
1871 | ||
|
1872 | duration = {}; | |
|
1873 | duration.ms = diffRes.milliseconds; | |
|
1874 | duration.M = diffRes.months; | |
|
1875 | } | |
|
1876 | ||
|
1877 | ret = new Duration(duration); | |
|
1878 | ||
|
1879 | if (isDuration(input) && hasOwnProp(input, '_locale')) { | |
|
1880 | ret._locale = input._locale; | |
|
1881 | } | |
|
1882 | ||
|
1883 | return ret; | |
|
1884 | } | |
|
1885 | ||
|
1886 | create__createDuration.fn = Duration.prototype; | |
|
1887 | ||
|
1888 | function parseIso (inp, sign) { | |
|
1889 | // We'd normally use ~~inp for this, but unfortunately it also | |
|
1890 | // converts floats to ints. | |
|
1891 | // inp may be undefined, so careful calling replace on it. | |
|
1892 | var res = inp && parseFloat(inp.replace(',', '.')); | |
|
1893 | // apply sign while we're at it | |
|
1894 | return (isNaN(res) ? 0 : res) * sign; | |
|
1895 | } | |
|
1896 | ||
|
1897 | function positiveMomentsDifference(base, other) { | |
|
1898 | var res = {milliseconds: 0, months: 0}; | |
|
1899 | ||
|
1900 | res.months = other.month() - base.month() + | |
|
1901 | (other.year() - base.year()) * 12; | |
|
1902 | if (base.clone().add(res.months, 'M').isAfter(other)) { | |
|
1903 | --res.months; | |
|
1904 | } | |
|
1905 | ||
|
1906 | res.milliseconds = +other - +(base.clone().add(res.months, 'M')); | |
|
1907 | ||
|
1908 | return res; | |
|
1909 | } | |
|
1910 | ||
|
1911 | function momentsDifference(base, other) { | |
|
1912 | var res; | |
|
1913 | if (!(base.isValid() && other.isValid())) { | |
|
1914 | return {milliseconds: 0, months: 0}; | |
|
1915 | } | |
|
1916 | ||
|
1917 | other = cloneWithOffset(other, base); | |
|
1918 | if (base.isBefore(other)) { | |
|
1919 | res = positiveMomentsDifference(base, other); | |
|
1920 | } else { | |
|
1921 | res = positiveMomentsDifference(other, base); | |
|
1922 | res.milliseconds = -res.milliseconds; | |
|
1923 | res.months = -res.months; | |
|
1924 | } | |
|
1925 | ||
|
1926 | return res; | |
|
1927 | } | |
|
1928 | ||
|
1929 | // TODO: remove 'name' arg after deprecation is removed | |
|
1930 | function createAdder(direction, name) { | |
|
1931 | return function (val, period) { | |
|
1932 | var dur, tmp; | |
|
1933 | //invert the arguments, but complain about it | |
|
1934 | if (period !== null && !isNaN(+period)) { | |
|
1935 | deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); | |
|
1936 | tmp = val; val = period; period = tmp; | |
|
1937 | } | |
|
1938 | ||
|
1939 | val = typeof val === 'string' ? +val : val; | |
|
1940 | dur = create__createDuration(val, period); | |
|
1941 | add_subtract__addSubtract(this, dur, direction); | |
|
1942 | return this; | |
|
1943 | }; | |
|
1944 | } | |
|
1945 | ||
|
1946 | function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { | |
|
1947 | var milliseconds = duration._milliseconds, | |
|
1948 | days = duration._days, | |
|
1949 | months = duration._months; | |
|
1950 | ||
|
1951 | if (!mom.isValid()) { | |
|
1952 | // No op | |
|
1953 | return; | |
|
1954 | } | |
|
1955 | ||
|
1956 | updateOffset = updateOffset == null ? true : updateOffset; | |
|
1957 | ||
|
1958 | if (milliseconds) { | |
|
1959 | mom._d.setTime(+mom._d + milliseconds * isAdding); | |
|
1960 | } | |
|
1961 | if (days) { | |
|
1962 | get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); | |
|
1963 | } | |
|
1964 | if (months) { | |
|
1965 | setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); | |
|
1966 | } | |
|
1967 | if (updateOffset) { | |
|
1968 | utils_hooks__hooks.updateOffset(mom, days || months); | |
|
1969 | } | |
|
1970 | } | |
|
1971 | ||
|
1972 | var add_subtract__add = createAdder(1, 'add'); | |
|
1973 | var add_subtract__subtract = createAdder(-1, 'subtract'); | |
|
1974 | ||
|
1975 | function moment_calendar__calendar (time, formats) { | |
|
1976 | // We want to compare the start of today, vs this. | |
|
1977 | // Getting start-of-today depends on whether we're local/utc/offset or not. | |
|
1978 | var now = time || local__createLocal(), | |
|
1979 | sod = cloneWithOffset(now, this).startOf('day'), | |
|
1980 | diff = this.diff(sod, 'days', true), | |
|
1981 | format = diff < -6 ? 'sameElse' : | |
|
1982 | diff < -1 ? 'lastWeek' : | |
|
1983 | diff < 0 ? 'lastDay' : | |
|
1984 | diff < 1 ? 'sameDay' : | |
|
1985 | diff < 2 ? 'nextDay' : | |
|
1986 | diff < 7 ? 'nextWeek' : 'sameElse'; | |
|
1987 | ||
|
1988 | var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]); | |
|
1989 | ||
|
1990 | return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); | |
|
1991 | } | |
|
1992 | ||
|
1993 | function clone () { | |
|
1994 | return new Moment(this); | |
|
1995 | } | |
|
1996 | ||
|
1997 | function isAfter (input, units) { | |
|
1998 | var localInput = isMoment(input) ? input : local__createLocal(input); | |
|
1999 | if (!(this.isValid() && localInput.isValid())) { | |
|
2000 | return false; | |
|
2001 | } | |
|
2002 | units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); | |
|
2003 | if (units === 'millisecond') { | |
|
2004 | return +this > +localInput; | |
|
2005 | } else { | |
|
2006 | return +localInput < +this.clone().startOf(units); | |
|
2007 | } | |
|
2008 | } | |
|
2009 | ||
|
2010 | function isBefore (input, units) { | |
|
2011 | var localInput = isMoment(input) ? input : local__createLocal(input); | |
|
2012 | if (!(this.isValid() && localInput.isValid())) { | |
|
2013 | return false; | |
|
2014 | } | |
|
2015 | units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); | |
|
2016 | if (units === 'millisecond') { | |
|
2017 | return +this < +localInput; | |
|
2018 | } else { | |
|
2019 | return +this.clone().endOf(units) < +localInput; | |
|
2020 | } | |
|
2021 | } | |
|
2022 | ||
|
2023 | function isBetween (from, to, units) { | |
|
2024 | return this.isAfter(from, units) && this.isBefore(to, units); | |
|
2025 | } | |
|
2026 | ||
|
2027 | function isSame (input, units) { | |
|
2028 | var localInput = isMoment(input) ? input : local__createLocal(input), | |
|
2029 | inputMs; | |
|
2030 | if (!(this.isValid() && localInput.isValid())) { | |
|
2031 | return false; | |
|
2032 | } | |
|
2033 | units = normalizeUnits(units || 'millisecond'); | |
|
2034 | if (units === 'millisecond') { | |
|
2035 | return +this === +localInput; | |
|
2036 | } else { | |
|
2037 | inputMs = +localInput; | |
|
2038 | return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); | |
|
2039 | } | |
|
2040 | } | |
|
2041 | ||
|
2042 | function isSameOrAfter (input, units) { | |
|
2043 | return this.isSame(input, units) || this.isAfter(input,units); | |
|
2044 | } | |
|
2045 | ||
|
2046 | function isSameOrBefore (input, units) { | |
|
2047 | return this.isSame(input, units) || this.isBefore(input,units); | |
|
2048 | } | |
|
2049 | ||
|
2050 | function diff (input, units, asFloat) { | |
|
2051 | var that, | |
|
2052 | zoneDelta, | |
|
2053 | delta, output; | |
|
2054 | ||
|
2055 | if (!this.isValid()) { | |
|
2056 | return NaN; | |
|
2057 | } | |
|
2058 | ||
|
2059 | that = cloneWithOffset(input, this); | |
|
2060 | ||
|
2061 | if (!that.isValid()) { | |
|
2062 | return NaN; | |
|
2063 | } | |
|
2064 | ||
|
2065 | zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; | |
|
2066 | ||
|
2067 | units = normalizeUnits(units); | |
|
2068 | ||
|
2069 | if (units === 'year' || units === 'month' || units === 'quarter') { | |
|
2070 | output = monthDiff(this, that); | |
|
2071 | if (units === 'quarter') { | |
|
2072 | output = output / 3; | |
|
2073 | } else if (units === 'year') { | |
|
2074 | output = output / 12; | |
|
2075 | } | |
|
2076 | } else { | |
|
2077 | delta = this - that; | |
|
2078 | output = units === 'second' ? delta / 1e3 : // 1000 | |
|
2079 | units === 'minute' ? delta / 6e4 : // 1000 * 60 | |
|
2080 | units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 | |
|
2081 | units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst | |
|
2082 | units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst | |
|
2083 | delta; | |
|
2084 | } | |
|
2085 | return asFloat ? output : absFloor(output); | |
|
2086 | } | |
|
2087 | ||
|
2088 | function monthDiff (a, b) { | |
|
2089 | // difference in months | |
|
2090 | var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), | |
|
2091 | // b is in (anchor - 1 month, anchor + 1 month) | |
|
2092 | anchor = a.clone().add(wholeMonthDiff, 'months'), | |
|
2093 | anchor2, adjust; | |
|
2094 | ||
|
2095 | if (b - anchor < 0) { | |
|
2096 | anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); | |
|
2097 | // linear across the month | |
|
2098 | adjust = (b - anchor) / (anchor - anchor2); | |
|
2099 | } else { | |
|
2100 | anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); | |
|
2101 | // linear across the month | |
|
2102 | adjust = (b - anchor) / (anchor2 - anchor); | |
|
2103 | } | |
|
2104 | ||
|
2105 | return -(wholeMonthDiff + adjust); | |
|
2106 | } | |
|
2107 | ||
|
2108 | utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; | |
|
2109 | ||
|
2110 | function toString () { | |
|
2111 | return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); | |
|
2112 | } | |
|
2113 | ||
|
2114 | function moment_format__toISOString () { | |
|
2115 | var m = this.clone().utc(); | |
|
2116 | if (0 < m.year() && m.year() <= 9999) { | |
|
2117 | if (isFunction(Date.prototype.toISOString)) { | |
|
2118 | // native implementation is ~50x faster, use it when we can | |
|
2119 | return this.toDate().toISOString(); | |
|
2120 | } else { | |
|
2121 | return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); | |
|
2122 | } | |
|
2123 | } else { | |
|
2124 | return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); | |
|
2125 | } | |
|
2126 | } | |
|
2127 | ||
|
2128 | function format (inputString) { | |
|
2129 | var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); | |
|
2130 | return this.localeData().postformat(output); | |
|
2131 | } | |
|
2132 | ||
|
2133 | function from (time, withoutSuffix) { | |
|
2134 | if (this.isValid() && | |
|
2135 | ((isMoment(time) && time.isValid()) || | |
|
2136 | local__createLocal(time).isValid())) { | |
|
2137 | return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); | |
|
2138 | } else { | |
|
2139 | return this.localeData().invalidDate(); | |
|
2140 | } | |
|
2141 | } | |
|
2142 | ||
|
2143 | function fromNow (withoutSuffix) { | |
|
2144 | return this.from(local__createLocal(), withoutSuffix); | |
|
2145 | } | |
|
2146 | ||
|
2147 | function to (time, withoutSuffix) { | |
|
2148 | if (this.isValid() && | |
|
2149 | ((isMoment(time) && time.isValid()) || | |
|
2150 | local__createLocal(time).isValid())) { | |
|
2151 | return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); | |
|
2152 | } else { | |
|
2153 | return this.localeData().invalidDate(); | |
|
2154 | } | |
|
2155 | } | |
|
2156 | ||
|
2157 | function toNow (withoutSuffix) { | |
|
2158 | return this.to(local__createLocal(), withoutSuffix); | |
|
2159 | } | |
|
2160 | ||
|
2161 | // If passed a locale key, it will set the locale for this | |
|
2162 | // instance. Otherwise, it will return the locale configuration | |
|
2163 | // variables for this instance. | |
|
2164 | function locale (key) { | |
|
2165 | var newLocaleData; | |
|
2166 | ||
|
2167 | if (key === undefined) { | |
|
2168 | return this._locale._abbr; | |
|
2169 | } else { | |
|
2170 | newLocaleData = locale_locales__getLocale(key); | |
|
2171 | if (newLocaleData != null) { | |
|
2172 | this._locale = newLocaleData; | |
|
2173 | } | |
|
2174 | return this; | |
|
2175 | } | |
|
2176 | } | |
|
2177 | ||
|
2178 | var lang = deprecate( | |
|
2179 | 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', | |
|
2180 | function (key) { | |
|
2181 | if (key === undefined) { | |
|
2182 | return this.localeData(); | |
|
2183 | } else { | |
|
2184 | return this.locale(key); | |
|
2185 | } | |
|
2186 | } | |
|
2187 | ); | |
|
2188 | ||
|
2189 | function localeData () { | |
|
2190 | return this._locale; | |
|
2191 | } | |
|
2192 | ||
|
2193 | function startOf (units) { | |
|
2194 | units = normalizeUnits(units); | |
|
2195 | // the following switch intentionally omits break keywords | |
|
2196 | // to utilize falling through the cases. | |
|
2197 | switch (units) { | |
|
2198 | case 'year': | |
|
2199 | this.month(0); | |
|
2200 | /* falls through */ | |
|
2201 | case 'quarter': | |
|
2202 | case 'month': | |
|
2203 | this.date(1); | |
|
2204 | /* falls through */ | |
|
2205 | case 'week': | |
|
2206 | case 'isoWeek': | |
|
2207 | case 'day': | |
|
2208 | this.hours(0); | |
|
2209 | /* falls through */ | |
|
2210 | case 'hour': | |
|
2211 | this.minutes(0); | |
|
2212 | /* falls through */ | |
|
2213 | case 'minute': | |
|
2214 | this.seconds(0); | |
|
2215 | /* falls through */ | |
|
2216 | case 'second': | |
|
2217 | this.milliseconds(0); | |
|
2218 | } | |
|
2219 | ||
|
2220 | // weeks are a special case | |
|
2221 | if (units === 'week') { | |
|
2222 | this.weekday(0); | |
|
2223 | } | |
|
2224 | if (units === 'isoWeek') { | |
|
2225 | this.isoWeekday(1); | |
|
2226 | } | |
|
2227 | ||
|
2228 | // quarters are also special | |
|
2229 | if (units === 'quarter') { | |
|
2230 | this.month(Math.floor(this.month() / 3) * 3); | |
|
2231 | } | |
|
2232 | ||
|
2233 | return this; | |
|
2234 | } | |
|
2235 | ||
|
2236 | function endOf (units) { | |
|
2237 | units = normalizeUnits(units); | |
|
2238 | if (units === undefined || units === 'millisecond') { | |
|
2239 | return this; | |
|
2240 | } | |
|
2241 | return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); | |
|
2242 | } | |
|
2243 | ||
|
2244 | function to_type__valueOf () { | |
|
2245 | return +this._d - ((this._offset || 0) * 60000); | |
|
2246 | } | |
|
2247 | ||
|
2248 | function unix () { | |
|
2249 | return Math.floor(+this / 1000); | |
|
2250 | } | |
|
2251 | ||
|
2252 | function toDate () { | |
|
2253 | return this._offset ? new Date(+this) : this._d; | |
|
2254 | } | |
|
2255 | ||
|
2256 | function toArray () { | |
|
2257 | var m = this; | |
|
2258 | return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; | |
|
2259 | } | |
|
2260 | ||
|
2261 | function toObject () { | |
|
2262 | var m = this; | |
|
2263 | return { | |
|
2264 | years: m.year(), | |
|
2265 | months: m.month(), | |
|
2266 | date: m.date(), | |
|
2267 | hours: m.hours(), | |
|
2268 | minutes: m.minutes(), | |
|
2269 | seconds: m.seconds(), | |
|
2270 | milliseconds: m.milliseconds() | |
|
2271 | }; | |
|
2272 | } | |
|
2273 | ||
|
2274 | function toJSON () { | |
|
2275 | // JSON.stringify(new Date(NaN)) === 'null' | |
|
2276 | return this.isValid() ? this.toISOString() : 'null'; | |
|
2277 | } | |
|
2278 | ||
|
2279 | function moment_valid__isValid () { | |
|
2280 | return valid__isValid(this); | |
|
2281 | } | |
|
2282 | ||
|
2283 | function parsingFlags () { | |
|
2284 | return extend({}, getParsingFlags(this)); | |
|
2285 | } | |
|
2286 | ||
|
2287 | function invalidAt () { | |
|
2288 | return getParsingFlags(this).overflow; | |
|
2289 | } | |
|
2290 | ||
|
2291 | function creationData() { | |
|
2292 | return { | |
|
2293 | input: this._i, | |
|
2294 | format: this._f, | |
|
2295 | locale: this._locale, | |
|
2296 | isUTC: this._isUTC, | |
|
2297 | strict: this._strict | |
|
2298 | }; | |
|
2299 | } | |
|
2300 | ||
|
2301 | // FORMATTING | |
|
2302 | ||
|
2303 | addFormatToken(0, ['gg', 2], 0, function () { | |
|
2304 | return this.weekYear() % 100; | |
|
2305 | }); | |
|
2306 | ||
|
2307 | addFormatToken(0, ['GG', 2], 0, function () { | |
|
2308 | return this.isoWeekYear() % 100; | |
|
2309 | }); | |
|
2310 | ||
|
2311 | function addWeekYearFormatToken (token, getter) { | |
|
2312 | addFormatToken(0, [token, token.length], 0, getter); | |
|
2313 | } | |
|
2314 | ||
|
2315 | addWeekYearFormatToken('gggg', 'weekYear'); | |
|
2316 | addWeekYearFormatToken('ggggg', 'weekYear'); | |
|
2317 | addWeekYearFormatToken('GGGG', 'isoWeekYear'); | |
|
2318 | addWeekYearFormatToken('GGGGG', 'isoWeekYear'); | |
|
2319 | ||
|
2320 | // ALIASES | |
|
2321 | ||
|
2322 | addUnitAlias('weekYear', 'gg'); | |
|
2323 | addUnitAlias('isoWeekYear', 'GG'); | |
|
2324 | ||
|
2325 | // PARSING | |
|
2326 | ||
|
2327 | addRegexToken('G', matchSigned); | |
|
2328 | addRegexToken('g', matchSigned); | |
|
2329 | addRegexToken('GG', match1to2, match2); | |
|
2330 | addRegexToken('gg', match1to2, match2); | |
|
2331 | addRegexToken('GGGG', match1to4, match4); | |
|
2332 | addRegexToken('gggg', match1to4, match4); | |
|
2333 | addRegexToken('GGGGG', match1to6, match6); | |
|
2334 | addRegexToken('ggggg', match1to6, match6); | |
|
2335 | ||
|
2336 | addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { | |
|
2337 | week[token.substr(0, 2)] = toInt(input); | |
|
2338 | }); | |
|
2339 | ||
|
2340 | addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { | |
|
2341 | week[token] = utils_hooks__hooks.parseTwoDigitYear(input); | |
|
2342 | }); | |
|
2343 | ||
|
2344 | // MOMENTS | |
|
2345 | ||
|
2346 | function getSetWeekYear (input) { | |
|
2347 | return getSetWeekYearHelper.call(this, | |
|
2348 | input, | |
|
2349 | this.week(), | |
|
2350 | this.weekday(), | |
|
2351 | this.localeData()._week.dow, | |
|
2352 | this.localeData()._week.doy); | |
|
2353 | } | |
|
2354 | ||
|
2355 | function getSetISOWeekYear (input) { | |
|
2356 | return getSetWeekYearHelper.call(this, | |
|
2357 | input, this.isoWeek(), this.isoWeekday(), 1, 4); | |
|
2358 | } | |
|
2359 | ||
|
2360 | function getISOWeeksInYear () { | |
|
2361 | return weeksInYear(this.year(), 1, 4); | |
|
2362 | } | |
|
2363 | ||
|
2364 | function getWeeksInYear () { | |
|
2365 | var weekInfo = this.localeData()._week; | |
|
2366 | return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); | |
|
2367 | } | |
|
2368 | ||
|
2369 | function getSetWeekYearHelper(input, week, weekday, dow, doy) { | |
|
2370 | var weeksTarget; | |
|
2371 | if (input == null) { | |
|
2372 | return weekOfYear(this, dow, doy).year; | |
|
2373 | } else { | |
|
2374 | weeksTarget = weeksInYear(input, dow, doy); | |
|
2375 | if (week > weeksTarget) { | |
|
2376 | week = weeksTarget; | |
|
2377 | } | |
|
2378 | return setWeekAll.call(this, input, week, weekday, dow, doy); | |
|
2379 | } | |
|
2380 | } | |
|
2381 | ||
|
2382 | function setWeekAll(weekYear, week, weekday, dow, doy) { | |
|
2383 | var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), | |
|
2384 | date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); | |
|
2385 | ||
|
2386 | // console.log("got", weekYear, week, weekday, "set", date.toISOString()); | |
|
2387 | this.year(date.getUTCFullYear()); | |
|
2388 | this.month(date.getUTCMonth()); | |
|
2389 | this.date(date.getUTCDate()); | |
|
2390 | return this; | |
|
2391 | } | |
|
2392 | ||
|
2393 | // FORMATTING | |
|
2394 | ||
|
2395 | addFormatToken('Q', 0, 'Qo', 'quarter'); | |
|
2396 | ||
|
2397 | // ALIASES | |
|
2398 | ||
|
2399 | addUnitAlias('quarter', 'Q'); | |
|
2400 | ||
|
2401 | // PARSING | |
|
2402 | ||
|
2403 | addRegexToken('Q', match1); | |
|
2404 | addParseToken('Q', function (input, array) { | |
|
2405 | array[MONTH] = (toInt(input) - 1) * 3; | |
|
2406 | }); | |
|
2407 | ||
|
2408 | // MOMENTS | |
|
2409 | ||
|
2410 | function getSetQuarter (input) { | |
|
2411 | return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); | |
|
2412 | } | |
|
2413 | ||
|
2414 | // FORMATTING | |
|
2415 | ||
|
2416 | addFormatToken('w', ['ww', 2], 'wo', 'week'); | |
|
2417 | addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); | |
|
2418 | ||
|
2419 | // ALIASES | |
|
2420 | ||
|
2421 | addUnitAlias('week', 'w'); | |
|
2422 | addUnitAlias('isoWeek', 'W'); | |
|
2423 | ||
|
2424 | // PARSING | |
|
2425 | ||
|
2426 | addRegexToken('w', match1to2); | |
|
2427 | addRegexToken('ww', match1to2, match2); | |
|
2428 | addRegexToken('W', match1to2); | |
|
2429 | addRegexToken('WW', match1to2, match2); | |
|
2430 | ||
|
2431 | addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { | |
|
2432 | week[token.substr(0, 1)] = toInt(input); | |
|
2433 | }); | |
|
2434 | ||
|
2435 | // HELPERS | |
|
2436 | ||
|
2437 | // LOCALES | |
|
2438 | ||
|
2439 | function localeWeek (mom) { | |
|
2440 | return weekOfYear(mom, this._week.dow, this._week.doy).week; | |
|
2441 | } | |
|
2442 | ||
|
2443 | var defaultLocaleWeek = { | |
|
2444 | dow : 0, // Sunday is the first day of the week. | |
|
2445 | doy : 6 // The week that contains Jan 1st is the first week of the year. | |
|
2446 | }; | |
|
2447 | ||
|
2448 | function localeFirstDayOfWeek () { | |
|
2449 | return this._week.dow; | |
|
2450 | } | |
|
2451 | ||
|
2452 | function localeFirstDayOfYear () { | |
|
2453 | return this._week.doy; | |
|
2454 | } | |
|
2455 | ||
|
2456 | // MOMENTS | |
|
2457 | ||
|
2458 | function getSetWeek (input) { | |
|
2459 | var week = this.localeData().week(this); | |
|
2460 | return input == null ? week : this.add((input - week) * 7, 'd'); | |
|
2461 | } | |
|
2462 | ||
|
2463 | function getSetISOWeek (input) { | |
|
2464 | var week = weekOfYear(this, 1, 4).week; | |
|
2465 | return input == null ? week : this.add((input - week) * 7, 'd'); | |
|
2466 | } | |
|
2467 | ||
|
2468 | // FORMATTING | |
|
2469 | ||
|
2470 | addFormatToken('D', ['DD', 2], 'Do', 'date'); | |
|
2471 | ||
|
2472 | // ALIASES | |
|
2473 | ||
|
2474 | addUnitAlias('date', 'D'); | |
|
2475 | ||
|
2476 | // PARSING | |
|
2477 | ||
|
2478 | addRegexToken('D', match1to2); | |
|
2479 | addRegexToken('DD', match1to2, match2); | |
|
2480 | addRegexToken('Do', function (isStrict, locale) { | |
|
2481 | return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; | |
|
2482 | }); | |
|
2483 | ||
|
2484 | addParseToken(['D', 'DD'], DATE); | |
|
2485 | addParseToken('Do', function (input, array) { | |
|
2486 | array[DATE] = toInt(input.match(match1to2)[0], 10); | |
|
2487 | }); | |
|
2488 | ||
|
2489 | // MOMENTS | |
|
2490 | ||
|
2491 | var getSetDayOfMonth = makeGetSet('Date', true); | |
|
2492 | ||
|
2493 | // FORMATTING | |
|
2494 | ||
|
2495 | addFormatToken('d', 0, 'do', 'day'); | |
|
2496 | ||
|
2497 | addFormatToken('dd', 0, 0, function (format) { | |
|
2498 | return this.localeData().weekdaysMin(this, format); | |
|
2499 | }); | |
|
2500 | ||
|
2501 | addFormatToken('ddd', 0, 0, function (format) { | |
|
2502 | return this.localeData().weekdaysShort(this, format); | |
|
2503 | }); | |
|
2504 | ||
|
2505 | addFormatToken('dddd', 0, 0, function (format) { | |
|
2506 | return this.localeData().weekdays(this, format); | |
|
2507 | }); | |
|
2508 | ||
|
2509 | addFormatToken('e', 0, 0, 'weekday'); | |
|
2510 | addFormatToken('E', 0, 0, 'isoWeekday'); | |
|
2511 | ||
|
2512 | // ALIASES | |
|
2513 | ||
|
2514 | addUnitAlias('day', 'd'); | |
|
2515 | addUnitAlias('weekday', 'e'); | |
|
2516 | addUnitAlias('isoWeekday', 'E'); | |
|
2517 | ||
|
2518 | // PARSING | |
|
2519 | ||
|
2520 | addRegexToken('d', match1to2); | |
|
2521 | addRegexToken('e', match1to2); | |
|
2522 | addRegexToken('E', match1to2); | |
|
2523 | addRegexToken('dd', matchWord); | |
|
2524 | addRegexToken('ddd', matchWord); | |
|
2525 | addRegexToken('dddd', matchWord); | |
|
2526 | ||
|
2527 | addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { | |
|
2528 | var weekday = config._locale.weekdaysParse(input, token, config._strict); | |
|
2529 | // if we didn't get a weekday name, mark the date as invalid | |
|
2530 | if (weekday != null) { | |
|
2531 | week.d = weekday; | |
|
2532 | } else { | |
|
2533 | getParsingFlags(config).invalidWeekday = input; | |
|
2534 | } | |
|
2535 | }); | |
|
2536 | ||
|
2537 | addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { | |
|
2538 | week[token] = toInt(input); | |
|
2539 | }); | |
|
2540 | ||
|
2541 | // HELPERS | |
|
2542 | ||
|
2543 | function parseWeekday(input, locale) { | |
|
2544 | if (typeof input !== 'string') { | |
|
2545 | return input; | |
|
2546 | } | |
|
2547 | ||
|
2548 | if (!isNaN(input)) { | |
|
2549 | return parseInt(input, 10); | |
|
2550 | } | |
|
2551 | ||
|
2552 | input = locale.weekdaysParse(input); | |
|
2553 | if (typeof input === 'number') { | |
|
2554 | return input; | |
|
2555 | } | |
|
2556 | ||
|
2557 | return null; | |
|
2558 | } | |
|
2559 | ||
|
2560 | // LOCALES | |
|
2561 | ||
|
2562 | var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); | |
|
2563 | function localeWeekdays (m, format) { | |
|
2564 | return isArray(this._weekdays) ? this._weekdays[m.day()] : | |
|
2565 | this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; | |
|
2566 | } | |
|
2567 | ||
|
2568 | var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); | |
|
2569 | function localeWeekdaysShort (m) { | |
|
2570 | return this._weekdaysShort[m.day()]; | |
|
2571 | } | |
|
2572 | ||
|
2573 | var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); | |
|
2574 | function localeWeekdaysMin (m) { | |
|
2575 | return this._weekdaysMin[m.day()]; | |
|
2576 | } | |
|
2577 | ||
|
2578 | function localeWeekdaysParse (weekdayName, format, strict) { | |
|
2579 | var i, mom, regex; | |
|
2580 | ||
|
2581 | if (!this._weekdaysParse) { | |
|
2582 | this._weekdaysParse = []; | |
|
2583 | this._minWeekdaysParse = []; | |
|
2584 | this._shortWeekdaysParse = []; | |
|
2585 | this._fullWeekdaysParse = []; | |
|
2586 | } | |
|
2587 | ||
|
2588 | for (i = 0; i < 7; i++) { | |
|
2589 | // make the regex if we don't have it already | |
|
2590 | ||
|
2591 | mom = local__createLocal([2000, 1]).day(i); | |
|
2592 | if (strict && !this._fullWeekdaysParse[i]) { | |
|
2593 | this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); | |
|
2594 | this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); | |
|
2595 | this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); | |
|
2596 | } | |
|
2597 | if (!this._weekdaysParse[i]) { | |
|
2598 | regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); | |
|
2599 | this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); | |
|
2600 | } | |
|
2601 | // test the regex | |
|
2602 | if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { | |
|
2603 | return i; | |
|
2604 | } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { | |
|
2605 | return i; | |
|
2606 | } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { | |
|
2607 | return i; | |
|
2608 | } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { | |
|
2609 | return i; | |
|
2610 | } | |
|
2611 | } | |
|
2612 | } | |
|
2613 | ||
|
2614 | // MOMENTS | |
|
2615 | ||
|
2616 | function getSetDayOfWeek (input) { | |
|
2617 | if (!this.isValid()) { | |
|
2618 | return input != null ? this : NaN; | |
|
2619 | } | |
|
2620 | var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); | |
|
2621 | if (input != null) { | |
|
2622 | input = parseWeekday(input, this.localeData()); | |
|
2623 | return this.add(input - day, 'd'); | |
|
2624 | } else { | |
|
2625 | return day; | |
|
2626 | } | |
|
2627 | } | |
|
2628 | ||
|
2629 | function getSetLocaleDayOfWeek (input) { | |
|
2630 | if (!this.isValid()) { | |
|
2631 | return input != null ? this : NaN; | |
|
2632 | } | |
|
2633 | var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; | |
|
2634 | return input == null ? weekday : this.add(input - weekday, 'd'); | |
|
2635 | } | |
|
2636 | ||
|
2637 | function getSetISODayOfWeek (input) { | |
|
2638 | if (!this.isValid()) { | |
|
2639 | return input != null ? this : NaN; | |
|
2640 | } | |
|
2641 | // behaves the same as moment#day except | |
|
2642 | // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) | |
|
2643 | // as a setter, sunday should belong to the previous week. | |
|
2644 | return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); | |
|
2645 | } | |
|
2646 | ||
|
2647 | // FORMATTING | |
|
2648 | ||
|
2649 | addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); | |
|
2650 | ||
|
2651 | // ALIASES | |
|
2652 | ||
|
2653 | addUnitAlias('dayOfYear', 'DDD'); | |
|
2654 | ||
|
2655 | // PARSING | |
|
2656 | ||
|
2657 | addRegexToken('DDD', match1to3); | |
|
2658 | addRegexToken('DDDD', match3); | |
|
2659 | addParseToken(['DDD', 'DDDD'], function (input, array, config) { | |
|
2660 | config._dayOfYear = toInt(input); | |
|
2661 | }); | |
|
2662 | ||
|
2663 | // HELPERS | |
|
2664 | ||
|
2665 | // MOMENTS | |
|
2666 | ||
|
2667 | function getSetDayOfYear (input) { | |
|
2668 | var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; | |
|
2669 | return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); | |
|
2670 | } | |
|
2671 | ||
|
2672 | // FORMATTING | |
|
2673 | ||
|
2674 | function hFormat() { | |
|
2675 | return this.hours() % 12 || 12; | |
|
2676 | } | |
|
2677 | ||
|
2678 | addFormatToken('H', ['HH', 2], 0, 'hour'); | |
|
2679 | addFormatToken('h', ['hh', 2], 0, hFormat); | |
|
2680 | ||
|
2681 | addFormatToken('hmm', 0, 0, function () { | |
|
2682 | return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); | |
|
2683 | }); | |
|
2684 | ||
|
2685 | addFormatToken('hmmss', 0, 0, function () { | |
|
2686 | return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + | |
|
2687 | zeroFill(this.seconds(), 2); | |
|
2688 | }); | |
|
2689 | ||
|
2690 | addFormatToken('Hmm', 0, 0, function () { | |
|
2691 | return '' + this.hours() + zeroFill(this.minutes(), 2); | |
|
2692 | }); | |
|
2693 | ||
|
2694 | addFormatToken('Hmmss', 0, 0, function () { | |
|
2695 | return '' + this.hours() + zeroFill(this.minutes(), 2) + | |
|
2696 | zeroFill(this.seconds(), 2); | |
|
2697 | }); | |
|
2698 | ||
|
2699 | function meridiem (token, lowercase) { | |
|
2700 | addFormatToken(token, 0, 0, function () { | |
|
2701 | return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); | |
|
2702 | }); | |
|
2703 | } | |
|
2704 | ||
|
2705 | meridiem('a', true); | |
|
2706 | meridiem('A', false); | |
|
2707 | ||
|
2708 | // ALIASES | |
|
2709 | ||
|
2710 | addUnitAlias('hour', 'h'); | |
|
2711 | ||
|
2712 | // PARSING | |
|
2713 | ||
|
2714 | function matchMeridiem (isStrict, locale) { | |
|
2715 | return locale._meridiemParse; | |
|
2716 | } | |
|
2717 | ||
|
2718 | addRegexToken('a', matchMeridiem); | |
|
2719 | addRegexToken('A', matchMeridiem); | |
|
2720 | addRegexToken('H', match1to2); | |
|
2721 | addRegexToken('h', match1to2); | |
|
2722 | addRegexToken('HH', match1to2, match2); | |
|
2723 | addRegexToken('hh', match1to2, match2); | |
|
2724 | ||
|
2725 | addRegexToken('hmm', match3to4); | |
|
2726 | addRegexToken('hmmss', match5to6); | |
|
2727 | addRegexToken('Hmm', match3to4); | |
|
2728 | addRegexToken('Hmmss', match5to6); | |
|
2729 | ||
|
2730 | addParseToken(['H', 'HH'], HOUR); | |
|
2731 | addParseToken(['a', 'A'], function (input, array, config) { | |
|
2732 | config._isPm = config._locale.isPM(input); | |
|
2733 | config._meridiem = input; | |
|
2734 | }); | |
|
2735 | addParseToken(['h', 'hh'], function (input, array, config) { | |
|
2736 | array[HOUR] = toInt(input); | |
|
2737 | getParsingFlags(config).bigHour = true; | |
|
2738 | }); | |
|
2739 | addParseToken('hmm', function (input, array, config) { | |
|
2740 | var pos = input.length - 2; | |
|
2741 | array[HOUR] = toInt(input.substr(0, pos)); | |
|
2742 | array[MINUTE] = toInt(input.substr(pos)); | |
|
2743 | getParsingFlags(config).bigHour = true; | |
|
2744 | }); | |
|
2745 | addParseToken('hmmss', function (input, array, config) { | |
|
2746 | var pos1 = input.length - 4; | |
|
2747 | var pos2 = input.length - 2; | |
|
2748 | array[HOUR] = toInt(input.substr(0, pos1)); | |
|
2749 | array[MINUTE] = toInt(input.substr(pos1, 2)); | |
|
2750 | array[SECOND] = toInt(input.substr(pos2)); | |
|
2751 | getParsingFlags(config).bigHour = true; | |
|
2752 | }); | |
|
2753 | addParseToken('Hmm', function (input, array, config) { | |
|
2754 | var pos = input.length - 2; | |
|
2755 | array[HOUR] = toInt(input.substr(0, pos)); | |
|
2756 | array[MINUTE] = toInt(input.substr(pos)); | |
|
2757 | }); | |
|
2758 | addParseToken('Hmmss', function (input, array, config) { | |
|
2759 | var pos1 = input.length - 4; | |
|
2760 | var pos2 = input.length - 2; | |
|
2761 | array[HOUR] = toInt(input.substr(0, pos1)); | |
|
2762 | array[MINUTE] = toInt(input.substr(pos1, 2)); | |
|
2763 | array[SECOND] = toInt(input.substr(pos2)); | |
|
2764 | }); | |
|
2765 | ||
|
2766 | // LOCALES | |
|
2767 | ||
|
2768 | function localeIsPM (input) { | |
|
2769 | // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays | |
|
2770 | // Using charAt should be more compatible. | |
|
2771 | return ((input + '').toLowerCase().charAt(0) === 'p'); | |
|
2772 | } | |
|
2773 | ||
|
2774 | var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; | |
|
2775 | function localeMeridiem (hours, minutes, isLower) { | |
|
2776 | if (hours > 11) { | |
|
2777 | return isLower ? 'pm' : 'PM'; | |
|
2778 | } else { | |
|
2779 | return isLower ? 'am' : 'AM'; | |
|
2780 | } | |
|
2781 | } | |
|
2782 | ||
|
2783 | ||
|
2784 | // MOMENTS | |
|
2785 | ||
|
2786 | // Setting the hour should keep the time, because the user explicitly | |
|
2787 | // specified which hour he wants. So trying to maintain the same hour (in | |
|
2788 | // a new timezone) makes sense. Adding/subtracting hours does not follow | |
|
2789 | // this rule. | |
|
2790 | var getSetHour = makeGetSet('Hours', true); | |
|
2791 | ||
|
2792 | // FORMATTING | |
|
2793 | ||
|
2794 | addFormatToken('m', ['mm', 2], 0, 'minute'); | |
|
2795 | ||
|
2796 | // ALIASES | |
|
2797 | ||
|
2798 | addUnitAlias('minute', 'm'); | |
|
2799 | ||
|
2800 | // PARSING | |
|
2801 | ||
|
2802 | addRegexToken('m', match1to2); | |
|
2803 | addRegexToken('mm', match1to2, match2); | |
|
2804 | addParseToken(['m', 'mm'], MINUTE); | |
|
2805 | ||
|
2806 | // MOMENTS | |
|
2807 | ||
|
2808 | var getSetMinute = makeGetSet('Minutes', false); | |
|
2809 | ||
|
2810 | // FORMATTING | |
|
2811 | ||
|
2812 | addFormatToken('s', ['ss', 2], 0, 'second'); | |
|
2813 | ||
|
2814 | // ALIASES | |
|
2815 | ||
|
2816 | addUnitAlias('second', 's'); | |
|
2817 | ||
|
2818 | // PARSING | |
|
2819 | ||
|
2820 | addRegexToken('s', match1to2); | |
|
2821 | addRegexToken('ss', match1to2, match2); | |
|
2822 | addParseToken(['s', 'ss'], SECOND); | |
|
2823 | ||
|
2824 | // MOMENTS | |
|
2825 | ||
|
2826 | var getSetSecond = makeGetSet('Seconds', false); | |
|
2827 | ||
|
2828 | // FORMATTING | |
|
2829 | ||
|
2830 | addFormatToken('S', 0, 0, function () { | |
|
2831 | return ~~(this.millisecond() / 100); | |
|
2832 | }); | |
|
2833 | ||
|
2834 | addFormatToken(0, ['SS', 2], 0, function () { | |
|
2835 | return ~~(this.millisecond() / 10); | |
|
2836 | }); | |
|
2837 | ||
|
2838 | addFormatToken(0, ['SSS', 3], 0, 'millisecond'); | |
|
2839 | addFormatToken(0, ['SSSS', 4], 0, function () { | |
|
2840 | return this.millisecond() * 10; | |
|
2841 | }); | |
|
2842 | addFormatToken(0, ['SSSSS', 5], 0, function () { | |
|
2843 | return this.millisecond() * 100; | |
|
2844 | }); | |
|
2845 | addFormatToken(0, ['SSSSSS', 6], 0, function () { | |
|
2846 | return this.millisecond() * 1000; | |
|
2847 | }); | |
|
2848 | addFormatToken(0, ['SSSSSSS', 7], 0, function () { | |
|
2849 | return this.millisecond() * 10000; | |
|
2850 | }); | |
|
2851 | addFormatToken(0, ['SSSSSSSS', 8], 0, function () { | |
|
2852 | return this.millisecond() * 100000; | |
|
2853 | }); | |
|
2854 | addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { | |
|
2855 | return this.millisecond() * 1000000; | |
|
2856 | }); | |
|
2857 | ||
|
2858 | ||
|
2859 | // ALIASES | |
|
2860 | ||
|
2861 | addUnitAlias('millisecond', 'ms'); | |
|
2862 | ||
|
2863 | // PARSING | |
|
2864 | ||
|
2865 | addRegexToken('S', match1to3, match1); | |
|
2866 | addRegexToken('SS', match1to3, match2); | |
|
2867 | addRegexToken('SSS', match1to3, match3); | |
|
2868 | ||
|
2869 | var token; | |
|
2870 | for (token = 'SSSS'; token.length <= 9; token += 'S') { | |
|
2871 | addRegexToken(token, matchUnsigned); | |
|
2872 | } | |
|
2873 | ||
|
2874 | function parseMs(input, array) { | |
|
2875 | array[MILLISECOND] = toInt(('0.' + input) * 1000); | |
|
2876 | } | |
|
2877 | ||
|
2878 | for (token = 'S'; token.length <= 9; token += 'S') { | |
|
2879 | addParseToken(token, parseMs); | |
|
2880 | } | |
|
2881 | // MOMENTS | |
|
2882 | ||
|
2883 | var getSetMillisecond = makeGetSet('Milliseconds', false); | |
|
2884 | ||
|
2885 | // FORMATTING | |
|
2886 | ||
|
2887 | addFormatToken('z', 0, 0, 'zoneAbbr'); | |
|
2888 | addFormatToken('zz', 0, 0, 'zoneName'); | |
|
2889 | ||
|
2890 | // MOMENTS | |
|
2891 | ||
|
2892 | function getZoneAbbr () { | |
|
2893 | return this._isUTC ? 'UTC' : ''; | |
|
2894 | } | |
|
2895 | ||
|
2896 | function getZoneName () { | |
|
2897 | return this._isUTC ? 'Coordinated Universal Time' : ''; | |
|
2898 | } | |
|
2899 | ||
|
2900 | var momentPrototype__proto = Moment.prototype; | |
|
2901 | ||
|
2902 | momentPrototype__proto.add = add_subtract__add; | |
|
2903 | momentPrototype__proto.calendar = moment_calendar__calendar; | |
|
2904 | momentPrototype__proto.clone = clone; | |
|
2905 | momentPrototype__proto.diff = diff; | |
|
2906 | momentPrototype__proto.endOf = endOf; | |
|
2907 | momentPrototype__proto.format = format; | |
|
2908 | momentPrototype__proto.from = from; | |
|
2909 | momentPrototype__proto.fromNow = fromNow; | |
|
2910 | momentPrototype__proto.to = to; | |
|
2911 | momentPrototype__proto.toNow = toNow; | |
|
2912 | momentPrototype__proto.get = getSet; | |
|
2913 | momentPrototype__proto.invalidAt = invalidAt; | |
|
2914 | momentPrototype__proto.isAfter = isAfter; | |
|
2915 | momentPrototype__proto.isBefore = isBefore; | |
|
2916 | momentPrototype__proto.isBetween = isBetween; | |
|
2917 | momentPrototype__proto.isSame = isSame; | |
|
2918 | momentPrototype__proto.isSameOrAfter = isSameOrAfter; | |
|
2919 | momentPrototype__proto.isSameOrBefore = isSameOrBefore; | |
|
2920 | momentPrototype__proto.isValid = moment_valid__isValid; | |
|
2921 | momentPrototype__proto.lang = lang; | |
|
2922 | momentPrototype__proto.locale = locale; | |
|
2923 | momentPrototype__proto.localeData = localeData; | |
|
2924 | momentPrototype__proto.max = prototypeMax; | |
|
2925 | momentPrototype__proto.min = prototypeMin; | |
|
2926 | momentPrototype__proto.parsingFlags = parsingFlags; | |
|
2927 | momentPrototype__proto.set = getSet; | |
|
2928 | momentPrototype__proto.startOf = startOf; | |
|
2929 | momentPrototype__proto.subtract = add_subtract__subtract; | |
|
2930 | momentPrototype__proto.toArray = toArray; | |
|
2931 | momentPrototype__proto.toObject = toObject; | |
|
2932 | momentPrototype__proto.toDate = toDate; | |
|
2933 | momentPrototype__proto.toISOString = moment_format__toISOString; | |
|
2934 | momentPrototype__proto.toJSON = toJSON; | |
|
2935 | momentPrototype__proto.toString = toString; | |
|
2936 | momentPrototype__proto.unix = unix; | |
|
2937 | momentPrototype__proto.valueOf = to_type__valueOf; | |
|
2938 | momentPrototype__proto.creationData = creationData; | |
|
2939 | ||
|
2940 | // Year | |
|
2941 | momentPrototype__proto.year = getSetYear; | |
|
2942 | momentPrototype__proto.isLeapYear = getIsLeapYear; | |
|
2943 | ||
|
2944 | // Week Year | |
|
2945 | momentPrototype__proto.weekYear = getSetWeekYear; | |
|
2946 | momentPrototype__proto.isoWeekYear = getSetISOWeekYear; | |
|
2947 | ||
|
2948 | // Quarter | |
|
2949 | momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; | |
|
2950 | ||
|
2951 | // Month | |
|
2952 | momentPrototype__proto.month = getSetMonth; | |
|
2953 | momentPrototype__proto.daysInMonth = getDaysInMonth; | |
|
2954 | ||
|
2955 | // Week | |
|
2956 | momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; | |
|
2957 | momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; | |
|
2958 | momentPrototype__proto.weeksInYear = getWeeksInYear; | |
|
2959 | momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; | |
|
2960 | ||
|
2961 | // Day | |
|
2962 | momentPrototype__proto.date = getSetDayOfMonth; | |
|
2963 | momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; | |
|
2964 | momentPrototype__proto.weekday = getSetLocaleDayOfWeek; | |
|
2965 | momentPrototype__proto.isoWeekday = getSetISODayOfWeek; | |
|
2966 | momentPrototype__proto.dayOfYear = getSetDayOfYear; | |
|
2967 | ||
|
2968 | // Hour | |
|
2969 | momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; | |
|
2970 | ||
|
2971 | // Minute | |
|
2972 | momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; | |
|
2973 | ||
|
2974 | // Second | |
|
2975 | momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; | |
|
2976 | ||
|
2977 | // Millisecond | |
|
2978 | momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; | |
|
2979 | ||
|
2980 | // Offset | |
|
2981 | momentPrototype__proto.utcOffset = getSetOffset; | |
|
2982 | momentPrototype__proto.utc = setOffsetToUTC; | |
|
2983 | momentPrototype__proto.local = setOffsetToLocal; | |
|
2984 | momentPrototype__proto.parseZone = setOffsetToParsedOffset; | |
|
2985 | momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; | |
|
2986 | momentPrototype__proto.isDST = isDaylightSavingTime; | |
|
2987 | momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; | |
|
2988 | momentPrototype__proto.isLocal = isLocal; | |
|
2989 | momentPrototype__proto.isUtcOffset = isUtcOffset; | |
|
2990 | momentPrototype__proto.isUtc = isUtc; | |
|
2991 | momentPrototype__proto.isUTC = isUtc; | |
|
2992 | ||
|
2993 | // Timezone | |
|
2994 | momentPrototype__proto.zoneAbbr = getZoneAbbr; | |
|
2995 | momentPrototype__proto.zoneName = getZoneName; | |
|
2996 | ||
|
2997 | // Deprecations | |
|
2998 | momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); | |
|
2999 | momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); | |
|
3000 | momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); | |
|
3001 | momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); | |
|
3002 | ||
|
3003 | var momentPrototype = momentPrototype__proto; | |
|
3004 | ||
|
3005 | function moment__createUnix (input) { | |
|
3006 | return local__createLocal(input * 1000); | |
|
3007 | } | |
|
3008 | ||
|
3009 | function moment__createInZone () { | |
|
3010 | return local__createLocal.apply(null, arguments).parseZone(); | |
|
3011 | } | |
|
3012 | ||
|
3013 | var defaultCalendar = { | |
|
3014 | sameDay : '[Today at] LT', | |
|
3015 | nextDay : '[Tomorrow at] LT', | |
|
3016 | nextWeek : 'dddd [at] LT', | |
|
3017 | lastDay : '[Yesterday at] LT', | |
|
3018 | lastWeek : '[Last] dddd [at] LT', | |
|
3019 | sameElse : 'L' | |
|
3020 | }; | |
|
3021 | ||
|
3022 | function locale_calendar__calendar (key, mom, now) { | |
|
3023 | var output = this._calendar[key]; | |
|
3024 | return isFunction(output) ? output.call(mom, now) : output; | |
|
3025 | } | |
|
3026 | ||
|
3027 | var defaultLongDateFormat = { | |
|
3028 | LTS : 'h:mm:ss A', | |
|
3029 | LT : 'h:mm A', | |
|
3030 | L : 'MM/DD/YYYY', | |
|
3031 | LL : 'MMMM D, YYYY', | |
|
3032 | LLL : 'MMMM D, YYYY h:mm A', | |
|
3033 | LLLL : 'dddd, MMMM D, YYYY h:mm A' | |
|
3034 | }; | |
|
3035 | ||
|
3036 | function longDateFormat (key) { | |
|
3037 | var format = this._longDateFormat[key], | |
|
3038 | formatUpper = this._longDateFormat[key.toUpperCase()]; | |
|
3039 | ||
|
3040 | if (format || !formatUpper) { | |
|
3041 | return format; | |
|
3042 | } | |
|
3043 | ||
|
3044 | this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { | |
|
3045 | return val.slice(1); | |
|
3046 | }); | |
|
3047 | ||
|
3048 | return this._longDateFormat[key]; | |
|
3049 | } | |
|
3050 | ||
|
3051 | var defaultInvalidDate = 'Invalid date'; | |
|
3052 | ||
|
3053 | function invalidDate () { | |
|
3054 | return this._invalidDate; | |
|
3055 | } | |
|
3056 | ||
|
3057 | var defaultOrdinal = '%d'; | |
|
3058 | var defaultOrdinalParse = /\d{1,2}/; | |
|
3059 | ||
|
3060 | function ordinal (number) { | |
|
3061 | return this._ordinal.replace('%d', number); | |
|
3062 | } | |
|
3063 | ||
|
3064 | function preParsePostFormat (string) { | |
|
3065 | return string; | |
|
3066 | } | |
|
3067 | ||
|
3068 | var defaultRelativeTime = { | |
|
3069 | future : 'in %s', | |
|
3070 | past : '%s ago', | |
|
3071 | s : 'a few seconds', | |
|
3072 | m : 'a minute', | |
|
3073 | mm : '%d minutes', | |
|
3074 | h : 'an hour', | |
|
3075 | hh : '%d hours', | |
|
3076 | d : 'a day', | |
|
3077 | dd : '%d days', | |
|
3078 | M : 'a month', | |
|
3079 | MM : '%d months', | |
|
3080 | y : 'a year', | |
|
3081 | yy : '%d years' | |
|
3082 | }; | |
|
3083 | ||
|
3084 | function relative__relativeTime (number, withoutSuffix, string, isFuture) { | |
|
3085 | var output = this._relativeTime[string]; | |
|
3086 | return (isFunction(output)) ? | |
|
3087 | output(number, withoutSuffix, string, isFuture) : | |
|
3088 | output.replace(/%d/i, number); | |
|
3089 | } | |
|
3090 | ||
|
3091 | function pastFuture (diff, output) { | |
|
3092 | var format = this._relativeTime[diff > 0 ? 'future' : 'past']; | |
|
3093 | return isFunction(format) ? format(output) : format.replace(/%s/i, output); | |
|
3094 | } | |
|
3095 | ||
|
3096 | function locale_set__set (config) { | |
|
3097 | var prop, i; | |
|
3098 | for (i in config) { | |
|
3099 | prop = config[i]; | |
|
3100 | if (isFunction(prop)) { | |
|
3101 | this[i] = prop; | |
|
3102 | } else { | |
|
3103 | this['_' + i] = prop; | |
|
3104 | } | |
|
3105 | } | |
|
3106 | // Lenient ordinal parsing accepts just a number in addition to | |
|
3107 | // number + (possibly) stuff coming from _ordinalParseLenient. | |
|
3108 | this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); | |
|
3109 | } | |
|
3110 | ||
|
3111 | var prototype__proto = Locale.prototype; | |
|
3112 | ||
|
3113 | prototype__proto._calendar = defaultCalendar; | |
|
3114 | prototype__proto.calendar = locale_calendar__calendar; | |
|
3115 | prototype__proto._longDateFormat = defaultLongDateFormat; | |
|
3116 | prototype__proto.longDateFormat = longDateFormat; | |
|
3117 | prototype__proto._invalidDate = defaultInvalidDate; | |
|
3118 | prototype__proto.invalidDate = invalidDate; | |
|
3119 | prototype__proto._ordinal = defaultOrdinal; | |
|
3120 | prototype__proto.ordinal = ordinal; | |
|
3121 | prototype__proto._ordinalParse = defaultOrdinalParse; | |
|
3122 | prototype__proto.preparse = preParsePostFormat; | |
|
3123 | prototype__proto.postformat = preParsePostFormat; | |
|
3124 | prototype__proto._relativeTime = defaultRelativeTime; | |
|
3125 | prototype__proto.relativeTime = relative__relativeTime; | |
|
3126 | prototype__proto.pastFuture = pastFuture; | |
|
3127 | prototype__proto.set = locale_set__set; | |
|
3128 | ||
|
3129 | // Month | |
|
3130 | prototype__proto.months = localeMonths; | |
|
3131 | prototype__proto._months = defaultLocaleMonths; | |
|
3132 | prototype__proto.monthsShort = localeMonthsShort; | |
|
3133 | prototype__proto._monthsShort = defaultLocaleMonthsShort; | |
|
3134 | prototype__proto.monthsParse = localeMonthsParse; | |
|
3135 | prototype__proto._monthsRegex = defaultMonthsRegex; | |
|
3136 | prototype__proto.monthsRegex = monthsRegex; | |
|
3137 | prototype__proto._monthsShortRegex = defaultMonthsShortRegex; | |
|
3138 | prototype__proto.monthsShortRegex = monthsShortRegex; | |
|
3139 | ||
|
3140 | // Week | |
|
3141 | prototype__proto.week = localeWeek; | |
|
3142 | prototype__proto._week = defaultLocaleWeek; | |
|
3143 | prototype__proto.firstDayOfYear = localeFirstDayOfYear; | |
|
3144 | prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; | |
|
3145 | ||
|
3146 | // Day of Week | |
|
3147 | prototype__proto.weekdays = localeWeekdays; | |
|
3148 | prototype__proto._weekdays = defaultLocaleWeekdays; | |
|
3149 | prototype__proto.weekdaysMin = localeWeekdaysMin; | |
|
3150 | prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; | |
|
3151 | prototype__proto.weekdaysShort = localeWeekdaysShort; | |
|
3152 | prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; | |
|
3153 | prototype__proto.weekdaysParse = localeWeekdaysParse; | |
|
3154 | ||
|
3155 | // Hours | |
|
3156 | prototype__proto.isPM = localeIsPM; | |
|
3157 | prototype__proto._meridiemParse = defaultLocaleMeridiemParse; | |
|
3158 | prototype__proto.meridiem = localeMeridiem; | |
|
3159 | ||
|
3160 | function lists__get (format, index, field, setter) { | |
|
3161 | var locale = locale_locales__getLocale(); | |
|
3162 | var utc = create_utc__createUTC().set(setter, index); | |
|
3163 | return locale[field](utc, format); | |
|
3164 | } | |
|
3165 | ||
|
3166 | function list (format, index, field, count, setter) { | |
|
3167 | if (typeof format === 'number') { | |
|
3168 | index = format; | |
|
3169 | format = undefined; | |
|
3170 | } | |
|
3171 | ||
|
3172 | format = format || ''; | |
|
3173 | ||
|
3174 | if (index != null) { | |
|
3175 | return lists__get(format, index, field, setter); | |
|
3176 | } | |
|
3177 | ||
|
3178 | var i; | |
|
3179 | var out = []; | |
|
3180 | for (i = 0; i < count; i++) { | |
|
3181 | out[i] = lists__get(format, i, field, setter); | |
|
3182 | } | |
|
3183 | return out; | |
|
3184 | } | |
|
3185 | ||
|
3186 | function lists__listMonths (format, index) { | |
|
3187 | return list(format, index, 'months', 12, 'month'); | |
|
3188 | } | |
|
3189 | ||
|
3190 | function lists__listMonthsShort (format, index) { | |
|
3191 | return list(format, index, 'monthsShort', 12, 'month'); | |
|
3192 | } | |
|
3193 | ||
|
3194 | function lists__listWeekdays (format, index) { | |
|
3195 | return list(format, index, 'weekdays', 7, 'day'); | |
|
3196 | } | |
|
3197 | ||
|
3198 | function lists__listWeekdaysShort (format, index) { | |
|
3199 | return list(format, index, 'weekdaysShort', 7, 'day'); | |
|
3200 | } | |
|
3201 | ||
|
3202 | function lists__listWeekdaysMin (format, index) { | |
|
3203 | return list(format, index, 'weekdaysMin', 7, 'day'); | |
|
3204 | } | |
|
3205 | ||
|
3206 | locale_locales__getSetGlobalLocale('en', { | |
|
3207 | ordinalParse: /\d{1,2}(th|st|nd|rd)/, | |
|
3208 | ordinal : function (number) { | |
|
3209 | var b = number % 10, | |
|
3210 | output = (toInt(number % 100 / 10) === 1) ? 'th' : | |
|
3211 | (b === 1) ? 'st' : | |
|
3212 | (b === 2) ? 'nd' : | |
|
3213 | (b === 3) ? 'rd' : 'th'; | |
|
3214 | return number + output; | |
|
3215 | } | |
|
3216 | }); | |
|
3217 | ||
|
3218 | // Side effect imports | |
|
3219 | utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); | |
|
3220 | utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); | |
|
3221 | ||
|
3222 | var mathAbs = Math.abs; | |
|
3223 | ||
|
3224 | function duration_abs__abs () { | |
|
3225 | var data = this._data; | |
|
3226 | ||
|
3227 | this._milliseconds = mathAbs(this._milliseconds); | |
|
3228 | this._days = mathAbs(this._days); | |
|
3229 | this._months = mathAbs(this._months); | |
|
3230 | ||
|
3231 | data.milliseconds = mathAbs(data.milliseconds); | |
|
3232 | data.seconds = mathAbs(data.seconds); | |
|
3233 | data.minutes = mathAbs(data.minutes); | |
|
3234 | data.hours = mathAbs(data.hours); | |
|
3235 | data.months = mathAbs(data.months); | |
|
3236 | data.years = mathAbs(data.years); | |
|
3237 | ||
|
3238 | return this; | |
|
3239 | } | |
|
3240 | ||
|
3241 | function duration_add_subtract__addSubtract (duration, input, value, direction) { | |
|
3242 | var other = create__createDuration(input, value); | |
|
3243 | ||
|
3244 | duration._milliseconds += direction * other._milliseconds; | |
|
3245 | duration._days += direction * other._days; | |
|
3246 | duration._months += direction * other._months; | |
|
3247 | ||
|
3248 | return duration._bubble(); | |
|
3249 | } | |
|
3250 | ||
|
3251 | // supports only 2.0-style add(1, 's') or add(duration) | |
|
3252 | function duration_add_subtract__add (input, value) { | |
|
3253 | return duration_add_subtract__addSubtract(this, input, value, 1); | |
|
3254 | } | |
|
3255 | ||
|
3256 | // supports only 2.0-style subtract(1, 's') or subtract(duration) | |
|
3257 | function duration_add_subtract__subtract (input, value) { | |
|
3258 | return duration_add_subtract__addSubtract(this, input, value, -1); | |
|
3259 | } | |
|
3260 | ||
|
3261 | function absCeil (number) { | |
|
3262 | if (number < 0) { | |
|
3263 | return Math.floor(number); | |
|
3264 | } else { | |
|
3265 | return Math.ceil(number); | |
|
3266 | } | |
|
3267 | } | |
|
3268 | ||
|
3269 | function bubble () { | |
|
3270 | var milliseconds = this._milliseconds; | |
|
3271 | var days = this._days; | |
|
3272 | var months = this._months; | |
|
3273 | var data = this._data; | |
|
3274 | var seconds, minutes, hours, years, monthsFromDays; | |
|
3275 | ||
|
3276 | // if we have a mix of positive and negative values, bubble down first | |
|
3277 | // check: https://github.com/moment/moment/issues/2166 | |
|
3278 | if (!((milliseconds >= 0 && days >= 0 && months >= 0) || | |
|
3279 | (milliseconds <= 0 && days <= 0 && months <= 0))) { | |
|
3280 | milliseconds += absCeil(monthsToDays(months) + days) * 864e5; | |
|
3281 | days = 0; | |
|
3282 | months = 0; | |
|
3283 | } | |
|
3284 | ||
|
3285 | // The following code bubbles up values, see the tests for | |
|
3286 | // examples of what that means. | |
|
3287 | data.milliseconds = milliseconds % 1000; | |
|
3288 | ||
|
3289 | seconds = absFloor(milliseconds / 1000); | |
|
3290 | data.seconds = seconds % 60; | |
|
3291 | ||
|
3292 | minutes = absFloor(seconds / 60); | |
|
3293 | data.minutes = minutes % 60; | |
|
3294 | ||
|
3295 | hours = absFloor(minutes / 60); | |
|
3296 | data.hours = hours % 24; | |
|
3297 | ||
|
3298 | days += absFloor(hours / 24); | |
|
3299 | ||
|
3300 | // convert days to months | |
|
3301 | monthsFromDays = absFloor(daysToMonths(days)); | |
|
3302 | months += monthsFromDays; | |
|
3303 | days -= absCeil(monthsToDays(monthsFromDays)); | |
|
3304 | ||
|
3305 | // 12 months -> 1 year | |
|
3306 | years = absFloor(months / 12); | |
|
3307 | months %= 12; | |
|
3308 | ||
|
3309 | data.days = days; | |
|
3310 | data.months = months; | |
|
3311 | data.years = years; | |
|
3312 | ||
|
3313 | return this; | |
|
3314 | } | |
|
3315 | ||
|
3316 | function daysToMonths (days) { | |
|
3317 | // 400 years have 146097 days (taking into account leap year rules) | |
|
3318 | // 400 years have 12 months === 4800 | |
|
3319 | return days * 4800 / 146097; | |
|
3320 | } | |
|
3321 | ||
|
3322 | function monthsToDays (months) { | |
|
3323 | // the reverse of daysToMonths | |
|
3324 | return months * 146097 / 4800; | |
|
3325 | } | |
|
3326 | ||
|
3327 | function as (units) { | |
|
3328 | var days; | |
|
3329 | var months; | |
|
3330 | var milliseconds = this._milliseconds; | |
|
3331 | ||
|
3332 | units = normalizeUnits(units); | |
|
3333 | ||
|
3334 | if (units === 'month' || units === 'year') { | |
|
3335 | days = this._days + milliseconds / 864e5; | |
|
3336 | months = this._months + daysToMonths(days); | |
|
3337 | return units === 'month' ? months : months / 12; | |
|
3338 | } else { | |
|
3339 | // handle milliseconds separately because of floating point math errors (issue #1867) | |
|
3340 | days = this._days + Math.round(monthsToDays(this._months)); | |
|
3341 | switch (units) { | |
|
3342 | case 'week' : return days / 7 + milliseconds / 6048e5; | |
|
3343 | case 'day' : return days + milliseconds / 864e5; | |
|
3344 | case 'hour' : return days * 24 + milliseconds / 36e5; | |
|
3345 | case 'minute' : return days * 1440 + milliseconds / 6e4; | |
|
3346 | case 'second' : return days * 86400 + milliseconds / 1000; | |
|
3347 | // Math.floor prevents floating point math errors here | |
|
3348 | case 'millisecond': return Math.floor(days * 864e5) + milliseconds; | |
|
3349 | default: throw new Error('Unknown unit ' + units); | |
|
3350 | } | |
|
3351 | } | |
|
3352 | } | |
|
3353 | ||
|
3354 | // TODO: Use this.as('ms')? | |
|
3355 | function duration_as__valueOf () { | |
|
3356 | return ( | |
|
3357 | this._milliseconds + | |
|
3358 | this._days * 864e5 + | |
|
3359 | (this._months % 12) * 2592e6 + | |
|
3360 | toInt(this._months / 12) * 31536e6 | |
|
3361 | ); | |
|
3362 | } | |
|
3363 | ||
|
3364 | function makeAs (alias) { | |
|
3365 | return function () { | |
|
3366 | return this.as(alias); | |
|
3367 | }; | |
|
3368 | } | |
|
3369 | ||
|
3370 | var asMilliseconds = makeAs('ms'); | |
|
3371 | var asSeconds = makeAs('s'); | |
|
3372 | var asMinutes = makeAs('m'); | |
|
3373 | var asHours = makeAs('h'); | |
|
3374 | var asDays = makeAs('d'); | |
|
3375 | var asWeeks = makeAs('w'); | |
|
3376 | var asMonths = makeAs('M'); | |
|
3377 | var asYears = makeAs('y'); | |
|
3378 | ||
|
3379 | function duration_get__get (units) { | |
|
3380 | units = normalizeUnits(units); | |
|
3381 | return this[units + 's'](); | |
|
3382 | } | |
|
3383 | ||
|
3384 | function makeGetter(name) { | |
|
3385 | return function () { | |
|
3386 | return this._data[name]; | |
|
3387 | }; | |
|
3388 | } | |
|
3389 | ||
|
3390 | var milliseconds = makeGetter('milliseconds'); | |
|
3391 | var seconds = makeGetter('seconds'); | |
|
3392 | var minutes = makeGetter('minutes'); | |
|
3393 | var hours = makeGetter('hours'); | |
|
3394 | var days = makeGetter('days'); | |
|
3395 | var months = makeGetter('months'); | |
|
3396 | var years = makeGetter('years'); | |
|
3397 | ||
|
3398 | function weeks () { | |
|
3399 | return absFloor(this.days() / 7); | |
|
3400 | } | |
|
3401 | ||
|
3402 | var round = Math.round; | |
|
3403 | var thresholds = { | |
|
3404 | s: 45, // seconds to minute | |
|
3405 | m: 45, // minutes to hour | |
|
3406 | h: 22, // hours to day | |
|
3407 | d: 26, // days to month | |
|
3408 | M: 11 // months to year | |
|
3409 | }; | |
|
3410 | ||
|
3411 | // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize | |
|
3412 | function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { | |
|
3413 | return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); | |
|
3414 | } | |
|
3415 | ||
|
3416 | function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { | |
|
3417 | var duration = create__createDuration(posNegDuration).abs(); | |
|
3418 | var seconds = round(duration.as('s')); | |
|
3419 | var minutes = round(duration.as('m')); | |
|
3420 | var hours = round(duration.as('h')); | |
|
3421 | var days = round(duration.as('d')); | |
|
3422 | var months = round(duration.as('M')); | |
|
3423 | var years = round(duration.as('y')); | |
|
3424 | ||
|
3425 | var a = seconds < thresholds.s && ['s', seconds] || | |
|
3426 | minutes <= 1 && ['m'] || | |
|
3427 | minutes < thresholds.m && ['mm', minutes] || | |
|
3428 | hours <= 1 && ['h'] || | |
|
3429 | hours < thresholds.h && ['hh', hours] || | |
|
3430 | days <= 1 && ['d'] || | |
|
3431 | days < thresholds.d && ['dd', days] || | |
|
3432 | months <= 1 && ['M'] || | |
|
3433 | months < thresholds.M && ['MM', months] || | |
|
3434 | years <= 1 && ['y'] || ['yy', years]; | |
|
3435 | ||
|
3436 | a[2] = withoutSuffix; | |
|
3437 | a[3] = +posNegDuration > 0; | |
|
3438 | a[4] = locale; | |
|
3439 | return substituteTimeAgo.apply(null, a); | |
|
3440 | } | |
|
3441 | ||
|
3442 | // This function allows you to set a threshold for relative time strings | |
|
3443 | function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { | |
|
3444 | if (thresholds[threshold] === undefined) { | |
|
3445 | return false; | |
|
3446 | } | |
|
3447 | if (limit === undefined) { | |
|
3448 | return thresholds[threshold]; | |
|
3449 | } | |
|
3450 | thresholds[threshold] = limit; | |
|
3451 | return true; | |
|
3452 | } | |
|
3453 | ||
|
3454 | function humanize (withSuffix) { | |
|
3455 | var locale = this.localeData(); | |
|
3456 | var output = duration_humanize__relativeTime(this, !withSuffix, locale); | |
|
3457 | ||
|
3458 | if (withSuffix) { | |
|
3459 | output = locale.pastFuture(+this, output); | |
|
3460 | } | |
|
3461 | ||
|
3462 | return locale.postformat(output); | |
|
3463 | } | |
|
3464 | ||
|
3465 | var iso_string__abs = Math.abs; | |
|
3466 | ||
|
3467 | function iso_string__toISOString() { | |
|
3468 | // for ISO strings we do not use the normal bubbling rules: | |
|
3469 | // * milliseconds bubble up until they become hours | |
|
3470 | // * days do not bubble at all | |
|
3471 | // * months bubble up until they become years | |
|
3472 | // This is because there is no context-free conversion between hours and days | |
|
3473 | // (think of clock changes) | |
|
3474 | // and also not between days and months (28-31 days per month) | |
|
3475 | var seconds = iso_string__abs(this._milliseconds) / 1000; | |
|
3476 | var days = iso_string__abs(this._days); | |
|
3477 | var months = iso_string__abs(this._months); | |
|
3478 | var minutes, hours, years; | |
|
3479 | ||
|
3480 | // 3600 seconds -> 60 minutes -> 1 hour | |
|
3481 | minutes = absFloor(seconds / 60); | |
|
3482 | hours = absFloor(minutes / 60); | |
|
3483 | seconds %= 60; | |
|
3484 | minutes %= 60; | |
|
3485 | ||
|
3486 | // 12 months -> 1 year | |
|
3487 | years = absFloor(months / 12); | |
|
3488 | months %= 12; | |
|
3489 | ||
|
3490 | ||
|
3491 | // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js | |
|
3492 | var Y = years; | |
|
3493 | var M = months; | |
|
3494 | var D = days; | |
|
3495 | var h = hours; | |
|
3496 | var m = minutes; | |
|
3497 | var s = seconds; | |
|
3498 | var total = this.asSeconds(); | |
|
3499 | ||
|
3500 | if (!total) { | |
|
3501 | // this is the same as C#'s (Noda) and python (isodate)... | |
|
3502 | // but not other JS (goog.date) | |
|
3503 | return 'P0D'; | |
|
3504 | } | |
|
3505 | ||
|
3506 | return (total < 0 ? '-' : '') + | |
|
3507 | 'P' + | |
|
3508 | (Y ? Y + 'Y' : '') + | |
|
3509 | (M ? M + 'M' : '') + | |
|
3510 | (D ? D + 'D' : '') + | |
|
3511 | ((h || m || s) ? 'T' : '') + | |
|
3512 | (h ? h + 'H' : '') + | |
|
3513 | (m ? m + 'M' : '') + | |
|
3514 | (s ? s + 'S' : ''); | |
|
3515 | } | |
|
3516 | ||
|
3517 | var duration_prototype__proto = Duration.prototype; | |
|
3518 | ||
|
3519 | duration_prototype__proto.abs = duration_abs__abs; | |
|
3520 | duration_prototype__proto.add = duration_add_subtract__add; | |
|
3521 | duration_prototype__proto.subtract = duration_add_subtract__subtract; | |
|
3522 | duration_prototype__proto.as = as; | |
|
3523 | duration_prototype__proto.asMilliseconds = asMilliseconds; | |
|
3524 | duration_prototype__proto.asSeconds = asSeconds; | |
|
3525 | duration_prototype__proto.asMinutes = asMinutes; | |
|
3526 | duration_prototype__proto.asHours = asHours; | |
|
3527 | duration_prototype__proto.asDays = asDays; | |
|
3528 | duration_prototype__proto.asWeeks = asWeeks; | |
|
3529 | duration_prototype__proto.asMonths = asMonths; | |
|
3530 | duration_prototype__proto.asYears = asYears; | |
|
3531 | duration_prototype__proto.valueOf = duration_as__valueOf; | |
|
3532 | duration_prototype__proto._bubble = bubble; | |
|
3533 | duration_prototype__proto.get = duration_get__get; | |
|
3534 | duration_prototype__proto.milliseconds = milliseconds; | |
|
3535 | duration_prototype__proto.seconds = seconds; | |
|
3536 | duration_prototype__proto.minutes = minutes; | |
|
3537 | duration_prototype__proto.hours = hours; | |
|
3538 | duration_prototype__proto.days = days; | |
|
3539 | duration_prototype__proto.weeks = weeks; | |
|
3540 | duration_prototype__proto.months = months; | |
|
3541 | duration_prototype__proto.years = years; | |
|
3542 | duration_prototype__proto.humanize = humanize; | |
|
3543 | duration_prototype__proto.toISOString = iso_string__toISOString; | |
|
3544 | duration_prototype__proto.toString = iso_string__toISOString; | |
|
3545 | duration_prototype__proto.toJSON = iso_string__toISOString; | |
|
3546 | duration_prototype__proto.locale = locale; | |
|
3547 | duration_prototype__proto.localeData = localeData; | |
|
3548 | ||
|
3549 | // Deprecations | |
|
3550 | duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); | |
|
3551 | duration_prototype__proto.lang = lang; | |
|
3552 | ||
|
3553 | // Side effect imports | |
|
3554 | ||
|
3555 | // FORMATTING | |
|
3556 | ||
|
3557 | addFormatToken('X', 0, 0, 'unix'); | |
|
3558 | addFormatToken('x', 0, 0, 'valueOf'); | |
|
3559 | ||
|
3560 | // PARSING | |
|
3561 | ||
|
3562 | addRegexToken('x', matchSigned); | |
|
3563 | addRegexToken('X', matchTimestamp); | |
|
3564 | addParseToken('X', function (input, array, config) { | |
|
3565 | config._d = new Date(parseFloat(input, 10) * 1000); | |
|
3566 | }); | |
|
3567 | addParseToken('x', function (input, array, config) { | |
|
3568 | config._d = new Date(toInt(input)); | |
|
3569 | }); | |
|
3570 | ||
|
3571 | // Side effect imports | |
|
3572 | ||
|
3573 | ||
|
3574 | utils_hooks__hooks.version = '2.11.2'; | |
|
3575 | ||
|
3576 | setHookCallback(local__createLocal); | |
|
3577 | ||
|
3578 | utils_hooks__hooks.fn = momentPrototype; | |
|
3579 | utils_hooks__hooks.min = min; | |
|
3580 | utils_hooks__hooks.max = max; | |
|
3581 | utils_hooks__hooks.now = now; | |
|
3582 | utils_hooks__hooks.utc = create_utc__createUTC; | |
|
3583 | utils_hooks__hooks.unix = moment__createUnix; | |
|
3584 | utils_hooks__hooks.months = lists__listMonths; | |
|
3585 | utils_hooks__hooks.isDate = isDate; | |
|
3586 | utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; | |
|
3587 | utils_hooks__hooks.invalid = valid__createInvalid; | |
|
3588 | utils_hooks__hooks.duration = create__createDuration; | |
|
3589 | utils_hooks__hooks.isMoment = isMoment; | |
|
3590 | utils_hooks__hooks.weekdays = lists__listWeekdays; | |
|
3591 | utils_hooks__hooks.parseZone = moment__createInZone; | |
|
3592 | utils_hooks__hooks.localeData = locale_locales__getLocale; | |
|
3593 | utils_hooks__hooks.isDuration = isDuration; | |
|
3594 | utils_hooks__hooks.monthsShort = lists__listMonthsShort; | |
|
3595 | utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; | |
|
3596 | utils_hooks__hooks.defineLocale = defineLocale; | |
|
3597 | utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; | |
|
3598 | utils_hooks__hooks.normalizeUnits = normalizeUnits; | |
|
3599 | utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; | |
|
3600 | utils_hooks__hooks.prototype = momentPrototype; | |
|
3601 | ||
|
3602 | var _moment = utils_hooks__hooks; | |
|
3603 | ||
|
3604 | return _moment; | |
|
3605 | ||
|
3606 | })); No newline at end of file |
This diff has been collapsed as it changes many lines, (931 lines changed) Show them Hide them | |||
@@ -1,931 +0,0 b'' | |||
|
1 | /*global define:false */ | |
|
2 | /** | |
|
3 | * Copyright 2013 Craig Campbell | |
|
4 | * | |
|
5 | * Licensed under the Apache License, Version 2.0 (the "License"); | |
|
6 | * you may not use this file except in compliance with the License. | |
|
7 | * You may obtain a copy of the License at | |
|
8 | * | |
|
9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
|
10 | * | |
|
11 | * Unless required by applicable law or agreed to in writing, software | |
|
12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
|
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
|
14 | * See the License for the specific language governing permissions and | |
|
15 | * limitations under the License. | |
|
16 | * | |
|
17 | * Mousetrap is a simple keyboard shortcut library for Javascript with | |
|
18 | * no external dependencies | |
|
19 | * | |
|
20 | * @version 1.4.5 | |
|
21 | * @url craig.is/killing/mice | |
|
22 | */ | |
|
23 | (function(window, document, undefined) { | |
|
24 | ||
|
25 | /** | |
|
26 | * mapping of special keycodes to their corresponding keys | |
|
27 | * | |
|
28 | * everything in this dictionary cannot use keypress events | |
|
29 | * so it has to be here to map to the correct keycodes for | |
|
30 | * keyup/keydown events | |
|
31 | * | |
|
32 | * @type {Object} | |
|
33 | */ | |
|
34 | var _MAP = { | |
|
35 | 8: 'backspace', | |
|
36 | 9: 'tab', | |
|
37 | 13: 'enter', | |
|
38 | 16: 'shift', | |
|
39 | 17: 'ctrl', | |
|
40 | 18: 'alt', | |
|
41 | 20: 'capslock', | |
|
42 | 27: 'esc', | |
|
43 | 32: 'space', | |
|
44 | 33: 'pageup', | |
|
45 | 34: 'pagedown', | |
|
46 | 35: 'end', | |
|
47 | 36: 'home', | |
|
48 | 37: 'left', | |
|
49 | 38: 'up', | |
|
50 | 39: 'right', | |
|
51 | 40: 'down', | |
|
52 | 45: 'ins', | |
|
53 | 46: 'del', | |
|
54 | 91: 'meta', | |
|
55 | 93: 'meta', | |
|
56 | 224: 'meta' | |
|
57 | }, | |
|
58 | ||
|
59 | /** | |
|
60 | * mapping for special characters so they can support | |
|
61 | * | |
|
62 | * this dictionary is only used incase you want to bind a | |
|
63 | * keyup or keydown event to one of these keys | |
|
64 | * | |
|
65 | * @type {Object} | |
|
66 | */ | |
|
67 | _KEYCODE_MAP = { | |
|
68 | 106: '*', | |
|
69 | 107: '+', | |
|
70 | 109: '-', | |
|
71 | 110: '.', | |
|
72 | 111 : '/', | |
|
73 | 186: ';', | |
|
74 | 187: '=', | |
|
75 | 188: ',', | |
|
76 | 189: '-', | |
|
77 | 190: '.', | |
|
78 | 191: '/', | |
|
79 | 192: '`', | |
|
80 | 219: '[', | |
|
81 | 220: '\\', | |
|
82 | 221: ']', | |
|
83 | 222: '\'' | |
|
84 | }, | |
|
85 | ||
|
86 | /** | |
|
87 | * this is a mapping of keys that require shift on a US keypad | |
|
88 | * back to the non shift equivelents | |
|
89 | * | |
|
90 | * this is so you can use keyup events with these keys | |
|
91 | * | |
|
92 | * note that this will only work reliably on US keyboards | |
|
93 | * | |
|
94 | * @type {Object} | |
|
95 | */ | |
|
96 | _SHIFT_MAP = { | |
|
97 | '~': '`', | |
|
98 | '!': '1', | |
|
99 | '@': '2', | |
|
100 | '#': '3', | |
|
101 | '$': '4', | |
|
102 | '%': '5', | |
|
103 | '^': '6', | |
|
104 | '&': '7', | |
|
105 | '*': '8', | |
|
106 | '(': '9', | |
|
107 | ')': '0', | |
|
108 | '_': '-', | |
|
109 | '+': '=', | |
|
110 | ':': ';', | |
|
111 | '\"': '\'', | |
|
112 | '<': ',', | |
|
113 | '>': '.', | |
|
114 | '?': '/', | |
|
115 | '|': '\\' | |
|
116 | }, | |
|
117 | ||
|
118 | /** | |
|
119 | * this is a list of special strings you can use to map | |
|
120 | * to modifier keys when you specify your keyboard shortcuts | |
|
121 | * | |
|
122 | * @type {Object} | |
|
123 | */ | |
|
124 | _SPECIAL_ALIASES = { | |
|
125 | 'option': 'alt', | |
|
126 | 'command': 'meta', | |
|
127 | 'return': 'enter', | |
|
128 | 'escape': 'esc', | |
|
129 | 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl' | |
|
130 | }, | |
|
131 | ||
|
132 | /** | |
|
133 | * variable to store the flipped version of _MAP from above | |
|
134 | * needed to check if we should use keypress or not when no action | |
|
135 | * is specified | |
|
136 | * | |
|
137 | * @type {Object|undefined} | |
|
138 | */ | |
|
139 | _REVERSE_MAP, | |
|
140 | ||
|
141 | /** | |
|
142 | * a list of all the callbacks setup via Mousetrap.bind() | |
|
143 | * | |
|
144 | * @type {Object} | |
|
145 | */ | |
|
146 | _callbacks = {}, | |
|
147 | ||
|
148 | /** | |
|
149 | * direct map of string combinations to callbacks used for trigger() | |
|
150 | * | |
|
151 | * @type {Object} | |
|
152 | */ | |
|
153 | _directMap = {}, | |
|
154 | ||
|
155 | /** | |
|
156 | * keeps track of what level each sequence is at since multiple | |
|
157 | * sequences can start out with the same sequence | |
|
158 | * | |
|
159 | * @type {Object} | |
|
160 | */ | |
|
161 | _sequenceLevels = {}, | |
|
162 | ||
|
163 | /** | |
|
164 | * variable to store the setTimeout call | |
|
165 | * | |
|
166 | * @type {null|number} | |
|
167 | */ | |
|
168 | _resetTimer, | |
|
169 | ||
|
170 | /** | |
|
171 | * temporary state where we will ignore the next keyup | |
|
172 | * | |
|
173 | * @type {boolean|string} | |
|
174 | */ | |
|
175 | _ignoreNextKeyup = false, | |
|
176 | ||
|
177 | /** | |
|
178 | * temporary state where we will ignore the next keypress | |
|
179 | * | |
|
180 | * @type {boolean} | |
|
181 | */ | |
|
182 | _ignoreNextKeypress = false, | |
|
183 | ||
|
184 | /** | |
|
185 | * are we currently inside of a sequence? | |
|
186 | * type of action ("keyup" or "keydown" or "keypress") or false | |
|
187 | * | |
|
188 | * @type {boolean|string} | |
|
189 | */ | |
|
190 | _nextExpectedAction = false; | |
|
191 | ||
|
192 | /** | |
|
193 | * loop through the f keys, f1 to f19 and add them to the map | |
|
194 | * programatically | |
|
195 | */ | |
|
196 | for (var i = 1; i < 20; ++i) { | |
|
197 | _MAP[111 + i] = 'f' + i; | |
|
198 | } | |
|
199 | ||
|
200 | /** | |
|
201 | * loop through to map numbers on the numeric keypad | |
|
202 | */ | |
|
203 | for (i = 0; i <= 9; ++i) { | |
|
204 | _MAP[i + 96] = i; | |
|
205 | } | |
|
206 | ||
|
207 | /** | |
|
208 | * cross browser add event method | |
|
209 | * | |
|
210 | * @param {Element|HTMLDocument} object | |
|
211 | * @param {string} type | |
|
212 | * @param {Function} callback | |
|
213 | * @returns void | |
|
214 | */ | |
|
215 | function _addEvent(object, type, callback) { | |
|
216 | if (object.addEventListener) { | |
|
217 | object.addEventListener(type, callback, false); | |
|
218 | return; | |
|
219 | } | |
|
220 | ||
|
221 | object.attachEvent('on' + type, callback); | |
|
222 | } | |
|
223 | ||
|
224 | /** | |
|
225 | * takes the event and returns the key character | |
|
226 | * | |
|
227 | * @param {Event} e | |
|
228 | * @return {string} | |
|
229 | */ | |
|
230 | function _characterFromEvent(e) { | |
|
231 | ||
|
232 | // for keypress events we should return the character as is | |
|
233 | if (e.type == 'keypress') { | |
|
234 | var character = String.fromCharCode(e.which); | |
|
235 | ||
|
236 | // if the shift key is not pressed then it is safe to assume | |
|
237 | // that we want the character to be lowercase. this means if | |
|
238 | // you accidentally have caps lock on then your key bindings | |
|
239 | // will continue to work | |
|
240 | // | |
|
241 | // the only side effect that might not be desired is if you | |
|
242 | // bind something like 'A' cause you want to trigger an | |
|
243 | // event when capital A is pressed caps lock will no longer | |
|
244 | // trigger the event. shift+a will though. | |
|
245 | if (!e.shiftKey) { | |
|
246 | character = character.toLowerCase(); | |
|
247 | } | |
|
248 | ||
|
249 | return character; | |
|
250 | } | |
|
251 | ||
|
252 | // for non keypress events the special maps are needed | |
|
253 | if (_MAP[e.which]) { | |
|
254 | return _MAP[e.which]; | |
|
255 | } | |
|
256 | ||
|
257 | if (_KEYCODE_MAP[e.which]) { | |
|
258 | return _KEYCODE_MAP[e.which]; | |
|
259 | } | |
|
260 | ||
|
261 | // if it is not in the special map | |
|
262 | ||
|
263 | // with keydown and keyup events the character seems to always | |
|
264 | // come in as an uppercase character whether you are pressing shift | |
|
265 | // or not. we should make sure it is always lowercase for comparisons | |
|
266 | return String.fromCharCode(e.which).toLowerCase(); | |
|
267 | } | |
|
268 | ||
|
269 | /** | |
|
270 | * checks if two arrays are equal | |
|
271 | * | |
|
272 | * @param {Array} modifiers1 | |
|
273 | * @param {Array} modifiers2 | |
|
274 | * @returns {boolean} | |
|
275 | */ | |
|
276 | function _modifiersMatch(modifiers1, modifiers2) { | |
|
277 | return modifiers1.sort().join(',') === modifiers2.sort().join(','); | |
|
278 | } | |
|
279 | ||
|
280 | /** | |
|
281 | * resets all sequence counters except for the ones passed in | |
|
282 | * | |
|
283 | * @param {Object} doNotReset | |
|
284 | * @returns void | |
|
285 | */ | |
|
286 | function _resetSequences(doNotReset) { | |
|
287 | doNotReset = doNotReset || {}; | |
|
288 | ||
|
289 | var activeSequences = false, | |
|
290 | key; | |
|
291 | ||
|
292 | for (key in _sequenceLevels) { | |
|
293 | if (doNotReset[key]) { | |
|
294 | activeSequences = true; | |
|
295 | continue; | |
|
296 | } | |
|
297 | _sequenceLevels[key] = 0; | |
|
298 | } | |
|
299 | ||
|
300 | if (!activeSequences) { | |
|
301 | _nextExpectedAction = false; | |
|
302 | } | |
|
303 | } | |
|
304 | ||
|
305 | /** | |
|
306 | * finds all callbacks that match based on the keycode, modifiers, | |
|
307 | * and action | |
|
308 | * | |
|
309 | * @param {string} character | |
|
310 | * @param {Array} modifiers | |
|
311 | * @param {Event|Object} e | |
|
312 | * @param {string=} sequenceName - name of the sequence we are looking for | |
|
313 | * @param {string=} combination | |
|
314 | * @param {number=} level | |
|
315 | * @returns {Array} | |
|
316 | */ | |
|
317 | function _getMatches(character, modifiers, e, sequenceName, combination, level) { | |
|
318 | var i, | |
|
319 | callback, | |
|
320 | matches = [], | |
|
321 | action = e.type; | |
|
322 | ||
|
323 | // if there are no events related to this keycode | |
|
324 | if (!_callbacks[character]) { | |
|
325 | return []; | |
|
326 | } | |
|
327 | ||
|
328 | // if a modifier key is coming up on its own we should allow it | |
|
329 | if (action == 'keyup' && _isModifier(character)) { | |
|
330 | modifiers = [character]; | |
|
331 | } | |
|
332 | ||
|
333 | // loop through all callbacks for the key that was pressed | |
|
334 | // and see if any of them match | |
|
335 | for (i = 0; i < _callbacks[character].length; ++i) { | |
|
336 | callback = _callbacks[character][i]; | |
|
337 | ||
|
338 | // if a sequence name is not specified, but this is a sequence at | |
|
339 | // the wrong level then move onto the next match | |
|
340 | if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) { | |
|
341 | continue; | |
|
342 | } | |
|
343 | ||
|
344 | // if the action we are looking for doesn't match the action we got | |
|
345 | // then we should keep going | |
|
346 | if (action != callback.action) { | |
|
347 | continue; | |
|
348 | } | |
|
349 | ||
|
350 | // if this is a keypress event and the meta key and control key | |
|
351 | // are not pressed that means that we need to only look at the | |
|
352 | // character, otherwise check the modifiers as well | |
|
353 | // | |
|
354 | // chrome will not fire a keypress if meta or control is down | |
|
355 | // safari will fire a keypress if meta or meta+shift is down | |
|
356 | // firefox will fire a keypress if meta or control is down | |
|
357 | if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) { | |
|
358 | ||
|
359 | // when you bind a combination or sequence a second time it | |
|
360 | // should overwrite the first one. if a sequenceName or | |
|
361 | // combination is specified in this call it does just that | |
|
362 | // | |
|
363 | // @todo make deleting its own method? | |
|
364 | var deleteCombo = !sequenceName && callback.combo == combination; | |
|
365 | var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level; | |
|
366 | if (deleteCombo || deleteSequence) { | |
|
367 | _callbacks[character].splice(i, 1); | |
|
368 | } | |
|
369 | ||
|
370 | matches.push(callback); | |
|
371 | } | |
|
372 | } | |
|
373 | ||
|
374 | return matches; | |
|
375 | } | |
|
376 | ||
|
377 | /** | |
|
378 | * takes a key event and figures out what the modifiers are | |
|
379 | * | |
|
380 | * @param {Event} e | |
|
381 | * @returns {Array} | |
|
382 | */ | |
|
383 | function _eventModifiers(e) { | |
|
384 | var modifiers = []; | |
|
385 | ||
|
386 | if (e.shiftKey) { | |
|
387 | modifiers.push('shift'); | |
|
388 | } | |
|
389 | ||
|
390 | if (e.altKey) { | |
|
391 | modifiers.push('alt'); | |
|
392 | } | |
|
393 | ||
|
394 | if (e.ctrlKey) { | |
|
395 | modifiers.push('ctrl'); | |
|
396 | } | |
|
397 | ||
|
398 | if (e.metaKey) { | |
|
399 | modifiers.push('meta'); | |
|
400 | } | |
|
401 | ||
|
402 | return modifiers; | |
|
403 | } | |
|
404 | ||
|
405 | /** | |
|
406 | * actually calls the callback function | |
|
407 | * | |
|
408 | * if your callback function returns false this will use the jquery | |
|
409 | * convention - prevent default and stop propogation on the event | |
|
410 | * | |
|
411 | * @param {Function} callback | |
|
412 | * @param {Event} e | |
|
413 | * @returns void | |
|
414 | */ | |
|
415 | function _fireCallback(callback, e, combo) { | |
|
416 | ||
|
417 | // if this event should not happen stop here | |
|
418 | if (Mousetrap.stopCallback(e, e.target || e.srcElement, combo)) { | |
|
419 | return; | |
|
420 | } | |
|
421 | ||
|
422 | if (callback(e, combo) === false) { | |
|
423 | if (e.preventDefault) { | |
|
424 | e.preventDefault(); | |
|
425 | } | |
|
426 | ||
|
427 | if (e.stopPropagation) { | |
|
428 | e.stopPropagation(); | |
|
429 | } | |
|
430 | ||
|
431 | e.returnValue = false; | |
|
432 | e.cancelBubble = true; | |
|
433 | } | |
|
434 | } | |
|
435 | ||
|
436 | /** | |
|
437 | * handles a character key event | |
|
438 | * | |
|
439 | * @param {string} character | |
|
440 | * @param {Array} modifiers | |
|
441 | * @param {Event} e | |
|
442 | * @returns void | |
|
443 | */ | |
|
444 | function _handleKey(character, modifiers, e) { | |
|
445 | var callbacks = _getMatches(character, modifiers, e), | |
|
446 | i, | |
|
447 | doNotReset = {}, | |
|
448 | maxLevel = 0, | |
|
449 | processedSequenceCallback = false; | |
|
450 | ||
|
451 | // Calculate the maxLevel for sequences so we can only execute the longest callback sequence | |
|
452 | for (i = 0; i < callbacks.length; ++i) { | |
|
453 | if (callbacks[i].seq) { | |
|
454 | maxLevel = Math.max(maxLevel, callbacks[i].level); | |
|
455 | } | |
|
456 | } | |
|
457 | ||
|
458 | // loop through matching callbacks for this key event | |
|
459 | for (i = 0; i < callbacks.length; ++i) { | |
|
460 | ||
|
461 | // fire for all sequence callbacks | |
|
462 | // this is because if for example you have multiple sequences | |
|
463 | // bound such as "g i" and "g t" they both need to fire the | |
|
464 | // callback for matching g cause otherwise you can only ever | |
|
465 | // match the first one | |
|
466 | if (callbacks[i].seq) { | |
|
467 | ||
|
468 | // only fire callbacks for the maxLevel to prevent | |
|
469 | // subsequences from also firing | |
|
470 | // | |
|
471 | // for example 'a option b' should not cause 'option b' to fire | |
|
472 | // even though 'option b' is part of the other sequence | |
|
473 | // | |
|
474 | // any sequences that do not match here will be discarded | |
|
475 | // below by the _resetSequences call | |
|
476 | if (callbacks[i].level != maxLevel) { | |
|
477 | continue; | |
|
478 | } | |
|
479 | ||
|
480 | processedSequenceCallback = true; | |
|
481 | ||
|
482 | // keep a list of which sequences were matches for later | |
|
483 | doNotReset[callbacks[i].seq] = 1; | |
|
484 | _fireCallback(callbacks[i].callback, e, callbacks[i].combo); | |
|
485 | continue; | |
|
486 | } | |
|
487 | ||
|
488 | // if there were no sequence matches but we are still here | |
|
489 | // that means this is a regular match so we should fire that | |
|
490 | if (!processedSequenceCallback) { | |
|
491 | _fireCallback(callbacks[i].callback, e, callbacks[i].combo); | |
|
492 | } | |
|
493 | } | |
|
494 | ||
|
495 | // if the key you pressed matches the type of sequence without | |
|
496 | // being a modifier (ie "keyup" or "keypress") then we should | |
|
497 | // reset all sequences that were not matched by this event | |
|
498 | // | |
|
499 | // this is so, for example, if you have the sequence "h a t" and you | |
|
500 | // type "h e a r t" it does not match. in this case the "e" will | |
|
501 | // cause the sequence to reset | |
|
502 | // | |
|
503 | // modifier keys are ignored because you can have a sequence | |
|
504 | // that contains modifiers such as "enter ctrl+space" and in most | |
|
505 | // cases the modifier key will be pressed before the next key | |
|
506 | // | |
|
507 | // also if you have a sequence such as "ctrl+b a" then pressing the | |
|
508 | // "b" key will trigger a "keypress" and a "keydown" | |
|
509 | // | |
|
510 | // the "keydown" is expected when there is a modifier, but the | |
|
511 | // "keypress" ends up matching the _nextExpectedAction since it occurs | |
|
512 | // after and that causes the sequence to reset | |
|
513 | // | |
|
514 | // we ignore keypresses in a sequence that directly follow a keydown | |
|
515 | // for the same character | |
|
516 | var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress; | |
|
517 | if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) { | |
|
518 | _resetSequences(doNotReset); | |
|
519 | } | |
|
520 | ||
|
521 | _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown'; | |
|
522 | } | |
|
523 | ||
|
524 | /** | |
|
525 | * handles a keydown event | |
|
526 | * | |
|
527 | * @param {Event} e | |
|
528 | * @returns void | |
|
529 | */ | |
|
530 | function _handleKeyEvent(e) { | |
|
531 | ||
|
532 | // normalize e.which for key events | |
|
533 | // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion | |
|
534 | if (typeof e.which !== 'number') { | |
|
535 | e.which = e.keyCode; | |
|
536 | } | |
|
537 | ||
|
538 | var character = _characterFromEvent(e); | |
|
539 | ||
|
540 | // no character found then stop | |
|
541 | if (!character) { | |
|
542 | return; | |
|
543 | } | |
|
544 | ||
|
545 | // need to use === for the character check because the character can be 0 | |
|
546 | if (e.type == 'keyup' && _ignoreNextKeyup === character) { | |
|
547 | _ignoreNextKeyup = false; | |
|
548 | return; | |
|
549 | } | |
|
550 | ||
|
551 | Mousetrap.handleKey(character, _eventModifiers(e), e); | |
|
552 | } | |
|
553 | ||
|
554 | /** | |
|
555 | * determines if the keycode specified is a modifier key or not | |
|
556 | * | |
|
557 | * @param {string} key | |
|
558 | * @returns {boolean} | |
|
559 | */ | |
|
560 | function _isModifier(key) { | |
|
561 | return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta'; | |
|
562 | } | |
|
563 | ||
|
564 | /** | |
|
565 | * called to set a 1 second timeout on the specified sequence | |
|
566 | * | |
|
567 | * this is so after each key press in the sequence you have 1 second | |
|
568 | * to press the next key before you have to start over | |
|
569 | * | |
|
570 | * @returns void | |
|
571 | */ | |
|
572 | function _resetSequenceTimer() { | |
|
573 | clearTimeout(_resetTimer); | |
|
574 | _resetTimer = setTimeout(_resetSequences, 1000); | |
|
575 | } | |
|
576 | ||
|
577 | /** | |
|
578 | * reverses the map lookup so that we can look for specific keys | |
|
579 | * to see what can and can't use keypress | |
|
580 | * | |
|
581 | * @return {Object} | |
|
582 | */ | |
|
583 | function _getReverseMap() { | |
|
584 | if (!_REVERSE_MAP) { | |
|
585 | _REVERSE_MAP = {}; | |
|
586 | for (var key in _MAP) { | |
|
587 | ||
|
588 | // pull out the numeric keypad from here cause keypress should | |
|
589 | // be able to detect the keys from the character | |
|
590 | if (key > 95 && key < 112) { | |
|
591 | continue; | |
|
592 | } | |
|
593 | ||
|
594 | if (_MAP.hasOwnProperty(key)) { | |
|
595 | _REVERSE_MAP[_MAP[key]] = key; | |
|
596 | } | |
|
597 | } | |
|
598 | } | |
|
599 | return _REVERSE_MAP; | |
|
600 | } | |
|
601 | ||
|
602 | /** | |
|
603 | * picks the best action based on the key combination | |
|
604 | * | |
|
605 | * @param {string} key - character for key | |
|
606 | * @param {Array} modifiers | |
|
607 | * @param {string=} action passed in | |
|
608 | */ | |
|
609 | function _pickBestAction(key, modifiers, action) { | |
|
610 | ||
|
611 | // if no action was picked in we should try to pick the one | |
|
612 | // that we think would work best for this key | |
|
613 | if (!action) { | |
|
614 | action = _getReverseMap()[key] ? 'keydown' : 'keypress'; | |
|
615 | } | |
|
616 | ||
|
617 | // modifier keys don't work as expected with keypress, | |
|
618 | // switch to keydown | |
|
619 | if (action == 'keypress' && modifiers.length) { | |
|
620 | action = 'keydown'; | |
|
621 | } | |
|
622 | ||
|
623 | return action; | |
|
624 | } | |
|
625 | ||
|
626 | /** | |
|
627 | * binds a key sequence to an event | |
|
628 | * | |
|
629 | * @param {string} combo - combo specified in bind call | |
|
630 | * @param {Array} keys | |
|
631 | * @param {Function} callback | |
|
632 | * @param {string=} action | |
|
633 | * @returns void | |
|
634 | */ | |
|
635 | function _bindSequence(combo, keys, callback, action) { | |
|
636 | ||
|
637 | // start off by adding a sequence level record for this combination | |
|
638 | // and setting the level to 0 | |
|
639 | _sequenceLevels[combo] = 0; | |
|
640 | ||
|
641 | /** | |
|
642 | * callback to increase the sequence level for this sequence and reset | |
|
643 | * all other sequences that were active | |
|
644 | * | |
|
645 | * @param {string} nextAction | |
|
646 | * @returns {Function} | |
|
647 | */ | |
|
648 | function _increaseSequence(nextAction) { | |
|
649 | return function() { | |
|
650 | _nextExpectedAction = nextAction; | |
|
651 | ++_sequenceLevels[combo]; | |
|
652 | _resetSequenceTimer(); | |
|
653 | }; | |
|
654 | } | |
|
655 | ||
|
656 | /** | |
|
657 | * wraps the specified callback inside of another function in order | |
|
658 | * to reset all sequence counters as soon as this sequence is done | |
|
659 | * | |
|
660 | * @param {Event} e | |
|
661 | * @returns void | |
|
662 | */ | |
|
663 | function _callbackAndReset(e) { | |
|
664 | _fireCallback(callback, e, combo); | |
|
665 | ||
|
666 | // we should ignore the next key up if the action is key down | |
|
667 | // or keypress. this is so if you finish a sequence and | |
|
668 | // release the key the final key will not trigger a keyup | |
|
669 | if (action !== 'keyup') { | |
|
670 | _ignoreNextKeyup = _characterFromEvent(e); | |
|
671 | } | |
|
672 | ||
|
673 | // weird race condition if a sequence ends with the key | |
|
674 | // another sequence begins with | |
|
675 | setTimeout(_resetSequences, 10); | |
|
676 | } | |
|
677 | ||
|
678 | // loop through keys one at a time and bind the appropriate callback | |
|
679 | // function. for any key leading up to the final one it should | |
|
680 | // increase the sequence. after the final, it should reset all sequences | |
|
681 | // | |
|
682 | // if an action is specified in the original bind call then that will | |
|
683 | // be used throughout. otherwise we will pass the action that the | |
|
684 | // next key in the sequence should match. this allows a sequence | |
|
685 | // to mix and match keypress and keydown events depending on which | |
|
686 | // ones are better suited to the key provided | |
|
687 | for (var i = 0; i < keys.length; ++i) { | |
|
688 | var isFinal = i + 1 === keys.length; | |
|
689 | var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action); | |
|
690 | _bindSingle(keys[i], wrappedCallback, action, combo, i); | |
|
691 | } | |
|
692 | } | |
|
693 | ||
|
694 | /** | |
|
695 | * Converts from a string key combination to an array | |
|
696 | * | |
|
697 | * @param {string} combination like "command+shift+l" | |
|
698 | * @return {Array} | |
|
699 | */ | |
|
700 | function _keysFromString(combination) { | |
|
701 | if (combination === '+') { | |
|
702 | return ['+']; | |
|
703 | } | |
|
704 | ||
|
705 | return combination.split('+'); | |
|
706 | } | |
|
707 | ||
|
708 | /** | |
|
709 | * Gets info for a specific key combination | |
|
710 | * | |
|
711 | * @param {string} combination key combination ("command+s" or "a" or "*") | |
|
712 | * @param {string=} action | |
|
713 | * @returns {Object} | |
|
714 | */ | |
|
715 | function _getKeyInfo(combination, action) { | |
|
716 | var keys, | |
|
717 | key, | |
|
718 | i, | |
|
719 | modifiers = []; | |
|
720 | ||
|
721 | // take the keys from this pattern and figure out what the actual | |
|
722 | // pattern is all about | |
|
723 | keys = _keysFromString(combination); | |
|
724 | ||
|
725 | for (i = 0; i < keys.length; ++i) { | |
|
726 | key = keys[i]; | |
|
727 | ||
|
728 | // normalize key names | |
|
729 | if (_SPECIAL_ALIASES[key]) { | |
|
730 | key = _SPECIAL_ALIASES[key]; | |
|
731 | } | |
|
732 | ||
|
733 | // if this is not a keypress event then we should | |
|
734 | // be smart about using shift keys | |
|
735 | // this will only work for US keyboards however | |
|
736 | if (action && action != 'keypress' && _SHIFT_MAP[key]) { | |
|
737 | key = _SHIFT_MAP[key]; | |
|
738 | modifiers.push('shift'); | |
|
739 | } | |
|
740 | ||
|
741 | // if this key is a modifier then add it to the list of modifiers | |
|
742 | if (_isModifier(key)) { | |
|
743 | modifiers.push(key); | |
|
744 | } | |
|
745 | } | |
|
746 | ||
|
747 | // depending on what the key combination is | |
|
748 | // we will try to pick the best event for it | |
|
749 | action = _pickBestAction(key, modifiers, action); | |
|
750 | ||
|
751 | return { | |
|
752 | key: key, | |
|
753 | modifiers: modifiers, | |
|
754 | action: action | |
|
755 | }; | |
|
756 | } | |
|
757 | ||
|
758 | /** | |
|
759 | * binds a single keyboard combination | |
|
760 | * | |
|
761 | * @param {string} combination | |
|
762 | * @param {Function} callback | |
|
763 | * @param {string=} action | |
|
764 | * @param {string=} sequenceName - name of sequence if part of sequence | |
|
765 | * @param {number=} level - what part of the sequence the command is | |
|
766 | * @returns void | |
|
767 | */ | |
|
768 | function _bindSingle(combination, callback, action, sequenceName, level) { | |
|
769 | ||
|
770 | // store a direct mapped reference for use with Mousetrap.trigger | |
|
771 | _directMap[combination + ':' + action] = callback; | |
|
772 | ||
|
773 | // make sure multiple spaces in a row become a single space | |
|
774 | combination = combination.replace(/\s+/g, ' '); | |
|
775 | ||
|
776 | var sequence = combination.split(' '), | |
|
777 | info; | |
|
778 | ||
|
779 | // if this pattern is a sequence of keys then run through this method | |
|
780 | // to reprocess each pattern one key at a time | |
|
781 | if (sequence.length > 1) { | |
|
782 | _bindSequence(combination, sequence, callback, action); | |
|
783 | return; | |
|
784 | } | |
|
785 | ||
|
786 | info = _getKeyInfo(combination, action); | |
|
787 | ||
|
788 | // make sure to initialize array if this is the first time | |
|
789 | // a callback is added for this key | |
|
790 | _callbacks[info.key] = _callbacks[info.key] || []; | |
|
791 | ||
|
792 | // remove an existing match if there is one | |
|
793 | _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level); | |
|
794 | ||
|
795 | // add this call back to the array | |
|
796 | // if it is a sequence put it at the beginning | |
|
797 | // if not put it at the end | |
|
798 | // | |
|
799 | // this is important because the way these are processed expects | |
|
800 | // the sequence ones to come first | |
|
801 | _callbacks[info.key][sequenceName ? 'unshift' : 'push']({ | |
|
802 | callback: callback, | |
|
803 | modifiers: info.modifiers, | |
|
804 | action: info.action, | |
|
805 | seq: sequenceName, | |
|
806 | level: level, | |
|
807 | combo: combination | |
|
808 | }); | |
|
809 | } | |
|
810 | ||
|
811 | /** | |
|
812 | * binds multiple combinations to the same callback | |
|
813 | * | |
|
814 | * @param {Array} combinations | |
|
815 | * @param {Function} callback | |
|
816 | * @param {string|undefined} action | |
|
817 | * @returns void | |
|
818 | */ | |
|
819 | function _bindMultiple(combinations, callback, action) { | |
|
820 | for (var i = 0; i < combinations.length; ++i) { | |
|
821 | _bindSingle(combinations[i], callback, action); | |
|
822 | } | |
|
823 | } | |
|
824 | ||
|
825 | // start! | |
|
826 | _addEvent(document, 'keypress', _handleKeyEvent); | |
|
827 | _addEvent(document, 'keydown', _handleKeyEvent); | |
|
828 | _addEvent(document, 'keyup', _handleKeyEvent); | |
|
829 | ||
|
830 | var Mousetrap = { | |
|
831 | ||
|
832 | /** | |
|
833 | * binds an event to mousetrap | |
|
834 | * | |
|
835 | * can be a single key, a combination of keys separated with +, | |
|
836 | * an array of keys, or a sequence of keys separated by spaces | |
|
837 | * | |
|
838 | * be sure to list the modifier keys first to make sure that the | |
|
839 | * correct key ends up getting bound (the last key in the pattern) | |
|
840 | * | |
|
841 | * @param {string|Array} keys | |
|
842 | * @param {Function} callback | |
|
843 | * @param {string=} action - 'keypress', 'keydown', or 'keyup' | |
|
844 | * @returns void | |
|
845 | */ | |
|
846 | bind: function(keys, callback, action) { | |
|
847 | keys = keys instanceof Array ? keys : [keys]; | |
|
848 | _bindMultiple(keys, callback, action); | |
|
849 | return this; | |
|
850 | }, | |
|
851 | ||
|
852 | /** | |
|
853 | * unbinds an event to mousetrap | |
|
854 | * | |
|
855 | * the unbinding sets the callback function of the specified key combo | |
|
856 | * to an empty function and deletes the corresponding key in the | |
|
857 | * _directMap dict. | |
|
858 | * | |
|
859 | * TODO: actually remove this from the _callbacks dictionary instead | |
|
860 | * of binding an empty function | |
|
861 | * | |
|
862 | * the keycombo+action has to be exactly the same as | |
|
863 | * it was defined in the bind method | |
|
864 | * | |
|
865 | * @param {string|Array} keys | |
|
866 | * @param {string} action | |
|
867 | * @returns void | |
|
868 | */ | |
|
869 | unbind: function(keys, action) { | |
|
870 | return Mousetrap.bind(keys, function() {}, action); | |
|
871 | }, | |
|
872 | ||
|
873 | /** | |
|
874 | * triggers an event that has already been bound | |
|
875 | * | |
|
876 | * @param {string} keys | |
|
877 | * @param {string=} action | |
|
878 | * @returns void | |
|
879 | */ | |
|
880 | trigger: function(keys, action) { | |
|
881 | if (_directMap[keys + ':' + action]) { | |
|
882 | _directMap[keys + ':' + action]({}, keys); | |
|
883 | } | |
|
884 | return this; | |
|
885 | }, | |
|
886 | ||
|
887 | /** | |
|
888 | * resets the library back to its initial state. this is useful | |
|
889 | * if you want to clear out the current keyboard shortcuts and bind | |
|
890 | * new ones - for example if you switch to another page | |
|
891 | * | |
|
892 | * @returns void | |
|
893 | */ | |
|
894 | reset: function() { | |
|
895 | _callbacks = {}; | |
|
896 | _directMap = {}; | |
|
897 | return this; | |
|
898 | }, | |
|
899 | ||
|
900 | /** | |
|
901 | * should we stop this event before firing off callbacks | |
|
902 | * | |
|
903 | * @param {Event} e | |
|
904 | * @param {Element} element | |
|
905 | * @return {boolean} | |
|
906 | */ | |
|
907 | stopCallback: function(e, element) { | |
|
908 | ||
|
909 | // if the element has the class "mousetrap" then no need to stop | |
|
910 | if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) { | |
|
911 | return false; | |
|
912 | } | |
|
913 | ||
|
914 | // stop for input, select, and textarea | |
|
915 | return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable; | |
|
916 | }, | |
|
917 | ||
|
918 | /** | |
|
919 | * exposes _handleKey publicly so it can be overwritten by extensions | |
|
920 | */ | |
|
921 | handleKey: _handleKey | |
|
922 | }; | |
|
923 | ||
|
924 | // expose mousetrap to the global object | |
|
925 | window.Mousetrap = Mousetrap; | |
|
926 | ||
|
927 | // expose mousetrap as an AMD module | |
|
928 | if (typeof define === 'function' && define.amd) { | |
|
929 | define(Mousetrap); | |
|
930 | } | |
|
931 | }) (window, document); |
General Comments 0
You need to be logged in to leave comments.
Login now