From 51cc82c1c8678b38a4813e52db79045b2b42b144 Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Tue, 8 Sep 2015 18:32:44 +0430 Subject: [PATCH] initial commit: gh-page --- Gruntfile.js | 112 - LICENSE | 674 - Mobile Portrait.png | Bin 143287 -> 0 bytes README.md | 50 - assets/Desktop.png | Bin 0 -> 391892 bytes assets/background.jpg | Bin 0 -> 268452 bytes assets/button.svg | 19 + assets/heart.svg | 12 + build/icon/Icon-128.png | Bin 12937 -> 0 bytes build/icon/Icon-16.png | Bin 753 -> 0 bytes build/icon/Icon-48.png | Bin 3587 -> 0 bytes build/icon/Icon-60.png | Bin 4879 -> 0 bytes build/icon/Icon.png | Bin 61603 -> 0 bytes build/img/ Share.svg | 32 - build/img/Directory.svg | 14 - build/img/File.svg | 14 - build/img/More.svg | 16 - build/img/Plus.svg | 16 - build/img/Refresh.svg | 20 - build/img/Search.png | Bin 690 -> 0 bytes build/img/Search.svg | 14 - build/img/Select.svg | 19 - build/img/Share.svg | 22 - build/img/View.svg | 16 - build/index.html | 16 - build/main.js | 32640 -------------------------- build/manifest.webapp | 50 - build/style.css | 600 - design/assets/Directory.svg | 14 - design/assets/File.svg | 14 - design/assets/More.svg | 27 - design/assets/Plus.svg | 27 - design/assets/Refresh.svg | 31 - design/assets/Share.svg | 40 - design/assets/View.svg | 27 - design/assets/trianglified.svg | 1 - design/userinterface.sketch | Bin 2654208 -> 0 bytes index.html | 32 + package.json | 53 - releases/hawk-1.0.0.zip | Bin 1137056 -> 0 bytes src/icon/Icon-128.png | Bin 12937 -> 0 bytes src/icon/Icon-16.png | Bin 753 -> 0 bytes src/icon/Icon-48.png | Bin 3587 -> 0 bytes src/icon/Icon-60.png | Bin 4879 -> 0 bytes src/icon/Icon.png | Bin 61603 -> 0 bytes src/img/ Share.svg | 32 - src/img/Directory.svg | 14 - src/img/File.svg | 14 - src/img/More.svg | 16 - src/img/Plus.svg | 16 - src/img/Refresh.svg | 20 - src/img/Search.png | Bin 690 -> 0 bytes src/img/Search.svg | 14 - src/img/Select.svg | 19 - src/img/Share.svg | 22 - src/img/View.svg | 16 - src/index.html | 16 - src/js/actions/changedir.js | 9 - src/js/actions/dialog.js | 33 - src/js/actions/file.js | 50 - src/js/actions/files-view.js | 50 - src/js/actions/menu.js | 33 - src/js/actions/navigation.js | 22 - src/js/actions/pick.js | 15 - src/js/actions/settings.js | 8 - src/js/actions/spinner.js | 22 - src/js/actions/types.js | 34 - src/js/activities.js | 8 - src/js/api/files.js | 128 - src/js/components/breadcrumb.js | 56 - src/js/components/dialog.js | 31 - src/js/components/directory.js | 44 - src/js/components/file-list.js | 65 - src/js/components/file.js | 51 - src/js/components/header.js | 34 - src/js/components/menu.js | 24 - src/js/components/mixins/entry.js | 41 - src/js/components/navigation.js | 102 - src/js/components/root.js | 101 - src/js/components/spinner.js | 28 - src/js/components/toolbar.js | 39 - src/js/dialogs.js | 111 - src/js/main.js | 8 - src/js/menus.js | 151 - src/js/reducers/active-file.js | 9 - src/js/reducers/all.js | 37 - src/js/reducers/cwd.js | 27 - src/js/reducers/dialog.js | 22 - src/js/reducers/files.js | 90 - src/js/reducers/lwd.js | 8 - src/js/reducers/menu.js | 22 - src/js/reducers/navigation.js | 9 - src/js/reducers/pick.js | 9 - src/js/reducers/search.js | 50 - src/js/reducers/select-view.js | 9 - src/js/reducers/settings.js | 19 - src/js/reducers/spinner.js | 29 - src/js/store.js | 21 - src/js/tour.js | 59 - src/js/utils.js | 47 - src/less/components/all.less | 9 - src/less/components/breadcrumb.less | 36 - src/less/components/dialog.less | 64 - src/less/components/entries.less | 42 - src/less/components/file-list.less | 6 - src/less/components/header.less | 50 - src/less/components/menu.less | 49 - src/less/components/navigation.less | 88 - src/less/components/spinner.less | 56 - src/less/components/toolbar.less | 14 - src/less/icons.less | 67 - src/less/main.less | 33 - src/less/styles/all.less | 40 - src/less/styles/buttons.less | 21 - src/less/styles/forms.less | 45 - src/less/styles/shadows.less | 11 - src/less/styles/texts.less | 31 - src/less/styles/tour.less | 141 - src/less/variables.less | 24 - src/manifest.webapp | 50 - style.css | 118 + 121 files changed, 181 insertions(+), 37400 deletions(-) delete mode 100644 Gruntfile.js delete mode 100644 LICENSE delete mode 100644 Mobile Portrait.png delete mode 100644 README.md create mode 100644 assets/Desktop.png create mode 100644 assets/background.jpg create mode 100644 assets/button.svg create mode 100644 assets/heart.svg delete mode 100644 build/icon/Icon-128.png delete mode 100644 build/icon/Icon-16.png delete mode 100644 build/icon/Icon-48.png delete mode 100644 build/icon/Icon-60.png delete mode 100644 build/icon/Icon.png delete mode 100644 build/img/ Share.svg delete mode 100644 build/img/Directory.svg delete mode 100644 build/img/File.svg delete mode 100644 build/img/More.svg delete mode 100644 build/img/Plus.svg delete mode 100644 build/img/Refresh.svg delete mode 100644 build/img/Search.png delete mode 100644 build/img/Search.svg delete mode 100644 build/img/Select.svg delete mode 100644 build/img/Share.svg delete mode 100644 build/img/View.svg delete mode 100644 build/index.html delete mode 100644 build/main.js delete mode 100644 build/manifest.webapp delete mode 100644 build/style.css delete mode 100644 design/assets/Directory.svg delete mode 100644 design/assets/File.svg delete mode 100644 design/assets/More.svg delete mode 100644 design/assets/Plus.svg delete mode 100644 design/assets/Refresh.svg delete mode 100644 design/assets/Share.svg delete mode 100644 design/assets/View.svg delete mode 100644 design/assets/trianglified.svg delete mode 100644 design/userinterface.sketch create mode 100644 index.html delete mode 100644 package.json delete mode 100644 releases/hawk-1.0.0.zip delete mode 100644 src/icon/Icon-128.png delete mode 100644 src/icon/Icon-16.png delete mode 100644 src/icon/Icon-48.png delete mode 100644 src/icon/Icon-60.png delete mode 100644 src/icon/Icon.png delete mode 100644 src/img/ Share.svg delete mode 100644 src/img/Directory.svg delete mode 100644 src/img/File.svg delete mode 100644 src/img/More.svg delete mode 100644 src/img/Plus.svg delete mode 100644 src/img/Refresh.svg delete mode 100644 src/img/Search.png delete mode 100644 src/img/Search.svg delete mode 100644 src/img/Select.svg delete mode 100644 src/img/Share.svg delete mode 100644 src/img/View.svg delete mode 100644 src/index.html delete mode 100644 src/js/actions/changedir.js delete mode 100644 src/js/actions/dialog.js delete mode 100644 src/js/actions/file.js delete mode 100644 src/js/actions/files-view.js delete mode 100644 src/js/actions/menu.js delete mode 100644 src/js/actions/navigation.js delete mode 100644 src/js/actions/pick.js delete mode 100644 src/js/actions/settings.js delete mode 100644 src/js/actions/spinner.js delete mode 100644 src/js/actions/types.js delete mode 100644 src/js/activities.js delete mode 100644 src/js/api/files.js delete mode 100644 src/js/components/breadcrumb.js delete mode 100644 src/js/components/dialog.js delete mode 100644 src/js/components/directory.js delete mode 100644 src/js/components/file-list.js delete mode 100644 src/js/components/file.js delete mode 100644 src/js/components/header.js delete mode 100644 src/js/components/menu.js delete mode 100644 src/js/components/mixins/entry.js delete mode 100644 src/js/components/navigation.js delete mode 100644 src/js/components/root.js delete mode 100644 src/js/components/spinner.js delete mode 100644 src/js/components/toolbar.js delete mode 100644 src/js/dialogs.js delete mode 100644 src/js/main.js delete mode 100644 src/js/menus.js delete mode 100644 src/js/reducers/active-file.js delete mode 100644 src/js/reducers/all.js delete mode 100644 src/js/reducers/cwd.js delete mode 100644 src/js/reducers/dialog.js delete mode 100644 src/js/reducers/files.js delete mode 100644 src/js/reducers/lwd.js delete mode 100644 src/js/reducers/menu.js delete mode 100644 src/js/reducers/navigation.js delete mode 100644 src/js/reducers/pick.js delete mode 100644 src/js/reducers/search.js delete mode 100644 src/js/reducers/select-view.js delete mode 100644 src/js/reducers/settings.js delete mode 100644 src/js/reducers/spinner.js delete mode 100644 src/js/store.js delete mode 100644 src/js/tour.js delete mode 100644 src/js/utils.js delete mode 100644 src/less/components/all.less delete mode 100644 src/less/components/breadcrumb.less delete mode 100644 src/less/components/dialog.less delete mode 100644 src/less/components/entries.less delete mode 100644 src/less/components/file-list.less delete mode 100644 src/less/components/header.less delete mode 100644 src/less/components/menu.less delete mode 100644 src/less/components/navigation.less delete mode 100644 src/less/components/spinner.less delete mode 100644 src/less/components/toolbar.less delete mode 100644 src/less/icons.less delete mode 100644 src/less/main.less delete mode 100644 src/less/styles/all.less delete mode 100644 src/less/styles/buttons.less delete mode 100644 src/less/styles/forms.less delete mode 100644 src/less/styles/shadows.less delete mode 100644 src/less/styles/texts.less delete mode 100644 src/less/styles/tour.less delete mode 100644 src/less/variables.less delete mode 100644 src/manifest.webapp create mode 100644 style.css diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index 0b97138..0000000 --- a/Gruntfile.js +++ /dev/null @@ -1,112 +0,0 @@ -module.exports = function(grunt) { - require('grunt-task-loader')(grunt); - - grunt.initConfig({ - pkg: require('./package.json'), - browserify: { - dev: { - files: [{ - dest: 'build/main.js', - src: ['src/js/**/*', '!src/js/libs/**'] - }], - options: { - alias: { - store: './src/js/store.js', - utils: './src/js/utils.js', - tour: './src/js/tour.js' - }, - transform: [['babelify', { - optional: ['es7.asyncFunctions', 'asyncToGenerator', - 'es7.decorators'], - blacklist: [] - }]], - plugin: [ - [ - 'remapify', [ - { - src: '**/*.js', - expose: 'components', - cwd: __dirname + '/src/js/components/' - }, - { - src: '**/*.js', - expose: 'actions', - cwd: __dirname + '/src/js/actions' - }, - { - src: '**/*.js', - expose: 'reducers', - cwd: __dirname + '/src/js/reducers' - }, - { - src: '**/*.js', - expose: 'api', - cwd: __dirname + '/src/js/api' - }, - { - src: '**/*.js', - expose: 'libs', - cwd: __dirname + '/src/js/libs' - } - ] - ] - ] - } - } - }, - less: { - dev: { - files: [{ - src: 'src/less/main.less', - dest: 'build/style.css' - }] - }, - prod: { - options: { - plugins: require('less-plugin-clean-css')() - }, - files: [{ - src: 'src/less/main.less', - dest: 'build/style.css' - }] - } - }, - copy: { - assets: { - files: [{ - expand: true, - cwd: 'src', - dest: 'build', - src: ['index.html', 'manifest.webapp', - 'fonts/**', 'img/**', 'js/libs/**', 'icon/**'] - }] - } - }, - zip: { - release: { - dest: 'releases/hawk-<%= pkg.version %>.zip', - src: 'build/**/*', - cwd: 'build/' - } - }, - watch: { - styles: { - files: ['src/less/**/*.less'], - tasks: ['less:dev'] - }, - scripts: { - files: ['src/js/**/*'], - tasks: ['browserify:dev'] - }, - assets: { - files: ['src/index.html', 'src/manifest.webapp', - 'src/fonts/**', 'src/img/**', 'src/data/**'], - tasks: ['copy'] - } - } - }); - - grunt.registerTask('default', ['browserify:dev', 'less:dev', 'copy']); - grunt.registerTask('production', ['browserify', 'less:prod', 'copy', 'zip']); - grunt.registerTask('test', 'mochaTest'); -}; diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 4d73947..0000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - -Copyright (C) 2007 Free Software Foundation, Inc. -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Hawk Copyright (C) 2015 Mahdi Dibaiee - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/Mobile Portrait.png b/Mobile Portrait.png deleted file mode 100644 index df4be344e62558d99e81829c98c03243d8826031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143287 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 fpaBy!(^z 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 GxBn0NOPY58 diff --git a/README.md b/README.md deleted file mode 100644 index a475379..0000000 --- a/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Hawk -The missing Firefox OS file manager - -This app is under heavy development, things may change and break, but don't hesitate to test and fill issues in case you find bugs. - -Please read the Features section below and issues to make sure your issue is not already listed. - -Firefox OS 2.2 and up are supported. Sadly 2.0 and 1.3 miss a lot of ES6 functionalities as well as CSS3 features (flexbox, etc) which break our application. - -![Mobile Portrait Mockup](https://github.com/mdibaiee/Hawk/raw/master/Mobile%20Portrait.png) - -#Thanks to - -Sergio Muriel [@tfeserver](https://twitter.com/tfeserver) for testing application - -# Features - -Version 1.0 ------------ -- [x] Breadcrumb -- [x] Delete Files -- [x] Refresh -- [x] Rename Files -- [x] Error dialogs -- [x] Show / Hide hidden files -- [x] Show directories first -- [x] Create new files and directories -- [x] File Size -- [x] Directory Child Count -- [x] Actions on multiple files (selection) -- [x] Copy and Paste/Move files -- [x] File Preview (Supports PDF files!) -- [x] Filter Files -- [x] Swipe Gestures (Up directory by swiping right) -- [x] Search -- [x] First-run Tour -- [x] Share Files -- [x] Pick files - - -Version 2.0 ------------- -- [ ] Different views (List, Icons, etc) -- [ ] Sort Files -- [ ] Zip / Unzip -- [ ] Image Thumbnails -- [ ] FTP Browser -- [ ] Preferences -- [ ] File Type Icons -- [ ] Wi-Fi File Transfer (is this possible?) diff --git a/assets/Desktop.png b/assets/Desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..83904ce57229053f2808f42c45d69245bee6fe41 GIT binary patch literal 391892 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⁡0kpMqZa1|v^x^`3 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 m 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 RK-Iv4%%OCeH1Xrje*vTLlJ)=q literal 0 HcmV?d00001 diff --git a/assets/button.svg b/assets/button.svg new file mode 100644 index 0000000..2f06800 --- /dev/null +++ b/assets/button.svg @@ -0,0 +1,19 @@ + + + + Get on Firefox Marke + Rectangle 2 + Created with Sketch. + + + + + + + Get on Firefox Marketplace + + + + + + + \ No newline at end of file diff --git a/assets/heart.svg b/assets/heart.svg new file mode 100644 index 0000000..8083ae7 --- /dev/null +++ b/assets/heart.svg @@ -0,0 +1,12 @@ + + + + Shape + Created with Sketch. + + + + + + + diff --git a/build/icon/Icon-128.png b/build/icon/Icon-128.png deleted file mode 100644 index b90da61e97fbd5acfff9e187827af16203103f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12937 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 diff --git a/build/icon/Icon-48.png b/build/icon/Icon-48.png deleted file mode 100644 index 1b83591eb2ec735c3ea5aa4ac6d5653ab7ea9229..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3587 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 JPDHLkV1o1(xeovU diff --git a/build/icon/Icon-60.png b/build/icon/Icon-60.png deleted file mode 100644 index aef57b62e407a051334c16da44f9e1f57c8c6ef9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4879 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 BMH~PC diff --git a/build/icon/Icon.png b/build/icon/Icon.png deleted file mode 100644 index c13776e88bc8f7d85a76de44692bd7c4edeb24d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61603 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®u!yALHVy;;z-b&aq3IBQmO;UU(3hoD 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 - - - Share - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/img/Directory.svg b/build/img/Directory.svg deleted file mode 100644 index 5ebbbfb..0000000 --- a/build/img/Directory.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - Directory - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/build/img/File.svg b/build/img/File.svg deleted file mode 100644 index 8c9a256..0000000 --- a/build/img/File.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - File - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/build/img/More.svg b/build/img/More.svg deleted file mode 100644 index 603aad0..0000000 --- a/build/img/More.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - More Copy - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/build/img/Plus.svg b/build/img/Plus.svg deleted file mode 100644 index ba9d03e..0000000 --- a/build/img/Plus.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - Plus - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/build/img/Refresh.svg b/build/img/Refresh.svg deleted file mode 100644 index 1144b57..0000000 --- a/build/img/Refresh.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - Refresh - Created with Sketch. - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/img/Search.png b/build/img/Search.png deleted file mode 100644 index f2dc1174886916c8e407e29c8918d5e1958e33c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)Px%Y)M2xR7ef2ls$+OQ4q)Tr3pz9u{jljl@^I!6;DMhatIcJjR%5-Ac(DngUMDT;4Tc{8PTOv zg+kl7!a-cMS}mT*WEP2M!{PAm;c)l^d0(kiUKI+3UqN}E@AY~;)$Mj~^?JQEWH>>- zyRLh+TrS5vi8!9hI-Sn`NF=gCC5QdM3H}T4=hEr4BQZ_ZXf$>ulgYOb9grZ$va#PF zt4J0(L3}S-)@$0an9JpQ@?oSo+C$?=F8=jmu^2T$wrwZC+(G(+1$WcLgy_LR6M%im z1MoTHo=QL09mh#)2*De&6Z*Lh1Q?cO?I7oq8 zw|PdIiEiQRS<@iHU|3IrGsi>C;O0{E#En!9LaW_wXC!WFaEB0Eu-JbtLV)a6h(@Do zEM!pE=*8`RzyFdOUL}^LpQkv|H84BJc}*}2@p$~R^7Zee9Co{cx{pXN)#sq)vdK~+ zk$4&e2vOl>NC$F^Nm{j})oLB_ll)ZyM^Vi;D^}O;aGWnl5jkHfmF82a)H^?!$5(F@ zyM8mP!C&%#rga#JvnCPt&uX - - - Search - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/build/img/Select.svg b/build/img/Select.svg deleted file mode 100644 index 7d0fd6c..0000000 --- a/build/img/Select.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - Select - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/img/Share.svg b/build/img/Share.svg deleted file mode 100644 index ea78d4e..0000000 --- a/build/img/Share.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Share - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/img/View.svg b/build/img/View.svg deleted file mode 100644 index 9e48f96..0000000 --- a/build/img/View.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - View - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/build/index.html b/build/index.html deleted file mode 100644 index 24a51e6..0000000 --- a/build/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Hawk - - - - - - -

- - - - diff --git a/build/main.js b/build/main.js deleted file mode 100644 index b6b22cf..0000000 --- a/build/main.js +++ /dev/null @@ -1,32640 +0,0 @@ -require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - setTimeout(drainQueue, 0); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -// TODO(shtylman) -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],2:[function(require,module,exports){ -/*! Hammer.JS - v2.0.4 - 2014-09-28 - * http://hammerjs.github.io/ - * - * Copyright (c) 2014 Jorik Tangelder; - * Licensed under the MIT license */ -(function(window, document, exportName, undefined) { - 'use strict'; - -var VENDOR_PREFIXES = ['', 'webkit', 'moz', 'MS', 'ms', 'o']; -var TEST_ELEMENT = document.createElement('div'); - -var TYPE_FUNCTION = 'function'; - -var round = Math.round; -var abs = Math.abs; -var now = Date.now; - -/** - * set a timeout with a given scope - * @param {Function} fn - * @param {Number} timeout - * @param {Object} context - * @returns {number} - */ -function setTimeoutContext(fn, timeout, context) { - return setTimeout(bindFn(fn, context), timeout); -} - -/** - * if the argument is an array, we want to execute the fn on each entry - * if it aint an array we don't want to do a thing. - * this is used by all the methods that accept a single and array argument. - * @param {*|Array} arg - * @param {String} fn - * @param {Object} [context] - * @returns {Boolean} - */ -function invokeArrayArg(arg, fn, context) { - if (Array.isArray(arg)) { - each(arg, context[fn], context); - return true; - } - return false; -} - -/** - * walk objects and arrays - * @param {Object} obj - * @param {Function} iterator - * @param {Object} context - */ -function each(obj, iterator, context) { - var i; - - if (!obj) { - return; - } - - if (obj.forEach) { - obj.forEach(iterator, context); - } else if (obj.length !== undefined) { - i = 0; - while (i < obj.length) { - iterator.call(context, obj[i], i, obj); - i++; - } - } else { - for (i in obj) { - obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj); - } - } -} - -/** - * extend object. - * means that properties in dest will be overwritten by the ones in src. - * @param {Object} dest - * @param {Object} src - * @param {Boolean} [merge] - * @returns {Object} dest - */ -function extend(dest, src, merge) { - var keys = Object.keys(src); - var i = 0; - while (i < keys.length) { - if (!merge || (merge && dest[keys[i]] === undefined)) { - dest[keys[i]] = src[keys[i]]; - } - i++; - } - return dest; -} - -/** - * merge the values from src in the dest. - * means that properties that exist in dest will not be overwritten by src - * @param {Object} dest - * @param {Object} src - * @returns {Object} dest - */ -function merge(dest, src) { - return extend(dest, src, true); -} - -/** - * simple class inheritance - * @param {Function} child - * @param {Function} base - * @param {Object} [properties] - */ -function inherit(child, base, properties) { - var baseP = base.prototype, - childP; - - childP = child.prototype = Object.create(baseP); - childP.constructor = child; - childP._super = baseP; - - if (properties) { - extend(childP, properties); - } -} - -/** - * simple function bind - * @param {Function} fn - * @param {Object} context - * @returns {Function} - */ -function bindFn(fn, context) { - return function boundFn() { - return fn.apply(context, arguments); - }; -} - -/** - * let a boolean value also be a function that must return a boolean - * this first item in args will be used as the context - * @param {Boolean|Function} val - * @param {Array} [args] - * @returns {Boolean} - */ -function boolOrFn(val, args) { - if (typeof val == TYPE_FUNCTION) { - return val.apply(args ? args[0] || undefined : undefined, args); - } - return val; -} - -/** - * use the val2 when val1 is undefined - * @param {*} val1 - * @param {*} val2 - * @returns {*} - */ -function ifUndefined(val1, val2) { - return (val1 === undefined) ? val2 : val1; -} - -/** - * addEventListener with multiple events at once - * @param {EventTarget} target - * @param {String} types - * @param {Function} handler - */ -function addEventListeners(target, types, handler) { - each(splitStr(types), function(type) { - target.addEventListener(type, handler, false); - }); -} - -/** - * removeEventListener with multiple events at once - * @param {EventTarget} target - * @param {String} types - * @param {Function} handler - */ -function removeEventListeners(target, types, handler) { - each(splitStr(types), function(type) { - target.removeEventListener(type, handler, false); - }); -} - -/** - * find if a node is in the given parent - * @method hasParent - * @param {HTMLElement} node - * @param {HTMLElement} parent - * @return {Boolean} found - */ -function hasParent(node, parent) { - while (node) { - if (node == parent) { - return true; - } - node = node.parentNode; - } - return false; -} - -/** - * small indexOf wrapper - * @param {String} str - * @param {String} find - * @returns {Boolean} found - */ -function inStr(str, find) { - return str.indexOf(find) > -1; -} - -/** - * split string on whitespace - * @param {String} str - * @returns {Array} words - */ -function splitStr(str) { - return str.trim().split(/\s+/g); -} - -/** - * find if a array contains the object using indexOf or a simple polyFill - * @param {Array} src - * @param {String} find - * @param {String} [findByKey] - * @return {Boolean|Number} false when not found, or the index - */ -function inArray(src, find, findByKey) { - if (src.indexOf && !findByKey) { - return src.indexOf(find); - } else { - var i = 0; - while (i < src.length) { - if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) { - return i; - } - i++; - } - return -1; - } -} - -/** - * convert array-like objects to real arrays - * @param {Object} obj - * @returns {Array} - */ -function toArray(obj) { - return Array.prototype.slice.call(obj, 0); -} - -/** - * unique array with objects based on a key (like 'id') or just by the array's value - * @param {Array} src [{id:1},{id:2},{id:1}] - * @param {String} [key] - * @param {Boolean} [sort=False] - * @returns {Array} [{id:1},{id:2}] - */ -function uniqueArray(src, key, sort) { - var results = []; - var values = []; - var i = 0; - - while (i < src.length) { - var val = key ? src[i][key] : src[i]; - if (inArray(values, val) < 0) { - results.push(src[i]); - } - values[i] = val; - i++; - } - - if (sort) { - if (!key) { - results = results.sort(); - } else { - results = results.sort(function sortUniqueArray(a, b) { - return a[key] > b[key]; - }); - } - } - - return results; -} - -/** - * get the prefixed property - * @param {Object} obj - * @param {String} property - * @returns {String|Undefined} prefixed - */ -function prefixed(obj, property) { - var prefix, prop; - var camelProp = property[0].toUpperCase() + property.slice(1); - - var i = 0; - while (i < VENDOR_PREFIXES.length) { - prefix = VENDOR_PREFIXES[i]; - prop = (prefix) ? prefix + camelProp : property; - - if (prop in obj) { - return prop; - } - i++; - } - return undefined; -} - -/** - * get a unique id - * @returns {number} uniqueId - */ -var _uniqueId = 1; -function uniqueId() { - return _uniqueId++; -} - -/** - * get the window object of an element - * @param {HTMLElement} element - * @returns {DocumentView|Window} - */ -function getWindowForElement(element) { - var doc = element.ownerDocument; - return (doc.defaultView || doc.parentWindow); -} - -var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; - -var SUPPORT_TOUCH = ('ontouchstart' in window); -var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined; -var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent); - -var INPUT_TYPE_TOUCH = 'touch'; -var INPUT_TYPE_PEN = 'pen'; -var INPUT_TYPE_MOUSE = 'mouse'; -var INPUT_TYPE_KINECT = 'kinect'; - -var COMPUTE_INTERVAL = 25; - -var INPUT_START = 1; -var INPUT_MOVE = 2; -var INPUT_END = 4; -var INPUT_CANCEL = 8; - -var DIRECTION_NONE = 1; -var DIRECTION_LEFT = 2; -var DIRECTION_RIGHT = 4; -var DIRECTION_UP = 8; -var DIRECTION_DOWN = 16; - -var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; -var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; -var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; - -var PROPS_XY = ['x', 'y']; -var PROPS_CLIENT_XY = ['clientX', 'clientY']; - -/** - * create new input type manager - * @param {Manager} manager - * @param {Function} callback - * @returns {Input} - * @constructor - */ -function Input(manager, callback) { - var self = this; - this.manager = manager; - this.callback = callback; - this.element = manager.element; - this.target = manager.options.inputTarget; - - // smaller wrapper around the handler, for the scope and the enabled state of the manager, - // so when disabled the input events are completely bypassed. - this.domHandler = function(ev) { - if (boolOrFn(manager.options.enable, [manager])) { - self.handler(ev); - } - }; - - this.init(); - -} - -Input.prototype = { - /** - * should handle the inputEvent data and trigger the callback - * @virtual - */ - handler: function() { }, - - /** - * bind the events - */ - init: function() { - this.evEl && addEventListeners(this.element, this.evEl, this.domHandler); - this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler); - this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); - }, - - /** - * unbind the events - */ - destroy: function() { - this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler); - this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler); - this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); - } -}; - -/** - * create new input type manager - * called by the Manager constructor - * @param {Hammer} manager - * @returns {Input} - */ -function createInputInstance(manager) { - var Type; - var inputClass = manager.options.inputClass; - - if (inputClass) { - Type = inputClass; - } else if (SUPPORT_POINTER_EVENTS) { - Type = PointerEventInput; - } else if (SUPPORT_ONLY_TOUCH) { - Type = TouchInput; - } else if (!SUPPORT_TOUCH) { - Type = MouseInput; - } else { - Type = TouchMouseInput; - } - return new (Type)(manager, inputHandler); -} - -/** - * handle input events - * @param {Manager} manager - * @param {String} eventType - * @param {Object} input - */ -function inputHandler(manager, eventType, input) { - var pointersLen = input.pointers.length; - var changedPointersLen = input.changedPointers.length; - var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0)); - var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0)); - - input.isFirst = !!isFirst; - input.isFinal = !!isFinal; - - if (isFirst) { - manager.session = {}; - } - - // source event is the normalized value of the domEvents - // like 'touchstart, mouseup, pointerdown' - input.eventType = eventType; - - // compute scale, rotation etc - computeInputData(manager, input); - - // emit secret event - manager.emit('hammer.input', input); - - manager.recognize(input); - manager.session.prevInput = input; -} - -/** - * extend the data with some usable properties like scale, rotate, velocity etc - * @param {Object} manager - * @param {Object} input - */ -function computeInputData(manager, input) { - var session = manager.session; - var pointers = input.pointers; - var pointersLength = pointers.length; - - // store the first input to calculate the distance and direction - if (!session.firstInput) { - session.firstInput = simpleCloneInputData(input); - } - - // to compute scale and rotation we need to store the multiple touches - if (pointersLength > 1 && !session.firstMultiple) { - session.firstMultiple = simpleCloneInputData(input); - } else if (pointersLength === 1) { - session.firstMultiple = false; - } - - var firstInput = session.firstInput; - var firstMultiple = session.firstMultiple; - var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center; - - var center = input.center = getCenter(pointers); - input.timeStamp = now(); - input.deltaTime = input.timeStamp - firstInput.timeStamp; - - input.angle = getAngle(offsetCenter, center); - input.distance = getDistance(offsetCenter, center); - - computeDeltaXY(session, input); - input.offsetDirection = getDirection(input.deltaX, input.deltaY); - - input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1; - input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0; - - computeIntervalInputData(session, input); - - // find the correct target - var target = manager.element; - if (hasParent(input.srcEvent.target, target)) { - target = input.srcEvent.target; - } - input.target = target; -} - -function computeDeltaXY(session, input) { - var center = input.center; - var offset = session.offsetDelta || {}; - var prevDelta = session.prevDelta || {}; - var prevInput = session.prevInput || {}; - - if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) { - prevDelta = session.prevDelta = { - x: prevInput.deltaX || 0, - y: prevInput.deltaY || 0 - }; - - offset = session.offsetDelta = { - x: center.x, - y: center.y - }; - } - - input.deltaX = prevDelta.x + (center.x - offset.x); - input.deltaY = prevDelta.y + (center.y - offset.y); -} - -/** - * velocity is calculated every x ms - * @param {Object} session - * @param {Object} input - */ -function computeIntervalInputData(session, input) { - var last = session.lastInterval || input, - deltaTime = input.timeStamp - last.timeStamp, - velocity, velocityX, velocityY, direction; - - if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) { - var deltaX = last.deltaX - input.deltaX; - var deltaY = last.deltaY - input.deltaY; - - var v = getVelocity(deltaTime, deltaX, deltaY); - velocityX = v.x; - velocityY = v.y; - velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y; - direction = getDirection(deltaX, deltaY); - - session.lastInterval = input; - } else { - // use latest velocity info if it doesn't overtake a minimum period - velocity = last.velocity; - velocityX = last.velocityX; - velocityY = last.velocityY; - direction = last.direction; - } - - input.velocity = velocity; - input.velocityX = velocityX; - input.velocityY = velocityY; - input.direction = direction; -} - -/** - * create a simple clone from the input used for storage of firstInput and firstMultiple - * @param {Object} input - * @returns {Object} clonedInputData - */ -function simpleCloneInputData(input) { - // make a simple copy of the pointers because we will get a reference if we don't - // we only need clientXY for the calculations - var pointers = []; - var i = 0; - while (i < input.pointers.length) { - pointers[i] = { - clientX: round(input.pointers[i].clientX), - clientY: round(input.pointers[i].clientY) - }; - i++; - } - - return { - timeStamp: now(), - pointers: pointers, - center: getCenter(pointers), - deltaX: input.deltaX, - deltaY: input.deltaY - }; -} - -/** - * get the center of all the pointers - * @param {Array} pointers - * @return {Object} center contains `x` and `y` properties - */ -function getCenter(pointers) { - var pointersLength = pointers.length; - - // no need to loop when only one touch - if (pointersLength === 1) { - return { - x: round(pointers[0].clientX), - y: round(pointers[0].clientY) - }; - } - - var x = 0, y = 0, i = 0; - while (i < pointersLength) { - x += pointers[i].clientX; - y += pointers[i].clientY; - i++; - } - - return { - x: round(x / pointersLength), - y: round(y / pointersLength) - }; -} - -/** - * calculate the velocity between two points. unit is in px per ms. - * @param {Number} deltaTime - * @param {Number} x - * @param {Number} y - * @return {Object} velocity `x` and `y` - */ -function getVelocity(deltaTime, x, y) { - return { - x: x / deltaTime || 0, - y: y / deltaTime || 0 - }; -} - -/** - * get the direction between two points - * @param {Number} x - * @param {Number} y - * @return {Number} direction - */ -function getDirection(x, y) { - if (x === y) { - return DIRECTION_NONE; - } - - if (abs(x) >= abs(y)) { - return x > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; - } - return y > 0 ? DIRECTION_UP : DIRECTION_DOWN; -} - -/** - * calculate the absolute distance between two points - * @param {Object} p1 {x, y} - * @param {Object} p2 {x, y} - * @param {Array} [props] containing x and y keys - * @return {Number} distance - */ -function getDistance(p1, p2, props) { - if (!props) { - props = PROPS_XY; - } - var x = p2[props[0]] - p1[props[0]], - y = p2[props[1]] - p1[props[1]]; - - return Math.sqrt((x * x) + (y * y)); -} - -/** - * calculate the angle between two coordinates - * @param {Object} p1 - * @param {Object} p2 - * @param {Array} [props] containing x and y keys - * @return {Number} angle - */ -function getAngle(p1, p2, props) { - if (!props) { - props = PROPS_XY; - } - var x = p2[props[0]] - p1[props[0]], - y = p2[props[1]] - p1[props[1]]; - return Math.atan2(y, x) * 180 / Math.PI; -} - -/** - * calculate the rotation degrees between two pointersets - * @param {Array} start array of pointers - * @param {Array} end array of pointers - * @return {Number} rotation - */ -function getRotation(start, end) { - return getAngle(end[1], end[0], PROPS_CLIENT_XY) - getAngle(start[1], start[0], PROPS_CLIENT_XY); -} - -/** - * calculate the scale factor between two pointersets - * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out - * @param {Array} start array of pointers - * @param {Array} end array of pointers - * @return {Number} scale - */ -function getScale(start, end) { - return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY); -} - -var MOUSE_INPUT_MAP = { - mousedown: INPUT_START, - mousemove: INPUT_MOVE, - mouseup: INPUT_END -}; - -var MOUSE_ELEMENT_EVENTS = 'mousedown'; -var MOUSE_WINDOW_EVENTS = 'mousemove mouseup'; - -/** - * Mouse events input - * @constructor - * @extends Input - */ -function MouseInput() { - this.evEl = MOUSE_ELEMENT_EVENTS; - this.evWin = MOUSE_WINDOW_EVENTS; - - this.allow = true; // used by Input.TouchMouse to disable mouse events - this.pressed = false; // mousedown state - - Input.apply(this, arguments); -} - -inherit(MouseInput, Input, { - /** - * handle mouse events - * @param {Object} ev - */ - handler: function MEhandler(ev) { - var eventType = MOUSE_INPUT_MAP[ev.type]; - - // on start we want to have the left mouse button down - if (eventType & INPUT_START && ev.button === 0) { - this.pressed = true; - } - - if (eventType & INPUT_MOVE && ev.which !== 1) { - eventType = INPUT_END; - } - - // mouse must be down, and mouse events are allowed (see the TouchMouse input) - if (!this.pressed || !this.allow) { - return; - } - - if (eventType & INPUT_END) { - this.pressed = false; - } - - this.callback(this.manager, eventType, { - pointers: [ev], - changedPointers: [ev], - pointerType: INPUT_TYPE_MOUSE, - srcEvent: ev - }); - } -}); - -var POINTER_INPUT_MAP = { - pointerdown: INPUT_START, - pointermove: INPUT_MOVE, - pointerup: INPUT_END, - pointercancel: INPUT_CANCEL, - pointerout: INPUT_CANCEL -}; - -// in IE10 the pointer types is defined as an enum -var IE10_POINTER_TYPE_ENUM = { - 2: INPUT_TYPE_TOUCH, - 3: INPUT_TYPE_PEN, - 4: INPUT_TYPE_MOUSE, - 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816 -}; - -var POINTER_ELEMENT_EVENTS = 'pointerdown'; -var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; - -// IE10 has prefixed support, and case-sensitive -if (window.MSPointerEvent) { - POINTER_ELEMENT_EVENTS = 'MSPointerDown'; - POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel'; -} - -/** - * Pointer events input - * @constructor - * @extends Input - */ -function PointerEventInput() { - this.evEl = POINTER_ELEMENT_EVENTS; - this.evWin = POINTER_WINDOW_EVENTS; - - Input.apply(this, arguments); - - this.store = (this.manager.session.pointerEvents = []); -} - -inherit(PointerEventInput, Input, { - /** - * handle mouse events - * @param {Object} ev - */ - handler: function PEhandler(ev) { - var store = this.store; - var removePointer = false; - - var eventTypeNormalized = ev.type.toLowerCase().replace('ms', ''); - var eventType = POINTER_INPUT_MAP[eventTypeNormalized]; - var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType; - - var isTouch = (pointerType == INPUT_TYPE_TOUCH); - - // get index of the event in the store - var storeIndex = inArray(store, ev.pointerId, 'pointerId'); - - // start and mouse must be down - if (eventType & INPUT_START && (ev.button === 0 || isTouch)) { - if (storeIndex < 0) { - store.push(ev); - storeIndex = store.length - 1; - } - } else if (eventType & (INPUT_END | INPUT_CANCEL)) { - removePointer = true; - } - - // it not found, so the pointer hasn't been down (so it's probably a hover) - if (storeIndex < 0) { - return; - } - - // update the event in the store - store[storeIndex] = ev; - - this.callback(this.manager, eventType, { - pointers: store, - changedPointers: [ev], - pointerType: pointerType, - srcEvent: ev - }); - - if (removePointer) { - // remove from the store - store.splice(storeIndex, 1); - } - } -}); - -var SINGLE_TOUCH_INPUT_MAP = { - touchstart: INPUT_START, - touchmove: INPUT_MOVE, - touchend: INPUT_END, - touchcancel: INPUT_CANCEL -}; - -var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart'; -var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel'; - -/** - * Touch events input - * @constructor - * @extends Input - */ -function SingleTouchInput() { - this.evTarget = SINGLE_TOUCH_TARGET_EVENTS; - this.evWin = SINGLE_TOUCH_WINDOW_EVENTS; - this.started = false; - - Input.apply(this, arguments); -} - -inherit(SingleTouchInput, Input, { - handler: function TEhandler(ev) { - var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; - - // should we handle the touch events? - if (type === INPUT_START) { - this.started = true; - } - - if (!this.started) { - return; - } - - var touches = normalizeSingleTouches.call(this, ev, type); - - // when done, reset the started state - if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) { - this.started = false; - } - - this.callback(this.manager, type, { - pointers: touches[0], - changedPointers: touches[1], - pointerType: INPUT_TYPE_TOUCH, - srcEvent: ev - }); - } -}); - -/** - * @this {TouchInput} - * @param {Object} ev - * @param {Number} type flag - * @returns {undefined|Array} [all, changed] - */ -function normalizeSingleTouches(ev, type) { - var all = toArray(ev.touches); - var changed = toArray(ev.changedTouches); - - if (type & (INPUT_END | INPUT_CANCEL)) { - all = uniqueArray(all.concat(changed), 'identifier', true); - } - - return [all, changed]; -} - -var TOUCH_INPUT_MAP = { - touchstart: INPUT_START, - touchmove: INPUT_MOVE, - touchend: INPUT_END, - touchcancel: INPUT_CANCEL -}; - -var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel'; - -/** - * Multi-user touch events input - * @constructor - * @extends Input - */ -function TouchInput() { - this.evTarget = TOUCH_TARGET_EVENTS; - this.targetIds = {}; - - Input.apply(this, arguments); -} - -inherit(TouchInput, Input, { - handler: function MTEhandler(ev) { - var type = TOUCH_INPUT_MAP[ev.type]; - var touches = getTouches.call(this, ev, type); - if (!touches) { - return; - } - - this.callback(this.manager, type, { - pointers: touches[0], - changedPointers: touches[1], - pointerType: INPUT_TYPE_TOUCH, - srcEvent: ev - }); - } -}); - -/** - * @this {TouchInput} - * @param {Object} ev - * @param {Number} type flag - * @returns {undefined|Array} [all, changed] - */ -function getTouches(ev, type) { - var allTouches = toArray(ev.touches); - var targetIds = this.targetIds; - - // when there is only one touch, the process can be simplified - if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) { - targetIds[allTouches[0].identifier] = true; - return [allTouches, allTouches]; - } - - var i, - targetTouches, - changedTouches = toArray(ev.changedTouches), - changedTargetTouches = [], - target = this.target; - - // get target touches from touches - targetTouches = allTouches.filter(function(touch) { - return hasParent(touch.target, target); - }); - - // collect touches - if (type === INPUT_START) { - i = 0; - while (i < targetTouches.length) { - targetIds[targetTouches[i].identifier] = true; - i++; - } - } - - // filter changed touches to only contain touches that exist in the collected target ids - i = 0; - while (i < changedTouches.length) { - if (targetIds[changedTouches[i].identifier]) { - changedTargetTouches.push(changedTouches[i]); - } - - // cleanup removed touches - if (type & (INPUT_END | INPUT_CANCEL)) { - delete targetIds[changedTouches[i].identifier]; - } - i++; - } - - if (!changedTargetTouches.length) { - return; - } - - return [ - // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel' - uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), - changedTargetTouches - ]; -} - -/** - * Combined touch and mouse input - * - * Touch has a higher priority then mouse, and while touching no mouse events are allowed. - * This because touch devices also emit mouse events while doing a touch. - * - * @constructor - * @extends Input - */ -function TouchMouseInput() { - Input.apply(this, arguments); - - var handler = bindFn(this.handler, this); - this.touch = new TouchInput(this.manager, handler); - this.mouse = new MouseInput(this.manager, handler); -} - -inherit(TouchMouseInput, Input, { - /** - * handle mouse and touch events - * @param {Hammer} manager - * @param {String} inputEvent - * @param {Object} inputData - */ - handler: function TMEhandler(manager, inputEvent, inputData) { - var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), - isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); - - // when we're in a touch event, so block all upcoming mouse events - // most mobile browser also emit mouseevents, right after touchstart - if (isTouch) { - this.mouse.allow = false; - } else if (isMouse && !this.mouse.allow) { - return; - } - - // reset the allowMouse when we're done - if (inputEvent & (INPUT_END | INPUT_CANCEL)) { - this.mouse.allow = true; - } - - this.callback(manager, inputEvent, inputData); - }, - - /** - * remove the event listeners - */ - destroy: function destroy() { - this.touch.destroy(); - this.mouse.destroy(); - } -}); - -var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction'); -var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; - -// magical touchAction value -var TOUCH_ACTION_COMPUTE = 'compute'; -var TOUCH_ACTION_AUTO = 'auto'; -var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented -var TOUCH_ACTION_NONE = 'none'; -var TOUCH_ACTION_PAN_X = 'pan-x'; -var TOUCH_ACTION_PAN_Y = 'pan-y'; - -/** - * Touch Action - * sets the touchAction property or uses the js alternative - * @param {Manager} manager - * @param {String} value - * @constructor - */ -function TouchAction(manager, value) { - this.manager = manager; - this.set(value); -} - -TouchAction.prototype = { - /** - * set the touchAction value on the element or enable the polyfill - * @param {String} value - */ - set: function(value) { - // find out the touch-action by the event handlers - if (value == TOUCH_ACTION_COMPUTE) { - value = this.compute(); - } - - if (NATIVE_TOUCH_ACTION) { - this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; - } - this.actions = value.toLowerCase().trim(); - }, - - /** - * just re-set the touchAction value - */ - update: function() { - this.set(this.manager.options.touchAction); - }, - - /** - * compute the value for the touchAction property based on the recognizer's settings - * @returns {String} value - */ - compute: function() { - var actions = []; - each(this.manager.recognizers, function(recognizer) { - if (boolOrFn(recognizer.options.enable, [recognizer])) { - actions = actions.concat(recognizer.getTouchAction()); - } - }); - return cleanTouchActions(actions.join(' ')); - }, - - /** - * this method is called on each input cycle and provides the preventing of the browser behavior - * @param {Object} input - */ - preventDefaults: function(input) { - // not needed with native support for the touchAction property - if (NATIVE_TOUCH_ACTION) { - return; - } - - var srcEvent = input.srcEvent; - var direction = input.offsetDirection; - - // if the touch action did prevented once this session - if (this.manager.session.prevented) { - srcEvent.preventDefault(); - return; - } - - var actions = this.actions; - var hasNone = inStr(actions, TOUCH_ACTION_NONE); - var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); - var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); - - if (hasNone || - (hasPanY && direction & DIRECTION_HORIZONTAL) || - (hasPanX && direction & DIRECTION_VERTICAL)) { - return this.preventSrc(srcEvent); - } - }, - - /** - * call preventDefault to prevent the browser's default behavior (scrolling in most cases) - * @param {Object} srcEvent - */ - preventSrc: function(srcEvent) { - this.manager.session.prevented = true; - srcEvent.preventDefault(); - } -}; - -/** - * when the touchActions are collected they are not a valid value, so we need to clean things up. * - * @param {String} actions - * @returns {*} - */ -function cleanTouchActions(actions) { - // none - if (inStr(actions, TOUCH_ACTION_NONE)) { - return TOUCH_ACTION_NONE; - } - - var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); - var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); - - // pan-x and pan-y can be combined - if (hasPanX && hasPanY) { - return TOUCH_ACTION_PAN_X + ' ' + TOUCH_ACTION_PAN_Y; - } - - // pan-x OR pan-y - if (hasPanX || hasPanY) { - return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y; - } - - // manipulation - if (inStr(actions, TOUCH_ACTION_MANIPULATION)) { - return TOUCH_ACTION_MANIPULATION; - } - - return TOUCH_ACTION_AUTO; -} - -/** - * Recognizer flow explained; * - * All recognizers have the initial state of POSSIBLE when a input session starts. - * The definition of a input session is from the first input until the last input, with all it's movement in it. * - * Example session for mouse-input: mousedown -> mousemove -> mouseup - * - * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed - * which determines with state it should be. - * - * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to - * POSSIBLE to give it another change on the next cycle. - * - * Possible - * | - * +-----+---------------+ - * | | - * +-----+-----+ | - * | | | - * Failed Cancelled | - * +-------+------+ - * | | - * Recognized Began - * | - * Changed - * | - * Ended/Recognized - */ -var STATE_POSSIBLE = 1; -var STATE_BEGAN = 2; -var STATE_CHANGED = 4; -var STATE_ENDED = 8; -var STATE_RECOGNIZED = STATE_ENDED; -var STATE_CANCELLED = 16; -var STATE_FAILED = 32; - -/** - * Recognizer - * Every recognizer needs to extend from this class. - * @constructor - * @param {Object} options - */ -function Recognizer(options) { - this.id = uniqueId(); - - this.manager = null; - this.options = merge(options || {}, this.defaults); - - // default is enable true - this.options.enable = ifUndefined(this.options.enable, true); - - this.state = STATE_POSSIBLE; - - this.simultaneous = {}; - this.requireFail = []; -} - -Recognizer.prototype = { - /** - * @virtual - * @type {Object} - */ - defaults: {}, - - /** - * set options - * @param {Object} options - * @return {Recognizer} - */ - set: function(options) { - extend(this.options, options); - - // also update the touchAction, in case something changed about the directions/enabled state - this.manager && this.manager.touchAction.update(); - return this; - }, - - /** - * recognize simultaneous with an other recognizer. - * @param {Recognizer} otherRecognizer - * @returns {Recognizer} this - */ - recognizeWith: function(otherRecognizer) { - if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) { - return this; - } - - var simultaneous = this.simultaneous; - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - if (!simultaneous[otherRecognizer.id]) { - simultaneous[otherRecognizer.id] = otherRecognizer; - otherRecognizer.recognizeWith(this); - } - return this; - }, - - /** - * drop the simultaneous link. it doesnt remove the link on the other recognizer. - * @param {Recognizer} otherRecognizer - * @returns {Recognizer} this - */ - dropRecognizeWith: function(otherRecognizer) { - if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) { - return this; - } - - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - delete this.simultaneous[otherRecognizer.id]; - return this; - }, - - /** - * recognizer can only run when an other is failing - * @param {Recognizer} otherRecognizer - * @returns {Recognizer} this - */ - requireFailure: function(otherRecognizer) { - if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) { - return this; - } - - var requireFail = this.requireFail; - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - if (inArray(requireFail, otherRecognizer) === -1) { - requireFail.push(otherRecognizer); - otherRecognizer.requireFailure(this); - } - return this; - }, - - /** - * drop the requireFailure link. it does not remove the link on the other recognizer. - * @param {Recognizer} otherRecognizer - * @returns {Recognizer} this - */ - dropRequireFailure: function(otherRecognizer) { - if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) { - return this; - } - - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - var index = inArray(this.requireFail, otherRecognizer); - if (index > -1) { - this.requireFail.splice(index, 1); - } - return this; - }, - - /** - * has require failures boolean - * @returns {boolean} - */ - hasRequireFailures: function() { - return this.requireFail.length > 0; - }, - - /** - * if the recognizer can recognize simultaneous with an other recognizer - * @param {Recognizer} otherRecognizer - * @returns {Boolean} - */ - canRecognizeWith: function(otherRecognizer) { - return !!this.simultaneous[otherRecognizer.id]; - }, - - /** - * You should use `tryEmit` instead of `emit` directly to check - * that all the needed recognizers has failed before emitting. - * @param {Object} input - */ - emit: function(input) { - var self = this; - var state = this.state; - - function emit(withState) { - self.manager.emit(self.options.event + (withState ? stateStr(state) : ''), input); - } - - // 'panstart' and 'panmove' - if (state < STATE_ENDED) { - emit(true); - } - - emit(); // simple 'eventName' events - - // panend and pancancel - if (state >= STATE_ENDED) { - emit(true); - } - }, - - /** - * Check that all the require failure recognizers has failed, - * if true, it emits a gesture event, - * otherwise, setup the state to FAILED. - * @param {Object} input - */ - tryEmit: function(input) { - if (this.canEmit()) { - return this.emit(input); - } - // it's failing anyway - this.state = STATE_FAILED; - }, - - /** - * can we emit? - * @returns {boolean} - */ - canEmit: function() { - var i = 0; - while (i < this.requireFail.length) { - if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) { - return false; - } - i++; - } - return true; - }, - - /** - * update the recognizer - * @param {Object} inputData - */ - recognize: function(inputData) { - // make a new copy of the inputData - // so we can change the inputData without messing up the other recognizers - var inputDataClone = extend({}, inputData); - - // is is enabled and allow recognizing? - if (!boolOrFn(this.options.enable, [this, inputDataClone])) { - this.reset(); - this.state = STATE_FAILED; - return; - } - - // reset when we've reached the end - if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) { - this.state = STATE_POSSIBLE; - } - - this.state = this.process(inputDataClone); - - // the recognizer has recognized a gesture - // so trigger an event - if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) { - this.tryEmit(inputDataClone); - } - }, - - /** - * return the state of the recognizer - * the actual recognizing happens in this method - * @virtual - * @param {Object} inputData - * @returns {Const} STATE - */ - process: function(inputData) { }, // jshint ignore:line - - /** - * return the preferred touch-action - * @virtual - * @returns {Array} - */ - getTouchAction: function() { }, - - /** - * called when the gesture isn't allowed to recognize - * like when another is being recognized or it is disabled - * @virtual - */ - reset: function() { } -}; - -/** - * get a usable string, used as event postfix - * @param {Const} state - * @returns {String} state - */ -function stateStr(state) { - if (state & STATE_CANCELLED) { - return 'cancel'; - } else if (state & STATE_ENDED) { - return 'end'; - } else if (state & STATE_CHANGED) { - return 'move'; - } else if (state & STATE_BEGAN) { - return 'start'; - } - return ''; -} - -/** - * direction cons to string - * @param {Const} direction - * @returns {String} - */ -function directionStr(direction) { - if (direction == DIRECTION_DOWN) { - return 'down'; - } else if (direction == DIRECTION_UP) { - return 'up'; - } else if (direction == DIRECTION_LEFT) { - return 'left'; - } else if (direction == DIRECTION_RIGHT) { - return 'right'; - } - return ''; -} - -/** - * get a recognizer by name if it is bound to a manager - * @param {Recognizer|String} otherRecognizer - * @param {Recognizer} recognizer - * @returns {Recognizer} - */ -function getRecognizerByNameIfManager(otherRecognizer, recognizer) { - var manager = recognizer.manager; - if (manager) { - return manager.get(otherRecognizer); - } - return otherRecognizer; -} - -/** - * This recognizer is just used as a base for the simple attribute recognizers. - * @constructor - * @extends Recognizer - */ -function AttrRecognizer() { - Recognizer.apply(this, arguments); -} - -inherit(AttrRecognizer, Recognizer, { - /** - * @namespace - * @memberof AttrRecognizer - */ - defaults: { - /** - * @type {Number} - * @default 1 - */ - pointers: 1 - }, - - /** - * Used to check if it the recognizer receives valid input, like input.distance > 10. - * @memberof AttrRecognizer - * @param {Object} input - * @returns {Boolean} recognized - */ - attrTest: function(input) { - var optionPointers = this.options.pointers; - return optionPointers === 0 || input.pointers.length === optionPointers; - }, - - /** - * Process the input and return the state for the recognizer - * @memberof AttrRecognizer - * @param {Object} input - * @returns {*} State - */ - process: function(input) { - var state = this.state; - var eventType = input.eventType; - - var isRecognized = state & (STATE_BEGAN | STATE_CHANGED); - var isValid = this.attrTest(input); - - // on cancel input and we've recognized before, return STATE_CANCELLED - if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) { - return state | STATE_CANCELLED; - } else if (isRecognized || isValid) { - if (eventType & INPUT_END) { - return state | STATE_ENDED; - } else if (!(state & STATE_BEGAN)) { - return STATE_BEGAN; - } - return state | STATE_CHANGED; - } - return STATE_FAILED; - } -}); - -/** - * Pan - * Recognized when the pointer is down and moved in the allowed direction. - * @constructor - * @extends AttrRecognizer - */ -function PanRecognizer() { - AttrRecognizer.apply(this, arguments); - - this.pX = null; - this.pY = null; -} - -inherit(PanRecognizer, AttrRecognizer, { - /** - * @namespace - * @memberof PanRecognizer - */ - defaults: { - event: 'pan', - threshold: 10, - pointers: 1, - direction: DIRECTION_ALL - }, - - getTouchAction: function() { - var direction = this.options.direction; - var actions = []; - if (direction & DIRECTION_HORIZONTAL) { - actions.push(TOUCH_ACTION_PAN_Y); - } - if (direction & DIRECTION_VERTICAL) { - actions.push(TOUCH_ACTION_PAN_X); - } - return actions; - }, - - directionTest: function(input) { - var options = this.options; - var hasMoved = true; - var distance = input.distance; - var direction = input.direction; - var x = input.deltaX; - var y = input.deltaY; - - // lock to axis? - if (!(direction & options.direction)) { - if (options.direction & DIRECTION_HORIZONTAL) { - direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT; - hasMoved = x != this.pX; - distance = Math.abs(input.deltaX); - } else { - direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN; - hasMoved = y != this.pY; - distance = Math.abs(input.deltaY); - } - } - input.direction = direction; - return hasMoved && distance > options.threshold && direction & options.direction; - }, - - attrTest: function(input) { - return AttrRecognizer.prototype.attrTest.call(this, input) && - (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input))); - }, - - emit: function(input) { - this.pX = input.deltaX; - this.pY = input.deltaY; - - var direction = directionStr(input.direction); - if (direction) { - this.manager.emit(this.options.event + direction, input); - } - - this._super.emit.call(this, input); - } -}); - -/** - * Pinch - * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out). - * @constructor - * @extends AttrRecognizer - */ -function PinchRecognizer() { - AttrRecognizer.apply(this, arguments); -} - -inherit(PinchRecognizer, AttrRecognizer, { - /** - * @namespace - * @memberof PinchRecognizer - */ - defaults: { - event: 'pinch', - threshold: 0, - pointers: 2 - }, - - getTouchAction: function() { - return [TOUCH_ACTION_NONE]; - }, - - attrTest: function(input) { - return this._super.attrTest.call(this, input) && - (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN); - }, - - emit: function(input) { - this._super.emit.call(this, input); - if (input.scale !== 1) { - var inOut = input.scale < 1 ? 'in' : 'out'; - this.manager.emit(this.options.event + inOut, input); - } - } -}); - -/** - * Press - * Recognized when the pointer is down for x ms without any movement. - * @constructor - * @extends Recognizer - */ -function PressRecognizer() { - Recognizer.apply(this, arguments); - - this._timer = null; - this._input = null; -} - -inherit(PressRecognizer, Recognizer, { - /** - * @namespace - * @memberof PressRecognizer - */ - defaults: { - event: 'press', - pointers: 1, - time: 500, // minimal time of the pointer to be pressed - threshold: 5 // a minimal movement is ok, but keep it low - }, - - getTouchAction: function() { - return [TOUCH_ACTION_AUTO]; - }, - - process: function(input) { - var options = this.options; - var validPointers = input.pointers.length === options.pointers; - var validMovement = input.distance < options.threshold; - var validTime = input.deltaTime > options.time; - - this._input = input; - - // we only allow little movement - // and we've reached an end event, so a tap is possible - if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) { - this.reset(); - } else if (input.eventType & INPUT_START) { - this.reset(); - this._timer = setTimeoutContext(function() { - this.state = STATE_RECOGNIZED; - this.tryEmit(); - }, options.time, this); - } else if (input.eventType & INPUT_END) { - return STATE_RECOGNIZED; - } - return STATE_FAILED; - }, - - reset: function() { - clearTimeout(this._timer); - }, - - emit: function(input) { - if (this.state !== STATE_RECOGNIZED) { - return; - } - - if (input && (input.eventType & INPUT_END)) { - this.manager.emit(this.options.event + 'up', input); - } else { - this._input.timeStamp = now(); - this.manager.emit(this.options.event, this._input); - } - } -}); - -/** - * Rotate - * Recognized when two or more pointer are moving in a circular motion. - * @constructor - * @extends AttrRecognizer - */ -function RotateRecognizer() { - AttrRecognizer.apply(this, arguments); -} - -inherit(RotateRecognizer, AttrRecognizer, { - /** - * @namespace - * @memberof RotateRecognizer - */ - defaults: { - event: 'rotate', - threshold: 0, - pointers: 2 - }, - - getTouchAction: function() { - return [TOUCH_ACTION_NONE]; - }, - - attrTest: function(input) { - return this._super.attrTest.call(this, input) && - (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN); - } -}); - -/** - * Swipe - * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction. - * @constructor - * @extends AttrRecognizer - */ -function SwipeRecognizer() { - AttrRecognizer.apply(this, arguments); -} - -inherit(SwipeRecognizer, AttrRecognizer, { - /** - * @namespace - * @memberof SwipeRecognizer - */ - defaults: { - event: 'swipe', - threshold: 10, - velocity: 0.65, - direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL, - pointers: 1 - }, - - getTouchAction: function() { - return PanRecognizer.prototype.getTouchAction.call(this); - }, - - attrTest: function(input) { - var direction = this.options.direction; - var velocity; - - if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) { - velocity = input.velocity; - } else if (direction & DIRECTION_HORIZONTAL) { - velocity = input.velocityX; - } else if (direction & DIRECTION_VERTICAL) { - velocity = input.velocityY; - } - - return this._super.attrTest.call(this, input) && - direction & input.direction && - input.distance > this.options.threshold && - abs(velocity) > this.options.velocity && input.eventType & INPUT_END; - }, - - emit: function(input) { - var direction = directionStr(input.direction); - if (direction) { - this.manager.emit(this.options.event + direction, input); - } - - this.manager.emit(this.options.event, input); - } -}); - -/** - * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur - * between the given interval and position. The delay option can be used to recognize multi-taps without firing - * a single tap. - * - * The eventData from the emitted event contains the property `tapCount`, which contains the amount of - * multi-taps being recognized. - * @constructor - * @extends Recognizer - */ -function TapRecognizer() { - Recognizer.apply(this, arguments); - - // previous time and center, - // used for tap counting - this.pTime = false; - this.pCenter = false; - - this._timer = null; - this._input = null; - this.count = 0; -} - -inherit(TapRecognizer, Recognizer, { - /** - * @namespace - * @memberof PinchRecognizer - */ - defaults: { - event: 'tap', - pointers: 1, - taps: 1, - interval: 300, // max time between the multi-tap taps - time: 250, // max time of the pointer to be down (like finger on the screen) - threshold: 2, // a minimal movement is ok, but keep it low - posThreshold: 10 // a multi-tap can be a bit off the initial position - }, - - getTouchAction: function() { - return [TOUCH_ACTION_MANIPULATION]; - }, - - process: function(input) { - var options = this.options; - - var validPointers = input.pointers.length === options.pointers; - var validMovement = input.distance < options.threshold; - var validTouchTime = input.deltaTime < options.time; - - this.reset(); - - if ((input.eventType & INPUT_START) && (this.count === 0)) { - return this.failTimeout(); - } - - // we only allow little movement - // and we've reached an end event, so a tap is possible - if (validMovement && validTouchTime && validPointers) { - if (input.eventType != INPUT_END) { - return this.failTimeout(); - } - - var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true; - var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold; - - this.pTime = input.timeStamp; - this.pCenter = input.center; - - if (!validMultiTap || !validInterval) { - this.count = 1; - } else { - this.count += 1; - } - - this._input = input; - - // if tap count matches we have recognized it, - // else it has began recognizing... - var tapCount = this.count % options.taps; - if (tapCount === 0) { - // no failing requirements, immediately trigger the tap event - // or wait as long as the multitap interval to trigger - if (!this.hasRequireFailures()) { - return STATE_RECOGNIZED; - } else { - this._timer = setTimeoutContext(function() { - this.state = STATE_RECOGNIZED; - this.tryEmit(); - }, options.interval, this); - return STATE_BEGAN; - } - } - } - return STATE_FAILED; - }, - - failTimeout: function() { - this._timer = setTimeoutContext(function() { - this.state = STATE_FAILED; - }, this.options.interval, this); - return STATE_FAILED; - }, - - reset: function() { - clearTimeout(this._timer); - }, - - emit: function() { - if (this.state == STATE_RECOGNIZED ) { - this._input.tapCount = this.count; - this.manager.emit(this.options.event, this._input); - } - } -}); - -/** - * Simple way to create an manager with a default set of recognizers. - * @param {HTMLElement} element - * @param {Object} [options] - * @constructor - */ -function Hammer(element, options) { - options = options || {}; - options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset); - return new Manager(element, options); -} - -/** - * @const {string} - */ -Hammer.VERSION = '2.0.4'; - -/** - * default settings - * @namespace - */ -Hammer.defaults = { - /** - * set if DOM events are being triggered. - * But this is slower and unused by simple implementations, so disabled by default. - * @type {Boolean} - * @default false - */ - domEvents: false, - - /** - * The value for the touchAction property/fallback. - * When set to `compute` it will magically set the correct value based on the added recognizers. - * @type {String} - * @default compute - */ - touchAction: TOUCH_ACTION_COMPUTE, - - /** - * @type {Boolean} - * @default true - */ - enable: true, - - /** - * EXPERIMENTAL FEATURE -- can be removed/changed - * Change the parent input target element. - * If Null, then it is being set the to main element. - * @type {Null|EventTarget} - * @default null - */ - inputTarget: null, - - /** - * force an input class - * @type {Null|Function} - * @default null - */ - inputClass: null, - - /** - * Default recognizer setup when calling `Hammer()` - * When creating a new Manager these will be skipped. - * @type {Array} - */ - preset: [ - // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...] - [RotateRecognizer, { enable: false }], - [PinchRecognizer, { enable: false }, ['rotate']], - [SwipeRecognizer,{ direction: DIRECTION_HORIZONTAL }], - [PanRecognizer, { direction: DIRECTION_HORIZONTAL }, ['swipe']], - [TapRecognizer], - [TapRecognizer, { event: 'doubletap', taps: 2 }, ['tap']], - [PressRecognizer] - ], - - /** - * Some CSS properties can be used to improve the working of Hammer. - * Add them to this method and they will be set when creating a new Manager. - * @namespace - */ - cssProps: { - /** - * Disables text selection to improve the dragging gesture. Mainly for desktop browsers. - * @type {String} - * @default 'none' - */ - userSelect: 'none', - - /** - * Disable the Windows Phone grippers when pressing an element. - * @type {String} - * @default 'none' - */ - touchSelect: 'none', - - /** - * Disables the default callout shown when you touch and hold a touch target. - * On iOS, when you touch and hold a touch target such as a link, Safari displays - * a callout containing information about the link. This property allows you to disable that callout. - * @type {String} - * @default 'none' - */ - touchCallout: 'none', - - /** - * Specifies whether zooming is enabled. Used by IE10> - * @type {String} - * @default 'none' - */ - contentZooming: 'none', - - /** - * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers. - * @type {String} - * @default 'none' - */ - userDrag: 'none', - - /** - * Overrides the highlight color shown when the user taps a link or a JavaScript - * clickable element in iOS. This property obeys the alpha value, if specified. - * @type {String} - * @default 'rgba(0,0,0,0)' - */ - tapHighlightColor: 'rgba(0,0,0,0)' - } -}; - -var STOP = 1; -var FORCED_STOP = 2; - -/** - * Manager - * @param {HTMLElement} element - * @param {Object} [options] - * @constructor - */ -function Manager(element, options) { - options = options || {}; - - this.options = merge(options, Hammer.defaults); - this.options.inputTarget = this.options.inputTarget || element; - - this.handlers = {}; - this.session = {}; - this.recognizers = []; - - this.element = element; - this.input = createInputInstance(this); - this.touchAction = new TouchAction(this, this.options.touchAction); - - toggleCssProps(this, true); - - each(options.recognizers, function(item) { - var recognizer = this.add(new (item[0])(item[1])); - item[2] && recognizer.recognizeWith(item[2]); - item[3] && recognizer.requireFailure(item[3]); - }, this); -} - -Manager.prototype = { - /** - * set options - * @param {Object} options - * @returns {Manager} - */ - set: function(options) { - extend(this.options, options); - - // Options that need a little more setup - if (options.touchAction) { - this.touchAction.update(); - } - if (options.inputTarget) { - // Clean up existing event listeners and reinitialize - this.input.destroy(); - this.input.target = options.inputTarget; - this.input.init(); - } - return this; - }, - - /** - * stop recognizing for this session. - * This session will be discarded, when a new [input]start event is fired. - * When forced, the recognizer cycle is stopped immediately. - * @param {Boolean} [force] - */ - stop: function(force) { - this.session.stopped = force ? FORCED_STOP : STOP; - }, - - /** - * run the recognizers! - * called by the inputHandler function on every movement of the pointers (touches) - * it walks through all the recognizers and tries to detect the gesture that is being made - * @param {Object} inputData - */ - recognize: function(inputData) { - var session = this.session; - if (session.stopped) { - return; - } - - // run the touch-action polyfill - this.touchAction.preventDefaults(inputData); - - var recognizer; - var recognizers = this.recognizers; - - // this holds the recognizer that is being recognized. - // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED - // if no recognizer is detecting a thing, it is set to `null` - var curRecognizer = session.curRecognizer; - - // reset when the last recognizer is recognized - // or when we're in a new session - if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) { - curRecognizer = session.curRecognizer = null; - } - - var i = 0; - while (i < recognizers.length) { - recognizer = recognizers[i]; - - // find out if we are allowed try to recognize the input for this one. - // 1. allow if the session is NOT forced stopped (see the .stop() method) - // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one - // that is being recognized. - // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer. - // this can be setup with the `recognizeWith()` method on the recognizer. - if (session.stopped !== FORCED_STOP && ( // 1 - !curRecognizer || recognizer == curRecognizer || // 2 - recognizer.canRecognizeWith(curRecognizer))) { // 3 - recognizer.recognize(inputData); - } else { - recognizer.reset(); - } - - // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the - // current active recognizer. but only if we don't already have an active recognizer - if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) { - curRecognizer = session.curRecognizer = recognizer; - } - i++; - } - }, - - /** - * get a recognizer by its event name. - * @param {Recognizer|String} recognizer - * @returns {Recognizer|Null} - */ - get: function(recognizer) { - if (recognizer instanceof Recognizer) { - return recognizer; - } - - var recognizers = this.recognizers; - for (var i = 0; i < recognizers.length; i++) { - if (recognizers[i].options.event == recognizer) { - return recognizers[i]; - } - } - return null; - }, - - /** - * add a recognizer to the manager - * existing recognizers with the same event name will be removed - * @param {Recognizer} recognizer - * @returns {Recognizer|Manager} - */ - add: function(recognizer) { - if (invokeArrayArg(recognizer, 'add', this)) { - return this; - } - - // remove existing - var existing = this.get(recognizer.options.event); - if (existing) { - this.remove(existing); - } - - this.recognizers.push(recognizer); - recognizer.manager = this; - - this.touchAction.update(); - return recognizer; - }, - - /** - * remove a recognizer by name or instance - * @param {Recognizer|String} recognizer - * @returns {Manager} - */ - remove: function(recognizer) { - if (invokeArrayArg(recognizer, 'remove', this)) { - return this; - } - - var recognizers = this.recognizers; - recognizer = this.get(recognizer); - recognizers.splice(inArray(recognizers, recognizer), 1); - - this.touchAction.update(); - return this; - }, - - /** - * bind event - * @param {String} events - * @param {Function} handler - * @returns {EventEmitter} this - */ - on: function(events, handler) { - var handlers = this.handlers; - each(splitStr(events), function(event) { - handlers[event] = handlers[event] || []; - handlers[event].push(handler); - }); - return this; - }, - - /** - * unbind event, leave emit blank to remove all handlers - * @param {String} events - * @param {Function} [handler] - * @returns {EventEmitter} this - */ - off: function(events, handler) { - var handlers = this.handlers; - each(splitStr(events), function(event) { - if (!handler) { - delete handlers[event]; - } else { - handlers[event].splice(inArray(handlers[event], handler), 1); - } - }); - return this; - }, - - /** - * emit event to the listeners - * @param {String} event - * @param {Object} data - */ - emit: function(event, data) { - // we also want to trigger dom events - if (this.options.domEvents) { - triggerDomEvent(event, data); - } - - // no handlers, so skip it all - var handlers = this.handlers[event] && this.handlers[event].slice(); - if (!handlers || !handlers.length) { - return; - } - - data.type = event; - data.preventDefault = function() { - data.srcEvent.preventDefault(); - }; - - var i = 0; - while (i < handlers.length) { - handlers[i](data); - i++; - } - }, - - /** - * destroy the manager and unbinds all events - * it doesn't unbind dom events, that is the user own responsibility - */ - destroy: function() { - this.element && toggleCssProps(this, false); - - this.handlers = {}; - this.session = {}; - this.input.destroy(); - this.element = null; - } -}; - -/** - * add/remove the css properties as defined in manager.options.cssProps - * @param {Manager} manager - * @param {Boolean} add - */ -function toggleCssProps(manager, add) { - var element = manager.element; - each(manager.options.cssProps, function(value, name) { - element.style[prefixed(element.style, name)] = add ? value : ''; - }); -} - -/** - * trigger dom event - * @param {String} event - * @param {Object} data - */ -function triggerDomEvent(event, data) { - var gestureEvent = document.createEvent('Event'); - gestureEvent.initEvent(event, true, true); - gestureEvent.gesture = data; - data.target.dispatchEvent(gestureEvent); -} - -extend(Hammer, { - INPUT_START: INPUT_START, - INPUT_MOVE: INPUT_MOVE, - INPUT_END: INPUT_END, - INPUT_CANCEL: INPUT_CANCEL, - - STATE_POSSIBLE: STATE_POSSIBLE, - STATE_BEGAN: STATE_BEGAN, - STATE_CHANGED: STATE_CHANGED, - STATE_ENDED: STATE_ENDED, - STATE_RECOGNIZED: STATE_RECOGNIZED, - STATE_CANCELLED: STATE_CANCELLED, - STATE_FAILED: STATE_FAILED, - - DIRECTION_NONE: DIRECTION_NONE, - DIRECTION_LEFT: DIRECTION_LEFT, - DIRECTION_RIGHT: DIRECTION_RIGHT, - DIRECTION_UP: DIRECTION_UP, - DIRECTION_DOWN: DIRECTION_DOWN, - DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL, - DIRECTION_VERTICAL: DIRECTION_VERTICAL, - DIRECTION_ALL: DIRECTION_ALL, - - Manager: Manager, - Input: Input, - TouchAction: TouchAction, - - TouchInput: TouchInput, - MouseInput: MouseInput, - PointerEventInput: PointerEventInput, - TouchMouseInput: TouchMouseInput, - SingleTouchInput: SingleTouchInput, - - Recognizer: Recognizer, - AttrRecognizer: AttrRecognizer, - Tap: TapRecognizer, - Pan: PanRecognizer, - Swipe: SwipeRecognizer, - Pinch: PinchRecognizer, - Rotate: RotateRecognizer, - Press: PressRecognizer, - - on: addEventListeners, - off: removeEventListeners, - each: each, - merge: merge, - extend: extend, - inherit: inherit, - bindFn: bindFn, - prefixed: prefixed -}); - -if (typeof define == TYPE_FUNCTION && define.amd) { - define(function() { - return Hammer; - }); -} else if (typeof module != 'undefined' && module.exports) { - module.exports = Hammer; -} else { - window[exportName] = Hammer; -} - -})(window, document, 'Hammer'); - -},{}],3:[function(require,module,exports){ -/** - * Copyright (c) 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - global.Immutable = factory() -}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice; - - function createClass(ctor, superClass) { - if (superClass) { - ctor.prototype = Object.create(superClass.prototype); - } - ctor.prototype.constructor = ctor; - } - - // Used for setting prototype methods that IE8 chokes on. - var DELETE = 'delete'; - - // Constants describing the size of trie nodes. - var SHIFT = 5; // Resulted in best performance after ______? - var SIZE = 1 << SHIFT; - var MASK = SIZE - 1; - - // A consistent shared value representing "not set" which equals nothing other - // than itself, and nothing that could be provided externally. - var NOT_SET = {}; - - // Boolean references, Rough equivalent of `bool &`. - var CHANGE_LENGTH = { value: false }; - var DID_ALTER = { value: false }; - - function MakeRef(ref) { - ref.value = false; - return ref; - } - - function SetRef(ref) { - ref && (ref.value = true); - } - - // A function which returns a value representing an "owner" for transient writes - // to tries. The return value will only ever equal itself, and will not equal - // the return of any subsequent call of this function. - function OwnerID() {} - - // http://jsperf.com/copy-array-inline - function arrCopy(arr, offset) { - offset = offset || 0; - var len = Math.max(0, arr.length - offset); - var newArr = new Array(len); - for (var ii = 0; ii < len; ii++) { - newArr[ii] = arr[ii + offset]; - } - return newArr; - } - - function ensureSize(iter) { - if (iter.size === undefined) { - iter.size = iter.__iterate(returnTrue); - } - return iter.size; - } - - function wrapIndex(iter, index) { - // This implements "is array index" which the ECMAString spec defines as: - // A String property name P is an array index if and only if - // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal - // to 2^32−1. - // However note that we're currently calling ToNumber() instead of ToUint32() - // which should be improved in the future, as floating point numbers should - // not be accepted as an array index. - if (typeof index !== 'number') { - var numIndex = +index; - if ('' + numIndex !== index) { - return NaN; - } - index = numIndex; - } - return index < 0 ? ensureSize(iter) + index : index; - } - - function returnTrue() { - return true; - } - - function wholeSlice(begin, end, size) { - return (begin === 0 || (size !== undefined && begin <= -size)) && - (end === undefined || (size !== undefined && end >= size)); - } - - function resolveBegin(begin, size) { - return resolveIndex(begin, size, 0); - } - - function resolveEnd(end, size) { - return resolveIndex(end, size, size); - } - - function resolveIndex(index, size, defaultIndex) { - return index === undefined ? - defaultIndex : - index < 0 ? - Math.max(0, size + index) : - size === undefined ? - index : - Math.min(size, index); - } - - function Iterable(value) { - return isIterable(value) ? value : Seq(value); - } - - - createClass(KeyedIterable, Iterable); - function KeyedIterable(value) { - return isKeyed(value) ? value : KeyedSeq(value); - } - - - createClass(IndexedIterable, Iterable); - function IndexedIterable(value) { - return isIndexed(value) ? value : IndexedSeq(value); - } - - - createClass(SetIterable, Iterable); - function SetIterable(value) { - return isIterable(value) && !isAssociative(value) ? value : SetSeq(value); - } - - - - function isIterable(maybeIterable) { - return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]); - } - - function isKeyed(maybeKeyed) { - return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]); - } - - function isIndexed(maybeIndexed) { - return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]); - } - - function isAssociative(maybeAssociative) { - return isKeyed(maybeAssociative) || isIndexed(maybeAssociative); - } - - function isOrdered(maybeOrdered) { - return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]); - } - - Iterable.isIterable = isIterable; - Iterable.isKeyed = isKeyed; - Iterable.isIndexed = isIndexed; - Iterable.isAssociative = isAssociative; - Iterable.isOrdered = isOrdered; - - Iterable.Keyed = KeyedIterable; - Iterable.Indexed = IndexedIterable; - Iterable.Set = SetIterable; - - - var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; - var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; - var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; - var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; - - /* global Symbol */ - - var ITERATE_KEYS = 0; - var ITERATE_VALUES = 1; - var ITERATE_ENTRIES = 2; - - var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; - - var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL; - - - function src_Iterator__Iterator(next) { - this.next = next; - } - - src_Iterator__Iterator.prototype.toString = function() { - return '[Iterator]'; - }; - - - src_Iterator__Iterator.KEYS = ITERATE_KEYS; - src_Iterator__Iterator.VALUES = ITERATE_VALUES; - src_Iterator__Iterator.ENTRIES = ITERATE_ENTRIES; - - src_Iterator__Iterator.prototype.inspect = - src_Iterator__Iterator.prototype.toSource = function () { return this.toString(); } - src_Iterator__Iterator.prototype[ITERATOR_SYMBOL] = function () { - return this; - }; - - - function iteratorValue(type, k, v, iteratorResult) { - var value = type === 0 ? k : type === 1 ? v : [k, v]; - iteratorResult ? (iteratorResult.value = value) : (iteratorResult = { - value: value, done: false - }); - return iteratorResult; - } - - function iteratorDone() { - return { value: undefined, done: true }; - } - - function hasIterator(maybeIterable) { - return !!getIteratorFn(maybeIterable); - } - - function isIterator(maybeIterator) { - return maybeIterator && typeof maybeIterator.next === 'function'; - } - - function getIterator(iterable) { - var iteratorFn = getIteratorFn(iterable); - return iteratorFn && iteratorFn.call(iterable); - } - - function getIteratorFn(iterable) { - var iteratorFn = iterable && ( - (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) || - iterable[FAUX_ITERATOR_SYMBOL] - ); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - function isArrayLike(value) { - return value && typeof value.length === 'number'; - } - - createClass(Seq, Iterable); - function Seq(value) { - return value === null || value === undefined ? emptySequence() : - isIterable(value) ? value.toSeq() : seqFromValue(value); - } - - Seq.of = function(/*...values*/) { - return Seq(arguments); - }; - - Seq.prototype.toSeq = function() { - return this; - }; - - Seq.prototype.toString = function() { - return this.__toString('Seq {', '}'); - }; - - Seq.prototype.cacheResult = function() { - if (!this._cache && this.__iterateUncached) { - this._cache = this.entrySeq().toArray(); - this.size = this._cache.length; - } - return this; - }; - - // abstract __iterateUncached(fn, reverse) - - Seq.prototype.__iterate = function(fn, reverse) { - return seqIterate(this, fn, reverse, true); - }; - - // abstract __iteratorUncached(type, reverse) - - Seq.prototype.__iterator = function(type, reverse) { - return seqIterator(this, type, reverse, true); - }; - - - - createClass(KeyedSeq, Seq); - function KeyedSeq(value) { - return value === null || value === undefined ? - emptySequence().toKeyedSeq() : - isIterable(value) ? - (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) : - keyedSeqFromValue(value); - } - - KeyedSeq.prototype.toKeyedSeq = function() { - return this; - }; - - - - createClass(IndexedSeq, Seq); - function IndexedSeq(value) { - return value === null || value === undefined ? emptySequence() : - !isIterable(value) ? indexedSeqFromValue(value) : - isKeyed(value) ? value.entrySeq() : value.toIndexedSeq(); - } - - IndexedSeq.of = function(/*...values*/) { - return IndexedSeq(arguments); - }; - - IndexedSeq.prototype.toIndexedSeq = function() { - return this; - }; - - IndexedSeq.prototype.toString = function() { - return this.__toString('Seq [', ']'); - }; - - IndexedSeq.prototype.__iterate = function(fn, reverse) { - return seqIterate(this, fn, reverse, false); - }; - - IndexedSeq.prototype.__iterator = function(type, reverse) { - return seqIterator(this, type, reverse, false); - }; - - - - createClass(SetSeq, Seq); - function SetSeq(value) { - return ( - value === null || value === undefined ? emptySequence() : - !isIterable(value) ? indexedSeqFromValue(value) : - isKeyed(value) ? value.entrySeq() : value - ).toSetSeq(); - } - - SetSeq.of = function(/*...values*/) { - return SetSeq(arguments); - }; - - SetSeq.prototype.toSetSeq = function() { - return this; - }; - - - - Seq.isSeq = isSeq; - Seq.Keyed = KeyedSeq; - Seq.Set = SetSeq; - Seq.Indexed = IndexedSeq; - - var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@'; - - Seq.prototype[IS_SEQ_SENTINEL] = true; - - - - // #pragma Root Sequences - - createClass(ArraySeq, IndexedSeq); - function ArraySeq(array) { - this._array = array; - this.size = array.length; - } - - ArraySeq.prototype.get = function(index, notSetValue) { - return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue; - }; - - ArraySeq.prototype.__iterate = function(fn, reverse) { - var array = this._array; - var maxIndex = array.length - 1; - for (var ii = 0; ii <= maxIndex; ii++) { - if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) { - return ii + 1; - } - } - return ii; - }; - - ArraySeq.prototype.__iterator = function(type, reverse) { - var array = this._array; - var maxIndex = array.length - 1; - var ii = 0; - return new src_Iterator__Iterator(function() - {return ii > maxIndex ? - iteratorDone() : - iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])} - ); - }; - - - - createClass(ObjectSeq, KeyedSeq); - function ObjectSeq(object) { - var keys = Object.keys(object); - this._object = object; - this._keys = keys; - this.size = keys.length; - } - - ObjectSeq.prototype.get = function(key, notSetValue) { - if (notSetValue !== undefined && !this.has(key)) { - return notSetValue; - } - return this._object[key]; - }; - - ObjectSeq.prototype.has = function(key) { - return this._object.hasOwnProperty(key); - }; - - ObjectSeq.prototype.__iterate = function(fn, reverse) { - var object = this._object; - var keys = this._keys; - var maxIndex = keys.length - 1; - for (var ii = 0; ii <= maxIndex; ii++) { - var key = keys[reverse ? maxIndex - ii : ii]; - if (fn(object[key], key, this) === false) { - return ii + 1; - } - } - return ii; - }; - - ObjectSeq.prototype.__iterator = function(type, reverse) { - var object = this._object; - var keys = this._keys; - var maxIndex = keys.length - 1; - var ii = 0; - return new src_Iterator__Iterator(function() { - var key = keys[reverse ? maxIndex - ii : ii]; - return ii++ > maxIndex ? - iteratorDone() : - iteratorValue(type, key, object[key]); - }); - }; - - ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true; - - - createClass(IterableSeq, IndexedSeq); - function IterableSeq(iterable) { - this._iterable = iterable; - this.size = iterable.length || iterable.size; - } - - IterableSeq.prototype.__iterateUncached = function(fn, reverse) { - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var iterable = this._iterable; - var iterator = getIterator(iterable); - var iterations = 0; - if (isIterator(iterator)) { - var step; - while (!(step = iterator.next()).done) { - if (fn(step.value, iterations++, this) === false) { - break; - } - } - } - return iterations; - }; - - IterableSeq.prototype.__iteratorUncached = function(type, reverse) { - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterable = this._iterable; - var iterator = getIterator(iterable); - if (!isIterator(iterator)) { - return new src_Iterator__Iterator(iteratorDone); - } - var iterations = 0; - return new src_Iterator__Iterator(function() { - var step = iterator.next(); - return step.done ? step : iteratorValue(type, iterations++, step.value); - }); - }; - - - - createClass(IteratorSeq, IndexedSeq); - function IteratorSeq(iterator) { - this._iterator = iterator; - this._iteratorCache = []; - } - - IteratorSeq.prototype.__iterateUncached = function(fn, reverse) { - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var iterator = this._iterator; - var cache = this._iteratorCache; - var iterations = 0; - while (iterations < cache.length) { - if (fn(cache[iterations], iterations++, this) === false) { - return iterations; - } - } - var step; - while (!(step = iterator.next()).done) { - var val = step.value; - cache[iterations] = val; - if (fn(val, iterations++, this) === false) { - break; - } - } - return iterations; - }; - - IteratorSeq.prototype.__iteratorUncached = function(type, reverse) { - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterator = this._iterator; - var cache = this._iteratorCache; - var iterations = 0; - return new src_Iterator__Iterator(function() { - if (iterations >= cache.length) { - var step = iterator.next(); - if (step.done) { - return step; - } - cache[iterations] = step.value; - } - return iteratorValue(type, iterations, cache[iterations++]); - }); - }; - - - - - // # pragma Helper functions - - function isSeq(maybeSeq) { - return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]); - } - - var EMPTY_SEQ; - - function emptySequence() { - return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([])); - } - - function keyedSeqFromValue(value) { - var seq = - Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() : - isIterator(value) ? new IteratorSeq(value).fromEntrySeq() : - hasIterator(value) ? new IterableSeq(value).fromEntrySeq() : - typeof value === 'object' ? new ObjectSeq(value) : - undefined; - if (!seq) { - throw new TypeError( - 'Expected Array or iterable object of [k, v] entries, '+ - 'or keyed object: ' + value - ); - } - return seq; - } - - function indexedSeqFromValue(value) { - var seq = maybeIndexedSeqFromValue(value); - if (!seq) { - throw new TypeError( - 'Expected Array or iterable object of values: ' + value - ); - } - return seq; - } - - function seqFromValue(value) { - var seq = maybeIndexedSeqFromValue(value) || - (typeof value === 'object' && new ObjectSeq(value)); - if (!seq) { - throw new TypeError( - 'Expected Array or iterable object of values, or keyed object: ' + value - ); - } - return seq; - } - - function maybeIndexedSeqFromValue(value) { - return ( - isArrayLike(value) ? new ArraySeq(value) : - isIterator(value) ? new IteratorSeq(value) : - hasIterator(value) ? new IterableSeq(value) : - undefined - ); - } - - function seqIterate(seq, fn, reverse, useKeys) { - var cache = seq._cache; - if (cache) { - var maxIndex = cache.length - 1; - for (var ii = 0; ii <= maxIndex; ii++) { - var entry = cache[reverse ? maxIndex - ii : ii]; - if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) { - return ii + 1; - } - } - return ii; - } - return seq.__iterateUncached(fn, reverse); - } - - function seqIterator(seq, type, reverse, useKeys) { - var cache = seq._cache; - if (cache) { - var maxIndex = cache.length - 1; - var ii = 0; - return new src_Iterator__Iterator(function() { - var entry = cache[reverse ? maxIndex - ii : ii]; - return ii++ > maxIndex ? - iteratorDone() : - iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]); - }); - } - return seq.__iteratorUncached(type, reverse); - } - - createClass(Collection, Iterable); - function Collection() { - throw TypeError('Abstract'); - } - - - createClass(KeyedCollection, Collection);function KeyedCollection() {} - - createClass(IndexedCollection, Collection);function IndexedCollection() {} - - createClass(SetCollection, Collection);function SetCollection() {} - - - Collection.Keyed = KeyedCollection; - Collection.Indexed = IndexedCollection; - Collection.Set = SetCollection; - - /** - * An extension of the "same-value" algorithm as [described for use by ES6 Map - * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality) - * - * NaN is considered the same as NaN, however -0 and 0 are considered the same - * value, which is different from the algorithm described by - * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). - * - * This is extended further to allow Objects to describe the values they - * represent, by way of `valueOf` or `equals` (and `hashCode`). - * - * Note: because of this extension, the key equality of Immutable.Map and the - * value equality of Immutable.Set will differ from ES6 Map and Set. - * - * ### Defining custom values - * - * The easiest way to describe the value an object represents is by implementing - * `valueOf`. For example, `Date` represents a value by returning a unix - * timestamp for `valueOf`: - * - * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ... - * var date2 = new Date(1234567890000); - * date1.valueOf(); // 1234567890000 - * assert( date1 !== date2 ); - * assert( Immutable.is( date1, date2 ) ); - * - * Note: overriding `valueOf` may have other implications if you use this object - * where JavaScript expects a primitive, such as implicit string coercion. - * - * For more complex types, especially collections, implementing `valueOf` may - * not be performant. An alternative is to implement `equals` and `hashCode`. - * - * `equals` takes another object, presumably of similar type, and returns true - * if the it is equal. Equality is symmetrical, so the same result should be - * returned if this and the argument are flipped. - * - * assert( a.equals(b) === b.equals(a) ); - * - * `hashCode` returns a 32bit integer number representing the object which will - * be used to determine how to store the value object in a Map or Set. You must - * provide both or neither methods, one must not exist without the other. - * - * Also, an important relationship between these methods must be upheld: if two - * values are equal, they *must* return the same hashCode. If the values are not - * equal, they might have the same hashCode; this is called a hash collision, - * and while undesirable for performance reasons, it is acceptable. - * - * if (a.equals(b)) { - * assert( a.hashCode() === b.hashCode() ); - * } - * - * All Immutable collections implement `equals` and `hashCode`. - * - */ - function is(valueA, valueB) { - if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { - return true; - } - if (!valueA || !valueB) { - return false; - } - if (typeof valueA.valueOf === 'function' && - typeof valueB.valueOf === 'function') { - valueA = valueA.valueOf(); - valueB = valueB.valueOf(); - if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { - return true; - } - if (!valueA || !valueB) { - return false; - } - } - if (typeof valueA.equals === 'function' && - typeof valueB.equals === 'function' && - valueA.equals(valueB)) { - return true; - } - return false; - } - - function fromJS(json, converter) { - return converter ? - fromJSWith(converter, json, '', {'': json}) : - fromJSDefault(json); - } - - function fromJSWith(converter, json, key, parentJSON) { - if (Array.isArray(json)) { - return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); - } - if (isPlainObj(json)) { - return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); - } - return json; - } - - function fromJSDefault(json) { - if (Array.isArray(json)) { - return IndexedSeq(json).map(fromJSDefault).toList(); - } - if (isPlainObj(json)) { - return KeyedSeq(json).map(fromJSDefault).toMap(); - } - return json; - } - - function isPlainObj(value) { - return value && (value.constructor === Object || value.constructor === undefined); - } - - var src_Math__imul = - typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ? - Math.imul : - function imul(a, b) { - a = a | 0; // int - b = b | 0; // int - var c = a & 0xffff; - var d = b & 0xffff; - // Shift by 0 fixes the sign on the high part. - return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int - }; - - // v8 has an optimization for storing 31-bit signed numbers. - // Values which have either 00 or 11 as the high order bits qualify. - // This function drops the highest order bit in a signed number, maintaining - // the sign bit. - function smi(i32) { - return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF); - } - - function hash(o) { - if (o === false || o === null || o === undefined) { - return 0; - } - if (typeof o.valueOf === 'function') { - o = o.valueOf(); - if (o === false || o === null || o === undefined) { - return 0; - } - } - if (o === true) { - return 1; - } - var type = typeof o; - if (type === 'number') { - var h = o | 0; - if (h !== o) { - h ^= o * 0xFFFFFFFF; - } - while (o > 0xFFFFFFFF) { - o /= 0xFFFFFFFF; - h ^= o; - } - return smi(h); - } - if (type === 'string') { - return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o); - } - if (typeof o.hashCode === 'function') { - return o.hashCode(); - } - return hashJSObj(o); - } - - function cachedHashString(string) { - var hash = stringHashCache[string]; - if (hash === undefined) { - hash = hashString(string); - if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) { - STRING_HASH_CACHE_SIZE = 0; - stringHashCache = {}; - } - STRING_HASH_CACHE_SIZE++; - stringHashCache[string] = hash; - } - return hash; - } - - // http://jsperf.com/hashing-strings - function hashString(string) { - // This is the hash from JVM - // The hash code for a string is computed as - // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1], - // where s[i] is the ith character of the string and n is the length of - // the string. We "mod" the result to make it between 0 (inclusive) and 2^31 - // (exclusive) by dropping high bits. - var hash = 0; - for (var ii = 0; ii < string.length; ii++) { - hash = 31 * hash + string.charCodeAt(ii) | 0; - } - return smi(hash); - } - - function hashJSObj(obj) { - var hash; - if (usingWeakMap) { - hash = weakMap.get(obj); - if (hash !== undefined) { - return hash; - } - } - - hash = obj[UID_HASH_KEY]; - if (hash !== undefined) { - return hash; - } - - if (!canDefineProperty) { - hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY]; - if (hash !== undefined) { - return hash; - } - - hash = getIENodeHash(obj); - if (hash !== undefined) { - return hash; - } - } - - hash = ++objHashUID; - if (objHashUID & 0x40000000) { - objHashUID = 0; - } - - if (usingWeakMap) { - weakMap.set(obj, hash); - } else if (isExtensible !== undefined && isExtensible(obj) === false) { - throw new Error('Non-extensible objects are not allowed as keys.'); - } else if (canDefineProperty) { - Object.defineProperty(obj, UID_HASH_KEY, { - 'enumerable': false, - 'configurable': false, - 'writable': false, - 'value': hash - }); - } else if (obj.propertyIsEnumerable !== undefined && - obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) { - // Since we can't define a non-enumerable property on the object - // we'll hijack one of the less-used non-enumerable properties to - // save our hash on it. Since this is a function it will not show up in - // `JSON.stringify` which is what we want. - obj.propertyIsEnumerable = function() { - return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments); - }; - obj.propertyIsEnumerable[UID_HASH_KEY] = hash; - } else if (obj.nodeType !== undefined) { - // At this point we couldn't get the IE `uniqueID` to use as a hash - // and we couldn't use a non-enumerable property to exploit the - // dontEnum bug so we simply add the `UID_HASH_KEY` on the node - // itself. - obj[UID_HASH_KEY] = hash; - } else { - throw new Error('Unable to set a non-enumerable property on object.'); - } - - return hash; - } - - // Get references to ES5 object methods. - var isExtensible = Object.isExtensible; - - // True if Object.defineProperty works as expected. IE8 fails this test. - var canDefineProperty = (function() { - try { - Object.defineProperty({}, '@', {}); - return true; - } catch (e) { - return false; - } - }()); - - // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it - // and avoid memory leaks from the IE cloneNode bug. - function getIENodeHash(node) { - if (node && node.nodeType > 0) { - switch (node.nodeType) { - case 1: // Element - return node.uniqueID; - case 9: // Document - return node.documentElement && node.documentElement.uniqueID; - } - } - } - - // If possible, use a WeakMap. - var usingWeakMap = typeof WeakMap === 'function'; - var weakMap; - if (usingWeakMap) { - weakMap = new WeakMap(); - } - - var objHashUID = 0; - - var UID_HASH_KEY = '__immutablehash__'; - if (typeof Symbol === 'function') { - UID_HASH_KEY = Symbol(UID_HASH_KEY); - } - - var STRING_HASH_CACHE_MIN_STRLEN = 16; - var STRING_HASH_CACHE_MAX_SIZE = 255; - var STRING_HASH_CACHE_SIZE = 0; - var stringHashCache = {}; - - function invariant(condition, error) { - if (!condition) throw new Error(error); - } - - function assertNotInfinite(size) { - invariant( - size !== Infinity, - 'Cannot perform this action with an infinite size.' - ); - } - - createClass(ToKeyedSequence, KeyedSeq); - function ToKeyedSequence(indexed, useKeys) { - this._iter = indexed; - this._useKeys = useKeys; - this.size = indexed.size; - } - - ToKeyedSequence.prototype.get = function(key, notSetValue) { - return this._iter.get(key, notSetValue); - }; - - ToKeyedSequence.prototype.has = function(key) { - return this._iter.has(key); - }; - - ToKeyedSequence.prototype.valueSeq = function() { - return this._iter.valueSeq(); - }; - - ToKeyedSequence.prototype.reverse = function() {var this$0 = this; - var reversedSequence = reverseFactory(this, true); - if (!this._useKeys) { - reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()}; - } - return reversedSequence; - }; - - ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this; - var mappedSequence = mapFactory(this, mapper, context); - if (!this._useKeys) { - mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)}; - } - return mappedSequence; - }; - - ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - var ii; - return this._iter.__iterate( - this._useKeys ? - function(v, k) {return fn(v, k, this$0)} : - ((ii = reverse ? resolveSize(this) : 0), - function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}), - reverse - ); - }; - - ToKeyedSequence.prototype.__iterator = function(type, reverse) { - if (this._useKeys) { - return this._iter.__iterator(type, reverse); - } - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - var ii = reverse ? resolveSize(this) : 0; - return new src_Iterator__Iterator(function() { - var step = iterator.next(); - return step.done ? step : - iteratorValue(type, reverse ? --ii : ii++, step.value, step); - }); - }; - - ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true; - - - createClass(ToIndexedSequence, IndexedSeq); - function ToIndexedSequence(iter) { - this._iter = iter; - this.size = iter.size; - } - - ToIndexedSequence.prototype.includes = function(value) { - return this._iter.includes(value); - }; - - ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - var iterations = 0; - return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse); - }; - - ToIndexedSequence.prototype.__iterator = function(type, reverse) { - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - var iterations = 0; - return new src_Iterator__Iterator(function() { - var step = iterator.next(); - return step.done ? step : - iteratorValue(type, iterations++, step.value, step) - }); - }; - - - - createClass(ToSetSequence, SetSeq); - function ToSetSequence(iter) { - this._iter = iter; - this.size = iter.size; - } - - ToSetSequence.prototype.has = function(key) { - return this._iter.includes(key); - }; - - ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse); - }; - - ToSetSequence.prototype.__iterator = function(type, reverse) { - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - return new src_Iterator__Iterator(function() { - var step = iterator.next(); - return step.done ? step : - iteratorValue(type, step.value, step.value, step); - }); - }; - - - - createClass(FromEntriesSequence, KeyedSeq); - function FromEntriesSequence(entries) { - this._iter = entries; - this.size = entries.size; - } - - FromEntriesSequence.prototype.entrySeq = function() { - return this._iter.toSeq(); - }; - - FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._iter.__iterate(function(entry ) { - // Check if entry exists first so array access doesn't throw for holes - // in the parent iteration. - if (entry) { - validateEntry(entry); - var indexedIterable = isIterable(entry); - return fn( - indexedIterable ? entry.get(1) : entry[1], - indexedIterable ? entry.get(0) : entry[0], - this$0 - ); - } - }, reverse); - }; - - FromEntriesSequence.prototype.__iterator = function(type, reverse) { - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - return new src_Iterator__Iterator(function() { - while (true) { - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - // Check if entry exists first so array access doesn't throw for holes - // in the parent iteration. - if (entry) { - validateEntry(entry); - var indexedIterable = isIterable(entry); - return iteratorValue( - type, - indexedIterable ? entry.get(0) : entry[0], - indexedIterable ? entry.get(1) : entry[1], - step - ); - } - } - }); - }; - - - ToIndexedSequence.prototype.cacheResult = - ToKeyedSequence.prototype.cacheResult = - ToSetSequence.prototype.cacheResult = - FromEntriesSequence.prototype.cacheResult = - cacheResultThrough; - - - function flipFactory(iterable) { - var flipSequence = makeSequence(iterable); - flipSequence._iter = iterable; - flipSequence.size = iterable.size; - flipSequence.flip = function() {return iterable}; - flipSequence.reverse = function () { - var reversedSequence = iterable.reverse.apply(this); // super.reverse() - reversedSequence.flip = function() {return iterable.reverse()}; - return reversedSequence; - }; - flipSequence.has = function(key ) {return iterable.includes(key)}; - flipSequence.includes = function(key ) {return iterable.has(key)}; - flipSequence.cacheResult = cacheResultThrough; - flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse); - } - flipSequence.__iteratorUncached = function(type, reverse) { - if (type === ITERATE_ENTRIES) { - var iterator = iterable.__iterator(type, reverse); - return new src_Iterator__Iterator(function() { - var step = iterator.next(); - if (!step.done) { - var k = step.value[0]; - step.value[0] = step.value[1]; - step.value[1] = k; - } - return step; - }); - } - return iterable.__iterator( - type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES, - reverse - ); - } - return flipSequence; - } - - - function mapFactory(iterable, mapper, context) { - var mappedSequence = makeSequence(iterable); - mappedSequence.size = iterable.size; - mappedSequence.has = function(key ) {return iterable.has(key)}; - mappedSequence.get = function(key, notSetValue) { - var v = iterable.get(key, NOT_SET); - return v === NOT_SET ? - notSetValue : - mapper.call(context, v, key, iterable); - }; - mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - return iterable.__iterate( - function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false}, - reverse - ); - } - mappedSequence.__iteratorUncached = function (type, reverse) { - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - return new src_Iterator__Iterator(function() { - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - var key = entry[0]; - return iteratorValue( - type, - key, - mapper.call(context, entry[1], key, iterable), - step - ); - }); - } - return mappedSequence; - } - - - function reverseFactory(iterable, useKeys) { - var reversedSequence = makeSequence(iterable); - reversedSequence._iter = iterable; - reversedSequence.size = iterable.size; - reversedSequence.reverse = function() {return iterable}; - if (iterable.flip) { - reversedSequence.flip = function () { - var flipSequence = flipFactory(iterable); - flipSequence.reverse = function() {return iterable.flip()}; - return flipSequence; - }; - } - reversedSequence.get = function(key, notSetValue) - {return iterable.get(useKeys ? key : -1 - key, notSetValue)}; - reversedSequence.has = function(key ) - {return iterable.has(useKeys ? key : -1 - key)}; - reversedSequence.includes = function(value ) {return iterable.includes(value)}; - reversedSequence.cacheResult = cacheResultThrough; - reversedSequence.__iterate = function (fn, reverse) {var this$0 = this; - return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse); - }; - reversedSequence.__iterator = - function(type, reverse) {return iterable.__iterator(type, !reverse)}; - return reversedSequence; - } - - - function filterFactory(iterable, predicate, context, useKeys) { - var filterSequence = makeSequence(iterable); - if (useKeys) { - filterSequence.has = function(key ) { - var v = iterable.get(key, NOT_SET); - return v !== NOT_SET && !!predicate.call(context, v, key, iterable); - }; - filterSequence.get = function(key, notSetValue) { - var v = iterable.get(key, NOT_SET); - return v !== NOT_SET && predicate.call(context, v, key, iterable) ? - v : notSetValue; - }; - } - filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - var iterations = 0; - iterable.__iterate(function(v, k, c) { - if (predicate.call(context, v, k, c)) { - iterations++; - return fn(v, useKeys ? k : iterations - 1, this$0); - } - }, reverse); - return iterations; - }; - filterSequence.__iteratorUncached = function (type, reverse) { - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - var iterations = 0; - return new src_Iterator__Iterator(function() { - while (true) { - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - var key = entry[0]; - var value = entry[1]; - if (predicate.call(context, value, key, iterable)) { - return iteratorValue(type, useKeys ? key : iterations++, value, step); - } - } - }); - } - return filterSequence; - } - - - function countByFactory(iterable, grouper, context) { - var groups = src_Map__Map().asMutable(); - iterable.__iterate(function(v, k) { - groups.update( - grouper.call(context, v, k, iterable), - 0, - function(a ) {return a + 1} - ); - }); - return groups.asImmutable(); - } - - - function groupByFactory(iterable, grouper, context) { - var isKeyedIter = isKeyed(iterable); - var groups = (isOrdered(iterable) ? OrderedMap() : src_Map__Map()).asMutable(); - iterable.__iterate(function(v, k) { - groups.update( - grouper.call(context, v, k, iterable), - function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)} - ); - }); - var coerce = iterableClass(iterable); - return groups.map(function(arr ) {return reify(iterable, coerce(arr))}); - } - - - function sliceFactory(iterable, begin, end, useKeys) { - var originalSize = iterable.size; - - // Sanitize begin & end using this shorthand for ToInt32(argument) - // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 - if (begin !== undefined) { - begin = begin | 0; - } - if (end !== undefined) { - end = end | 0; - } - - if (wholeSlice(begin, end, originalSize)) { - return iterable; - } - - var resolvedBegin = resolveBegin(begin, originalSize); - var resolvedEnd = resolveEnd(end, originalSize); - - // begin or end will be NaN if they were provided as negative numbers and - // this iterable's size is unknown. In that case, cache first so there is - // a known size and these do not resolve to NaN. - if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) { - return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys); - } - - // Note: resolvedEnd is undefined when the original sequence's length is - // unknown and this slice did not supply an end and should contain all - // elements after resolvedBegin. - // In that case, resolvedSize will be NaN and sliceSize will remain undefined. - var resolvedSize = resolvedEnd - resolvedBegin; - var sliceSize; - if (resolvedSize === resolvedSize) { - sliceSize = resolvedSize < 0 ? 0 : resolvedSize; - } - - var sliceSeq = makeSequence(iterable); - - // If iterable.size is undefined, the size of the realized sliceSeq is - // unknown at this point unless the number of items to slice is 0 - sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined; - - if (!useKeys && isSeq(iterable) && sliceSize >= 0) { - sliceSeq.get = function (index, notSetValue) { - index = wrapIndex(this, index); - return index >= 0 && index < sliceSize ? - iterable.get(index + resolvedBegin, notSetValue) : - notSetValue; - } - } - - sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this; - if (sliceSize === 0) { - return 0; - } - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var skipped = 0; - var isSkipping = true; - var iterations = 0; - iterable.__iterate(function(v, k) { - if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) { - iterations++; - return fn(v, useKeys ? k : iterations - 1, this$0) !== false && - iterations !== sliceSize; - } - }); - return iterations; - }; - - sliceSeq.__iteratorUncached = function(type, reverse) { - if (sliceSize !== 0 && reverse) { - return this.cacheResult().__iterator(type, reverse); - } - // Don't bother instantiating parent iterator if taking 0. - var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse); - var skipped = 0; - var iterations = 0; - return new src_Iterator__Iterator(function() { - while (skipped++ < resolvedBegin) { - iterator.next(); - } - if (++iterations > sliceSize) { - return iteratorDone(); - } - var step = iterator.next(); - if (useKeys || type === ITERATE_VALUES) { - return step; - } else if (type === ITERATE_KEYS) { - return iteratorValue(type, iterations - 1, undefined, step); - } else { - return iteratorValue(type, iterations - 1, step.value[1], step); - } - }); - } - - return sliceSeq; - } - - - function takeWhileFactory(iterable, predicate, context) { - var takeSequence = makeSequence(iterable); - takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var iterations = 0; - iterable.__iterate(function(v, k, c) - {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)} - ); - return iterations; - }; - takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - var iterating = true; - return new src_Iterator__Iterator(function() { - if (!iterating) { - return iteratorDone(); - } - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - var k = entry[0]; - var v = entry[1]; - if (!predicate.call(context, v, k, this$0)) { - iterating = false; - return iteratorDone(); - } - return type === ITERATE_ENTRIES ? step : - iteratorValue(type, k, v, step); - }); - }; - return takeSequence; - } - - - function skipWhileFactory(iterable, predicate, context, useKeys) { - var skipSequence = makeSequence(iterable); - skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var isSkipping = true; - var iterations = 0; - iterable.__iterate(function(v, k, c) { - if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) { - iterations++; - return fn(v, useKeys ? k : iterations - 1, this$0); - } - }); - return iterations; - }; - skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - var skipping = true; - var iterations = 0; - return new src_Iterator__Iterator(function() { - var step, k, v; - do { - step = iterator.next(); - if (step.done) { - if (useKeys || type === ITERATE_VALUES) { - return step; - } else if (type === ITERATE_KEYS) { - return iteratorValue(type, iterations++, undefined, step); - } else { - return iteratorValue(type, iterations++, step.value[1], step); - } - } - var entry = step.value; - k = entry[0]; - v = entry[1]; - skipping && (skipping = predicate.call(context, v, k, this$0)); - } while (skipping); - return type === ITERATE_ENTRIES ? step : - iteratorValue(type, k, v, step); - }); - }; - return skipSequence; - } - - - function concatFactory(iterable, values) { - var isKeyedIterable = isKeyed(iterable); - var iters = [iterable].concat(values).map(function(v ) { - if (!isIterable(v)) { - v = isKeyedIterable ? - keyedSeqFromValue(v) : - indexedSeqFromValue(Array.isArray(v) ? v : [v]); - } else if (isKeyedIterable) { - v = KeyedIterable(v); - } - return v; - }).filter(function(v ) {return v.size !== 0}); - - if (iters.length === 0) { - return iterable; - } - - if (iters.length === 1) { - var singleton = iters[0]; - if (singleton === iterable || - isKeyedIterable && isKeyed(singleton) || - isIndexed(iterable) && isIndexed(singleton)) { - return singleton; - } - } - - var concatSeq = new ArraySeq(iters); - if (isKeyedIterable) { - concatSeq = concatSeq.toKeyedSeq(); - } else if (!isIndexed(iterable)) { - concatSeq = concatSeq.toSetSeq(); - } - concatSeq = concatSeq.flatten(true); - concatSeq.size = iters.reduce( - function(sum, seq) { - if (sum !== undefined) { - var size = seq.size; - if (size !== undefined) { - return sum + size; - } - } - }, - 0 - ); - return concatSeq; - } - - - function flattenFactory(iterable, depth, useKeys) { - var flatSequence = makeSequence(iterable); - flatSequence.__iterateUncached = function(fn, reverse) { - var iterations = 0; - var stopped = false; - function flatDeep(iter, currentDepth) {var this$0 = this; - iter.__iterate(function(v, k) { - if ((!depth || currentDepth < depth) && isIterable(v)) { - flatDeep(v, currentDepth + 1); - } else if (fn(v, useKeys ? k : iterations++, this$0) === false) { - stopped = true; - } - return !stopped; - }, reverse); - } - flatDeep(iterable, 0); - return iterations; - } - flatSequence.__iteratorUncached = function(type, reverse) { - var iterator = iterable.__iterator(type, reverse); - var stack = []; - var iterations = 0; - return new src_Iterator__Iterator(function() { - while (iterator) { - var step = iterator.next(); - if (step.done !== false) { - iterator = stack.pop(); - continue; - } - var v = step.value; - if (type === ITERATE_ENTRIES) { - v = v[1]; - } - if ((!depth || stack.length < depth) && isIterable(v)) { - stack.push(iterator); - iterator = v.__iterator(type, reverse); - } else { - return useKeys ? step : iteratorValue(type, iterations++, v, step); - } - } - return iteratorDone(); - }); - } - return flatSequence; - } - - - function flatMapFactory(iterable, mapper, context) { - var coerce = iterableClass(iterable); - return iterable.toSeq().map( - function(v, k) {return coerce(mapper.call(context, v, k, iterable))} - ).flatten(true); - } - - - function interposeFactory(iterable, separator) { - var interposedSequence = makeSequence(iterable); - interposedSequence.size = iterable.size && iterable.size * 2 -1; - interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; - var iterations = 0; - iterable.__iterate(function(v, k) - {return (!iterations || fn(separator, iterations++, this$0) !== false) && - fn(v, iterations++, this$0) !== false}, - reverse - ); - return iterations; - }; - interposedSequence.__iteratorUncached = function(type, reverse) { - var iterator = iterable.__iterator(ITERATE_VALUES, reverse); - var iterations = 0; - var step; - return new src_Iterator__Iterator(function() { - if (!step || iterations % 2) { - step = iterator.next(); - if (step.done) { - return step; - } - } - return iterations % 2 ? - iteratorValue(type, iterations++, separator) : - iteratorValue(type, iterations++, step.value, step); - }); - }; - return interposedSequence; - } - - - function sortFactory(iterable, comparator, mapper) { - if (!comparator) { - comparator = defaultComparator; - } - var isKeyedIterable = isKeyed(iterable); - var index = 0; - var entries = iterable.toSeq().map( - function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]} - ).toArray(); - entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach( - isKeyedIterable ? - function(v, i) { entries[i].length = 2; } : - function(v, i) { entries[i] = v[1]; } - ); - return isKeyedIterable ? KeyedSeq(entries) : - isIndexed(iterable) ? IndexedSeq(entries) : - SetSeq(entries); - } - - - function maxFactory(iterable, comparator, mapper) { - if (!comparator) { - comparator = defaultComparator; - } - if (mapper) { - var entry = iterable.toSeq() - .map(function(v, k) {return [v, mapper(v, k, iterable)]}) - .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a}); - return entry && entry[0]; - } else { - return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a}); - } - } - - function maxCompare(comparator, a, b) { - var comp = comparator(b, a); - // b is considered the new max if the comparator declares them equal, but - // they are not equal and b is in fact a nullish value. - return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0; - } - - - function zipWithFactory(keyIter, zipper, iters) { - var zipSequence = makeSequence(keyIter); - zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min(); - // Note: this a generic base implementation of __iterate in terms of - // __iterator which may be more generically useful in the future. - zipSequence.__iterate = function(fn, reverse) { - /* generic: - var iterator = this.__iterator(ITERATE_ENTRIES, reverse); - var step; - var iterations = 0; - while (!(step = iterator.next()).done) { - iterations++; - if (fn(step.value[1], step.value[0], this) === false) { - break; - } - } - return iterations; - */ - // indexed: - var iterator = this.__iterator(ITERATE_VALUES, reverse); - var step; - var iterations = 0; - while (!(step = iterator.next()).done) { - if (fn(step.value, iterations++, this) === false) { - break; - } - } - return iterations; - }; - zipSequence.__iteratorUncached = function(type, reverse) { - var iterators = iters.map(function(i ) - {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))} - ); - var iterations = 0; - var isDone = false; - return new src_Iterator__Iterator(function() { - var steps; - if (!isDone) { - steps = iterators.map(function(i ) {return i.next()}); - isDone = steps.some(function(s ) {return s.done}); - } - if (isDone) { - return iteratorDone(); - } - return iteratorValue( - type, - iterations++, - zipper.apply(null, steps.map(function(s ) {return s.value})) - ); - }); - }; - return zipSequence - } - - - // #pragma Helper Functions - - function reify(iter, seq) { - return isSeq(iter) ? seq : iter.constructor(seq); - } - - function validateEntry(entry) { - if (entry !== Object(entry)) { - throw new TypeError('Expected [K, V] tuple: ' + entry); - } - } - - function resolveSize(iter) { - assertNotInfinite(iter.size); - return ensureSize(iter); - } - - function iterableClass(iterable) { - return isKeyed(iterable) ? KeyedIterable : - isIndexed(iterable) ? IndexedIterable : - SetIterable; - } - - function makeSequence(iterable) { - return Object.create( - ( - isKeyed(iterable) ? KeyedSeq : - isIndexed(iterable) ? IndexedSeq : - SetSeq - ).prototype - ); - } - - function cacheResultThrough() { - if (this._iter.cacheResult) { - this._iter.cacheResult(); - this.size = this._iter.size; - return this; - } else { - return Seq.prototype.cacheResult.call(this); - } - } - - function defaultComparator(a, b) { - return a > b ? 1 : a < b ? -1 : 0; - } - - function forceIterator(keyPath) { - var iter = getIterator(keyPath); - if (!iter) { - // Array might not be iterable in this environment, so we need a fallback - // to our wrapped type. - if (!isArrayLike(keyPath)) { - throw new TypeError('Expected iterable or array-like: ' + keyPath); - } - iter = getIterator(Iterable(keyPath)); - } - return iter; - } - - createClass(src_Map__Map, KeyedCollection); - - // @pragma Construction - - function src_Map__Map(value) { - return value === null || value === undefined ? emptyMap() : - isMap(value) && !isOrdered(value) ? value : - emptyMap().withMutations(function(map ) { - var iter = KeyedIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v, k) {return map.set(k, v)}); - }); - } - - src_Map__Map.prototype.toString = function() { - return this.__toString('Map {', '}'); - }; - - // @pragma Access - - src_Map__Map.prototype.get = function(k, notSetValue) { - return this._root ? - this._root.get(0, undefined, k, notSetValue) : - notSetValue; - }; - - // @pragma Modification - - src_Map__Map.prototype.set = function(k, v) { - return updateMap(this, k, v); - }; - - src_Map__Map.prototype.setIn = function(keyPath, v) { - return this.updateIn(keyPath, NOT_SET, function() {return v}); - }; - - src_Map__Map.prototype.remove = function(k) { - return updateMap(this, k, NOT_SET); - }; - - src_Map__Map.prototype.deleteIn = function(keyPath) { - return this.updateIn(keyPath, function() {return NOT_SET}); - }; - - src_Map__Map.prototype.update = function(k, notSetValue, updater) { - return arguments.length === 1 ? - k(this) : - this.updateIn([k], notSetValue, updater); - }; - - src_Map__Map.prototype.updateIn = function(keyPath, notSetValue, updater) { - if (!updater) { - updater = notSetValue; - notSetValue = undefined; - } - var updatedValue = updateInDeepMap( - this, - forceIterator(keyPath), - notSetValue, - updater - ); - return updatedValue === NOT_SET ? undefined : updatedValue; - }; - - src_Map__Map.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = 0; - this._root = null; - this.__hash = undefined; - this.__altered = true; - return this; - } - return emptyMap(); - }; - - // @pragma Composition - - src_Map__Map.prototype.merge = function(/*...iters*/) { - return mergeIntoMapWith(this, undefined, arguments); - }; - - src_Map__Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoMapWith(this, merger, iters); - }; - - src_Map__Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); - return this.updateIn( - keyPath, - emptyMap(), - function(m ) {return typeof m.merge === 'function' ? - m.merge.apply(m, iters) : - iters[iters.length - 1]} - ); - }; - - src_Map__Map.prototype.mergeDeep = function(/*...iters*/) { - return mergeIntoMapWith(this, deepMerger(undefined), arguments); - }; - - src_Map__Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoMapWith(this, deepMerger(merger), iters); - }; - - src_Map__Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); - return this.updateIn( - keyPath, - emptyMap(), - function(m ) {return typeof m.mergeDeep === 'function' ? - m.mergeDeep.apply(m, iters) : - iters[iters.length - 1]} - ); - }; - - src_Map__Map.prototype.sort = function(comparator) { - // Late binding - return OrderedMap(sortFactory(this, comparator)); - }; - - src_Map__Map.prototype.sortBy = function(mapper, comparator) { - // Late binding - return OrderedMap(sortFactory(this, comparator, mapper)); - }; - - // @pragma Mutability - - src_Map__Map.prototype.withMutations = function(fn) { - var mutable = this.asMutable(); - fn(mutable); - return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this; - }; - - src_Map__Map.prototype.asMutable = function() { - return this.__ownerID ? this : this.__ensureOwner(new OwnerID()); - }; - - src_Map__Map.prototype.asImmutable = function() { - return this.__ensureOwner(); - }; - - src_Map__Map.prototype.wasAltered = function() { - return this.__altered; - }; - - src_Map__Map.prototype.__iterator = function(type, reverse) { - return new MapIterator(this, type, reverse); - }; - - src_Map__Map.prototype.__iterate = function(fn, reverse) {var this$0 = this; - var iterations = 0; - this._root && this._root.iterate(function(entry ) { - iterations++; - return fn(entry[1], entry[0], this$0); - }, reverse); - return iterations; - }; - - src_Map__Map.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - if (!ownerID) { - this.__ownerID = ownerID; - this.__altered = false; - return this; - } - return makeMap(this.size, this._root, ownerID, this.__hash); - }; - - - function isMap(maybeMap) { - return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]); - } - - src_Map__Map.isMap = isMap; - - var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@'; - - var MapPrototype = src_Map__Map.prototype; - MapPrototype[IS_MAP_SENTINEL] = true; - MapPrototype[DELETE] = MapPrototype.remove; - MapPrototype.removeIn = MapPrototype.deleteIn; - - - // #pragma Trie Nodes - - - - function ArrayMapNode(ownerID, entries) { - this.ownerID = ownerID; - this.entries = entries; - } - - ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { - var entries = this.entries; - for (var ii = 0, len = entries.length; ii < len; ii++) { - if (is(key, entries[ii][0])) { - return entries[ii][1]; - } - } - return notSetValue; - }; - - ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - var removed = value === NOT_SET; - - var entries = this.entries; - var idx = 0; - for (var len = entries.length; idx < len; idx++) { - if (is(key, entries[idx][0])) { - break; - } - } - var exists = idx < len; - - if (exists ? entries[idx][1] === value : removed) { - return this; - } - - SetRef(didAlter); - (removed || !exists) && SetRef(didChangeSize); - - if (removed && entries.length === 1) { - return; // undefined - } - - if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) { - return createNodes(ownerID, entries, key, value); - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newEntries = isEditable ? entries : arrCopy(entries); - - if (exists) { - if (removed) { - idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); - } else { - newEntries[idx] = [key, value]; - } - } else { - newEntries.push([key, value]); - } - - if (isEditable) { - this.entries = newEntries; - return this; - } - - return new ArrayMapNode(ownerID, newEntries); - }; - - - - - function BitmapIndexedNode(ownerID, bitmap, nodes) { - this.ownerID = ownerID; - this.bitmap = bitmap; - this.nodes = nodes; - } - - BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK)); - var bitmap = this.bitmap; - return (bitmap & bit) === 0 ? notSetValue : - this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue); - }; - - BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - var bit = 1 << keyHashFrag; - var bitmap = this.bitmap; - var exists = (bitmap & bit) !== 0; - - if (!exists && value === NOT_SET) { - return this; - } - - var idx = popCount(bitmap & (bit - 1)); - var nodes = this.nodes; - var node = exists ? nodes[idx] : undefined; - var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); - - if (newNode === node) { - return this; - } - - if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) { - return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode); - } - - if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) { - return nodes[idx ^ 1]; - } - - if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) { - return newNode; - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit; - var newNodes = exists ? newNode ? - setIn(nodes, idx, newNode, isEditable) : - spliceOut(nodes, idx, isEditable) : - spliceIn(nodes, idx, newNode, isEditable); - - if (isEditable) { - this.bitmap = newBitmap; - this.nodes = newNodes; - return this; - } - - return new BitmapIndexedNode(ownerID, newBitmap, newNodes); - }; - - - - - function HashArrayMapNode(ownerID, count, nodes) { - this.ownerID = ownerID; - this.count = count; - this.nodes = nodes; - } - - HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - var node = this.nodes[idx]; - return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue; - }; - - HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - var removed = value === NOT_SET; - var nodes = this.nodes; - var node = nodes[idx]; - - if (removed && !node) { - return this; - } - - var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); - if (newNode === node) { - return this; - } - - var newCount = this.count; - if (!node) { - newCount++; - } else if (!newNode) { - newCount--; - if (newCount < MIN_HASH_ARRAY_MAP_SIZE) { - return packNodes(ownerID, nodes, newCount, idx); - } - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newNodes = setIn(nodes, idx, newNode, isEditable); - - if (isEditable) { - this.count = newCount; - this.nodes = newNodes; - return this; - } - - return new HashArrayMapNode(ownerID, newCount, newNodes); - }; - - - - - function HashCollisionNode(ownerID, keyHash, entries) { - this.ownerID = ownerID; - this.keyHash = keyHash; - this.entries = entries; - } - - HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) { - var entries = this.entries; - for (var ii = 0, len = entries.length; ii < len; ii++) { - if (is(key, entries[ii][0])) { - return entries[ii][1]; - } - } - return notSetValue; - }; - - HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (keyHash === undefined) { - keyHash = hash(key); - } - - var removed = value === NOT_SET; - - if (keyHash !== this.keyHash) { - if (removed) { - return this; - } - SetRef(didAlter); - SetRef(didChangeSize); - return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]); - } - - var entries = this.entries; - var idx = 0; - for (var len = entries.length; idx < len; idx++) { - if (is(key, entries[idx][0])) { - break; - } - } - var exists = idx < len; - - if (exists ? entries[idx][1] === value : removed) { - return this; - } - - SetRef(didAlter); - (removed || !exists) && SetRef(didChangeSize); - - if (removed && len === 2) { - return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]); - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newEntries = isEditable ? entries : arrCopy(entries); - - if (exists) { - if (removed) { - idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); - } else { - newEntries[idx] = [key, value]; - } - } else { - newEntries.push([key, value]); - } - - if (isEditable) { - this.entries = newEntries; - return this; - } - - return new HashCollisionNode(ownerID, this.keyHash, newEntries); - }; - - - - - function ValueNode(ownerID, keyHash, entry) { - this.ownerID = ownerID; - this.keyHash = keyHash; - this.entry = entry; - } - - ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) { - return is(key, this.entry[0]) ? this.entry[1] : notSetValue; - }; - - ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - var removed = value === NOT_SET; - var keyMatch = is(key, this.entry[0]); - if (keyMatch ? value === this.entry[1] : removed) { - return this; - } - - SetRef(didAlter); - - if (removed) { - SetRef(didChangeSize); - return; // undefined - } - - if (keyMatch) { - if (ownerID && ownerID === this.ownerID) { - this.entry[1] = value; - return this; - } - return new ValueNode(ownerID, this.keyHash, [key, value]); - } - - SetRef(didChangeSize); - return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]); - }; - - - - // #pragma Iterators - - ArrayMapNode.prototype.iterate = - HashCollisionNode.prototype.iterate = function (fn, reverse) { - var entries = this.entries; - for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) { - if (fn(entries[reverse ? maxIndex - ii : ii]) === false) { - return false; - } - } - } - - BitmapIndexedNode.prototype.iterate = - HashArrayMapNode.prototype.iterate = function (fn, reverse) { - var nodes = this.nodes; - for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) { - var node = nodes[reverse ? maxIndex - ii : ii]; - if (node && node.iterate(fn, reverse) === false) { - return false; - } - } - } - - ValueNode.prototype.iterate = function (fn, reverse) { - return fn(this.entry); - } - - createClass(MapIterator, src_Iterator__Iterator); - - function MapIterator(map, type, reverse) { - this._type = type; - this._reverse = reverse; - this._stack = map._root && mapIteratorFrame(map._root); - } - - MapIterator.prototype.next = function() { - var type = this._type; - var stack = this._stack; - while (stack) { - var node = stack.node; - var index = stack.index++; - var maxIndex; - if (node.entry) { - if (index === 0) { - return mapIteratorValue(type, node.entry); - } - } else if (node.entries) { - maxIndex = node.entries.length - 1; - if (index <= maxIndex) { - return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]); - } - } else { - maxIndex = node.nodes.length - 1; - if (index <= maxIndex) { - var subNode = node.nodes[this._reverse ? maxIndex - index : index]; - if (subNode) { - if (subNode.entry) { - return mapIteratorValue(type, subNode.entry); - } - stack = this._stack = mapIteratorFrame(subNode, stack); - } - continue; - } - } - stack = this._stack = this._stack.__prev; - } - return iteratorDone(); - }; - - - function mapIteratorValue(type, entry) { - return iteratorValue(type, entry[0], entry[1]); - } - - function mapIteratorFrame(node, prev) { - return { - node: node, - index: 0, - __prev: prev - }; - } - - function makeMap(size, root, ownerID, hash) { - var map = Object.create(MapPrototype); - map.size = size; - map._root = root; - map.__ownerID = ownerID; - map.__hash = hash; - map.__altered = false; - return map; - } - - var EMPTY_MAP; - function emptyMap() { - return EMPTY_MAP || (EMPTY_MAP = makeMap(0)); - } - - function updateMap(map, k, v) { - var newRoot; - var newSize; - if (!map._root) { - if (v === NOT_SET) { - return map; - } - newSize = 1; - newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]); - } else { - var didChangeSize = MakeRef(CHANGE_LENGTH); - var didAlter = MakeRef(DID_ALTER); - newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter); - if (!didAlter.value) { - return map; - } - newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0); - } - if (map.__ownerID) { - map.size = newSize; - map._root = newRoot; - map.__hash = undefined; - map.__altered = true; - return map; - } - return newRoot ? makeMap(newSize, newRoot) : emptyMap(); - } - - function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (!node) { - if (value === NOT_SET) { - return node; - } - SetRef(didAlter); - SetRef(didChangeSize); - return new ValueNode(ownerID, keyHash, [key, value]); - } - return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter); - } - - function isLeafNode(node) { - return node.constructor === ValueNode || node.constructor === HashCollisionNode; - } - - function mergeIntoNode(node, ownerID, shift, keyHash, entry) { - if (node.keyHash === keyHash) { - return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]); - } - - var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK; - var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - - var newNode; - var nodes = idx1 === idx2 ? - [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] : - ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]); - - return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes); - } - - function createNodes(ownerID, entries, key, value) { - if (!ownerID) { - ownerID = new OwnerID(); - } - var node = new ValueNode(ownerID, hash(key), [key, value]); - for (var ii = 0; ii < entries.length; ii++) { - var entry = entries[ii]; - node = node.update(ownerID, 0, undefined, entry[0], entry[1]); - } - return node; - } - - function packNodes(ownerID, nodes, count, excluding) { - var bitmap = 0; - var packedII = 0; - var packedNodes = new Array(count); - for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) { - var node = nodes[ii]; - if (node !== undefined && ii !== excluding) { - bitmap |= bit; - packedNodes[packedII++] = node; - } - } - return new BitmapIndexedNode(ownerID, bitmap, packedNodes); - } - - function expandNodes(ownerID, nodes, bitmap, including, node) { - var count = 0; - var expandedNodes = new Array(SIZE); - for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) { - expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined; - } - expandedNodes[including] = node; - return new HashArrayMapNode(ownerID, count + 1, expandedNodes); - } - - function mergeIntoMapWith(map, merger, iterables) { - var iters = []; - for (var ii = 0; ii < iterables.length; ii++) { - var value = iterables[ii]; - var iter = KeyedIterable(value); - if (!isIterable(value)) { - iter = iter.map(function(v ) {return fromJS(v)}); - } - iters.push(iter); - } - return mergeIntoCollectionWith(map, merger, iters); - } - - function deepMerger(merger) { - return function(existing, value, key) - {return existing && existing.mergeDeepWith && isIterable(value) ? - existing.mergeDeepWith(merger, value) : - merger ? merger(existing, value, key) : value}; - } - - function mergeIntoCollectionWith(collection, merger, iters) { - iters = iters.filter(function(x ) {return x.size !== 0}); - if (iters.length === 0) { - return collection; - } - if (collection.size === 0 && !collection.__ownerID && iters.length === 1) { - return collection.constructor(iters[0]); - } - return collection.withMutations(function(collection ) { - var mergeIntoMap = merger ? - function(value, key) { - collection.update(key, NOT_SET, function(existing ) - {return existing === NOT_SET ? value : merger(existing, value, key)} - ); - } : - function(value, key) { - collection.set(key, value); - } - for (var ii = 0; ii < iters.length; ii++) { - iters[ii].forEach(mergeIntoMap); - } - }); - } - - function updateInDeepMap(existing, keyPathIter, notSetValue, updater) { - var isNotSet = existing === NOT_SET; - var step = keyPathIter.next(); - if (step.done) { - var existingValue = isNotSet ? notSetValue : existing; - var newValue = updater(existingValue); - return newValue === existingValue ? existing : newValue; - } - invariant( - isNotSet || (existing && existing.set), - 'invalid keyPath' - ); - var key = step.value; - var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET); - var nextUpdated = updateInDeepMap( - nextExisting, - keyPathIter, - notSetValue, - updater - ); - return nextUpdated === nextExisting ? existing : - nextUpdated === NOT_SET ? existing.remove(key) : - (isNotSet ? emptyMap() : existing).set(key, nextUpdated); - } - - function popCount(x) { - x = x - ((x >> 1) & 0x55555555); - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0f0f0f0f; - x = x + (x >> 8); - x = x + (x >> 16); - return x & 0x7f; - } - - function setIn(array, idx, val, canEdit) { - var newArray = canEdit ? array : arrCopy(array); - newArray[idx] = val; - return newArray; - } - - function spliceIn(array, idx, val, canEdit) { - var newLen = array.length + 1; - if (canEdit && idx + 1 === newLen) { - array[idx] = val; - return array; - } - var newArray = new Array(newLen); - var after = 0; - for (var ii = 0; ii < newLen; ii++) { - if (ii === idx) { - newArray[ii] = val; - after = -1; - } else { - newArray[ii] = array[ii + after]; - } - } - return newArray; - } - - function spliceOut(array, idx, canEdit) { - var newLen = array.length - 1; - if (canEdit && idx === newLen) { - array.pop(); - return array; - } - var newArray = new Array(newLen); - var after = 0; - for (var ii = 0; ii < newLen; ii++) { - if (ii === idx) { - after = 1; - } - newArray[ii] = array[ii + after]; - } - return newArray; - } - - var MAX_ARRAY_MAP_SIZE = SIZE / 4; - var MAX_BITMAP_INDEXED_SIZE = SIZE / 2; - var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4; - - createClass(List, IndexedCollection); - - // @pragma Construction - - function List(value) { - var empty = emptyList(); - if (value === null || value === undefined) { - return empty; - } - if (isList(value)) { - return value; - } - var iter = IndexedIterable(value); - var size = iter.size; - if (size === 0) { - return empty; - } - assertNotInfinite(size); - if (size > 0 && size < SIZE) { - return makeList(0, size, SHIFT, null, new VNode(iter.toArray())); - } - return empty.withMutations(function(list ) { - list.setSize(size); - iter.forEach(function(v, i) {return list.set(i, v)}); - }); - } - - List.of = function(/*...values*/) { - return this(arguments); - }; - - List.prototype.toString = function() { - return this.__toString('List [', ']'); - }; - - // @pragma Access - - List.prototype.get = function(index, notSetValue) { - index = wrapIndex(this, index); - if (index >= 0 && index < this.size) { - index += this._origin; - var node = listNodeFor(this, index); - return node && node.array[index & MASK]; - } - return notSetValue; - }; - - // @pragma Modification - - List.prototype.set = function(index, value) { - return updateList(this, index, value); - }; - - List.prototype.remove = function(index) { - return !this.has(index) ? this : - index === 0 ? this.shift() : - index === this.size - 1 ? this.pop() : - this.splice(index, 1); - }; - - List.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = this._origin = this._capacity = 0; - this._level = SHIFT; - this._root = this._tail = null; - this.__hash = undefined; - this.__altered = true; - return this; - } - return emptyList(); - }; - - List.prototype.push = function(/*...values*/) { - var values = arguments; - var oldSize = this.size; - return this.withMutations(function(list ) { - setListBounds(list, 0, oldSize + values.length); - for (var ii = 0; ii < values.length; ii++) { - list.set(oldSize + ii, values[ii]); - } - }); - }; - - List.prototype.pop = function() { - return setListBounds(this, 0, -1); - }; - - List.prototype.unshift = function(/*...values*/) { - var values = arguments; - return this.withMutations(function(list ) { - setListBounds(list, -values.length); - for (var ii = 0; ii < values.length; ii++) { - list.set(ii, values[ii]); - } - }); - }; - - List.prototype.shift = function() { - return setListBounds(this, 1); - }; - - // @pragma Composition - - List.prototype.merge = function(/*...iters*/) { - return mergeIntoListWith(this, undefined, arguments); - }; - - List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoListWith(this, merger, iters); - }; - - List.prototype.mergeDeep = function(/*...iters*/) { - return mergeIntoListWith(this, deepMerger(undefined), arguments); - }; - - List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoListWith(this, deepMerger(merger), iters); - }; - - List.prototype.setSize = function(size) { - return setListBounds(this, 0, size); - }; - - // @pragma Iteration - - List.prototype.slice = function(begin, end) { - var size = this.size; - if (wholeSlice(begin, end, size)) { - return this; - } - return setListBounds( - this, - resolveBegin(begin, size), - resolveEnd(end, size) - ); - }; - - List.prototype.__iterator = function(type, reverse) { - var index = 0; - var values = iterateList(this, reverse); - return new src_Iterator__Iterator(function() { - var value = values(); - return value === DONE ? - iteratorDone() : - iteratorValue(type, index++, value); - }); - }; - - List.prototype.__iterate = function(fn, reverse) { - var index = 0; - var values = iterateList(this, reverse); - var value; - while ((value = values()) !== DONE) { - if (fn(value, index++, this) === false) { - break; - } - } - return index; - }; - - List.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - if (!ownerID) { - this.__ownerID = ownerID; - return this; - } - return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash); - }; - - - function isList(maybeList) { - return !!(maybeList && maybeList[IS_LIST_SENTINEL]); - } - - List.isList = isList; - - var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@'; - - var ListPrototype = List.prototype; - ListPrototype[IS_LIST_SENTINEL] = true; - ListPrototype[DELETE] = ListPrototype.remove; - ListPrototype.setIn = MapPrototype.setIn; - ListPrototype.deleteIn = - ListPrototype.removeIn = MapPrototype.removeIn; - ListPrototype.update = MapPrototype.update; - ListPrototype.updateIn = MapPrototype.updateIn; - ListPrototype.mergeIn = MapPrototype.mergeIn; - ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; - ListPrototype.withMutations = MapPrototype.withMutations; - ListPrototype.asMutable = MapPrototype.asMutable; - ListPrototype.asImmutable = MapPrototype.asImmutable; - ListPrototype.wasAltered = MapPrototype.wasAltered; - - - - function VNode(array, ownerID) { - this.array = array; - this.ownerID = ownerID; - } - - // TODO: seems like these methods are very similar - - VNode.prototype.removeBefore = function(ownerID, level, index) { - if (index === level ? 1 << level : 0 || this.array.length === 0) { - return this; - } - var originIndex = (index >>> level) & MASK; - if (originIndex >= this.array.length) { - return new VNode([], ownerID); - } - var removingFirst = originIndex === 0; - var newChild; - if (level > 0) { - var oldChild = this.array[originIndex]; - newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index); - if (newChild === oldChild && removingFirst) { - return this; - } - } - if (removingFirst && !newChild) { - return this; - } - var editable = editableVNode(this, ownerID); - if (!removingFirst) { - for (var ii = 0; ii < originIndex; ii++) { - editable.array[ii] = undefined; - } - } - if (newChild) { - editable.array[originIndex] = newChild; - } - return editable; - }; - - VNode.prototype.removeAfter = function(ownerID, level, index) { - if (index === (level ? 1 << level : 0) || this.array.length === 0) { - return this; - } - var sizeIndex = ((index - 1) >>> level) & MASK; - if (sizeIndex >= this.array.length) { - return this; - } - - var newChild; - if (level > 0) { - var oldChild = this.array[sizeIndex]; - newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index); - if (newChild === oldChild && sizeIndex === this.array.length - 1) { - return this; - } - } - - var editable = editableVNode(this, ownerID); - editable.array.splice(sizeIndex + 1); - if (newChild) { - editable.array[sizeIndex] = newChild; - } - return editable; - }; - - - - var DONE = {}; - - function iterateList(list, reverse) { - var left = list._origin; - var right = list._capacity; - var tailPos = getTailOffset(right); - var tail = list._tail; - - return iterateNodeOrLeaf(list._root, list._level, 0); - - function iterateNodeOrLeaf(node, level, offset) { - return level === 0 ? - iterateLeaf(node, offset) : - iterateNode(node, level, offset); - } - - function iterateLeaf(node, offset) { - var array = offset === tailPos ? tail && tail.array : node && node.array; - var from = offset > left ? 0 : left - offset; - var to = right - offset; - if (to > SIZE) { - to = SIZE; - } - return function() { - if (from === to) { - return DONE; - } - var idx = reverse ? --to : from++; - return array && array[idx]; - }; - } - - function iterateNode(node, level, offset) { - var values; - var array = node && node.array; - var from = offset > left ? 0 : (left - offset) >> level; - var to = ((right - offset) >> level) + 1; - if (to > SIZE) { - to = SIZE; - } - return function() { - do { - if (values) { - var value = values(); - if (value !== DONE) { - return value; - } - values = null; - } - if (from === to) { - return DONE; - } - var idx = reverse ? --to : from++; - values = iterateNodeOrLeaf( - array && array[idx], level - SHIFT, offset + (idx << level) - ); - } while (true); - }; - } - } - - function makeList(origin, capacity, level, root, tail, ownerID, hash) { - var list = Object.create(ListPrototype); - list.size = capacity - origin; - list._origin = origin; - list._capacity = capacity; - list._level = level; - list._root = root; - list._tail = tail; - list.__ownerID = ownerID; - list.__hash = hash; - list.__altered = false; - return list; - } - - var EMPTY_LIST; - function emptyList() { - return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT)); - } - - function updateList(list, index, value) { - index = wrapIndex(list, index); - - if (index !== index) { - return list; - } - - if (index >= list.size || index < 0) { - return list.withMutations(function(list ) { - index < 0 ? - setListBounds(list, index).set(0, value) : - setListBounds(list, 0, index + 1).set(index, value) - }); - } - - index += list._origin; - - var newTail = list._tail; - var newRoot = list._root; - var didAlter = MakeRef(DID_ALTER); - if (index >= getTailOffset(list._capacity)) { - newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter); - } else { - newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter); - } - - if (!didAlter.value) { - return list; - } - - if (list.__ownerID) { - list._root = newRoot; - list._tail = newTail; - list.__hash = undefined; - list.__altered = true; - return list; - } - return makeList(list._origin, list._capacity, list._level, newRoot, newTail); - } - - function updateVNode(node, ownerID, level, index, value, didAlter) { - var idx = (index >>> level) & MASK; - var nodeHas = node && idx < node.array.length; - if (!nodeHas && value === undefined) { - return node; - } - - var newNode; - - if (level > 0) { - var lowerNode = node && node.array[idx]; - var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter); - if (newLowerNode === lowerNode) { - return node; - } - newNode = editableVNode(node, ownerID); - newNode.array[idx] = newLowerNode; - return newNode; - } - - if (nodeHas && node.array[idx] === value) { - return node; - } - - SetRef(didAlter); - - newNode = editableVNode(node, ownerID); - if (value === undefined && idx === newNode.array.length - 1) { - newNode.array.pop(); - } else { - newNode.array[idx] = value; - } - return newNode; - } - - function editableVNode(node, ownerID) { - if (ownerID && node && ownerID === node.ownerID) { - return node; - } - return new VNode(node ? node.array.slice() : [], ownerID); - } - - function listNodeFor(list, rawIndex) { - if (rawIndex >= getTailOffset(list._capacity)) { - return list._tail; - } - if (rawIndex < 1 << (list._level + SHIFT)) { - var node = list._root; - var level = list._level; - while (node && level > 0) { - node = node.array[(rawIndex >>> level) & MASK]; - level -= SHIFT; - } - return node; - } - } - - function setListBounds(list, begin, end) { - // Sanitize begin & end using this shorthand for ToInt32(argument) - // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 - if (begin !== undefined) { - begin = begin | 0; - } - if (end !== undefined) { - end = end | 0; - } - var owner = list.__ownerID || new OwnerID(); - var oldOrigin = list._origin; - var oldCapacity = list._capacity; - var newOrigin = oldOrigin + begin; - var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end; - if (newOrigin === oldOrigin && newCapacity === oldCapacity) { - return list; - } - - // If it's going to end after it starts, it's empty. - if (newOrigin >= newCapacity) { - return list.clear(); - } - - var newLevel = list._level; - var newRoot = list._root; - - // New origin might need creating a higher root. - var offsetShift = 0; - while (newOrigin + offsetShift < 0) { - newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner); - newLevel += SHIFT; - offsetShift += 1 << newLevel; - } - if (offsetShift) { - newOrigin += offsetShift; - oldOrigin += offsetShift; - newCapacity += offsetShift; - oldCapacity += offsetShift; - } - - var oldTailOffset = getTailOffset(oldCapacity); - var newTailOffset = getTailOffset(newCapacity); - - // New size might need creating a higher root. - while (newTailOffset >= 1 << (newLevel + SHIFT)) { - newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner); - newLevel += SHIFT; - } - - // Locate or create the new tail. - var oldTail = list._tail; - var newTail = newTailOffset < oldTailOffset ? - listNodeFor(list, newCapacity - 1) : - newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail; - - // Merge Tail into tree. - if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) { - newRoot = editableVNode(newRoot, owner); - var node = newRoot; - for (var level = newLevel; level > SHIFT; level -= SHIFT) { - var idx = (oldTailOffset >>> level) & MASK; - node = node.array[idx] = editableVNode(node.array[idx], owner); - } - node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail; - } - - // If the size has been reduced, there's a chance the tail needs to be trimmed. - if (newCapacity < oldCapacity) { - newTail = newTail && newTail.removeAfter(owner, 0, newCapacity); - } - - // If the new origin is within the tail, then we do not need a root. - if (newOrigin >= newTailOffset) { - newOrigin -= newTailOffset; - newCapacity -= newTailOffset; - newLevel = SHIFT; - newRoot = null; - newTail = newTail && newTail.removeBefore(owner, 0, newOrigin); - - // Otherwise, if the root has been trimmed, garbage collect. - } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) { - offsetShift = 0; - - // Identify the new top root node of the subtree of the old root. - while (newRoot) { - var beginIndex = (newOrigin >>> newLevel) & MASK; - if (beginIndex !== (newTailOffset >>> newLevel) & MASK) { - break; - } - if (beginIndex) { - offsetShift += (1 << newLevel) * beginIndex; - } - newLevel -= SHIFT; - newRoot = newRoot.array[beginIndex]; - } - - // Trim the new sides of the new root. - if (newRoot && newOrigin > oldOrigin) { - newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift); - } - if (newRoot && newTailOffset < oldTailOffset) { - newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift); - } - if (offsetShift) { - newOrigin -= offsetShift; - newCapacity -= offsetShift; - } - } - - if (list.__ownerID) { - list.size = newCapacity - newOrigin; - list._origin = newOrigin; - list._capacity = newCapacity; - list._level = newLevel; - list._root = newRoot; - list._tail = newTail; - list.__hash = undefined; - list.__altered = true; - return list; - } - return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail); - } - - function mergeIntoListWith(list, merger, iterables) { - var iters = []; - var maxSize = 0; - for (var ii = 0; ii < iterables.length; ii++) { - var value = iterables[ii]; - var iter = IndexedIterable(value); - if (iter.size > maxSize) { - maxSize = iter.size; - } - if (!isIterable(value)) { - iter = iter.map(function(v ) {return fromJS(v)}); - } - iters.push(iter); - } - if (maxSize > list.size) { - list = list.setSize(maxSize); - } - return mergeIntoCollectionWith(list, merger, iters); - } - - function getTailOffset(size) { - return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT); - } - - createClass(OrderedMap, src_Map__Map); - - // @pragma Construction - - function OrderedMap(value) { - return value === null || value === undefined ? emptyOrderedMap() : - isOrderedMap(value) ? value : - emptyOrderedMap().withMutations(function(map ) { - var iter = KeyedIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v, k) {return map.set(k, v)}); - }); - } - - OrderedMap.of = function(/*...values*/) { - return this(arguments); - }; - - OrderedMap.prototype.toString = function() { - return this.__toString('OrderedMap {', '}'); - }; - - // @pragma Access - - OrderedMap.prototype.get = function(k, notSetValue) { - var index = this._map.get(k); - return index !== undefined ? this._list.get(index)[1] : notSetValue; - }; - - // @pragma Modification - - OrderedMap.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = 0; - this._map.clear(); - this._list.clear(); - return this; - } - return emptyOrderedMap(); - }; - - OrderedMap.prototype.set = function(k, v) { - return updateOrderedMap(this, k, v); - }; - - OrderedMap.prototype.remove = function(k) { - return updateOrderedMap(this, k, NOT_SET); - }; - - OrderedMap.prototype.wasAltered = function() { - return this._map.wasAltered() || this._list.wasAltered(); - }; - - OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._list.__iterate( - function(entry ) {return entry && fn(entry[1], entry[0], this$0)}, - reverse - ); - }; - - OrderedMap.prototype.__iterator = function(type, reverse) { - return this._list.fromEntrySeq().__iterator(type, reverse); - }; - - OrderedMap.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - var newMap = this._map.__ensureOwner(ownerID); - var newList = this._list.__ensureOwner(ownerID); - if (!ownerID) { - this.__ownerID = ownerID; - this._map = newMap; - this._list = newList; - return this; - } - return makeOrderedMap(newMap, newList, ownerID, this.__hash); - }; - - - function isOrderedMap(maybeOrderedMap) { - return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap); - } - - OrderedMap.isOrderedMap = isOrderedMap; - - OrderedMap.prototype[IS_ORDERED_SENTINEL] = true; - OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove; - - - - function makeOrderedMap(map, list, ownerID, hash) { - var omap = Object.create(OrderedMap.prototype); - omap.size = map ? map.size : 0; - omap._map = map; - omap._list = list; - omap.__ownerID = ownerID; - omap.__hash = hash; - return omap; - } - - var EMPTY_ORDERED_MAP; - function emptyOrderedMap() { - return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList())); - } - - function updateOrderedMap(omap, k, v) { - var map = omap._map; - var list = omap._list; - var i = map.get(k); - var has = i !== undefined; - var newMap; - var newList; - if (v === NOT_SET) { // removed - if (!has) { - return omap; - } - if (list.size >= SIZE && list.size >= map.size * 2) { - newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx}); - newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap(); - if (omap.__ownerID) { - newMap.__ownerID = newList.__ownerID = omap.__ownerID; - } - } else { - newMap = map.remove(k); - newList = i === list.size - 1 ? list.pop() : list.set(i, undefined); - } - } else { - if (has) { - if (v === list.get(i)[1]) { - return omap; - } - newMap = map; - newList = list.set(i, [k, v]); - } else { - newMap = map.set(k, list.size); - newList = list.set(list.size, [k, v]); - } - } - if (omap.__ownerID) { - omap.size = newMap.size; - omap._map = newMap; - omap._list = newList; - omap.__hash = undefined; - return omap; - } - return makeOrderedMap(newMap, newList); - } - - createClass(Stack, IndexedCollection); - - // @pragma Construction - - function Stack(value) { - return value === null || value === undefined ? emptyStack() : - isStack(value) ? value : - emptyStack().unshiftAll(value); - } - - Stack.of = function(/*...values*/) { - return this(arguments); - }; - - Stack.prototype.toString = function() { - return this.__toString('Stack [', ']'); - }; - - // @pragma Access - - Stack.prototype.get = function(index, notSetValue) { - var head = this._head; - index = wrapIndex(this, index); - while (head && index--) { - head = head.next; - } - return head ? head.value : notSetValue; - }; - - Stack.prototype.peek = function() { - return this._head && this._head.value; - }; - - // @pragma Modification - - Stack.prototype.push = function(/*...values*/) { - if (arguments.length === 0) { - return this; - } - var newSize = this.size + arguments.length; - var head = this._head; - for (var ii = arguments.length - 1; ii >= 0; ii--) { - head = { - value: arguments[ii], - next: head - }; - } - if (this.__ownerID) { - this.size = newSize; - this._head = head; - this.__hash = undefined; - this.__altered = true; - return this; - } - return makeStack(newSize, head); - }; - - Stack.prototype.pushAll = function(iter) { - iter = IndexedIterable(iter); - if (iter.size === 0) { - return this; - } - assertNotInfinite(iter.size); - var newSize = this.size; - var head = this._head; - iter.reverse().forEach(function(value ) { - newSize++; - head = { - value: value, - next: head - }; - }); - if (this.__ownerID) { - this.size = newSize; - this._head = head; - this.__hash = undefined; - this.__altered = true; - return this; - } - return makeStack(newSize, head); - }; - - Stack.prototype.pop = function() { - return this.slice(1); - }; - - Stack.prototype.unshift = function(/*...values*/) { - return this.push.apply(this, arguments); - }; - - Stack.prototype.unshiftAll = function(iter) { - return this.pushAll(iter); - }; - - Stack.prototype.shift = function() { - return this.pop.apply(this, arguments); - }; - - Stack.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = 0; - this._head = undefined; - this.__hash = undefined; - this.__altered = true; - return this; - } - return emptyStack(); - }; - - Stack.prototype.slice = function(begin, end) { - if (wholeSlice(begin, end, this.size)) { - return this; - } - var resolvedBegin = resolveBegin(begin, this.size); - var resolvedEnd = resolveEnd(end, this.size); - if (resolvedEnd !== this.size) { - // super.slice(begin, end); - return IndexedCollection.prototype.slice.call(this, begin, end); - } - var newSize = this.size - resolvedBegin; - var head = this._head; - while (resolvedBegin--) { - head = head.next; - } - if (this.__ownerID) { - this.size = newSize; - this._head = head; - this.__hash = undefined; - this.__altered = true; - return this; - } - return makeStack(newSize, head); - }; - - // @pragma Mutability - - Stack.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - if (!ownerID) { - this.__ownerID = ownerID; - this.__altered = false; - return this; - } - return makeStack(this.size, this._head, ownerID, this.__hash); - }; - - // @pragma Iteration - - Stack.prototype.__iterate = function(fn, reverse) { - if (reverse) { - return this.reverse().__iterate(fn); - } - var iterations = 0; - var node = this._head; - while (node) { - if (fn(node.value, iterations++, this) === false) { - break; - } - node = node.next; - } - return iterations; - }; - - Stack.prototype.__iterator = function(type, reverse) { - if (reverse) { - return this.reverse().__iterator(type); - } - var iterations = 0; - var node = this._head; - return new src_Iterator__Iterator(function() { - if (node) { - var value = node.value; - node = node.next; - return iteratorValue(type, iterations++, value); - } - return iteratorDone(); - }); - }; - - - function isStack(maybeStack) { - return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]); - } - - Stack.isStack = isStack; - - var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@'; - - var StackPrototype = Stack.prototype; - StackPrototype[IS_STACK_SENTINEL] = true; - StackPrototype.withMutations = MapPrototype.withMutations; - StackPrototype.asMutable = MapPrototype.asMutable; - StackPrototype.asImmutable = MapPrototype.asImmutable; - StackPrototype.wasAltered = MapPrototype.wasAltered; - - - function makeStack(size, head, ownerID, hash) { - var map = Object.create(StackPrototype); - map.size = size; - map._head = head; - map.__ownerID = ownerID; - map.__hash = hash; - map.__altered = false; - return map; - } - - var EMPTY_STACK; - function emptyStack() { - return EMPTY_STACK || (EMPTY_STACK = makeStack(0)); - } - - createClass(src_Set__Set, SetCollection); - - // @pragma Construction - - function src_Set__Set(value) { - return value === null || value === undefined ? emptySet() : - isSet(value) && !isOrdered(value) ? value : - emptySet().withMutations(function(set ) { - var iter = SetIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v ) {return set.add(v)}); - }); - } - - src_Set__Set.of = function(/*...values*/) { - return this(arguments); - }; - - src_Set__Set.fromKeys = function(value) { - return this(KeyedIterable(value).keySeq()); - }; - - src_Set__Set.prototype.toString = function() { - return this.__toString('Set {', '}'); - }; - - // @pragma Access - - src_Set__Set.prototype.has = function(value) { - return this._map.has(value); - }; - - // @pragma Modification - - src_Set__Set.prototype.add = function(value) { - return updateSet(this, this._map.set(value, true)); - }; - - src_Set__Set.prototype.remove = function(value) { - return updateSet(this, this._map.remove(value)); - }; - - src_Set__Set.prototype.clear = function() { - return updateSet(this, this._map.clear()); - }; - - // @pragma Composition - - src_Set__Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0); - iters = iters.filter(function(x ) {return x.size !== 0}); - if (iters.length === 0) { - return this; - } - if (this.size === 0 && !this.__ownerID && iters.length === 1) { - return this.constructor(iters[0]); - } - return this.withMutations(function(set ) { - for (var ii = 0; ii < iters.length; ii++) { - SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)}); - } - }); - }; - - src_Set__Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0); - if (iters.length === 0) { - return this; - } - iters = iters.map(function(iter ) {return SetIterable(iter)}); - var originalSet = this; - return this.withMutations(function(set ) { - originalSet.forEach(function(value ) { - if (!iters.every(function(iter ) {return iter.includes(value)})) { - set.remove(value); - } - }); - }); - }; - - src_Set__Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0); - if (iters.length === 0) { - return this; - } - iters = iters.map(function(iter ) {return SetIterable(iter)}); - var originalSet = this; - return this.withMutations(function(set ) { - originalSet.forEach(function(value ) { - if (iters.some(function(iter ) {return iter.includes(value)})) { - set.remove(value); - } - }); - }); - }; - - src_Set__Set.prototype.merge = function() { - return this.union.apply(this, arguments); - }; - - src_Set__Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return this.union.apply(this, iters); - }; - - src_Set__Set.prototype.sort = function(comparator) { - // Late binding - return OrderedSet(sortFactory(this, comparator)); - }; - - src_Set__Set.prototype.sortBy = function(mapper, comparator) { - // Late binding - return OrderedSet(sortFactory(this, comparator, mapper)); - }; - - src_Set__Set.prototype.wasAltered = function() { - return this._map.wasAltered(); - }; - - src_Set__Set.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse); - }; - - src_Set__Set.prototype.__iterator = function(type, reverse) { - return this._map.map(function(_, k) {return k}).__iterator(type, reverse); - }; - - src_Set__Set.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - var newMap = this._map.__ensureOwner(ownerID); - if (!ownerID) { - this.__ownerID = ownerID; - this._map = newMap; - return this; - } - return this.__make(newMap, ownerID); - }; - - - function isSet(maybeSet) { - return !!(maybeSet && maybeSet[IS_SET_SENTINEL]); - } - - src_Set__Set.isSet = isSet; - - var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@'; - - var SetPrototype = src_Set__Set.prototype; - SetPrototype[IS_SET_SENTINEL] = true; - SetPrototype[DELETE] = SetPrototype.remove; - SetPrototype.mergeDeep = SetPrototype.merge; - SetPrototype.mergeDeepWith = SetPrototype.mergeWith; - SetPrototype.withMutations = MapPrototype.withMutations; - SetPrototype.asMutable = MapPrototype.asMutable; - SetPrototype.asImmutable = MapPrototype.asImmutable; - - SetPrototype.__empty = emptySet; - SetPrototype.__make = makeSet; - - function updateSet(set, newMap) { - if (set.__ownerID) { - set.size = newMap.size; - set._map = newMap; - return set; - } - return newMap === set._map ? set : - newMap.size === 0 ? set.__empty() : - set.__make(newMap); - } - - function makeSet(map, ownerID) { - var set = Object.create(SetPrototype); - set.size = map ? map.size : 0; - set._map = map; - set.__ownerID = ownerID; - return set; - } - - var EMPTY_SET; - function emptySet() { - return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap())); - } - - createClass(OrderedSet, src_Set__Set); - - // @pragma Construction - - function OrderedSet(value) { - return value === null || value === undefined ? emptyOrderedSet() : - isOrderedSet(value) ? value : - emptyOrderedSet().withMutations(function(set ) { - var iter = SetIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v ) {return set.add(v)}); - }); - } - - OrderedSet.of = function(/*...values*/) { - return this(arguments); - }; - - OrderedSet.fromKeys = function(value) { - return this(KeyedIterable(value).keySeq()); - }; - - OrderedSet.prototype.toString = function() { - return this.__toString('OrderedSet {', '}'); - }; - - - function isOrderedSet(maybeOrderedSet) { - return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet); - } - - OrderedSet.isOrderedSet = isOrderedSet; - - var OrderedSetPrototype = OrderedSet.prototype; - OrderedSetPrototype[IS_ORDERED_SENTINEL] = true; - - OrderedSetPrototype.__empty = emptyOrderedSet; - OrderedSetPrototype.__make = makeOrderedSet; - - function makeOrderedSet(map, ownerID) { - var set = Object.create(OrderedSetPrototype); - set.size = map ? map.size : 0; - set._map = map; - set.__ownerID = ownerID; - return set; - } - - var EMPTY_ORDERED_SET; - function emptyOrderedSet() { - return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap())); - } - - createClass(Record, KeyedCollection); - - function Record(defaultValues, name) { - var hasInitialized; - - var RecordType = function Record(values) { - if (values instanceof RecordType) { - return values; - } - if (!(this instanceof RecordType)) { - return new RecordType(values); - } - if (!hasInitialized) { - hasInitialized = true; - var keys = Object.keys(defaultValues); - setProps(RecordTypePrototype, keys); - RecordTypePrototype.size = keys.length; - RecordTypePrototype._name = name; - RecordTypePrototype._keys = keys; - RecordTypePrototype._defaultValues = defaultValues; - } - this._map = src_Map__Map(values); - }; - - var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype); - RecordTypePrototype.constructor = RecordType; - - return RecordType; - } - - Record.prototype.toString = function() { - return this.__toString(recordName(this) + ' {', '}'); - }; - - // @pragma Access - - Record.prototype.has = function(k) { - return this._defaultValues.hasOwnProperty(k); - }; - - Record.prototype.get = function(k, notSetValue) { - if (!this.has(k)) { - return notSetValue; - } - var defaultVal = this._defaultValues[k]; - return this._map ? this._map.get(k, defaultVal) : defaultVal; - }; - - // @pragma Modification - - Record.prototype.clear = function() { - if (this.__ownerID) { - this._map && this._map.clear(); - return this; - } - var RecordType = this.constructor; - return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap())); - }; - - Record.prototype.set = function(k, v) { - if (!this.has(k)) { - throw new Error('Cannot set unknown key "' + k + '" on ' + recordName(this)); - } - var newMap = this._map && this._map.set(k, v); - if (this.__ownerID || newMap === this._map) { - return this; - } - return makeRecord(this, newMap); - }; - - Record.prototype.remove = function(k) { - if (!this.has(k)) { - return this; - } - var newMap = this._map && this._map.remove(k); - if (this.__ownerID || newMap === this._map) { - return this; - } - return makeRecord(this, newMap); - }; - - Record.prototype.wasAltered = function() { - return this._map.wasAltered(); - }; - - Record.prototype.__iterator = function(type, reverse) {var this$0 = this; - return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse); - }; - - Record.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse); - }; - - Record.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - var newMap = this._map && this._map.__ensureOwner(ownerID); - if (!ownerID) { - this.__ownerID = ownerID; - this._map = newMap; - return this; - } - return makeRecord(this, newMap, ownerID); - }; - - - var RecordPrototype = Record.prototype; - RecordPrototype[DELETE] = RecordPrototype.remove; - RecordPrototype.deleteIn = - RecordPrototype.removeIn = MapPrototype.removeIn; - RecordPrototype.merge = MapPrototype.merge; - RecordPrototype.mergeWith = MapPrototype.mergeWith; - RecordPrototype.mergeIn = MapPrototype.mergeIn; - RecordPrototype.mergeDeep = MapPrototype.mergeDeep; - RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith; - RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; - RecordPrototype.setIn = MapPrototype.setIn; - RecordPrototype.update = MapPrototype.update; - RecordPrototype.updateIn = MapPrototype.updateIn; - RecordPrototype.withMutations = MapPrototype.withMutations; - RecordPrototype.asMutable = MapPrototype.asMutable; - RecordPrototype.asImmutable = MapPrototype.asImmutable; - - - function makeRecord(likeRecord, map, ownerID) { - var record = Object.create(Object.getPrototypeOf(likeRecord)); - record._map = map; - record.__ownerID = ownerID; - return record; - } - - function recordName(record) { - return record._name || record.constructor.name || 'Record'; - } - - function setProps(prototype, names) { - try { - names.forEach(setProp.bind(undefined, prototype)); - } catch (error) { - // Object.defineProperty failed. Probably IE8. - } - } - - function setProp(prototype, name) { - Object.defineProperty(prototype, name, { - get: function() { - return this.get(name); - }, - set: function(value) { - invariant(this.__ownerID, 'Cannot set on an immutable record.'); - this.set(name, value); - } - }); - } - - function deepEqual(a, b) { - if (a === b) { - return true; - } - - if ( - !isIterable(b) || - a.size !== undefined && b.size !== undefined && a.size !== b.size || - a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash || - isKeyed(a) !== isKeyed(b) || - isIndexed(a) !== isIndexed(b) || - isOrdered(a) !== isOrdered(b) - ) { - return false; - } - - if (a.size === 0 && b.size === 0) { - return true; - } - - var notAssociative = !isAssociative(a); - - if (isOrdered(a)) { - var entries = a.entries(); - return b.every(function(v, k) { - var entry = entries.next().value; - return entry && is(entry[1], v) && (notAssociative || is(entry[0], k)); - }) && entries.next().done; - } - - var flipped = false; - - if (a.size === undefined) { - if (b.size === undefined) { - if (typeof a.cacheResult === 'function') { - a.cacheResult(); - } - } else { - flipped = true; - var _ = a; - a = b; - b = _; - } - } - - var allEqual = true; - var bSize = b.__iterate(function(v, k) { - if (notAssociative ? !a.has(v) : - flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) { - allEqual = false; - return false; - } - }); - - return allEqual && a.size === bSize; - } - - createClass(Range, IndexedSeq); - - function Range(start, end, step) { - if (!(this instanceof Range)) { - return new Range(start, end, step); - } - invariant(step !== 0, 'Cannot step a Range by 0'); - start = start || 0; - if (end === undefined) { - end = Infinity; - } - step = step === undefined ? 1 : Math.abs(step); - if (end < start) { - step = -step; - } - this._start = start; - this._end = end; - this._step = step; - this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1); - if (this.size === 0) { - if (EMPTY_RANGE) { - return EMPTY_RANGE; - } - EMPTY_RANGE = this; - } - } - - Range.prototype.toString = function() { - if (this.size === 0) { - return 'Range []'; - } - return 'Range [ ' + - this._start + '...' + this._end + - (this._step > 1 ? ' by ' + this._step : '') + - ' ]'; - }; - - Range.prototype.get = function(index, notSetValue) { - return this.has(index) ? - this._start + wrapIndex(this, index) * this._step : - notSetValue; - }; - - Range.prototype.includes = function(searchValue) { - var possibleIndex = (searchValue - this._start) / this._step; - return possibleIndex >= 0 && - possibleIndex < this.size && - possibleIndex === Math.floor(possibleIndex); - }; - - Range.prototype.slice = function(begin, end) { - if (wholeSlice(begin, end, this.size)) { - return this; - } - begin = resolveBegin(begin, this.size); - end = resolveEnd(end, this.size); - if (end <= begin) { - return new Range(0, 0); - } - return new Range(this.get(begin, this._end), this.get(end, this._end), this._step); - }; - - Range.prototype.indexOf = function(searchValue) { - var offsetValue = searchValue - this._start; - if (offsetValue % this._step === 0) { - var index = offsetValue / this._step; - if (index >= 0 && index < this.size) { - return index - } - } - return -1; - }; - - Range.prototype.lastIndexOf = function(searchValue) { - return this.indexOf(searchValue); - }; - - Range.prototype.__iterate = function(fn, reverse) { - var maxIndex = this.size - 1; - var step = this._step; - var value = reverse ? this._start + maxIndex * step : this._start; - for (var ii = 0; ii <= maxIndex; ii++) { - if (fn(value, ii, this) === false) { - return ii + 1; - } - value += reverse ? -step : step; - } - return ii; - }; - - Range.prototype.__iterator = function(type, reverse) { - var maxIndex = this.size - 1; - var step = this._step; - var value = reverse ? this._start + maxIndex * step : this._start; - var ii = 0; - return new src_Iterator__Iterator(function() { - var v = value; - value += reverse ? -step : step; - return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v); - }); - }; - - Range.prototype.equals = function(other) { - return other instanceof Range ? - this._start === other._start && - this._end === other._end && - this._step === other._step : - deepEqual(this, other); - }; - - - var EMPTY_RANGE; - - createClass(Repeat, IndexedSeq); - - function Repeat(value, times) { - if (!(this instanceof Repeat)) { - return new Repeat(value, times); - } - this._value = value; - this.size = times === undefined ? Infinity : Math.max(0, times); - if (this.size === 0) { - if (EMPTY_REPEAT) { - return EMPTY_REPEAT; - } - EMPTY_REPEAT = this; - } - } - - Repeat.prototype.toString = function() { - if (this.size === 0) { - return 'Repeat []'; - } - return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]'; - }; - - Repeat.prototype.get = function(index, notSetValue) { - return this.has(index) ? this._value : notSetValue; - }; - - Repeat.prototype.includes = function(searchValue) { - return is(this._value, searchValue); - }; - - Repeat.prototype.slice = function(begin, end) { - var size = this.size; - return wholeSlice(begin, end, size) ? this : - new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size)); - }; - - Repeat.prototype.reverse = function() { - return this; - }; - - Repeat.prototype.indexOf = function(searchValue) { - if (is(this._value, searchValue)) { - return 0; - } - return -1; - }; - - Repeat.prototype.lastIndexOf = function(searchValue) { - if (is(this._value, searchValue)) { - return this.size; - } - return -1; - }; - - Repeat.prototype.__iterate = function(fn, reverse) { - for (var ii = 0; ii < this.size; ii++) { - if (fn(this._value, ii, this) === false) { - return ii + 1; - } - } - return ii; - }; - - Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this; - var ii = 0; - return new src_Iterator__Iterator(function() - {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()} - ); - }; - - Repeat.prototype.equals = function(other) { - return other instanceof Repeat ? - is(this._value, other._value) : - deepEqual(other); - }; - - - var EMPTY_REPEAT; - - /** - * Contributes additional methods to a constructor - */ - function mixin(ctor, methods) { - var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; }; - Object.keys(methods).forEach(keyCopier); - Object.getOwnPropertySymbols && - Object.getOwnPropertySymbols(methods).forEach(keyCopier); - return ctor; - } - - Iterable.Iterator = src_Iterator__Iterator; - - mixin(Iterable, { - - // ### Conversion to other types - - toArray: function() { - assertNotInfinite(this.size); - var array = new Array(this.size || 0); - this.valueSeq().__iterate(function(v, i) { array[i] = v; }); - return array; - }, - - toIndexedSeq: function() { - return new ToIndexedSequence(this); - }, - - toJS: function() { - return this.toSeq().map( - function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value} - ).__toJS(); - }, - - toJSON: function() { - return this.toSeq().map( - function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value} - ).__toJS(); - }, - - toKeyedSeq: function() { - return new ToKeyedSequence(this, true); - }, - - toMap: function() { - // Use Late Binding here to solve the circular dependency. - return src_Map__Map(this.toKeyedSeq()); - }, - - toObject: function() { - assertNotInfinite(this.size); - var object = {}; - this.__iterate(function(v, k) { object[k] = v; }); - return object; - }, - - toOrderedMap: function() { - // Use Late Binding here to solve the circular dependency. - return OrderedMap(this.toKeyedSeq()); - }, - - toOrderedSet: function() { - // Use Late Binding here to solve the circular dependency. - return OrderedSet(isKeyed(this) ? this.valueSeq() : this); - }, - - toSet: function() { - // Use Late Binding here to solve the circular dependency. - return src_Set__Set(isKeyed(this) ? this.valueSeq() : this); - }, - - toSetSeq: function() { - return new ToSetSequence(this); - }, - - toSeq: function() { - return isIndexed(this) ? this.toIndexedSeq() : - isKeyed(this) ? this.toKeyedSeq() : - this.toSetSeq(); - }, - - toStack: function() { - // Use Late Binding here to solve the circular dependency. - return Stack(isKeyed(this) ? this.valueSeq() : this); - }, - - toList: function() { - // Use Late Binding here to solve the circular dependency. - return List(isKeyed(this) ? this.valueSeq() : this); - }, - - - // ### Common JavaScript methods and properties - - toString: function() { - return '[Iterable]'; - }, - - __toString: function(head, tail) { - if (this.size === 0) { - return head + tail; - } - return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail; - }, - - - // ### ES6 Collection methods (ES6 Array and Map) - - concat: function() {var values = SLICE$0.call(arguments, 0); - return reify(this, concatFactory(this, values)); - }, - - includes: function(searchValue) { - return this.some(function(value ) {return is(value, searchValue)}); - }, - - entries: function() { - return this.__iterator(ITERATE_ENTRIES); - }, - - every: function(predicate, context) { - assertNotInfinite(this.size); - var returnValue = true; - this.__iterate(function(v, k, c) { - if (!predicate.call(context, v, k, c)) { - returnValue = false; - return false; - } - }); - return returnValue; - }, - - filter: function(predicate, context) { - return reify(this, filterFactory(this, predicate, context, true)); - }, - - find: function(predicate, context, notSetValue) { - var entry = this.findEntry(predicate, context); - return entry ? entry[1] : notSetValue; - }, - - findEntry: function(predicate, context) { - var found; - this.__iterate(function(v, k, c) { - if (predicate.call(context, v, k, c)) { - found = [k, v]; - return false; - } - }); - return found; - }, - - findLastEntry: function(predicate, context) { - return this.toSeq().reverse().findEntry(predicate, context); - }, - - forEach: function(sideEffect, context) { - assertNotInfinite(this.size); - return this.__iterate(context ? sideEffect.bind(context) : sideEffect); - }, - - join: function(separator) { - assertNotInfinite(this.size); - separator = separator !== undefined ? '' + separator : ','; - var joined = ''; - var isFirst = true; - this.__iterate(function(v ) { - isFirst ? (isFirst = false) : (joined += separator); - joined += v !== null && v !== undefined ? v.toString() : ''; - }); - return joined; - }, - - keys: function() { - return this.__iterator(ITERATE_KEYS); - }, - - map: function(mapper, context) { - return reify(this, mapFactory(this, mapper, context)); - }, - - reduce: function(reducer, initialReduction, context) { - assertNotInfinite(this.size); - var reduction; - var useFirst; - if (arguments.length < 2) { - useFirst = true; - } else { - reduction = initialReduction; - } - this.__iterate(function(v, k, c) { - if (useFirst) { - useFirst = false; - reduction = v; - } else { - reduction = reducer.call(context, reduction, v, k, c); - } - }); - return reduction; - }, - - reduceRight: function(reducer, initialReduction, context) { - var reversed = this.toKeyedSeq().reverse(); - return reversed.reduce.apply(reversed, arguments); - }, - - reverse: function() { - return reify(this, reverseFactory(this, true)); - }, - - slice: function(begin, end) { - return reify(this, sliceFactory(this, begin, end, true)); - }, - - some: function(predicate, context) { - return !this.every(not(predicate), context); - }, - - sort: function(comparator) { - return reify(this, sortFactory(this, comparator)); - }, - - values: function() { - return this.__iterator(ITERATE_VALUES); - }, - - - // ### More sequential methods - - butLast: function() { - return this.slice(0, -1); - }, - - isEmpty: function() { - return this.size !== undefined ? this.size === 0 : !this.some(function() {return true}); - }, - - count: function(predicate, context) { - return ensureSize( - predicate ? this.toSeq().filter(predicate, context) : this - ); - }, - - countBy: function(grouper, context) { - return countByFactory(this, grouper, context); - }, - - equals: function(other) { - return deepEqual(this, other); - }, - - entrySeq: function() { - var iterable = this; - if (iterable._cache) { - // We cache as an entries array, so we can just return the cache! - return new ArraySeq(iterable._cache); - } - var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq(); - entriesSequence.fromEntrySeq = function() {return iterable.toSeq()}; - return entriesSequence; - }, - - filterNot: function(predicate, context) { - return this.filter(not(predicate), context); - }, - - findLast: function(predicate, context, notSetValue) { - return this.toKeyedSeq().reverse().find(predicate, context, notSetValue); - }, - - first: function() { - return this.find(returnTrue); - }, - - flatMap: function(mapper, context) { - return reify(this, flatMapFactory(this, mapper, context)); - }, - - flatten: function(depth) { - return reify(this, flattenFactory(this, depth, true)); - }, - - fromEntrySeq: function() { - return new FromEntriesSequence(this); - }, - - get: function(searchKey, notSetValue) { - return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue); - }, - - getIn: function(searchKeyPath, notSetValue) { - var nested = this; - // Note: in an ES6 environment, we would prefer: - // for (var key of searchKeyPath) { - var iter = forceIterator(searchKeyPath); - var step; - while (!(step = iter.next()).done) { - var key = step.value; - nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET; - if (nested === NOT_SET) { - return notSetValue; - } - } - return nested; - }, - - groupBy: function(grouper, context) { - return groupByFactory(this, grouper, context); - }, - - has: function(searchKey) { - return this.get(searchKey, NOT_SET) !== NOT_SET; - }, - - hasIn: function(searchKeyPath) { - return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET; - }, - - isSubset: function(iter) { - iter = typeof iter.includes === 'function' ? iter : Iterable(iter); - return this.every(function(value ) {return iter.includes(value)}); - }, - - isSuperset: function(iter) { - iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter); - return iter.isSubset(this); - }, - - keySeq: function() { - return this.toSeq().map(keyMapper).toIndexedSeq(); - }, - - last: function() { - return this.toSeq().reverse().first(); - }, - - max: function(comparator) { - return maxFactory(this, comparator); - }, - - maxBy: function(mapper, comparator) { - return maxFactory(this, comparator, mapper); - }, - - min: function(comparator) { - return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator); - }, - - minBy: function(mapper, comparator) { - return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper); - }, - - rest: function() { - return this.slice(1); - }, - - skip: function(amount) { - return this.slice(Math.max(0, amount)); - }, - - skipLast: function(amount) { - return reify(this, this.toSeq().reverse().skip(amount).reverse()); - }, - - skipWhile: function(predicate, context) { - return reify(this, skipWhileFactory(this, predicate, context, true)); - }, - - skipUntil: function(predicate, context) { - return this.skipWhile(not(predicate), context); - }, - - sortBy: function(mapper, comparator) { - return reify(this, sortFactory(this, comparator, mapper)); - }, - - take: function(amount) { - return this.slice(0, Math.max(0, amount)); - }, - - takeLast: function(amount) { - return reify(this, this.toSeq().reverse().take(amount).reverse()); - }, - - takeWhile: function(predicate, context) { - return reify(this, takeWhileFactory(this, predicate, context)); - }, - - takeUntil: function(predicate, context) { - return this.takeWhile(not(predicate), context); - }, - - valueSeq: function() { - return this.toIndexedSeq(); - }, - - - // ### Hashable Object - - hashCode: function() { - return this.__hash || (this.__hash = hashIterable(this)); - } - - - // ### Internal - - // abstract __iterate(fn, reverse) - - // abstract __iterator(type, reverse) - }); - - // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; - // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; - // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; - // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; - - var IterablePrototype = Iterable.prototype; - IterablePrototype[IS_ITERABLE_SENTINEL] = true; - IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values; - IterablePrototype.__toJS = IterablePrototype.toArray; - IterablePrototype.__toStringMapper = quoteString; - IterablePrototype.inspect = - IterablePrototype.toSource = function() { return this.toString(); }; - IterablePrototype.chain = IterablePrototype.flatMap; - IterablePrototype.contains = IterablePrototype.includes; - - // Temporary warning about using length - (function () { - try { - Object.defineProperty(IterablePrototype, 'length', { - get: function () { - if (!Iterable.noLengthWarning) { - var stack; - try { - throw new Error(); - } catch (error) { - stack = error.stack; - } - if (stack.indexOf('_wrapObject') === -1) { - console && console.warn && console.warn( - 'iterable.length has been deprecated, '+ - 'use iterable.size or iterable.count(). '+ - 'This warning will become a silent error in a future version. ' + - stack - ); - return this.size; - } - } - } - }); - } catch (e) {} - })(); - - - - mixin(KeyedIterable, { - - // ### More sequential methods - - flip: function() { - return reify(this, flipFactory(this)); - }, - - findKey: function(predicate, context) { - var entry = this.findEntry(predicate, context); - return entry && entry[0]; - }, - - findLastKey: function(predicate, context) { - return this.toSeq().reverse().findKey(predicate, context); - }, - - keyOf: function(searchValue) { - return this.findKey(function(value ) {return is(value, searchValue)}); - }, - - lastKeyOf: function(searchValue) { - return this.findLastKey(function(value ) {return is(value, searchValue)}); - }, - - mapEntries: function(mapper, context) {var this$0 = this; - var iterations = 0; - return reify(this, - this.toSeq().map( - function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)} - ).fromEntrySeq() - ); - }, - - mapKeys: function(mapper, context) {var this$0 = this; - return reify(this, - this.toSeq().flip().map( - function(k, v) {return mapper.call(context, k, v, this$0)} - ).flip() - ); - } - - }); - - var KeyedIterablePrototype = KeyedIterable.prototype; - KeyedIterablePrototype[IS_KEYED_SENTINEL] = true; - KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries; - KeyedIterablePrototype.__toJS = IterablePrototype.toObject; - KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)}; - - - - mixin(IndexedIterable, { - - // ### Conversion to other types - - toKeyedSeq: function() { - return new ToKeyedSequence(this, false); - }, - - - // ### ES6 Collection methods (ES6 Array and Map) - - filter: function(predicate, context) { - return reify(this, filterFactory(this, predicate, context, false)); - }, - - findIndex: function(predicate, context) { - var entry = this.findEntry(predicate, context); - return entry ? entry[0] : -1; - }, - - indexOf: function(searchValue) { - var key = this.toKeyedSeq().keyOf(searchValue); - return key === undefined ? -1 : key; - }, - - lastIndexOf: function(searchValue) { - return this.toSeq().reverse().indexOf(searchValue); - }, - - reverse: function() { - return reify(this, reverseFactory(this, false)); - }, - - slice: function(begin, end) { - return reify(this, sliceFactory(this, begin, end, false)); - }, - - splice: function(index, removeNum /*, ...values*/) { - var numArgs = arguments.length; - removeNum = Math.max(removeNum | 0, 0); - if (numArgs === 0 || (numArgs === 2 && !removeNum)) { - return this; - } - // If index is negative, it should resolve relative to the size of the - // collection. However size may be expensive to compute if not cached, so - // only call count() if the number is in fact negative. - index = resolveBegin(index, index < 0 ? this.count() : this.size); - var spliced = this.slice(0, index); - return reify( - this, - numArgs === 1 ? - spliced : - spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum)) - ); - }, - - - // ### More collection methods - - findLastIndex: function(predicate, context) { - var key = this.toKeyedSeq().findLastKey(predicate, context); - return key === undefined ? -1 : key; - }, - - first: function() { - return this.get(0); - }, - - flatten: function(depth) { - return reify(this, flattenFactory(this, depth, false)); - }, - - get: function(index, notSetValue) { - index = wrapIndex(this, index); - return (index < 0 || (this.size === Infinity || - (this.size !== undefined && index > this.size))) ? - notSetValue : - this.find(function(_, key) {return key === index}, undefined, notSetValue); - }, - - has: function(index) { - index = wrapIndex(this, index); - return index >= 0 && (this.size !== undefined ? - this.size === Infinity || index < this.size : - this.indexOf(index) !== -1 - ); - }, - - interpose: function(separator) { - return reify(this, interposeFactory(this, separator)); - }, - - interleave: function(/*...iterables*/) { - var iterables = [this].concat(arrCopy(arguments)); - var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables); - var interleaved = zipped.flatten(true); - if (zipped.size) { - interleaved.size = zipped.size * iterables.length; - } - return reify(this, interleaved); - }, - - last: function() { - return this.get(-1); - }, - - skipWhile: function(predicate, context) { - return reify(this, skipWhileFactory(this, predicate, context, false)); - }, - - zip: function(/*, ...iterables */) { - var iterables = [this].concat(arrCopy(arguments)); - return reify(this, zipWithFactory(this, defaultZipper, iterables)); - }, - - zipWith: function(zipper/*, ...iterables */) { - var iterables = arrCopy(arguments); - iterables[0] = this; - return reify(this, zipWithFactory(this, zipper, iterables)); - } - - }); - - IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true; - IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true; - - - - mixin(SetIterable, { - - // ### ES6 Collection methods (ES6 Array and Map) - - get: function(value, notSetValue) { - return this.has(value) ? value : notSetValue; - }, - - includes: function(value) { - return this.has(value); - }, - - - // ### More sequential methods - - keySeq: function() { - return this.valueSeq(); - } - - }); - - SetIterable.prototype.has = IterablePrototype.includes; - - - // Mixin subclasses - - mixin(KeyedSeq, KeyedIterable.prototype); - mixin(IndexedSeq, IndexedIterable.prototype); - mixin(SetSeq, SetIterable.prototype); - - mixin(KeyedCollection, KeyedIterable.prototype); - mixin(IndexedCollection, IndexedIterable.prototype); - mixin(SetCollection, SetIterable.prototype); - - - // #pragma Helper functions - - function keyMapper(v, k) { - return k; - } - - function entryMapper(v, k) { - return [k, v]; - } - - function not(predicate) { - return function() { - return !predicate.apply(this, arguments); - } - } - - function neg(predicate) { - return function() { - return -predicate.apply(this, arguments); - } - } - - function quoteString(value) { - return typeof value === 'string' ? JSON.stringify(value) : value; - } - - function defaultZipper() { - return arrCopy(arguments); - } - - function defaultNegComparator(a, b) { - return a < b ? 1 : a > b ? -1 : 0; - } - - function hashIterable(iterable) { - if (iterable.size === Infinity) { - return 0; - } - var ordered = isOrdered(iterable); - var keyed = isKeyed(iterable); - var h = ordered ? 1 : 0; - var size = iterable.__iterate( - keyed ? - ordered ? - function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } : - function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } : - ordered ? - function(v ) { h = 31 * h + hash(v) | 0; } : - function(v ) { h = h + hash(v) | 0; } - ); - return murmurHashOfSize(size, h); - } - - function murmurHashOfSize(size, h) { - h = src_Math__imul(h, 0xCC9E2D51); - h = src_Math__imul(h << 15 | h >>> -15, 0x1B873593); - h = src_Math__imul(h << 13 | h >>> -13, 5); - h = (h + 0xE6546B64 | 0) ^ size; - h = src_Math__imul(h ^ h >>> 16, 0x85EBCA6B); - h = src_Math__imul(h ^ h >>> 13, 0xC2B2AE35); - h = smi(h ^ h >>> 16); - return h; - } - - function hashMerge(a, b) { - return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int - } - - var Immutable = { - - Iterable: Iterable, - - Seq: Seq, - Collection: Collection, - Map: src_Map__Map, - OrderedMap: OrderedMap, - List: List, - Stack: Stack, - Set: src_Set__Set, - OrderedSet: OrderedSet, - - Record: Record, - Range: Range, - Repeat: Repeat, - - is: is, - fromJS: fromJS - - }; - - return Immutable; - -})); -},{}],4:[function(require,module,exports){ -/** Used as the `TypeError` message for "Functions" methods. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeMax = Math.max; - -/** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as an array. - * - * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters). - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.restParam(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ -function restParam(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - rest = Array(length); - - while (++index < length) { - rest[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, rest); - case 1: return func.call(this, args[0], rest); - case 2: return func.call(this, args[0], args[1], rest); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = rest; - return func.apply(this, otherArgs); - }; -} - -module.exports = restParam; - -},{}],5:[function(require,module,exports){ -(function (global){ -var cachePush = require('./cachePush'), - getNative = require('./getNative'); - -/** Native method references. */ -var Set = getNative(global, 'Set'); - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeCreate = getNative(Object, 'create'); - -/** - * - * Creates a cache object to store unique values. - * - * @private - * @param {Array} [values] The values to cache. - */ -function SetCache(values) { - var length = values ? values.length : 0; - - this.data = { 'hash': nativeCreate(null), 'set': new Set }; - while (length--) { - this.push(values[length]); - } -} - -// Add functions to the `Set` cache. -SetCache.prototype.push = cachePush; - -module.exports = SetCache; - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./cachePush":17,"./getNative":23}],6:[function(require,module,exports){ -/** - * A specialized version of `_.map` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ -function arrayMap(array, iteratee) { - var index = -1, - length = array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; -} - -module.exports = arrayMap; - -},{}],7:[function(require,module,exports){ -/** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ -function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; -} - -module.exports = arrayPush; - -},{}],8:[function(require,module,exports){ -var baseIndexOf = require('./baseIndexOf'), - cacheIndexOf = require('./cacheIndexOf'), - createCache = require('./createCache'); - -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; - -/** - * The base implementation of `_.difference` which accepts a single array - * of values to exclude. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @returns {Array} Returns the new array of filtered values. - */ -function baseDifference(array, values) { - var length = array ? array.length : 0, - result = []; - - if (!length) { - return result; - } - var index = -1, - indexOf = baseIndexOf, - isCommon = true, - cache = (isCommon && values.length >= LARGE_ARRAY_SIZE) ? createCache(values) : null, - valuesLength = values.length; - - if (cache) { - indexOf = cacheIndexOf; - isCommon = false; - values = cache; - } - outer: - while (++index < length) { - var value = array[index]; - - if (isCommon && value === value) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === value) { - continue outer; - } - } - result.push(value); - } - else if (indexOf(values, value, 0) < 0) { - result.push(value); - } - } - return result; -} - -module.exports = baseDifference; - -},{"./baseIndexOf":12,"./cacheIndexOf":16,"./createCache":19}],9:[function(require,module,exports){ -var arrayPush = require('./arrayPush'), - isArguments = require('../lang/isArguments'), - isArray = require('../lang/isArray'), - isArrayLike = require('./isArrayLike'), - isObjectLike = require('./isObjectLike'); - -/** - * The base implementation of `_.flatten` with added support for restricting - * flattening and specifying the start index. - * - * @private - * @param {Array} array The array to flatten. - * @param {boolean} [isDeep] Specify a deep flatten. - * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ -function baseFlatten(array, isDeep, isStrict, result) { - result || (result = []); - - var index = -1, - length = array.length; - - while (++index < length) { - var value = array[index]; - if (isObjectLike(value) && isArrayLike(value) && - (isStrict || isArray(value) || isArguments(value))) { - if (isDeep) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, isDeep, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; -} - -module.exports = baseFlatten; - -},{"../lang/isArguments":33,"../lang/isArray":34,"./arrayPush":7,"./isArrayLike":25,"./isObjectLike":29}],10:[function(require,module,exports){ -var createBaseFor = require('./createBaseFor'); - -/** - * The base implementation of `baseForIn` and `baseForOwn` which iterates - * over `object` properties returned by `keysFunc` invoking `iteratee` for - * each property. Iteratee functions may exit iteration early by explicitly - * returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ -var baseFor = createBaseFor(); - -module.exports = baseFor; - -},{"./createBaseFor":18}],11:[function(require,module,exports){ -var baseFor = require('./baseFor'), - keysIn = require('../object/keysIn'); - -/** - * The base implementation of `_.forIn` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ -function baseForIn(object, iteratee) { - return baseFor(object, iteratee, keysIn); -} - -module.exports = baseForIn; - -},{"../object/keysIn":38,"./baseFor":10}],12:[function(require,module,exports){ -var indexOfNaN = require('./indexOfNaN'); - -/** - * The base implementation of `_.indexOf` without support for binary searches. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; -} - -module.exports = baseIndexOf; - -},{"./indexOfNaN":24}],13:[function(require,module,exports){ -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} - -module.exports = baseProperty; - -},{}],14:[function(require,module,exports){ -/** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ -function baseToString(value) { - return value == null ? '' : (value + ''); -} - -module.exports = baseToString; - -},{}],15:[function(require,module,exports){ -var identity = require('../utility/identity'); - -/** - * A specialized version of `baseCallback` which only supports `this` binding - * and specifying the number of arguments to provide to `func`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ -function bindCallback(func, thisArg, argCount) { - if (typeof func != 'function') { - return identity; - } - if (thisArg === undefined) { - return func; - } - switch (argCount) { - case 1: return function(value) { - return func.call(thisArg, value); - }; - case 3: return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(thisArg, accumulator, value, index, collection); - }; - case 5: return function(value, other, key, object, source) { - return func.call(thisArg, value, other, key, object, source); - }; - } - return function() { - return func.apply(thisArg, arguments); - }; -} - -module.exports = bindCallback; - -},{"../utility/identity":43}],16:[function(require,module,exports){ -var isObject = require('../lang/isObject'); - -/** - * Checks if `value` is in `cache` mimicking the return signature of - * `_.indexOf` by returning `0` if the value is found, else `-1`. - * - * @private - * @param {Object} cache The cache to search. - * @param {*} value The value to search for. - * @returns {number} Returns `0` if `value` is found, else `-1`. - */ -function cacheIndexOf(cache, value) { - var data = cache.data, - result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; - - return result ? 0 : -1; -} - -module.exports = cacheIndexOf; - -},{"../lang/isObject":37}],17:[function(require,module,exports){ -var isObject = require('../lang/isObject'); - -/** - * Adds `value` to the cache. - * - * @private - * @name push - * @memberOf SetCache - * @param {*} value The value to cache. - */ -function cachePush(value) { - var data = this.data; - if (typeof value == 'string' || isObject(value)) { - data.set.add(value); - } else { - data.hash[value] = true; - } -} - -module.exports = cachePush; - -},{"../lang/isObject":37}],18:[function(require,module,exports){ -var toObject = require('./toObject'); - -/** - * Creates a base function for `_.forIn` or `_.forInRight`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ -function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var iterable = toObject(object), - props = keysFunc(object), - length = props.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length)) { - var key = props[index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; -} - -module.exports = createBaseFor; - -},{"./toObject":32}],19:[function(require,module,exports){ -(function (global){ -var SetCache = require('./SetCache'), - getNative = require('./getNative'); - -/** Native method references. */ -var Set = getNative(global, 'Set'); - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeCreate = getNative(Object, 'create'); - -/** - * Creates a `Set` cache object to optimize linear searches of large arrays. - * - * @private - * @param {Array} [values] The values to cache. - * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. - */ -function createCache(values) { - return (nativeCreate && Set) ? new SetCache(values) : null; -} - -module.exports = createCache; - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./SetCache":5,"./getNative":23}],20:[function(require,module,exports){ -var deburr = require('../string/deburr'), - words = require('../string/words'); - -/** - * Creates a function that produces compound words out of the words in a - * given string. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ -function createCompounder(callback) { - return function(string) { - var index = -1, - array = words(deburr(string)), - length = array.length, - result = ''; - - while (++index < length) { - result = callback(result, array[index], index); - } - return result; - }; -} - -module.exports = createCompounder; - -},{"../string/deburr":41,"../string/words":42}],21:[function(require,module,exports){ -/** Used to map latin-1 supplementary letters to basic latin letters. */ -var deburredLetters = { - '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', - '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', - '\xc7': 'C', '\xe7': 'c', - '\xd0': 'D', '\xf0': 'd', - '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', - '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', - '\xcC': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', - '\xeC': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', - '\xd1': 'N', '\xf1': 'n', - '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', - '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', - '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', - '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', - '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', - '\xc6': 'Ae', '\xe6': 'ae', - '\xde': 'Th', '\xfe': 'th', - '\xdf': 'ss' -}; - -/** - * Used by `_.deburr` to convert latin-1 supplementary letters to basic latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ -function deburrLetter(letter) { - return deburredLetters[letter]; -} - -module.exports = deburrLetter; - -},{}],22:[function(require,module,exports){ -var baseProperty = require('./baseProperty'); - -/** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ -var getLength = baseProperty('length'); - -module.exports = getLength; - -},{"./baseProperty":13}],23:[function(require,module,exports){ -var isNative = require('../lang/isNative'); - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; -} - -module.exports = getNative; - -},{"../lang/isNative":36}],24:[function(require,module,exports){ -/** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * - * @private - * @param {Array} array The array to search. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ -function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 0 : -1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; -} - -module.exports = indexOfNaN; - -},{}],25:[function(require,module,exports){ -var getLength = require('./getLength'), - isLength = require('./isLength'); - -/** - * Checks if `value` is array-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - */ -function isArrayLike(value) { - return value != null && isLength(getLength(value)); -} - -module.exports = isArrayLike; - -},{"./getLength":22,"./isLength":28}],26:[function(require,module,exports){ -/** Used to detect unsigned integer values. */ -var reIsUint = /^\d+$/; - -/** - * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) - * of an array-like value. - */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ -function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; -} - -module.exports = isIndex; - -},{}],27:[function(require,module,exports){ -var isArrayLike = require('./isArrayLike'), - isIndex = require('./isIndex'), - isObject = require('../lang/isObject'); - -/** - * Checks if the provided arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. - */ -function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object)) { - var other = object[index]; - return value === value ? (value === other) : (other !== other); - } - return false; -} - -module.exports = isIterateeCall; - -},{"../lang/isObject":37,"./isArrayLike":25,"./isIndex":26}],28:[function(require,module,exports){ -/** - * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) - * of an array-like value. - */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ -function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -module.exports = isLength; - -},{}],29:[function(require,module,exports){ -/** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -module.exports = isObjectLike; - -},{}],30:[function(require,module,exports){ -var toObject = require('./toObject'); - -/** - * A specialized version of `_.pick` which picks `object` properties specified - * by `props`. - * - * @private - * @param {Object} object The source object. - * @param {string[]} props The property names to pick. - * @returns {Object} Returns the new object. - */ -function pickByArray(object, props) { - object = toObject(object); - - var index = -1, - length = props.length, - result = {}; - - while (++index < length) { - var key = props[index]; - if (key in object) { - result[key] = object[key]; - } - } - return result; -} - -module.exports = pickByArray; - -},{"./toObject":32}],31:[function(require,module,exports){ -var baseForIn = require('./baseForIn'); - -/** - * A specialized version of `_.pick` which picks `object` properties `predicate` - * returns truthy for. - * - * @private - * @param {Object} object The source object. - * @param {Function} predicate The function invoked per iteration. - * @returns {Object} Returns the new object. - */ -function pickByCallback(object, predicate) { - var result = {}; - baseForIn(object, function(value, key, object) { - if (predicate(value, key, object)) { - result[key] = value; - } - }); - return result; -} - -module.exports = pickByCallback; - -},{"./baseForIn":11}],32:[function(require,module,exports){ -var isObject = require('../lang/isObject'); - -/** - * Converts `value` to an object if it's not one. - * - * @private - * @param {*} value The value to process. - * @returns {Object} Returns the object. - */ -function toObject(value) { - return isObject(value) ? value : Object(value); -} - -module.exports = toObject; - -},{"../lang/isObject":37}],33:[function(require,module,exports){ -var isArrayLike = require('../internal/isArrayLike'), - isObjectLike = require('../internal/isObjectLike'); - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** Native method references. */ -var propertyIsEnumerable = objectProto.propertyIsEnumerable; - -/** - * Checks if `value` is classified as an `arguments` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ -function isArguments(value) { - return isObjectLike(value) && isArrayLike(value) && - hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); -} - -module.exports = isArguments; - -},{"../internal/isArrayLike":25,"../internal/isObjectLike":29}],34:[function(require,module,exports){ -var getNative = require('../internal/getNative'), - isLength = require('../internal/isLength'), - isObjectLike = require('../internal/isObjectLike'); - -/** `Object#toString` result references. */ -var arrayTag = '[object Array]'; - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objToString = objectProto.toString; - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeIsArray = getNative(Array, 'isArray'); - -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(function() { return arguments; }()); - * // => false - */ -var isArray = nativeIsArray || function(value) { - return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; -}; - -module.exports = isArray; - -},{"../internal/getNative":23,"../internal/isLength":28,"../internal/isObjectLike":29}],35:[function(require,module,exports){ -var isObject = require('./isObject'); - -/** `Object#toString` result references. */ -var funcTag = '[object Function]'; - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objToString = objectProto.toString; - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 which returns 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; -} - -module.exports = isFunction; - -},{"./isObject":37}],36:[function(require,module,exports){ -var isFunction = require('./isFunction'), - isObjectLike = require('../internal/isObjectLike'); - -/** Used to detect host constructors (Safari > 5). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var fnToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && reIsHostCtor.test(value); -} - -module.exports = isNative; - -},{"../internal/isObjectLike":29,"./isFunction":35}],37:[function(require,module,exports){ -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -module.exports = isObject; - -},{}],38:[function(require,module,exports){ -var isArguments = require('../lang/isArguments'), - isArray = require('../lang/isArray'), - isIndex = require('../internal/isIndex'), - isLength = require('../internal/isLength'), - isObject = require('../lang/isObject'); - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ -function keysIn(object) { - if (object == null) { - return []; - } - if (!isObject(object)) { - object = Object(object); - } - var length = object.length; - length = (length && isLength(length) && - (isArray(object) || isArguments(object)) && length) || 0; - - var Ctor = object.constructor, - index = -1, - isProto = typeof Ctor == 'function' && Ctor.prototype === object, - result = Array(length), - skipIndexes = length > 0; - - while (++index < length) { - result[index] = (index + ''); - } - for (var key in object) { - if (!(skipIndexes && isIndex(key, length)) && - !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; -} - -module.exports = keysIn; - -},{"../internal/isIndex":26,"../internal/isLength":28,"../lang/isArguments":33,"../lang/isArray":34,"../lang/isObject":37}],39:[function(require,module,exports){ -var arrayMap = require('../internal/arrayMap'), - baseDifference = require('../internal/baseDifference'), - baseFlatten = require('../internal/baseFlatten'), - bindCallback = require('../internal/bindCallback'), - keysIn = require('./keysIn'), - pickByArray = require('../internal/pickByArray'), - pickByCallback = require('../internal/pickByCallback'), - restParam = require('../function/restParam'); - -/** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable properties of `object` that are not omitted. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {Function|...(string|string[])} [predicate] The function invoked per - * iteration or property names to omit, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.omit(object, 'age'); - * // => { 'user': 'fred' } - * - * _.omit(object, _.isNumber); - * // => { 'user': 'fred' } - */ -var omit = restParam(function(object, props) { - if (object == null) { - return {}; - } - if (typeof props[0] != 'function') { - var props = arrayMap(baseFlatten(props), String); - return pickByArray(object, baseDifference(keysIn(object), props)); - } - var predicate = bindCallback(props[0], props[1], 3); - return pickByCallback(object, function(value, key, object) { - return !predicate(value, key, object); - }); -}); - -module.exports = omit; - -},{"../function/restParam":4,"../internal/arrayMap":6,"../internal/baseDifference":8,"../internal/baseFlatten":9,"../internal/bindCallback":15,"../internal/pickByArray":30,"../internal/pickByCallback":31,"./keysIn":38}],40:[function(require,module,exports){ -var createCompounder = require('../internal/createCompounder'); - -/** - * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar'); - * // => 'fooBar' - * - * _.camelCase('__foo_bar__'); - * // => 'fooBar' - */ -var camelCase = createCompounder(function(result, word, index) { - word = word.toLowerCase(); - return result + (index ? (word.charAt(0).toUpperCase() + word.slice(1)) : word); -}); - -module.exports = camelCase; - -},{"../internal/createCompounder":20}],41:[function(require,module,exports){ -var baseToString = require('../internal/baseToString'), - deburrLetter = require('../internal/deburrLetter'); - -/** Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). */ -var reComboMark = /[\u0300-\u036f\ufe20-\ufe23]/g; - -/** Used to match latin-1 supplementary letters (excluding mathematical operators). */ -var reLatin1 = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g; - -/** - * Deburrs `string` by converting [latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * to basic latin letters and removing [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ -function deburr(string) { - string = baseToString(string); - return string && string.replace(reLatin1, deburrLetter).replace(reComboMark, ''); -} - -module.exports = deburr; - -},{"../internal/baseToString":14,"../internal/deburrLetter":21}],42:[function(require,module,exports){ -var baseToString = require('../internal/baseToString'), - isIterateeCall = require('../internal/isIterateeCall'); - -/** Used to match words to create compound words. */ -var reWords = (function() { - var upper = '[A-Z\\xc0-\\xd6\\xd8-\\xde]', - lower = '[a-z\\xdf-\\xf6\\xf8-\\xff]+'; - - return RegExp(upper + '+(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|[0-9]+', 'g'); -}()); - -/** - * Splits `string` into an array of its words. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to inspect. - * @param {RegExp|string} [pattern] The pattern to match words. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the words of `string`. - * @example - * - * _.words('fred, barney, & pebbles'); - * // => ['fred', 'barney', 'pebbles'] - * - * _.words('fred, barney, & pebbles', /[^, ]+/g); - * // => ['fred', 'barney', '&', 'pebbles'] - */ -function words(string, pattern, guard) { - if (guard && isIterateeCall(string, pattern, guard)) { - pattern = undefined; - } - string = baseToString(string); - return string.match(pattern || reWords) || []; -} - -module.exports = words; - -},{"../internal/baseToString":14,"../internal/isIterateeCall":27}],43:[function(require,module,exports){ -/** - * This method returns the first argument provided to it. - * - * @static - * @memberOf _ - * @category Utility - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'user': 'fred' }; - * - * _.identity(object) === object; - * // => true - */ -function identity(value) { - return value; -} - -module.exports = identity; - -},{}],44:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; -exports['default'] = createAll; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _createProvider = require('./createProvider'); - -var _createProvider2 = _interopRequireDefault(_createProvider); - -var _createConnect = require('./createConnect'); - -var _createConnect2 = _interopRequireDefault(_createConnect); - -function createAll(React) { - var Provider = _createProvider2['default'](React); - var connect = _createConnect2['default'](React); - - return { Provider: Provider, connect: connect }; -} - -module.exports = exports['default']; -},{"./createConnect":45,"./createProvider":46}],45:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -exports['default'] = createConnect; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var _utilsCreateStoreShape = require('../utils/createStoreShape'); - -var _utilsCreateStoreShape2 = _interopRequireDefault(_utilsCreateStoreShape); - -var _utilsShallowEqual = require('../utils/shallowEqual'); - -var _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual); - -var _utilsIsPlainObject = require('../utils/isPlainObject'); - -var _utilsIsPlainObject2 = _interopRequireDefault(_utilsIsPlainObject); - -var _utilsWrapActionCreators = require('../utils/wrapActionCreators'); - -var _utilsWrapActionCreators2 = _interopRequireDefault(_utilsWrapActionCreators); - -var _invariant = require('invariant'); - -var _invariant2 = _interopRequireDefault(_invariant); - -var defaultMapStateToProps = function defaultMapStateToProps() { - return {}; -}; -var defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) { - return { dispatch: dispatch }; -}; -var defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) { - return _extends({}, parentProps, stateProps, dispatchProps); -}; - -function getDisplayName(Component) { - return Component.displayName || Component.name || 'Component'; -} - -// Helps track hot reloading. -var nextVersion = 0; - -function createConnect(React) { - var Component = React.Component; - var PropTypes = React.PropTypes; - - var storeShape = _utilsCreateStoreShape2['default'](PropTypes); - - return function connect(mapStateToProps, mapDispatchToProps, mergeProps) { - var shouldSubscribe = Boolean(mapStateToProps); - var finalMapStateToProps = mapStateToProps || defaultMapStateToProps; - var finalMapDispatchToProps = _utilsIsPlainObject2['default'](mapDispatchToProps) ? _utilsWrapActionCreators2['default'](mapDispatchToProps) : mapDispatchToProps || defaultMapDispatchToProps; - var finalMergeProps = mergeProps || defaultMergeProps; - var shouldUpdateStateProps = finalMapStateToProps.length > 1; - var shouldUpdateDispatchProps = finalMapDispatchToProps.length > 1; - - // Helps track hot reloading. - var version = nextVersion++; - - function computeStateProps(store, props) { - var state = store.getState(); - var stateProps = shouldUpdateStateProps ? finalMapStateToProps(state, props) : finalMapStateToProps(state); - - _invariant2['default'](_utilsIsPlainObject2['default'](stateProps), '`mapStateToProps` must return an object. Instead received %s.', stateProps); - return stateProps; - } - - function computeDispatchProps(store, props) { - var dispatch = store.dispatch; - - var dispatchProps = shouldUpdateDispatchProps ? finalMapDispatchToProps(dispatch, props) : finalMapDispatchToProps(dispatch); - - _invariant2['default'](_utilsIsPlainObject2['default'](dispatchProps), '`mapDispatchToProps` must return an object. Instead received %s.', dispatchProps); - return dispatchProps; - } - - function _computeNextState(stateProps, dispatchProps, parentProps) { - var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps); - _invariant2['default'](_utilsIsPlainObject2['default'](mergedProps), '`mergeProps` must return an object. Instead received %s.', mergedProps); - return mergedProps; - } - - return function wrapWithConnect(WrappedComponent) { - var Connect = (function (_Component) { - _inherits(Connect, _Component); - - Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) { - return !_utilsShallowEqual2['default'](this.state.props, nextState.props); - }; - - _createClass(Connect, null, [{ - key: 'displayName', - value: 'Connect(' + getDisplayName(WrappedComponent) + ')', - enumerable: true - }, { - key: 'WrappedComponent', - value: WrappedComponent, - enumerable: true - }, { - key: 'contextTypes', - value: { - store: storeShape - }, - enumerable: true - }, { - key: 'propTypes', - value: { - store: storeShape - }, - enumerable: true - }]); - - function Connect(props, context) { - _classCallCheck(this, Connect); - - _Component.call(this, props, context); - this.version = version; - this.store = props.store || context.store; - - _invariant2['default'](this.store, 'Could not find "store" in either the context or ' + ('props of "' + this.constructor.displayName + '". ') + 'Either wrap the root component in a , ' + ('or explicitly pass "store" as a prop to "' + this.constructor.displayName + '".')); - - this.stateProps = computeStateProps(this.store, props); - this.dispatchProps = computeDispatchProps(this.store, props); - this.state = { - props: this.computeNextState() - }; - } - - Connect.prototype.computeNextState = function computeNextState() { - var props = arguments.length <= 0 || arguments[0] === undefined ? this.props : arguments[0]; - - return _computeNextState(this.stateProps, this.dispatchProps, props); - }; - - Connect.prototype.updateStateProps = function updateStateProps() { - var props = arguments.length <= 0 || arguments[0] === undefined ? this.props : arguments[0]; - - var nextStateProps = computeStateProps(this.store, props); - if (_utilsShallowEqual2['default'](nextStateProps, this.stateProps)) { - return false; - } - - this.stateProps = nextStateProps; - return true; - }; - - Connect.prototype.updateDispatchProps = function updateDispatchProps() { - var props = arguments.length <= 0 || arguments[0] === undefined ? this.props : arguments[0]; - - var nextDispatchProps = computeDispatchProps(this.store, props); - if (_utilsShallowEqual2['default'](nextDispatchProps, this.dispatchProps)) { - return false; - } - - this.dispatchProps = nextDispatchProps; - return true; - }; - - Connect.prototype.updateState = function updateState() { - var props = arguments.length <= 0 || arguments[0] === undefined ? this.props : arguments[0]; - - var nextState = this.computeNextState(props); - if (!_utilsShallowEqual2['default'](nextState, this.state.props)) { - this.setState({ - props: nextState - }); - } - }; - - Connect.prototype.isSubscribed = function isSubscribed() { - return typeof this.unsubscribe === 'function'; - }; - - Connect.prototype.trySubscribe = function trySubscribe() { - if (shouldSubscribe && !this.unsubscribe) { - this.unsubscribe = this.store.subscribe(this.handleChange.bind(this)); - this.handleChange(); - } - }; - - Connect.prototype.tryUnsubscribe = function tryUnsubscribe() { - if (this.unsubscribe) { - this.unsubscribe(); - this.unsubscribe = null; - } - }; - - Connect.prototype.componentDidMount = function componentDidMount() { - this.trySubscribe(); - }; - - Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (!_utilsShallowEqual2['default'](nextProps, this.props)) { - if (shouldUpdateStateProps) { - this.updateStateProps(nextProps); - } - - if (shouldUpdateDispatchProps) { - this.updateDispatchProps(nextProps); - } - - this.updateState(nextProps); - } - }; - - Connect.prototype.componentWillUnmount = function componentWillUnmount() { - this.tryUnsubscribe(); - }; - - Connect.prototype.handleChange = function handleChange() { - if (this.updateStateProps()) { - this.updateState(); - } - }; - - Connect.prototype.getWrappedInstance = function getWrappedInstance() { - return this.refs.wrappedInstance; - }; - - Connect.prototype.render = function render() { - return React.createElement(WrappedComponent, _extends({ ref: 'wrappedInstance' - }, this.state.props)); - }; - - return Connect; - })(Component); - - if ( - // Node-like CommonJS environments (Browserify, Webpack) - typeof process !== 'undefined' && typeof process.env !== 'undefined' && process.env.NODE_ENV !== 'production' || - // React Native - typeof __DEV__ !== 'undefined' && __DEV__ //eslint-disable-line no-undef - ) { - Connect.prototype.componentWillUpdate = function componentWillUpdate() { - if (this.version === version) { - return; - } - - // We are hot reloading! - this.version = version; - - // Update the state and bindings. - this.trySubscribe(); - this.updateStateProps(); - this.updateDispatchProps(); - this.updateState(); - }; - } - - return Connect; - }; - }; -} - -module.exports = exports['default']; -}).call(this,require('_process')) -},{"../utils/createStoreShape":48,"../utils/isPlainObject":49,"../utils/shallowEqual":50,"../utils/wrapActionCreators":51,"_process":1,"invariant":52}],46:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; - -var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - -exports['default'] = createProvider; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var _utilsCreateStoreShape = require('../utils/createStoreShape'); - -var _utilsCreateStoreShape2 = _interopRequireDefault(_utilsCreateStoreShape); - -function isUsingOwnerContext(React) { - var version = React.version; - - if (typeof version !== 'string') { - return true; - } - - var sections = version.split('.'); - var major = parseInt(sections[0], 10); - var minor = parseInt(sections[1], 10); - - return major === 0 && minor === 13; -} - -function createProvider(React) { - var Component = React.Component; - var PropTypes = React.PropTypes; - var Children = React.Children; - - var storeShape = _utilsCreateStoreShape2['default'](PropTypes); - var requireFunctionChild = isUsingOwnerContext(React); - - var didWarn = false; - function warnAboutFunction() { - if (didWarn || requireFunctionChild) { - return; - } - - didWarn = true; - console.error( // eslint-disable-line no-console - 'With React 0.14 and later versions, you no longer need to ' + 'wrap child into a function.'); - } - function warnAboutElement() { - if (didWarn || !requireFunctionChild) { - return; - } - - didWarn = true; - console.error( // eslint-disable-line no-console - 'With React 0.13, you need to ' + 'wrap child into a function. ' + 'This restriction will be removed with React 0.14.'); - } - - return (function (_Component) { - _inherits(Provider, _Component); - - Provider.prototype.getChildContext = function getChildContext() { - return { store: this.state.store }; - }; - - _createClass(Provider, null, [{ - key: 'childContextTypes', - value: { - store: storeShape.isRequired - }, - enumerable: true - }, { - key: 'propTypes', - value: { - store: storeShape.isRequired, - children: (requireFunctionChild ? PropTypes.func : PropTypes.element).isRequired - }, - enumerable: true - }]); - - function Provider(props, context) { - _classCallCheck(this, Provider); - - _Component.call(this, props, context); - this.state = { store: props.store }; - } - - Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var store = this.state.store; - var nextStore = nextProps.store; - - if (store !== nextStore) { - var nextReducer = nextStore.getReducer(); - store.replaceReducer(nextReducer); - } - }; - - Provider.prototype.render = function render() { - var children = this.props.children; - - if (typeof children === 'function') { - warnAboutFunction(); - children = children(); - } else { - warnAboutElement(); - } - - return Children.only(children); - }; - - return Provider; - })(Component); -} - -module.exports = exports['default']; -},{"../utils/createStoreShape":48}],47:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _componentsCreateAll = require('./components/createAll'); - -var _componentsCreateAll2 = _interopRequireDefault(_componentsCreateAll); - -var _createAll = _componentsCreateAll2['default'](_react2['default']); - -var Provider = _createAll.Provider; -var connect = _createAll.connect; -exports.Provider = Provider; -exports.connect = connect; -},{"./components/createAll":44,"react":207}],48:[function(require,module,exports){ -"use strict"; - -exports.__esModule = true; -exports["default"] = createStoreShape; - -function createStoreShape(PropTypes) { - return PropTypes.shape({ - subscribe: PropTypes.func.isRequired, - dispatch: PropTypes.func.isRequired, - getState: PropTypes.func.isRequired - }); -} - -module.exports = exports["default"]; -},{}],49:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; -exports['default'] = isPlainObject; -var fnToString = function fnToString(fn) { - return Function.prototype.toString.call(fn); -}; - -/** - * @param {any} obj The object to inspect. - * @returns {boolean} True if the argument appears to be a plain object. - */ - -function isPlainObject(obj) { - if (!obj || typeof obj !== 'object') { - return false; - } - - var proto = typeof obj.constructor === 'function' ? Object.getPrototypeOf(obj) : Object.prototype; - - if (proto === null) { - return true; - } - - var constructor = proto.constructor; - - return typeof constructor === 'function' && constructor instanceof constructor && fnToString(constructor) === fnToString(Object); -} - -module.exports = exports['default']; -},{}],50:[function(require,module,exports){ -"use strict"; - -exports.__esModule = true; -exports["default"] = shallowEqual; - -function shallowEqual(objA, objB) { - if (objA === objB) { - return true; - } - - var keysA = Object.keys(objA); - var keysB = Object.keys(objB); - - if (keysA.length !== keysB.length) { - return false; - } - - // Test for A's keys different from B. - var hasOwn = Object.prototype.hasOwnProperty; - for (var i = 0; i < keysA.length; i++) { - if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) { - return false; - } - } - - return true; -} - -module.exports = exports["default"]; -},{}],51:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; -exports['default'] = wrapActionCreators; - -var _redux = require('redux'); - -function wrapActionCreators(actionCreators) { - return function (dispatch) { - return _redux.bindActionCreators(actionCreators, dispatch); - }; -} - -module.exports = exports['default']; -},{"redux":209}],52:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule invariant - */ - -'use strict'; - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - -var invariant = function(condition, format, a, b, c, d, e, f) { - if (process.env.NODE_ENV !== 'production') { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - } - - if (!condition) { - var error; - if (format === undefined) { - error = new Error( - 'Minified exception occurred; use the non-minified dev environment ' + - 'for the full error message and additional helpful warnings.' - ); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error( - 'Invariant Violation: ' + - format.replace(/%s/g, function() { return args[argIndex++]; }) - ); - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } -}; - -module.exports = invariant; - -}).call(this,require('_process')) -},{"_process":1}],53:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule AutoFocusMixin - * @typechecks static-only - */ - -'use strict'; - -var focusNode = require("./focusNode"); - -var AutoFocusMixin = { - componentDidMount: function() { - if (this.props.autoFocus) { - focusNode(this.getDOMNode()); - } - } -}; - -module.exports = AutoFocusMixin; - -},{"./focusNode":171}],54:[function(require,module,exports){ -/** - * Copyright 2013-2015 Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule BeforeInputEventPlugin - * @typechecks static-only - */ - -'use strict'; - -var EventConstants = require("./EventConstants"); -var EventPropagators = require("./EventPropagators"); -var ExecutionEnvironment = require("./ExecutionEnvironment"); -var FallbackCompositionState = require("./FallbackCompositionState"); -var SyntheticCompositionEvent = require("./SyntheticCompositionEvent"); -var SyntheticInputEvent = require("./SyntheticInputEvent"); - -var keyOf = require("./keyOf"); - -var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space -var START_KEYCODE = 229; - -var canUseCompositionEvent = ( - ExecutionEnvironment.canUseDOM && - 'CompositionEvent' in window -); - -var documentMode = null; -if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { - documentMode = document.documentMode; -} - -// Webkit offers a very useful `textInput` event that can be used to -// directly represent `beforeInput`. The IE `textinput` event is not as -// useful, so we don't use it. -var canUseTextInputEvent = ( - ExecutionEnvironment.canUseDOM && - 'TextEvent' in window && - !documentMode && - !isPresto() -); - -// In IE9+, we have access to composition events, but the data supplied -// by the native compositionend event may be incorrect. Japanese ideographic -// spaces, for instance (\u3000) are not recorded correctly. -var useFallbackCompositionData = ( - ExecutionEnvironment.canUseDOM && - ( - (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11) - ) -); - -/** - * Opera <= 12 includes TextEvent in window, but does not fire - * text input events. Rely on keypress instead. - */ -function isPresto() { - var opera = window.opera; - return ( - typeof opera === 'object' && - typeof opera.version === 'function' && - parseInt(opera.version(), 10) <= 12 - ); -} - -var SPACEBAR_CODE = 32; -var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); - -var topLevelTypes = EventConstants.topLevelTypes; - -// Events and their corresponding property names. -var eventTypes = { - beforeInput: { - phasedRegistrationNames: { - bubbled: keyOf({onBeforeInput: null}), - captured: keyOf({onBeforeInputCapture: null}) - }, - dependencies: [ - topLevelTypes.topCompositionEnd, - topLevelTypes.topKeyPress, - topLevelTypes.topTextInput, - topLevelTypes.topPaste - ] - }, - compositionEnd: { - phasedRegistrationNames: { - bubbled: keyOf({onCompositionEnd: null}), - captured: keyOf({onCompositionEndCapture: null}) - }, - dependencies: [ - topLevelTypes.topBlur, - topLevelTypes.topCompositionEnd, - topLevelTypes.topKeyDown, - topLevelTypes.topKeyPress, - topLevelTypes.topKeyUp, - topLevelTypes.topMouseDown - ] - }, - compositionStart: { - phasedRegistrationNames: { - bubbled: keyOf({onCompositionStart: null}), - captured: keyOf({onCompositionStartCapture: null}) - }, - dependencies: [ - topLevelTypes.topBlur, - topLevelTypes.topCompositionStart, - topLevelTypes.topKeyDown, - topLevelTypes.topKeyPress, - topLevelTypes.topKeyUp, - topLevelTypes.topMouseDown - ] - }, - compositionUpdate: { - phasedRegistrationNames: { - bubbled: keyOf({onCompositionUpdate: null}), - captured: keyOf({onCompositionUpdateCapture: null}) - }, - dependencies: [ - topLevelTypes.topBlur, - topLevelTypes.topCompositionUpdate, - topLevelTypes.topKeyDown, - topLevelTypes.topKeyPress, - topLevelTypes.topKeyUp, - topLevelTypes.topMouseDown - ] - } -}; - -// Track whether we've ever handled a keypress on the space key. -var hasSpaceKeypress = false; - -/** - * Return whether a native keypress event is assumed to be a command. - * This is required because Firefox fires `keypress` events for key commands - * (cut, copy, select-all, etc.) even though no character is inserted. - */ -function isKeypressCommand(nativeEvent) { - return ( - (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && - // ctrlKey && altKey is equivalent to AltGr, and is not a command. - !(nativeEvent.ctrlKey && nativeEvent.altKey) - ); -} - - -/** - * Translate native top level events into event types. - * - * @param {string} topLevelType - * @return {object} - */ -function getCompositionEventType(topLevelType) { - switch (topLevelType) { - case topLevelTypes.topCompositionStart: - return eventTypes.compositionStart; - case topLevelTypes.topCompositionEnd: - return eventTypes.compositionEnd; - case topLevelTypes.topCompositionUpdate: - return eventTypes.compositionUpdate; - } -} - -/** - * Does our fallback best-guess model think this event signifies that - * composition has begun? - * - * @param {string} topLevelType - * @param {object} nativeEvent - * @return {boolean} - */ -function isFallbackCompositionStart(topLevelType, nativeEvent) { - return ( - topLevelType === topLevelTypes.topKeyDown && - nativeEvent.keyCode === START_KEYCODE - ); -} - -/** - * Does our fallback mode think that this event is the end of composition? - * - * @param {string} topLevelType - * @param {object} nativeEvent - * @return {boolean} - */ -function isFallbackCompositionEnd(topLevelType, nativeEvent) { - switch (topLevelType) { - case topLevelTypes.topKeyUp: - // Command keys insert or clear IME input. - return (END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1); - case topLevelTypes.topKeyDown: - // Expect IME keyCode on each keydown. If we get any other - // code we must have exited earlier. - return (nativeEvent.keyCode !== START_KEYCODE); - case topLevelTypes.topKeyPress: - case topLevelTypes.topMouseDown: - case topLevelTypes.topBlur: - // Events are not possible without cancelling IME. - return true; - default: - return false; - } -} - -/** - * Google Input Tools provides composition data via a CustomEvent, - * with the `data` property populated in the `detail` object. If this - * is available on the event object, use it. If not, this is a plain - * composition event and we have nothing special to extract. - * - * @param {object} nativeEvent - * @return {?string} - */ -function getDataFromCustomEvent(nativeEvent) { - var detail = nativeEvent.detail; - if (typeof detail === 'object' && 'data' in detail) { - return detail.data; - } - return null; -} - -// Track the current IME composition fallback object, if any. -var currentComposition = null; - -/** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {?object} A SyntheticCompositionEvent. - */ -function extractCompositionEvent( - topLevelType, - topLevelTarget, - topLevelTargetID, - nativeEvent -) { - var eventType; - var fallbackData; - - if (canUseCompositionEvent) { - eventType = getCompositionEventType(topLevelType); - } else if (!currentComposition) { - if (isFallbackCompositionStart(topLevelType, nativeEvent)) { - eventType = eventTypes.compositionStart; - } - } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { - eventType = eventTypes.compositionEnd; - } - - if (!eventType) { - return null; - } - - if (useFallbackCompositionData) { - // The current composition is stored statically and must not be - // overwritten while composition continues. - if (!currentComposition && eventType === eventTypes.compositionStart) { - currentComposition = FallbackCompositionState.getPooled(topLevelTarget); - } else if (eventType === eventTypes.compositionEnd) { - if (currentComposition) { - fallbackData = currentComposition.getData(); - } - } - } - - var event = SyntheticCompositionEvent.getPooled( - eventType, - topLevelTargetID, - nativeEvent - ); - - if (fallbackData) { - // Inject data generated from fallback path into the synthetic event. - // This matches the property of native CompositionEventInterface. - event.data = fallbackData; - } else { - var customData = getDataFromCustomEvent(nativeEvent); - if (customData !== null) { - event.data = customData; - } - } - - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; -} - -/** - * @param {string} topLevelType Record from `EventConstants`. - * @param {object} nativeEvent Native browser event. - * @return {?string} The string corresponding to this `beforeInput` event. - */ -function getNativeBeforeInputChars(topLevelType, nativeEvent) { - switch (topLevelType) { - case topLevelTypes.topCompositionEnd: - return getDataFromCustomEvent(nativeEvent); - case topLevelTypes.topKeyPress: - /** - * If native `textInput` events are available, our goal is to make - * use of them. However, there is a special case: the spacebar key. - * In Webkit, preventing default on a spacebar `textInput` event - * cancels character insertion, but it *also* causes the browser - * to fall back to its default spacebar behavior of scrolling the - * page. - * - * Tracking at: - * https://code.google.com/p/chromium/issues/detail?id=355103 - * - * To avoid this issue, use the keypress event as if no `textInput` - * event is available. - */ - var which = nativeEvent.which; - if (which !== SPACEBAR_CODE) { - return null; - } - - hasSpaceKeypress = true; - return SPACEBAR_CHAR; - - case topLevelTypes.topTextInput: - // Record the characters to be added to the DOM. - var chars = nativeEvent.data; - - // If it's a spacebar character, assume that we have already handled - // it at the keypress level and bail immediately. Android Chrome - // doesn't give us keycodes, so we need to blacklist it. - if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { - return null; - } - - return chars; - - default: - // For other native event types, do nothing. - return null; - } -} - -/** - * For browsers that do not provide the `textInput` event, extract the - * appropriate string to use for SyntheticInputEvent. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {object} nativeEvent Native browser event. - * @return {?string} The fallback string for this `beforeInput` event. - */ -function getFallbackBeforeInputChars(topLevelType, nativeEvent) { - // If we are currently composing (IME) and using a fallback to do so, - // try to extract the composed characters from the fallback object. - if (currentComposition) { - if ( - topLevelType === topLevelTypes.topCompositionEnd || - isFallbackCompositionEnd(topLevelType, nativeEvent) - ) { - var chars = currentComposition.getData(); - FallbackCompositionState.release(currentComposition); - currentComposition = null; - return chars; - } - return null; - } - - switch (topLevelType) { - case topLevelTypes.topPaste: - // If a paste event occurs after a keypress, throw out the input - // chars. Paste events should not lead to BeforeInput events. - return null; - case topLevelTypes.topKeyPress: - /** - * As of v27, Firefox may fire keypress events even when no character - * will be inserted. A few possibilities: - * - * - `which` is `0`. Arrow keys, Esc key, etc. - * - * - `which` is the pressed key code, but no char is available. - * Ex: 'AltGr + d` in Polish. There is no modified character for - * this key combination and no character is inserted into the - * document, but FF fires the keypress for char code `100` anyway. - * No `input` event will occur. - * - * - `which` is the pressed key code, but a command combination is - * being used. Ex: `Cmd+C`. No character is inserted, and no - * `input` event will occur. - */ - if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { - return String.fromCharCode(nativeEvent.which); - } - return null; - case topLevelTypes.topCompositionEnd: - return useFallbackCompositionData ? null : nativeEvent.data; - default: - return null; - } -} - -/** - * Extract a SyntheticInputEvent for `beforeInput`, based on either native - * `textInput` or fallback behavior. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {?object} A SyntheticInputEvent. - */ -function extractBeforeInputEvent( - topLevelType, - topLevelTarget, - topLevelTargetID, - nativeEvent -) { - var chars; - - if (canUseTextInputEvent) { - chars = getNativeBeforeInputChars(topLevelType, nativeEvent); - } else { - chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); - } - - // If no characters are being inserted, no BeforeInput event should - // be fired. - if (!chars) { - return null; - } - - var event = SyntheticInputEvent.getPooled( - eventTypes.beforeInput, - topLevelTargetID, - nativeEvent - ); - - event.data = chars; - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; -} - -/** - * Create an `onBeforeInput` event to match - * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. - * - * This event plugin is based on the native `textInput` event - * available in Chrome, Safari, Opera, and IE. This event fires after - * `onKeyPress` and `onCompositionEnd`, but before `onInput`. - * - * `beforeInput` is spec'd but not implemented in any browsers, and - * the `input` event does not provide any useful information about what has - * actually been added, contrary to the spec. Thus, `textInput` is the best - * available event to identify the characters that have actually been inserted - * into the target node. - * - * This plugin is also responsible for emitting `composition` events, thus - * allowing us to share composition fallback code for both `beforeInput` and - * `composition` event types. - */ -var BeforeInputEventPlugin = { - - eventTypes: eventTypes, - - /** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @see {EventPluginHub.extractEvents} - */ - extractEvents: function( - topLevelType, - topLevelTarget, - topLevelTargetID, - nativeEvent - ) { - return [ - extractCompositionEvent( - topLevelType, - topLevelTarget, - topLevelTargetID, - nativeEvent - ), - extractBeforeInputEvent( - topLevelType, - topLevelTarget, - topLevelTargetID, - nativeEvent - ) - ]; - } -}; - -module.exports = BeforeInputEventPlugin; - -},{"./EventConstants":66,"./EventPropagators":71,"./ExecutionEnvironment":72,"./FallbackCompositionState":73,"./SyntheticCompositionEvent":145,"./SyntheticInputEvent":149,"./keyOf":193}],55:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule CSSProperty - */ - -'use strict'; - -/** - * CSS properties which accept numbers but are not in units of "px". - */ -var isUnitlessNumber = { - boxFlex: true, - boxFlexGroup: true, - columnCount: true, - flex: true, - flexGrow: true, - flexPositive: true, - flexShrink: true, - flexNegative: true, - fontWeight: true, - lineClamp: true, - lineHeight: true, - opacity: true, - order: true, - orphans: true, - widows: true, - zIndex: true, - zoom: true, - - // SVG-related properties - fillOpacity: true, - strokeDashoffset: true, - strokeOpacity: true, - strokeWidth: true -}; - -/** - * @param {string} prefix vendor-specific prefix, eg: Webkit - * @param {string} key style name, eg: transitionDuration - * @return {string} style name prefixed with `prefix`, properly camelCased, eg: - * WebkitTransitionDuration - */ -function prefixKey(prefix, key) { - return prefix + key.charAt(0).toUpperCase() + key.substring(1); -} - -/** - * Support style names that may come passed in prefixed by adding permutations - * of vendor prefixes. - */ -var prefixes = ['Webkit', 'ms', 'Moz', 'O']; - -// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an -// infinite loop, because it iterates over the newly added props too. -Object.keys(isUnitlessNumber).forEach(function(prop) { - prefixes.forEach(function(prefix) { - isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; - }); -}); - -/** - * Most style properties can be unset by doing .style[prop] = '' but IE8 - * doesn't like doing that with shorthand properties so for the properties that - * IE8 breaks on, which are listed here, we instead unset each of the - * individual properties. See http://bugs.jquery.com/ticket/12385. - * The 4-value 'clock' properties like margin, padding, border-width seem to - * behave without any problems. Curiously, list-style works too without any - * special prodding. - */ -var shorthandPropertyExpansions = { - background: { - backgroundImage: true, - backgroundPosition: true, - backgroundRepeat: true, - backgroundColor: true - }, - border: { - borderWidth: true, - borderStyle: true, - borderColor: true - }, - borderBottom: { - borderBottomWidth: true, - borderBottomStyle: true, - borderBottomColor: true - }, - borderLeft: { - borderLeftWidth: true, - borderLeftStyle: true, - borderLeftColor: true - }, - borderRight: { - borderRightWidth: true, - borderRightStyle: true, - borderRightColor: true - }, - borderTop: { - borderTopWidth: true, - borderTopStyle: true, - borderTopColor: true - }, - font: { - fontStyle: true, - fontVariant: true, - fontWeight: true, - fontSize: true, - lineHeight: true, - fontFamily: true - } -}; - -var CSSProperty = { - isUnitlessNumber: isUnitlessNumber, - shorthandPropertyExpansions: shorthandPropertyExpansions -}; - -module.exports = CSSProperty; - -},{}],56:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule CSSPropertyOperations - * @typechecks static-only - */ - -'use strict'; - -var CSSProperty = require("./CSSProperty"); -var ExecutionEnvironment = require("./ExecutionEnvironment"); - -var camelizeStyleName = require("./camelizeStyleName"); -var dangerousStyleValue = require("./dangerousStyleValue"); -var hyphenateStyleName = require("./hyphenateStyleName"); -var memoizeStringOnly = require("./memoizeStringOnly"); -var warning = require("./warning"); - -var processStyleName = memoizeStringOnly(function(styleName) { - return hyphenateStyleName(styleName); -}); - -var styleFloatAccessor = 'cssFloat'; -if (ExecutionEnvironment.canUseDOM) { - // IE8 only supports accessing cssFloat (standard) as styleFloat - if (document.documentElement.style.cssFloat === undefined) { - styleFloatAccessor = 'styleFloat'; - } -} - -if ("production" !== process.env.NODE_ENV) { - // 'msTransform' is correct, but the other prefixes should be capitalized - var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; - - // style values shouldn't contain a semicolon - var badStyleValueWithSemicolonPattern = /;\s*$/; - - var warnedStyleNames = {}; - var warnedStyleValues = {}; - - var warnHyphenatedStyleName = function(name) { - if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { - return; - } - - warnedStyleNames[name] = true; - ("production" !== process.env.NODE_ENV ? warning( - false, - 'Unsupported style property %s. Did you mean %s?', - name, - camelizeStyleName(name) - ) : null); - }; - - var warnBadVendoredStyleName = function(name) { - if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { - return; - } - - warnedStyleNames[name] = true; - ("production" !== process.env.NODE_ENV ? warning( - false, - 'Unsupported vendor-prefixed style property %s. Did you mean %s?', - name, - name.charAt(0).toUpperCase() + name.slice(1) - ) : null); - }; - - var warnStyleValueWithSemicolon = function(name, value) { - if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { - return; - } - - warnedStyleValues[value] = true; - ("production" !== process.env.NODE_ENV ? warning( - false, - 'Style property values shouldn\'t contain a semicolon. ' + - 'Try "%s: %s" instead.', - name, - value.replace(badStyleValueWithSemicolonPattern, '') - ) : null); - }; - - /** - * @param {string} name - * @param {*} value - */ - var warnValidStyle = function(name, value) { - if (name.indexOf('-') > -1) { - warnHyphenatedStyleName(name); - } else if (badVendoredStyleNamePattern.test(name)) { - warnBadVendoredStyleName(name); - } else if (badStyleValueWithSemicolonPattern.test(value)) { - warnStyleValueWithSemicolon(name, value); - } - }; -} - -/** - * Operations for dealing with CSS properties. - */ -var CSSPropertyOperations = { - - /** - * Serializes a mapping of style properties for use as inline styles: - * - * > createMarkupForStyles({width: '200px', height: 0}) - * "width:200px;height:0;" - * - * Undefined values are ignored so that declarative programming is easier. - * The result should be HTML-escaped before insertion into the DOM. - * - * @param {object} styles - * @return {?string} - */ - createMarkupForStyles: function(styles) { - var serialized = ''; - for (var styleName in styles) { - if (!styles.hasOwnProperty(styleName)) { - continue; - } - var styleValue = styles[styleName]; - if ("production" !== process.env.NODE_ENV) { - warnValidStyle(styleName, styleValue); - } - if (styleValue != null) { - serialized += processStyleName(styleName) + ':'; - serialized += dangerousStyleValue(styleName, styleValue) + ';'; - } - } - return serialized || null; - }, - - /** - * Sets the value for multiple styles on a node. If a value is specified as - * '' (empty string), the corresponding style property will be unset. - * - * @param {DOMElement} node - * @param {object} styles - */ - setValueForStyles: function(node, styles) { - var style = node.style; - for (var styleName in styles) { - if (!styles.hasOwnProperty(styleName)) { - continue; - } - if ("production" !== process.env.NODE_ENV) { - warnValidStyle(styleName, styles[styleName]); - } - var styleValue = dangerousStyleValue(styleName, styles[styleName]); - if (styleName === 'float') { - styleName = styleFloatAccessor; - } - if (styleValue) { - style[styleName] = styleValue; - } else { - var expansion = CSSProperty.shorthandPropertyExpansions[styleName]; - if (expansion) { - // Shorthand property that IE8 won't like unsetting, so unset each - // component to placate it - for (var individualStyleName in expansion) { - style[individualStyleName] = ''; - } - } else { - style[styleName] = ''; - } - } - } - } - -}; - -module.exports = CSSPropertyOperations; - -}).call(this,require('_process')) -},{"./CSSProperty":55,"./ExecutionEnvironment":72,"./camelizeStyleName":160,"./dangerousStyleValue":165,"./hyphenateStyleName":185,"./memoizeStringOnly":195,"./warning":206,"_process":1}],57:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule CallbackQueue - */ - -'use strict'; - -var PooledClass = require("./PooledClass"); - -var assign = require("./Object.assign"); -var invariant = require("./invariant"); - -/** - * A specialized pseudo-event module to help keep track of components waiting to - * be notified when their DOM representations are available for use. - * - * This implements `PooledClass`, so you should never need to instantiate this. - * Instead, use `CallbackQueue.getPooled()`. - * - * @class ReactMountReady - * @implements PooledClass - * @internal - */ -function CallbackQueue() { - this._callbacks = null; - this._contexts = null; -} - -assign(CallbackQueue.prototype, { - - /** - * Enqueues a callback to be invoked when `notifyAll` is invoked. - * - * @param {function} callback Invoked when `notifyAll` is invoked. - * @param {?object} context Context to call `callback` with. - * @internal - */ - enqueue: function(callback, context) { - this._callbacks = this._callbacks || []; - this._contexts = this._contexts || []; - this._callbacks.push(callback); - this._contexts.push(context); - }, - - /** - * Invokes all enqueued callbacks and clears the queue. This is invoked after - * the DOM representation of a component has been created or updated. - * - * @internal - */ - notifyAll: function() { - var callbacks = this._callbacks; - var contexts = this._contexts; - if (callbacks) { - ("production" !== process.env.NODE_ENV ? invariant( - callbacks.length === contexts.length, - 'Mismatched list of contexts in callback queue' - ) : invariant(callbacks.length === contexts.length)); - this._callbacks = null; - this._contexts = null; - for (var i = 0, l = callbacks.length; i < l; i++) { - callbacks[i].call(contexts[i]); - } - callbacks.length = 0; - contexts.length = 0; - } - }, - - /** - * Resets the internal queue. - * - * @internal - */ - reset: function() { - this._callbacks = null; - this._contexts = null; - }, - - /** - * `PooledClass` looks for this. - */ - destructor: function() { - this.reset(); - } - -}); - -PooledClass.addPoolingTo(CallbackQueue); - -module.exports = CallbackQueue; - -}).call(this,require('_process')) -},{"./Object.assign":78,"./PooledClass":79,"./invariant":187,"_process":1}],58:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ChangeEventPlugin - */ - -'use strict'; - -var EventConstants = require("./EventConstants"); -var EventPluginHub = require("./EventPluginHub"); -var EventPropagators = require("./EventPropagators"); -var ExecutionEnvironment = require("./ExecutionEnvironment"); -var ReactUpdates = require("./ReactUpdates"); -var SyntheticEvent = require("./SyntheticEvent"); - -var isEventSupported = require("./isEventSupported"); -var isTextInputElement = require("./isTextInputElement"); -var keyOf = require("./keyOf"); - -var topLevelTypes = EventConstants.topLevelTypes; - -var eventTypes = { - change: { - phasedRegistrationNames: { - bubbled: keyOf({onChange: null}), - captured: keyOf({onChangeCapture: null}) - }, - dependencies: [ - topLevelTypes.topBlur, - topLevelTypes.topChange, - topLevelTypes.topClick, - topLevelTypes.topFocus, - topLevelTypes.topInput, - topLevelTypes.topKeyDown, - topLevelTypes.topKeyUp, - topLevelTypes.topSelectionChange - ] - } -}; - -/** - * For IE shims - */ -var activeElement = null; -var activeElementID = null; -var activeElementValue = null; -var activeElementValueProp = null; - -/** - * SECTION: handle `change` event - */ -function shouldUseChangeEvent(elem) { - return ( - elem.nodeName === 'SELECT' || - (elem.nodeName === 'INPUT' && elem.type === 'file') - ); -} - -var doesChangeEventBubble = false; -if (ExecutionEnvironment.canUseDOM) { - // See `handleChange` comment below - doesChangeEventBubble = isEventSupported('change') && ( - (!('documentMode' in document) || document.documentMode > 8) - ); -} - -function manualDispatchChangeEvent(nativeEvent) { - var event = SyntheticEvent.getPooled( - eventTypes.change, - activeElementID, - nativeEvent - ); - EventPropagators.accumulateTwoPhaseDispatches(event); - - // If change and propertychange bubbled, we'd just bind to it like all the - // other events and have it go through ReactBrowserEventEmitter. Since it - // doesn't, we manually listen for the events and so we have to enqueue and - // process the abstract event manually. - // - // Batching is necessary here in order to ensure that all event handlers run - // before the next rerender (including event handlers attached to ancestor - // elements instead of directly on the input). Without this, controlled - // components don't work properly in conjunction with event bubbling because - // the component is rerendered and the value reverted before all the event - // handlers can run. See https://github.com/facebook/react/issues/708. - ReactUpdates.batchedUpdates(runEventInBatch, event); -} - -function runEventInBatch(event) { - EventPluginHub.enqueueEvents(event); - EventPluginHub.processEventQueue(); -} - -function startWatchingForChangeEventIE8(target, targetID) { - activeElement = target; - activeElementID = targetID; - activeElement.attachEvent('onchange', manualDispatchChangeEvent); -} - -function stopWatchingForChangeEventIE8() { - if (!activeElement) { - return; - } - activeElement.detachEvent('onchange', manualDispatchChangeEvent); - activeElement = null; - activeElementID = null; -} - -function getTargetIDForChangeEvent( - topLevelType, - topLevelTarget, - topLevelTargetID) { - if (topLevelType === topLevelTypes.topChange) { - return topLevelTargetID; - } -} -function handleEventsForChangeEventIE8( - topLevelType, - topLevelTarget, - topLevelTargetID) { - if (topLevelType === topLevelTypes.topFocus) { - // stopWatching() should be a noop here but we call it just in case we - // missed a blur event somehow. - stopWatchingForChangeEventIE8(); - startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID); - } else if (topLevelType === topLevelTypes.topBlur) { - stopWatchingForChangeEventIE8(); - } -} - - -/** - * SECTION: handle `input` event - */ -var isInputEventSupported = false; -if (ExecutionEnvironment.canUseDOM) { - // IE9 claims to support the input event but fails to trigger it when - // deleting text, so we ignore its input events - isInputEventSupported = isEventSupported('input') && ( - (!('documentMode' in document) || document.documentMode > 9) - ); -} - -/** - * (For old IE.) Replacement getter/setter for the `value` property that gets - * set on the active element. - */ -var newValueProp = { - get: function() { - return activeElementValueProp.get.call(this); - }, - set: function(val) { - // Cast to a string so we can do equality checks. - activeElementValue = '' + val; - activeElementValueProp.set.call(this, val); - } -}; - -/** - * (For old IE.) Starts tracking propertychange events on the passed-in element - * and override the value property so that we can distinguish user events from - * value changes in JS. - */ -function startWatchingForValueChange(target, targetID) { - activeElement = target; - activeElementID = targetID; - activeElementValue = target.value; - activeElementValueProp = Object.getOwnPropertyDescriptor( - target.constructor.prototype, - 'value' - ); - - Object.defineProperty(activeElement, 'value', newValueProp); - activeElement.attachEvent('onpropertychange', handlePropertyChange); -} - -/** - * (For old IE.) Removes the event listeners from the currently-tracked element, - * if any exists. - */ -function stopWatchingForValueChange() { - if (!activeElement) { - return; - } - - // delete restores the original property definition - delete activeElement.value; - activeElement.detachEvent('onpropertychange', handlePropertyChange); - - activeElement = null; - activeElementID = null; - activeElementValue = null; - activeElementValueProp = null; -} - -/** - * (For old IE.) Handles a propertychange event, sending a `change` event if - * the value of the active element has changed. - */ -function handlePropertyChange(nativeEvent) { - if (nativeEvent.propertyName !== 'value') { - return; - } - var value = nativeEvent.srcElement.value; - if (value === activeElementValue) { - return; - } - activeElementValue = value; - - manualDispatchChangeEvent(nativeEvent); -} - -/** - * If a `change` event should be fired, returns the target's ID. - */ -function getTargetIDForInputEvent( - topLevelType, - topLevelTarget, - topLevelTargetID) { - if (topLevelType === topLevelTypes.topInput) { - // In modern browsers (i.e., not IE8 or IE9), the input event is exactly - // what we want so fall through here and trigger an abstract event - return topLevelTargetID; - } -} - -// For IE8 and IE9. -function handleEventsForInputEventIE( - topLevelType, - topLevelTarget, - topLevelTargetID) { - if (topLevelType === topLevelTypes.topFocus) { - // In IE8, we can capture almost all .value changes by adding a - // propertychange handler and looking for events with propertyName - // equal to 'value' - // In IE9, propertychange fires for most input events but is buggy and - // doesn't fire when text is deleted, but conveniently, selectionchange - // appears to fire in all of the remaining cases so we catch those and - // forward the event if the value has changed - // In either case, we don't want to call the event handler if the value - // is changed from JS so we redefine a setter for `.value` that updates - // our activeElementValue variable, allowing us to ignore those changes - // - // stopWatching() should be a noop here but we call it just in case we - // missed a blur event somehow. - stopWatchingForValueChange(); - startWatchingForValueChange(topLevelTarget, topLevelTargetID); - } else if (topLevelType === topLevelTypes.topBlur) { - stopWatchingForValueChange(); - } -} - -// For IE8 and IE9. -function getTargetIDForInputEventIE( - topLevelType, - topLevelTarget, - topLevelTargetID) { - if (topLevelType === topLevelTypes.topSelectionChange || - topLevelType === topLevelTypes.topKeyUp || - topLevelType === topLevelTypes.topKeyDown) { - // On the selectionchange event, the target is just document which isn't - // helpful for us so just check activeElement instead. - // - // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire - // propertychange on the first input event after setting `value` from a - // script and fires only keydown, keypress, keyup. Catching keyup usually - // gets it and catching keydown lets us fire an event for the first - // keystroke if user does a key repeat (it'll be a little delayed: right - // before the second keystroke). Other input methods (e.g., paste) seem to - // fire selectionchange normally. - if (activeElement && activeElement.value !== activeElementValue) { - activeElementValue = activeElement.value; - return activeElementID; - } - } -} - - -/** - * SECTION: handle `click` event - */ -function shouldUseClickEvent(elem) { - // Use the `click` event to detect changes to checkbox and radio inputs. - // This approach works across all browsers, whereas `change` does not fire - // until `blur` in IE8. - return ( - elem.nodeName === 'INPUT' && - (elem.type === 'checkbox' || elem.type === 'radio') - ); -} - -function getTargetIDForClickEvent( - topLevelType, - topLevelTarget, - topLevelTargetID) { - if (topLevelType === topLevelTypes.topClick) { - return topLevelTargetID; - } -} - -/** - * This plugin creates an `onChange` event that normalizes change events - * across form elements. This event fires at a time when it's possible to - * change the element's value without seeing a flicker. - * - * Supported elements are: - * - input (see `isTextInputElement`) - * - textarea - * - select - */ -var ChangeEventPlugin = { - - eventTypes: eventTypes, - - /** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @see {EventPluginHub.extractEvents} - */ - extractEvents: function( - topLevelType, - topLevelTarget, - topLevelTargetID, - nativeEvent) { - - var getTargetIDFunc, handleEventFunc; - if (shouldUseChangeEvent(topLevelTarget)) { - if (doesChangeEventBubble) { - getTargetIDFunc = getTargetIDForChangeEvent; - } else { - handleEventFunc = handleEventsForChangeEventIE8; - } - } else if (isTextInputElement(topLevelTarget)) { - if (isInputEventSupported) { - getTargetIDFunc = getTargetIDForInputEvent; - } else { - getTargetIDFunc = getTargetIDForInputEventIE; - handleEventFunc = handleEventsForInputEventIE; - } - } else if (shouldUseClickEvent(topLevelTarget)) { - getTargetIDFunc = getTargetIDForClickEvent; - } - - if (getTargetIDFunc) { - var targetID = getTargetIDFunc( - topLevelType, - topLevelTarget, - topLevelTargetID - ); - if (targetID) { - var event = SyntheticEvent.getPooled( - eventTypes.change, - targetID, - nativeEvent - ); - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; - } - } - - if (handleEventFunc) { - handleEventFunc( - topLevelType, - topLevelTarget, - topLevelTargetID - ); - } - } - -}; - -module.exports = ChangeEventPlugin; - -},{"./EventConstants":66,"./EventPluginHub":68,"./EventPropagators":71,"./ExecutionEnvironment":72,"./ReactUpdates":139,"./SyntheticEvent":147,"./isEventSupported":188,"./isTextInputElement":190,"./keyOf":193}],59:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ClientReactRootIndex - * @typechecks - */ - -'use strict'; - -var nextReactRootIndex = 0; - -var ClientReactRootIndex = { - createReactRootIndex: function() { - return nextReactRootIndex++; - } -}; - -module.exports = ClientReactRootIndex; - -},{}],60:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule DOMChildrenOperations - * @typechecks static-only - */ - -'use strict'; - -var Danger = require("./Danger"); -var ReactMultiChildUpdateTypes = require("./ReactMultiChildUpdateTypes"); - -var setTextContent = require("./setTextContent"); -var invariant = require("./invariant"); - -/** - * Inserts `childNode` as a child of `parentNode` at the `index`. - * - * @param {DOMElement} parentNode Parent node in which to insert. - * @param {DOMElement} childNode Child node to insert. - * @param {number} index Index at which to insert the child. - * @internal - */ -function insertChildAt(parentNode, childNode, index) { - // By exploiting arrays returning `undefined` for an undefined index, we can - // rely exclusively on `insertBefore(node, null)` instead of also using - // `appendChild(node)`. However, using `undefined` is not allowed by all - // browsers so we must replace it with `null`. - parentNode.insertBefore( - childNode, - parentNode.childNodes[index] || null - ); -} - -/** - * Operations for updating with DOM children. - */ -var DOMChildrenOperations = { - - dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup, - - updateTextContent: setTextContent, - - /** - * Updates a component's children by processing a series of updates. The - * update configurations are each expected to have a `parentNode` property. - * - * @param {array} updates List of update configurations. - * @param {array} markupList List of markup strings. - * @internal - */ - processUpdates: function(updates, markupList) { - var update; - // Mapping from parent IDs to initial child orderings. - var initialChildren = null; - // List of children that will be moved or removed. - var updatedChildren = null; - - for (var i = 0; i < updates.length; i++) { - update = updates[i]; - if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || - update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) { - var updatedIndex = update.fromIndex; - var updatedChild = update.parentNode.childNodes[updatedIndex]; - var parentID = update.parentID; - - ("production" !== process.env.NODE_ENV ? invariant( - updatedChild, - 'processUpdates(): Unable to find child %s of element. This ' + - 'probably means the DOM was unexpectedly mutated (e.g., by the ' + - 'browser), usually due to forgetting a when using tables, ' + - 'nesting tags like
,

, or , or using non-SVG elements ' + - 'in an parent. Try inspecting the child nodes of the element ' + - 'with React ID `%s`.', - updatedIndex, - parentID - ) : invariant(updatedChild)); - - initialChildren = initialChildren || {}; - initialChildren[parentID] = initialChildren[parentID] || []; - initialChildren[parentID][updatedIndex] = updatedChild; - - updatedChildren = updatedChildren || []; - updatedChildren.push(updatedChild); - } - } - - var renderedMarkup = Danger.dangerouslyRenderMarkup(markupList); - - // Remove updated children first so that `toIndex` is consistent. - if (updatedChildren) { - for (var j = 0; j < updatedChildren.length; j++) { - updatedChildren[j].parentNode.removeChild(updatedChildren[j]); - } - } - - for (var k = 0; k < updates.length; k++) { - update = updates[k]; - switch (update.type) { - case ReactMultiChildUpdateTypes.INSERT_MARKUP: - insertChildAt( - update.parentNode, - renderedMarkup[update.markupIndex], - update.toIndex - ); - break; - case ReactMultiChildUpdateTypes.MOVE_EXISTING: - insertChildAt( - update.parentNode, - initialChildren[update.parentID][update.fromIndex], - update.toIndex - ); - break; - case ReactMultiChildUpdateTypes.TEXT_CONTENT: - setTextContent( - update.parentNode, - update.textContent - ); - break; - case ReactMultiChildUpdateTypes.REMOVE_NODE: - // Already removed by the for-loop above. - break; - } - } - } - -}; - -module.exports = DOMChildrenOperations; - -}).call(this,require('_process')) -},{"./Danger":63,"./ReactMultiChildUpdateTypes":124,"./invariant":187,"./setTextContent":201,"_process":1}],61:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule DOMProperty - * @typechecks static-only - */ - -/*jslint bitwise: true */ - -'use strict'; - -var invariant = require("./invariant"); - -function checkMask(value, bitmask) { - return (value & bitmask) === bitmask; -} - -var DOMPropertyInjection = { - /** - * Mapping from normalized, camelcased property names to a configuration that - * specifies how the associated DOM property should be accessed or rendered. - */ - MUST_USE_ATTRIBUTE: 0x1, - MUST_USE_PROPERTY: 0x2, - HAS_SIDE_EFFECTS: 0x4, - HAS_BOOLEAN_VALUE: 0x8, - HAS_NUMERIC_VALUE: 0x10, - HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10, - HAS_OVERLOADED_BOOLEAN_VALUE: 0x40, - - /** - * Inject some specialized knowledge about the DOM. This takes a config object - * with the following properties: - * - * isCustomAttribute: function that given an attribute name will return true - * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* - * attributes where it's impossible to enumerate all of the possible - * attribute names, - * - * Properties: object mapping DOM property name to one of the - * DOMPropertyInjection constants or null. If your attribute isn't in here, - * it won't get written to the DOM. - * - * DOMAttributeNames: object mapping React attribute name to the DOM - * attribute name. Attribute names not specified use the **lowercase** - * normalized name. - * - * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. - * Property names not specified use the normalized name. - * - * DOMMutationMethods: Properties that require special mutation methods. If - * `value` is undefined, the mutation method should unset the property. - * - * @param {object} domPropertyConfig the config as described above. - */ - injectDOMPropertyConfig: function(domPropertyConfig) { - var Properties = domPropertyConfig.Properties || {}; - var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; - var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; - var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; - - if (domPropertyConfig.isCustomAttribute) { - DOMProperty._isCustomAttributeFunctions.push( - domPropertyConfig.isCustomAttribute - ); - } - - for (var propName in Properties) { - ("production" !== process.env.NODE_ENV ? invariant( - !DOMProperty.isStandardName.hasOwnProperty(propName), - 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property ' + - '\'%s\' which has already been injected. You may be accidentally ' + - 'injecting the same DOM property config twice, or you may be ' + - 'injecting two configs that have conflicting property names.', - propName - ) : invariant(!DOMProperty.isStandardName.hasOwnProperty(propName))); - - DOMProperty.isStandardName[propName] = true; - - var lowerCased = propName.toLowerCase(); - DOMProperty.getPossibleStandardName[lowerCased] = propName; - - if (DOMAttributeNames.hasOwnProperty(propName)) { - var attributeName = DOMAttributeNames[propName]; - DOMProperty.getPossibleStandardName[attributeName] = propName; - DOMProperty.getAttributeName[propName] = attributeName; - } else { - DOMProperty.getAttributeName[propName] = lowerCased; - } - - DOMProperty.getPropertyName[propName] = - DOMPropertyNames.hasOwnProperty(propName) ? - DOMPropertyNames[propName] : - propName; - - if (DOMMutationMethods.hasOwnProperty(propName)) { - DOMProperty.getMutationMethod[propName] = DOMMutationMethods[propName]; - } else { - DOMProperty.getMutationMethod[propName] = null; - } - - var propConfig = Properties[propName]; - DOMProperty.mustUseAttribute[propName] = - checkMask(propConfig, DOMPropertyInjection.MUST_USE_ATTRIBUTE); - DOMProperty.mustUseProperty[propName] = - checkMask(propConfig, DOMPropertyInjection.MUST_USE_PROPERTY); - DOMProperty.hasSideEffects[propName] = - checkMask(propConfig, DOMPropertyInjection.HAS_SIDE_EFFECTS); - DOMProperty.hasBooleanValue[propName] = - checkMask(propConfig, DOMPropertyInjection.HAS_BOOLEAN_VALUE); - DOMProperty.hasNumericValue[propName] = - checkMask(propConfig, DOMPropertyInjection.HAS_NUMERIC_VALUE); - DOMProperty.hasPositiveNumericValue[propName] = - checkMask(propConfig, DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE); - DOMProperty.hasOverloadedBooleanValue[propName] = - checkMask(propConfig, DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE); - - ("production" !== process.env.NODE_ENV ? invariant( - !DOMProperty.mustUseAttribute[propName] || - !DOMProperty.mustUseProperty[propName], - 'DOMProperty: Cannot require using both attribute and property: %s', - propName - ) : invariant(!DOMProperty.mustUseAttribute[propName] || - !DOMProperty.mustUseProperty[propName])); - ("production" !== process.env.NODE_ENV ? invariant( - DOMProperty.mustUseProperty[propName] || - !DOMProperty.hasSideEffects[propName], - 'DOMProperty: Properties that have side effects must use property: %s', - propName - ) : invariant(DOMProperty.mustUseProperty[propName] || - !DOMProperty.hasSideEffects[propName])); - ("production" !== process.env.NODE_ENV ? invariant( - !!DOMProperty.hasBooleanValue[propName] + - !!DOMProperty.hasNumericValue[propName] + - !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1, - 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + - 'numeric value, but not a combination: %s', - propName - ) : invariant(!!DOMProperty.hasBooleanValue[propName] + - !!DOMProperty.hasNumericValue[propName] + - !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1)); - } - } -}; -var defaultValueCache = {}; - -/** - * DOMProperty exports lookup objects that can be used like functions: - * - * > DOMProperty.isValid['id'] - * true - * > DOMProperty.isValid['foobar'] - * undefined - * - * Although this may be confusing, it performs better in general. - * - * @see http://jsperf.com/key-exists - * @see http://jsperf.com/key-missing - */ -var DOMProperty = { - - ID_ATTRIBUTE_NAME: 'data-reactid', - - /** - * Checks whether a property name is a standard property. - * @type {Object} - */ - isStandardName: {}, - - /** - * Mapping from lowercase property names to the properly cased version, used - * to warn in the case of missing properties. - * @type {Object} - */ - getPossibleStandardName: {}, - - /** - * Mapping from normalized names to attribute names that differ. Attribute - * names are used when rendering markup or with `*Attribute()`. - * @type {Object} - */ - getAttributeName: {}, - - /** - * Mapping from normalized names to properties on DOM node instances. - * (This includes properties that mutate due to external factors.) - * @type {Object} - */ - getPropertyName: {}, - - /** - * Mapping from normalized names to mutation methods. This will only exist if - * mutation cannot be set simply by the property or `setAttribute()`. - * @type {Object} - */ - getMutationMethod: {}, - - /** - * Whether the property must be accessed and mutated as an object property. - * @type {Object} - */ - mustUseAttribute: {}, - - /** - * Whether the property must be accessed and mutated using `*Attribute()`. - * (This includes anything that fails ` in `.) - * @type {Object} - */ - mustUseProperty: {}, - - /** - * Whether or not setting a value causes side effects such as triggering - * resources to be loaded or text selection changes. We must ensure that - * the value is only set if it has changed. - * @type {Object} - */ - hasSideEffects: {}, - - /** - * Whether the property should be removed when set to a falsey value. - * @type {Object} - */ - hasBooleanValue: {}, - - /** - * Whether the property must be numeric or parse as a - * numeric and should be removed when set to a falsey value. - * @type {Object} - */ - hasNumericValue: {}, - - /** - * Whether the property must be positive numeric or parse as a positive - * numeric and should be removed when set to a falsey value. - * @type {Object} - */ - hasPositiveNumericValue: {}, - - /** - * Whether the property can be used as a flag as well as with a value. Removed - * when strictly equal to false; present without a value when strictly equal - * to true; present with a value otherwise. - * @type {Object} - */ - hasOverloadedBooleanValue: {}, - - /** - * All of the isCustomAttribute() functions that have been injected. - */ - _isCustomAttributeFunctions: [], - - /** - * Checks whether a property name is a custom attribute. - * @method - */ - isCustomAttribute: function(attributeName) { - for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { - var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; - if (isCustomAttributeFn(attributeName)) { - return true; - } - } - return false; - }, - - /** - * Returns the default property value for a DOM property (i.e., not an - * attribute). Most default values are '' or false, but not all. Worse yet, - * some (in particular, `type`) vary depending on the type of element. - * - * TODO: Is it better to grab all the possible properties when creating an - * element to avoid having to create the same element twice? - */ - getDefaultValueForProperty: function(nodeName, prop) { - var nodeDefaults = defaultValueCache[nodeName]; - var testElement; - if (!nodeDefaults) { - defaultValueCache[nodeName] = nodeDefaults = {}; - } - if (!(prop in nodeDefaults)) { - testElement = document.createElement(nodeName); - nodeDefaults[prop] = testElement[prop]; - } - return nodeDefaults[prop]; - }, - - injection: DOMPropertyInjection -}; - -module.exports = DOMProperty; - -}).call(this,require('_process')) -},{"./invariant":187,"_process":1}],62:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule DOMPropertyOperations - * @typechecks static-only - */ - -'use strict'; - -var DOMProperty = require("./DOMProperty"); - -var quoteAttributeValueForBrowser = require("./quoteAttributeValueForBrowser"); -var warning = require("./warning"); - -function shouldIgnoreValue(name, value) { - return value == null || - (DOMProperty.hasBooleanValue[name] && !value) || - (DOMProperty.hasNumericValue[name] && isNaN(value)) || - (DOMProperty.hasPositiveNumericValue[name] && (value < 1)) || - (DOMProperty.hasOverloadedBooleanValue[name] && value === false); -} - -if ("production" !== process.env.NODE_ENV) { - var reactProps = { - children: true, - dangerouslySetInnerHTML: true, - key: true, - ref: true - }; - var warnedProperties = {}; - - var warnUnknownProperty = function(name) { - if (reactProps.hasOwnProperty(name) && reactProps[name] || - warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { - return; - } - - warnedProperties[name] = true; - var lowerCasedName = name.toLowerCase(); - - // data-* attributes should be lowercase; suggest the lowercase version - var standardName = ( - DOMProperty.isCustomAttribute(lowerCasedName) ? - lowerCasedName : - DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? - DOMProperty.getPossibleStandardName[lowerCasedName] : - null - ); - - // For now, only warn when we have a suggested correction. This prevents - // logging too much when using transferPropsTo. - ("production" !== process.env.NODE_ENV ? warning( - standardName == null, - 'Unknown DOM property %s. Did you mean %s?', - name, - standardName - ) : null); - - }; -} - -/** - * Operations for dealing with DOM properties. - */ -var DOMPropertyOperations = { - - /** - * Creates markup for the ID property. - * - * @param {string} id Unescaped ID. - * @return {string} Markup string. - */ - createMarkupForID: function(id) { - return DOMProperty.ID_ATTRIBUTE_NAME + '=' + - quoteAttributeValueForBrowser(id); - }, - - /** - * Creates markup for a property. - * - * @param {string} name - * @param {*} value - * @return {?string} Markup string, or null if the property was invalid. - */ - createMarkupForProperty: function(name, value) { - if (DOMProperty.isStandardName.hasOwnProperty(name) && - DOMProperty.isStandardName[name]) { - if (shouldIgnoreValue(name, value)) { - return ''; - } - var attributeName = DOMProperty.getAttributeName[name]; - if (DOMProperty.hasBooleanValue[name] || - (DOMProperty.hasOverloadedBooleanValue[name] && value === true)) { - return attributeName; - } - return attributeName + '=' + quoteAttributeValueForBrowser(value); - } else if (DOMProperty.isCustomAttribute(name)) { - if (value == null) { - return ''; - } - return name + '=' + quoteAttributeValueForBrowser(value); - } else if ("production" !== process.env.NODE_ENV) { - warnUnknownProperty(name); - } - return null; - }, - - /** - * Sets the value for a property on a node. - * - * @param {DOMElement} node - * @param {string} name - * @param {*} value - */ - setValueForProperty: function(node, name, value) { - if (DOMProperty.isStandardName.hasOwnProperty(name) && - DOMProperty.isStandardName[name]) { - var mutationMethod = DOMProperty.getMutationMethod[name]; - if (mutationMethod) { - mutationMethod(node, value); - } else if (shouldIgnoreValue(name, value)) { - this.deleteValueForProperty(node, name); - } else if (DOMProperty.mustUseAttribute[name]) { - // `setAttribute` with objects becomes only `[object]` in IE8/9, - // ('' + value) makes it output the correct toString()-value. - node.setAttribute(DOMProperty.getAttributeName[name], '' + value); - } else { - var propName = DOMProperty.getPropertyName[name]; - // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the - // property type before comparing; only `value` does and is string. - if (!DOMProperty.hasSideEffects[name] || - ('' + node[propName]) !== ('' + value)) { - // Contrary to `setAttribute`, object properties are properly - // `toString`ed by IE8/9. - node[propName] = value; - } - } - } else if (DOMProperty.isCustomAttribute(name)) { - if (value == null) { - node.removeAttribute(name); - } else { - node.setAttribute(name, '' + value); - } - } else if ("production" !== process.env.NODE_ENV) { - warnUnknownProperty(name); - } - }, - - /** - * Deletes the value for a property on a node. - * - * @param {DOMElement} node - * @param {string} name - */ - deleteValueForProperty: function(node, name) { - if (DOMProperty.isStandardName.hasOwnProperty(name) && - DOMProperty.isStandardName[name]) { - var mutationMethod = DOMProperty.getMutationMethod[name]; - if (mutationMethod) { - mutationMethod(node, undefined); - } else if (DOMProperty.mustUseAttribute[name]) { - node.removeAttribute(DOMProperty.getAttributeName[name]); - } else { - var propName = DOMProperty.getPropertyName[name]; - var defaultValue = DOMProperty.getDefaultValueForProperty( - node.nodeName, - propName - ); - if (!DOMProperty.hasSideEffects[name] || - ('' + node[propName]) !== defaultValue) { - node[propName] = defaultValue; - } - } - } else if (DOMProperty.isCustomAttribute(name)) { - node.removeAttribute(name); - } else if ("production" !== process.env.NODE_ENV) { - warnUnknownProperty(name); - } - } - -}; - -module.exports = DOMPropertyOperations; - -}).call(this,require('_process')) -},{"./DOMProperty":61,"./quoteAttributeValueForBrowser":199,"./warning":206,"_process":1}],63:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule Danger - * @typechecks static-only - */ - -/*jslint evil: true, sub: true */ - -'use strict'; - -var ExecutionEnvironment = require("./ExecutionEnvironment"); - -var createNodesFromMarkup = require("./createNodesFromMarkup"); -var emptyFunction = require("./emptyFunction"); -var getMarkupWrap = require("./getMarkupWrap"); -var invariant = require("./invariant"); - -var OPEN_TAG_NAME_EXP = /^(<[^ \/>]+)/; -var RESULT_INDEX_ATTR = 'data-danger-index'; - -/** - * Extracts the `nodeName` from a string of markup. - * - * NOTE: Extracting the `nodeName` does not require a regular expression match - * because we make assumptions about React-generated markup (i.e. there are no - * spaces surrounding the opening tag and there is at least one attribute). - * - * @param {string} markup String of markup. - * @return {string} Node name of the supplied markup. - * @see http://jsperf.com/extract-nodename - */ -function getNodeName(markup) { - return markup.substring(1, markup.indexOf(' ')); -} - -var Danger = { - - /** - * Renders markup into an array of nodes. The markup is expected to render - * into a list of root nodes. Also, the length of `resultList` and - * `markupList` should be the same. - * - * @param {array} markupList List of markup strings to render. - * @return {array} List of rendered nodes. - * @internal - */ - dangerouslyRenderMarkup: function(markupList) { - ("production" !== process.env.NODE_ENV ? invariant( - ExecutionEnvironment.canUseDOM, - 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + - 'thread. Make sure `window` and `document` are available globally ' + - 'before requiring React when unit testing or use ' + - 'React.renderToString for server rendering.' - ) : invariant(ExecutionEnvironment.canUseDOM)); - var nodeName; - var markupByNodeName = {}; - // Group markup by `nodeName` if a wrap is necessary, else by '*'. - for (var i = 0; i < markupList.length; i++) { - ("production" !== process.env.NODE_ENV ? invariant( - markupList[i], - 'dangerouslyRenderMarkup(...): Missing markup.' - ) : invariant(markupList[i])); - nodeName = getNodeName(markupList[i]); - nodeName = getMarkupWrap(nodeName) ? nodeName : '*'; - markupByNodeName[nodeName] = markupByNodeName[nodeName] || []; - markupByNodeName[nodeName][i] = markupList[i]; - } - var resultList = []; - var resultListAssignmentCount = 0; - for (nodeName in markupByNodeName) { - if (!markupByNodeName.hasOwnProperty(nodeName)) { - continue; - } - var markupListByNodeName = markupByNodeName[nodeName]; - - // This for-in loop skips the holes of the sparse array. The order of - // iteration should follow the order of assignment, which happens to match - // numerical index order, but we don't rely on that. - var resultIndex; - for (resultIndex in markupListByNodeName) { - if (markupListByNodeName.hasOwnProperty(resultIndex)) { - var markup = markupListByNodeName[resultIndex]; - - // Push the requested markup with an additional RESULT_INDEX_ATTR - // attribute. If the markup does not start with a < character, it - // will be discarded below (with an appropriate console.error). - markupListByNodeName[resultIndex] = markup.replace( - OPEN_TAG_NAME_EXP, - // This index will be parsed back out below. - '$1 ' + RESULT_INDEX_ATTR + '="' + resultIndex + '" ' - ); - } - } - - // Render each group of markup with similar wrapping `nodeName`. - var renderNodes = createNodesFromMarkup( - markupListByNodeName.join(''), - emptyFunction // Do nothing special with

; - * } - * }); - * - * The class specification supports a specific protocol of methods that have - * special meaning (e.g. `render`). See `ReactClassInterface` for - * more the comprehensive protocol. Any other properties and methods in the - * class specification will available on the prototype. - * - * @interface ReactClassInterface - * @internal - */ -var ReactClassInterface = { - - /** - * An array of Mixin objects to include when defining your component. - * - * @type {array} - * @optional - */ - mixins: SpecPolicy.DEFINE_MANY, - - /** - * An object containing properties and methods that should be defined on - * the component's constructor instead of its prototype (static methods). - * - * @type {object} - * @optional - */ - statics: SpecPolicy.DEFINE_MANY, - - /** - * Definition of prop types for this component. - * - * @type {object} - * @optional - */ - propTypes: SpecPolicy.DEFINE_MANY, - - /** - * Definition of context types for this component. - * - * @type {object} - * @optional - */ - contextTypes: SpecPolicy.DEFINE_MANY, - - /** - * Definition of context types this component sets for its children. - * - * @type {object} - * @optional - */ - childContextTypes: SpecPolicy.DEFINE_MANY, - - // ==== Definition methods ==== - - /** - * Invoked when the component is mounted. Values in the mapping will be set on - * `this.props` if that prop is not specified (i.e. using an `in` check). - * - * This method is invoked before `getInitialState` and therefore cannot rely - * on `this.state` or use `this.setState`. - * - * @return {object} - * @optional - */ - getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED, - - /** - * Invoked once before the component is mounted. The return value will be used - * as the initial value of `this.state`. - * - * getInitialState: function() { - * return { - * isOn: false, - * fooBaz: new BazFoo() - * } - * } - * - * @return {object} - * @optional - */ - getInitialState: SpecPolicy.DEFINE_MANY_MERGED, - - /** - * @return {object} - * @optional - */ - getChildContext: SpecPolicy.DEFINE_MANY_MERGED, - - /** - * Uses props from `this.props` and state from `this.state` to render the - * structure of the component. - * - * No guarantees are made about when or how often this method is invoked, so - * it must not have side effects. - * - * render: function() { - * var name = this.props.name; - * return
Hello, {name}!
; - * } - * - * @return {ReactComponent} - * @nosideeffects - * @required - */ - render: SpecPolicy.DEFINE_ONCE, - - - - // ==== Delegate methods ==== - - /** - * Invoked when the component is initially created and about to be mounted. - * This may have side effects, but any external subscriptions or data created - * by this method must be cleaned up in `componentWillUnmount`. - * - * @optional - */ - componentWillMount: SpecPolicy.DEFINE_MANY, - - /** - * Invoked when the component has been mounted and has a DOM representation. - * However, there is no guarantee that the DOM node is in the document. - * - * Use this as an opportunity to operate on the DOM when the component has - * been mounted (initialized and rendered) for the first time. - * - * @param {DOMElement} rootNode DOM element representing the component. - * @optional - */ - componentDidMount: SpecPolicy.DEFINE_MANY, - - /** - * Invoked before the component receives new props. - * - * Use this as an opportunity to react to a prop transition by updating the - * state using `this.setState`. Current props are accessed via `this.props`. - * - * componentWillReceiveProps: function(nextProps, nextContext) { - * this.setState({ - * likesIncreasing: nextProps.likeCount > this.props.likeCount - * }); - * } - * - * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop - * transition may cause a state change, but the opposite is not true. If you - * need it, you are probably looking for `componentWillUpdate`. - * - * @param {object} nextProps - * @optional - */ - componentWillReceiveProps: SpecPolicy.DEFINE_MANY, - - /** - * Invoked while deciding if the component should be updated as a result of - * receiving new props, state and/or context. - * - * Use this as an opportunity to `return false` when you're certain that the - * transition to the new props/state/context will not require a component - * update. - * - * shouldComponentUpdate: function(nextProps, nextState, nextContext) { - * return !equal(nextProps, this.props) || - * !equal(nextState, this.state) || - * !equal(nextContext, this.context); - * } - * - * @param {object} nextProps - * @param {?object} nextState - * @param {?object} nextContext - * @return {boolean} True if the component should update. - * @optional - */ - shouldComponentUpdate: SpecPolicy.DEFINE_ONCE, - - /** - * Invoked when the component is about to update due to a transition from - * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` - * and `nextContext`. - * - * Use this as an opportunity to perform preparation before an update occurs. - * - * NOTE: You **cannot** use `this.setState()` in this method. - * - * @param {object} nextProps - * @param {?object} nextState - * @param {?object} nextContext - * @param {ReactReconcileTransaction} transaction - * @optional - */ - componentWillUpdate: SpecPolicy.DEFINE_MANY, - - /** - * Invoked when the component's DOM representation has been updated. - * - * Use this as an opportunity to operate on the DOM when the component has - * been updated. - * - * @param {object} prevProps - * @param {?object} prevState - * @param {?object} prevContext - * @param {DOMElement} rootNode DOM element representing the component. - * @optional - */ - componentDidUpdate: SpecPolicy.DEFINE_MANY, - - /** - * Invoked when the component is about to be removed from its parent and have - * its DOM representation destroyed. - * - * Use this as an opportunity to deallocate any external resources. - * - * NOTE: There is no `componentDidUnmount` since your component will have been - * destroyed by that point. - * - * @optional - */ - componentWillUnmount: SpecPolicy.DEFINE_MANY, - - - - // ==== Advanced methods ==== - - /** - * Updates the component's currently mounted DOM representation. - * - * By default, this implements React's rendering and reconciliation algorithm. - * Sophisticated clients may wish to override this. - * - * @param {ReactReconcileTransaction} transaction - * @internal - * @overridable - */ - updateComponent: SpecPolicy.OVERRIDE_BASE - -}; - -/** - * Mapping from class specification keys to special processing functions. - * - * Although these are declared like instance properties in the specification - * when defining classes using `React.createClass`, they are actually static - * and are accessible on the constructor instead of the prototype. Despite - * being static, they must be defined outside of the "statics" key under - * which all other static methods are defined. - */ -var RESERVED_SPEC_KEYS = { - displayName: function(Constructor, displayName) { - Constructor.displayName = displayName; - }, - mixins: function(Constructor, mixins) { - if (mixins) { - for (var i = 0; i < mixins.length; i++) { - mixSpecIntoComponent(Constructor, mixins[i]); - } - } - }, - childContextTypes: function(Constructor, childContextTypes) { - if ("production" !== process.env.NODE_ENV) { - validateTypeDef( - Constructor, - childContextTypes, - ReactPropTypeLocations.childContext - ); - } - Constructor.childContextTypes = assign( - {}, - Constructor.childContextTypes, - childContextTypes - ); - }, - contextTypes: function(Constructor, contextTypes) { - if ("production" !== process.env.NODE_ENV) { - validateTypeDef( - Constructor, - contextTypes, - ReactPropTypeLocations.context - ); - } - Constructor.contextTypes = assign( - {}, - Constructor.contextTypes, - contextTypes - ); - }, - /** - * Special case getDefaultProps which should move into statics but requires - * automatic merging. - */ - getDefaultProps: function(Constructor, getDefaultProps) { - if (Constructor.getDefaultProps) { - Constructor.getDefaultProps = createMergedResultFunction( - Constructor.getDefaultProps, - getDefaultProps - ); - } else { - Constructor.getDefaultProps = getDefaultProps; - } - }, - propTypes: function(Constructor, propTypes) { - if ("production" !== process.env.NODE_ENV) { - validateTypeDef( - Constructor, - propTypes, - ReactPropTypeLocations.prop - ); - } - Constructor.propTypes = assign( - {}, - Constructor.propTypes, - propTypes - ); - }, - statics: function(Constructor, statics) { - mixStaticSpecIntoComponent(Constructor, statics); - } -}; - -function validateTypeDef(Constructor, typeDef, location) { - for (var propName in typeDef) { - if (typeDef.hasOwnProperty(propName)) { - // use a warning instead of an invariant so components - // don't show up in prod but not in __DEV__ - ("production" !== process.env.NODE_ENV ? warning( - typeof typeDef[propName] === 'function', - '%s: %s type `%s` is invalid; it must be a function, usually from ' + - 'React.PropTypes.', - Constructor.displayName || 'ReactClass', - ReactPropTypeLocationNames[location], - propName - ) : null); - } - } -} - -function validateMethodOverride(proto, name) { - var specPolicy = ReactClassInterface.hasOwnProperty(name) ? - ReactClassInterface[name] : - null; - - // Disallow overriding of base class methods unless explicitly allowed. - if (ReactClassMixin.hasOwnProperty(name)) { - ("production" !== process.env.NODE_ENV ? invariant( - specPolicy === SpecPolicy.OVERRIDE_BASE, - 'ReactClassInterface: You are attempting to override ' + - '`%s` from your class specification. Ensure that your method names ' + - 'do not overlap with React methods.', - name - ) : invariant(specPolicy === SpecPolicy.OVERRIDE_BASE)); - } - - // Disallow defining methods more than once unless explicitly allowed. - if (proto.hasOwnProperty(name)) { - ("production" !== process.env.NODE_ENV ? invariant( - specPolicy === SpecPolicy.DEFINE_MANY || - specPolicy === SpecPolicy.DEFINE_MANY_MERGED, - 'ReactClassInterface: You are attempting to define ' + - '`%s` on your component more than once. This conflict may be due ' + - 'to a mixin.', - name - ) : invariant(specPolicy === SpecPolicy.DEFINE_MANY || - specPolicy === SpecPolicy.DEFINE_MANY_MERGED)); - } -} - -/** - * Mixin helper which handles policy validation and reserved - * specification keys when building React classses. - */ -function mixSpecIntoComponent(Constructor, spec) { - if (!spec) { - return; - } - - ("production" !== process.env.NODE_ENV ? invariant( - typeof spec !== 'function', - 'ReactClass: You\'re attempting to ' + - 'use a component class as a mixin. Instead, just use a regular object.' - ) : invariant(typeof spec !== 'function')); - ("production" !== process.env.NODE_ENV ? invariant( - !ReactElement.isValidElement(spec), - 'ReactClass: You\'re attempting to ' + - 'use a component as a mixin. Instead, just use a regular object.' - ) : invariant(!ReactElement.isValidElement(spec))); - - var proto = Constructor.prototype; - - // By handling mixins before any other properties, we ensure the same - // chaining order is applied to methods with DEFINE_MANY policy, whether - // mixins are listed before or after these methods in the spec. - if (spec.hasOwnProperty(MIXINS_KEY)) { - RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); - } - - for (var name in spec) { - if (!spec.hasOwnProperty(name)) { - continue; - } - - if (name === MIXINS_KEY) { - // We have already handled mixins in a special case above - continue; - } - - var property = spec[name]; - validateMethodOverride(proto, name); - - if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { - RESERVED_SPEC_KEYS[name](Constructor, property); - } else { - // Setup methods on prototype: - // The following member methods should not be automatically bound: - // 1. Expected ReactClass methods (in the "interface"). - // 2. Overridden methods (that were mixed in). - var isReactClassMethod = - ReactClassInterface.hasOwnProperty(name); - var isAlreadyDefined = proto.hasOwnProperty(name); - var markedDontBind = property && property.__reactDontBind; - var isFunction = typeof property === 'function'; - var shouldAutoBind = - isFunction && - !isReactClassMethod && - !isAlreadyDefined && - !markedDontBind; - - if (shouldAutoBind) { - if (!proto.__reactAutoBindMap) { - proto.__reactAutoBindMap = {}; - } - proto.__reactAutoBindMap[name] = property; - proto[name] = property; - } else { - if (isAlreadyDefined) { - var specPolicy = ReactClassInterface[name]; - - // These cases should already be caught by validateMethodOverride - ("production" !== process.env.NODE_ENV ? invariant( - isReactClassMethod && ( - (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY) - ), - 'ReactClass: Unexpected spec policy %s for key %s ' + - 'when mixing in component specs.', - specPolicy, - name - ) : invariant(isReactClassMethod && ( - (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY) - ))); - - // For methods which are defined more than once, call the existing - // methods before calling the new property, merging if appropriate. - if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) { - proto[name] = createMergedResultFunction(proto[name], property); - } else if (specPolicy === SpecPolicy.DEFINE_MANY) { - proto[name] = createChainedFunction(proto[name], property); - } - } else { - proto[name] = property; - if ("production" !== process.env.NODE_ENV) { - // Add verbose displayName to the function, which helps when looking - // at profiling tools. - if (typeof property === 'function' && spec.displayName) { - proto[name].displayName = spec.displayName + '_' + name; - } - } - } - } - } - } -} - -function mixStaticSpecIntoComponent(Constructor, statics) { - if (!statics) { - return; - } - for (var name in statics) { - var property = statics[name]; - if (!statics.hasOwnProperty(name)) { - continue; - } - - var isReserved = name in RESERVED_SPEC_KEYS; - ("production" !== process.env.NODE_ENV ? invariant( - !isReserved, - 'ReactClass: You are attempting to define a reserved ' + - 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + - 'as an instance property instead; it will still be accessible on the ' + - 'constructor.', - name - ) : invariant(!isReserved)); - - var isInherited = name in Constructor; - ("production" !== process.env.NODE_ENV ? invariant( - !isInherited, - 'ReactClass: You are attempting to define ' + - '`%s` on your component more than once. This conflict may be ' + - 'due to a mixin.', - name - ) : invariant(!isInherited)); - Constructor[name] = property; - } -} - -/** - * Merge two objects, but throw if both contain the same key. - * - * @param {object} one The first object, which is mutated. - * @param {object} two The second object - * @return {object} one after it has been mutated to contain everything in two. - */ -function mergeIntoWithNoDuplicateKeys(one, two) { - ("production" !== process.env.NODE_ENV ? invariant( - one && two && typeof one === 'object' && typeof two === 'object', - 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.' - ) : invariant(one && two && typeof one === 'object' && typeof two === 'object')); - - for (var key in two) { - if (two.hasOwnProperty(key)) { - ("production" !== process.env.NODE_ENV ? invariant( - one[key] === undefined, - 'mergeIntoWithNoDuplicateKeys(): ' + - 'Tried to merge two objects with the same key: `%s`. This conflict ' + - 'may be due to a mixin; in particular, this may be caused by two ' + - 'getInitialState() or getDefaultProps() methods returning objects ' + - 'with clashing keys.', - key - ) : invariant(one[key] === undefined)); - one[key] = two[key]; - } - } - return one; -} - -/** - * Creates a function that invokes two functions and merges their return values. - * - * @param {function} one Function to invoke first. - * @param {function} two Function to invoke second. - * @return {function} Function that invokes the two argument functions. - * @private - */ -function createMergedResultFunction(one, two) { - return function mergedResult() { - var a = one.apply(this, arguments); - var b = two.apply(this, arguments); - if (a == null) { - return b; - } else if (b == null) { - return a; - } - var c = {}; - mergeIntoWithNoDuplicateKeys(c, a); - mergeIntoWithNoDuplicateKeys(c, b); - return c; - }; -} - -/** - * Creates a function that invokes two functions and ignores their return vales. - * - * @param {function} one Function to invoke first. - * @param {function} two Function to invoke second. - * @return {function} Function that invokes the two argument functions. - * @private - */ -function createChainedFunction(one, two) { - return function chainedFunction() { - one.apply(this, arguments); - two.apply(this, arguments); - }; -} - -/** - * Binds a method to the component. - * - * @param {object} component Component whose method is going to be bound. - * @param {function} method Method to be bound. - * @return {function} The bound method. - */ -function bindAutoBindMethod(component, method) { - var boundMethod = method.bind(component); - if ("production" !== process.env.NODE_ENV) { - boundMethod.__reactBoundContext = component; - boundMethod.__reactBoundMethod = method; - boundMethod.__reactBoundArguments = null; - var componentName = component.constructor.displayName; - var _bind = boundMethod.bind; - /* eslint-disable block-scoped-var, no-undef */ - boundMethod.bind = function(newThis ) {for (var args=[],$__0=1,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]); - // User is trying to bind() an autobound method; we effectively will - // ignore the value of "this" that the user is trying to use, so - // let's warn. - if (newThis !== component && newThis !== null) { - ("production" !== process.env.NODE_ENV ? warning( - false, - 'bind(): React component methods may only be bound to the ' + - 'component instance. See %s', - componentName - ) : null); - } else if (!args.length) { - ("production" !== process.env.NODE_ENV ? warning( - false, - 'bind(): You are binding a component method to the component. ' + - 'React does this for you automatically in a high-performance ' + - 'way, so you can safely remove this call. See %s', - componentName - ) : null); - return boundMethod; - } - var reboundMethod = _bind.apply(boundMethod, arguments); - reboundMethod.__reactBoundContext = component; - reboundMethod.__reactBoundMethod = method; - reboundMethod.__reactBoundArguments = args; - return reboundMethod; - /* eslint-enable */ - }; - } - return boundMethod; -} - -/** - * Binds all auto-bound methods in a component. - * - * @param {object} component Component whose method is going to be bound. - */ -function bindAutoBindMethods(component) { - for (var autoBindKey in component.__reactAutoBindMap) { - if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) { - var method = component.__reactAutoBindMap[autoBindKey]; - component[autoBindKey] = bindAutoBindMethod( - component, - ReactErrorUtils.guard( - method, - component.constructor.displayName + '.' + autoBindKey - ) - ); - } - } -} - -var typeDeprecationDescriptor = { - enumerable: false, - get: function() { - var displayName = this.displayName || this.name || 'Component'; - ("production" !== process.env.NODE_ENV ? warning( - false, - '%s.type is deprecated. Use %s directly to access the class.', - displayName, - displayName - ) : null); - Object.defineProperty(this, 'type', { - value: this - }); - return this; - } -}; - -/** - * Add more to the ReactClass base class. These are all legacy features and - * therefore not already part of the modern ReactComponent. - */ -var ReactClassMixin = { - - /** - * TODO: This will be deprecated because state should always keep a consistent - * type signature and the only use case for this, is to avoid that. - */ - replaceState: function(newState, callback) { - ReactUpdateQueue.enqueueReplaceState(this, newState); - if (callback) { - ReactUpdateQueue.enqueueCallback(this, callback); - } - }, - - /** - * Checks whether or not this composite component is mounted. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function() { - if ("production" !== process.env.NODE_ENV) { - var owner = ReactCurrentOwner.current; - if (owner !== null) { - ("production" !== process.env.NODE_ENV ? warning( - owner._warnedAboutRefsInRender, - '%s is accessing isMounted inside its render() function. ' + - 'render() should be a pure function of props and state. It should ' + - 'never access something that requires stale data from the previous ' + - 'render, such as refs. Move this logic to componentDidMount and ' + - 'componentDidUpdate instead.', - owner.getName() || 'A component' - ) : null); - owner._warnedAboutRefsInRender = true; - } - } - var internalInstance = ReactInstanceMap.get(this); - return ( - internalInstance && - internalInstance !== ReactLifeCycle.currentlyMountingInstance - ); - }, - - /** - * Sets a subset of the props. - * - * @param {object} partialProps Subset of the next props. - * @param {?function} callback Called after props are updated. - * @final - * @public - * @deprecated - */ - setProps: function(partialProps, callback) { - ReactUpdateQueue.enqueueSetProps(this, partialProps); - if (callback) { - ReactUpdateQueue.enqueueCallback(this, callback); - } - }, - - /** - * Replace all the props. - * - * @param {object} newProps Subset of the next props. - * @param {?function} callback Called after props are updated. - * @final - * @public - * @deprecated - */ - replaceProps: function(newProps, callback) { - ReactUpdateQueue.enqueueReplaceProps(this, newProps); - if (callback) { - ReactUpdateQueue.enqueueCallback(this, callback); - } - } -}; - -var ReactClassComponent = function() {}; -assign( - ReactClassComponent.prototype, - ReactComponent.prototype, - ReactClassMixin -); - -/** - * Module for creating composite components. - * - * @class ReactClass - */ -var ReactClass = { - - /** - * Creates a composite component class given a class specification. - * - * @param {object} spec Class specification (which must define `render`). - * @return {function} Component constructor function. - * @public - */ - createClass: function(spec) { - var Constructor = function(props, context) { - // This constructor is overridden by mocks. The argument is used - // by mocks to assert on what gets mounted. - - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - this instanceof Constructor, - 'Something is calling a React component directly. Use a factory or ' + - 'JSX instead. See: https://fb.me/react-legacyfactory' - ) : null); - } - - // Wire up auto-binding - if (this.__reactAutoBindMap) { - bindAutoBindMethods(this); - } - - this.props = props; - this.context = context; - this.state = null; - - // ReactClasses doesn't have constructors. Instead, they use the - // getInitialState and componentWillMount methods for initialization. - - var initialState = this.getInitialState ? this.getInitialState() : null; - if ("production" !== process.env.NODE_ENV) { - // We allow auto-mocks to proceed as if they're returning null. - if (typeof initialState === 'undefined' && - this.getInitialState._isMockFunction) { - // This is probably bad practice. Consider warning here and - // deprecating this convenience. - initialState = null; - } - } - ("production" !== process.env.NODE_ENV ? invariant( - typeof initialState === 'object' && !Array.isArray(initialState), - '%s.getInitialState(): must return an object or null', - Constructor.displayName || 'ReactCompositeComponent' - ) : invariant(typeof initialState === 'object' && !Array.isArray(initialState))); - - this.state = initialState; - }; - Constructor.prototype = new ReactClassComponent(); - Constructor.prototype.constructor = Constructor; - - injectedMixins.forEach( - mixSpecIntoComponent.bind(null, Constructor) - ); - - mixSpecIntoComponent(Constructor, spec); - - // Initialize the defaultProps property after all mixins have been merged - if (Constructor.getDefaultProps) { - Constructor.defaultProps = Constructor.getDefaultProps(); - } - - if ("production" !== process.env.NODE_ENV) { - // This is a tag to indicate that the use of these method names is ok, - // since it's used with createClass. If it's not, then it's likely a - // mistake so we'll warn you to use the static property, property - // initializer or constructor respectively. - if (Constructor.getDefaultProps) { - Constructor.getDefaultProps.isReactClassApproved = {}; - } - if (Constructor.prototype.getInitialState) { - Constructor.prototype.getInitialState.isReactClassApproved = {}; - } - } - - ("production" !== process.env.NODE_ENV ? invariant( - Constructor.prototype.render, - 'createClass(...): Class specification must implement a `render` method.' - ) : invariant(Constructor.prototype.render)); - - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - !Constructor.prototype.componentShouldUpdate, - '%s has a method called ' + - 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + - 'The name is phrased as a question because the function is ' + - 'expected to return a value.', - spec.displayName || 'A component' - ) : null); - } - - // Reduce time spent doing lookups by setting these on the prototype. - for (var methodName in ReactClassInterface) { - if (!Constructor.prototype[methodName]) { - Constructor.prototype[methodName] = null; - } - } - - // Legacy hook - Constructor.type = Constructor; - if ("production" !== process.env.NODE_ENV) { - try { - Object.defineProperty(Constructor, 'type', typeDeprecationDescriptor); - } catch (x) { - // IE will fail on defineProperty (es5-shim/sham too) - } - } - - return Constructor; - }, - - injection: { - injectMixin: function(mixin) { - injectedMixins.push(mixin); - } - } - -}; - -module.exports = ReactClass; - -}).call(this,require('_process')) -},{"./Object.assign":78,"./ReactComponent":86,"./ReactCurrentOwner":91,"./ReactElement":109,"./ReactErrorUtils":112,"./ReactInstanceMap":119,"./ReactLifeCycle":120,"./ReactPropTypeLocationNames":128,"./ReactPropTypeLocations":129,"./ReactUpdateQueue":138,"./invariant":187,"./keyMirror":192,"./keyOf":193,"./warning":206,"_process":1}],86:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactComponent - */ - -'use strict'; - -var ReactUpdateQueue = require("./ReactUpdateQueue"); - -var invariant = require("./invariant"); -var warning = require("./warning"); - -/** - * Base class helpers for the updating state of a component. - */ -function ReactComponent(props, context) { - this.props = props; - this.context = context; -} - -/** - * Sets a subset of the state. Always use this to mutate - * state. You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * There is no guarantee that calls to `setState` will run synchronously, - * as they may eventually be batched together. You can provide an optional - * callback that will be executed when the call to setState is actually - * completed. - * - * When a function is provided to setState, it will be called at some point in - * the future (not synchronously). It will be called with the up to date - * component arguments (state, props, context). These values can be different - * from this.* because your function may be called after receiveProps but before - * shouldComponentUpdate, and this new state, props, and context will not yet be - * assigned to this. - * - * @param {object|function} partialState Next partial state or function to - * produce next partial state to be merged with current state. - * @param {?function} callback Called after state is updated. - * @final - * @protected - */ -ReactComponent.prototype.setState = function(partialState, callback) { - ("production" !== process.env.NODE_ENV ? invariant( - typeof partialState === 'object' || - typeof partialState === 'function' || - partialState == null, - 'setState(...): takes an object of state variables to update or a ' + - 'function which returns an object of state variables.' - ) : invariant(typeof partialState === 'object' || - typeof partialState === 'function' || - partialState == null)); - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - partialState != null, - 'setState(...): You passed an undefined or null state object; ' + - 'instead, use forceUpdate().' - ) : null); - } - ReactUpdateQueue.enqueueSetState(this, partialState); - if (callback) { - ReactUpdateQueue.enqueueCallback(this, callback); - } -}; - -/** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {?function} callback Called after update is complete. - * @final - * @protected - */ -ReactComponent.prototype.forceUpdate = function(callback) { - ReactUpdateQueue.enqueueForceUpdate(this); - if (callback) { - ReactUpdateQueue.enqueueCallback(this, callback); - } -}; - -/** - * Deprecated APIs. These APIs used to exist on classic React classes but since - * we would like to deprecate them, we're not going to move them over to this - * modern base class. Instead, we define a getter that warns if it's accessed. - */ -if ("production" !== process.env.NODE_ENV) { - var deprecatedAPIs = { - getDOMNode: [ - 'getDOMNode', - 'Use React.findDOMNode(component) instead.' - ], - isMounted: [ - 'isMounted', - 'Instead, make sure to clean up subscriptions and pending requests in ' + - 'componentWillUnmount to prevent memory leaks.' - ], - replaceProps: [ - 'replaceProps', - 'Instead, call React.render again at the top level.' - ], - replaceState: [ - 'replaceState', - 'Refactor your code to use setState instead (see ' + - 'https://github.com/facebook/react/issues/3236).' - ], - setProps: [ - 'setProps', - 'Instead, call React.render again at the top level.' - ] - }; - var defineDeprecationWarning = function(methodName, info) { - try { - Object.defineProperty(ReactComponent.prototype, methodName, { - get: function() { - ("production" !== process.env.NODE_ENV ? warning( - false, - '%s(...) is deprecated in plain JavaScript React classes. %s', - info[0], - info[1] - ) : null); - return undefined; - } - }); - } catch (x) { - // IE will fail on defineProperty (es5-shim/sham too) - } - }; - for (var fnName in deprecatedAPIs) { - if (deprecatedAPIs.hasOwnProperty(fnName)) { - defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); - } - } -} - -module.exports = ReactComponent; - -}).call(this,require('_process')) -},{"./ReactUpdateQueue":138,"./invariant":187,"./warning":206,"_process":1}],87:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactComponentBrowserEnvironment - */ - -/*jslint evil: true */ - -'use strict'; - -var ReactDOMIDOperations = require("./ReactDOMIDOperations"); -var ReactMount = require("./ReactMount"); - -/** - * Abstracts away all functionality of the reconciler that requires knowledge of - * the browser context. TODO: These callers should be refactored to avoid the - * need for this injection. - */ -var ReactComponentBrowserEnvironment = { - - processChildrenUpdates: - ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, - - replaceNodeWithMarkupByID: - ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID, - - /** - * If a particular environment requires that some resources be cleaned up, - * specify this in the injected Mixin. In the DOM, we would likely want to - * purge any cached node ID lookups. - * - * @private - */ - unmountIDFromEnvironment: function(rootNodeID) { - ReactMount.purgeID(rootNodeID); - } - -}; - -module.exports = ReactComponentBrowserEnvironment; - -},{"./ReactDOMIDOperations":96,"./ReactMount":122}],88:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactComponentEnvironment - */ - -'use strict'; - -var invariant = require("./invariant"); - -var injected = false; - -var ReactComponentEnvironment = { - - /** - * Optionally injectable environment dependent cleanup hook. (server vs. - * browser etc). Example: A browser system caches DOM nodes based on component - * ID and must remove that cache entry when this instance is unmounted. - */ - unmountIDFromEnvironment: null, - - /** - * Optionally injectable hook for swapping out mount images in the middle of - * the tree. - */ - replaceNodeWithMarkupByID: null, - - /** - * Optionally injectable hook for processing a queue of child updates. Will - * later move into MultiChildComponents. - */ - processChildrenUpdates: null, - - injection: { - injectEnvironment: function(environment) { - ("production" !== process.env.NODE_ENV ? invariant( - !injected, - 'ReactCompositeComponent: injectEnvironment() can only be called once.' - ) : invariant(!injected)); - ReactComponentEnvironment.unmountIDFromEnvironment = - environment.unmountIDFromEnvironment; - ReactComponentEnvironment.replaceNodeWithMarkupByID = - environment.replaceNodeWithMarkupByID; - ReactComponentEnvironment.processChildrenUpdates = - environment.processChildrenUpdates; - injected = true; - } - } - -}; - -module.exports = ReactComponentEnvironment; - -}).call(this,require('_process')) -},{"./invariant":187,"_process":1}],89:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactCompositeComponent - */ - -'use strict'; - -var ReactComponentEnvironment = require("./ReactComponentEnvironment"); -var ReactContext = require("./ReactContext"); -var ReactCurrentOwner = require("./ReactCurrentOwner"); -var ReactElement = require("./ReactElement"); -var ReactElementValidator = require("./ReactElementValidator"); -var ReactInstanceMap = require("./ReactInstanceMap"); -var ReactLifeCycle = require("./ReactLifeCycle"); -var ReactNativeComponent = require("./ReactNativeComponent"); -var ReactPerf = require("./ReactPerf"); -var ReactPropTypeLocations = require("./ReactPropTypeLocations"); -var ReactPropTypeLocationNames = require("./ReactPropTypeLocationNames"); -var ReactReconciler = require("./ReactReconciler"); -var ReactUpdates = require("./ReactUpdates"); - -var assign = require("./Object.assign"); -var emptyObject = require("./emptyObject"); -var invariant = require("./invariant"); -var shouldUpdateReactComponent = require("./shouldUpdateReactComponent"); -var warning = require("./warning"); - -function getDeclarationErrorAddendum(component) { - var owner = component._currentElement._owner || null; - if (owner) { - var name = owner.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -/** - * ------------------ The Life-Cycle of a Composite Component ------------------ - * - * - constructor: Initialization of state. The instance is now retained. - * - componentWillMount - * - render - * - [children's constructors] - * - [children's componentWillMount and render] - * - [children's componentDidMount] - * - componentDidMount - * - * Update Phases: - * - componentWillReceiveProps (only called if parent updated) - * - shouldComponentUpdate - * - componentWillUpdate - * - render - * - [children's constructors or receive props phases] - * - componentDidUpdate - * - * - componentWillUnmount - * - [children's componentWillUnmount] - * - [children destroyed] - * - (destroyed): The instance is now blank, released by React and ready for GC. - * - * ----------------------------------------------------------------------------- - */ - -/** - * An incrementing ID assigned to each component when it is mounted. This is - * used to enforce the order in which `ReactUpdates` updates dirty components. - * - * @private - */ -var nextMountID = 1; - -/** - * @lends {ReactCompositeComponent.prototype} - */ -var ReactCompositeComponentMixin = { - - /** - * Base constructor for all composite component. - * - * @param {ReactElement} element - * @final - * @internal - */ - construct: function(element) { - this._currentElement = element; - this._rootNodeID = null; - this._instance = null; - - // See ReactUpdateQueue - this._pendingElement = null; - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - - this._renderedComponent = null; - - this._context = null; - this._mountOrder = 0; - this._isTopLevel = false; - - // See ReactUpdates and ReactUpdateQueue. - this._pendingCallbacks = null; - }, - - /** - * Initializes the component, renders markup, and registers event listeners. - * - * @param {string} rootID DOM ID of the root node. - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @return {?string} Rendered markup to be inserted into the DOM. - * @final - * @internal - */ - mountComponent: function(rootID, transaction, context) { - this._context = context; - this._mountOrder = nextMountID++; - this._rootNodeID = rootID; - - var publicProps = this._processProps(this._currentElement.props); - var publicContext = this._processContext(this._currentElement._context); - - var Component = ReactNativeComponent.getComponentClassForElement( - this._currentElement - ); - - // Initialize the public class - var inst = new Component(publicProps, publicContext); - - if ("production" !== process.env.NODE_ENV) { - // This will throw later in _renderValidatedComponent, but add an early - // warning now to help debugging - ("production" !== process.env.NODE_ENV ? warning( - inst.render != null, - '%s(...): No `render` method found on the returned component ' + - 'instance: you may have forgotten to define `render` in your ' + - 'component or you may have accidentally tried to render an element ' + - 'whose type is a function that isn\'t a React component.', - Component.displayName || Component.name || 'Component' - ) : null); - } - - // These should be set up in the constructor, but as a convenience for - // simpler class abstractions, we set them up after the fact. - inst.props = publicProps; - inst.context = publicContext; - inst.refs = emptyObject; - - this._instance = inst; - - // Store a reference from the instance back to the internal representation - ReactInstanceMap.set(inst, this); - - if ("production" !== process.env.NODE_ENV) { - this._warnIfContextsDiffer(this._currentElement._context, context); - } - - if ("production" !== process.env.NODE_ENV) { - // Since plain JS classes are defined without any special initialization - // logic, we can not catch common errors early. Therefore, we have to - // catch them here, at initialization time, instead. - ("production" !== process.env.NODE_ENV ? warning( - !inst.getInitialState || - inst.getInitialState.isReactClassApproved, - 'getInitialState was defined on %s, a plain JavaScript class. ' + - 'This is only supported for classes created using React.createClass. ' + - 'Did you mean to define a state property instead?', - this.getName() || 'a component' - ) : null); - ("production" !== process.env.NODE_ENV ? warning( - !inst.getDefaultProps || - inst.getDefaultProps.isReactClassApproved, - 'getDefaultProps was defined on %s, a plain JavaScript class. ' + - 'This is only supported for classes created using React.createClass. ' + - 'Use a static property to define defaultProps instead.', - this.getName() || 'a component' - ) : null); - ("production" !== process.env.NODE_ENV ? warning( - !inst.propTypes, - 'propTypes was defined as an instance property on %s. Use a static ' + - 'property to define propTypes instead.', - this.getName() || 'a component' - ) : null); - ("production" !== process.env.NODE_ENV ? warning( - !inst.contextTypes, - 'contextTypes was defined as an instance property on %s. Use a ' + - 'static property to define contextTypes instead.', - this.getName() || 'a component' - ) : null); - ("production" !== process.env.NODE_ENV ? warning( - typeof inst.componentShouldUpdate !== 'function', - '%s has a method called ' + - 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + - 'The name is phrased as a question because the function is ' + - 'expected to return a value.', - (this.getName() || 'A component') - ) : null); - } - - var initialState = inst.state; - if (initialState === undefined) { - inst.state = initialState = null; - } - ("production" !== process.env.NODE_ENV ? invariant( - typeof initialState === 'object' && !Array.isArray(initialState), - '%s.state: must be set to an object or null', - this.getName() || 'ReactCompositeComponent' - ) : invariant(typeof initialState === 'object' && !Array.isArray(initialState))); - - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - - var childContext; - var renderedElement; - - var previouslyMounting = ReactLifeCycle.currentlyMountingInstance; - ReactLifeCycle.currentlyMountingInstance = this; - try { - if (inst.componentWillMount) { - inst.componentWillMount(); - // When mounting, calls to `setState` by `componentWillMount` will set - // `this._pendingStateQueue` without triggering a re-render. - if (this._pendingStateQueue) { - inst.state = this._processPendingState(inst.props, inst.context); - } - } - - childContext = this._getValidatedChildContext(context); - renderedElement = this._renderValidatedComponent(childContext); - } finally { - ReactLifeCycle.currentlyMountingInstance = previouslyMounting; - } - - this._renderedComponent = this._instantiateReactComponent( - renderedElement, - this._currentElement.type // The wrapping type - ); - - var markup = ReactReconciler.mountComponent( - this._renderedComponent, - rootID, - transaction, - this._mergeChildContext(context, childContext) - ); - if (inst.componentDidMount) { - transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); - } - - return markup; - }, - - /** - * Releases any resources allocated by `mountComponent`. - * - * @final - * @internal - */ - unmountComponent: function() { - var inst = this._instance; - - if (inst.componentWillUnmount) { - var previouslyUnmounting = ReactLifeCycle.currentlyUnmountingInstance; - ReactLifeCycle.currentlyUnmountingInstance = this; - try { - inst.componentWillUnmount(); - } finally { - ReactLifeCycle.currentlyUnmountingInstance = previouslyUnmounting; - } - } - - ReactReconciler.unmountComponent(this._renderedComponent); - this._renderedComponent = null; - - // Reset pending fields - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - this._pendingCallbacks = null; - this._pendingElement = null; - - // These fields do not really need to be reset since this object is no - // longer accessible. - this._context = null; - this._rootNodeID = null; - - // Delete the reference from the instance to this internal representation - // which allow the internals to be properly cleaned up even if the user - // leaks a reference to the public instance. - ReactInstanceMap.remove(inst); - - // Some existing components rely on inst.props even after they've been - // destroyed (in event handlers). - // TODO: inst.props = null; - // TODO: inst.state = null; - // TODO: inst.context = null; - }, - - /** - * Schedule a partial update to the props. Only used for internal testing. - * - * @param {object} partialProps Subset of the next props. - * @param {?function} callback Called after props are updated. - * @final - * @internal - */ - _setPropsInternal: function(partialProps, callback) { - // This is a deoptimized path. We optimize for always having an element. - // This creates an extra internal element. - var element = this._pendingElement || this._currentElement; - this._pendingElement = ReactElement.cloneAndReplaceProps( - element, - assign({}, element.props, partialProps) - ); - ReactUpdates.enqueueUpdate(this, callback); - }, - - /** - * Filters the context object to only contain keys specified in - * `contextTypes` - * - * @param {object} context - * @return {?object} - * @private - */ - _maskContext: function(context) { - var maskedContext = null; - // This really should be getting the component class for the element, - // but we know that we're not going to need it for built-ins. - if (typeof this._currentElement.type === 'string') { - return emptyObject; - } - var contextTypes = this._currentElement.type.contextTypes; - if (!contextTypes) { - return emptyObject; - } - maskedContext = {}; - for (var contextName in contextTypes) { - maskedContext[contextName] = context[contextName]; - } - return maskedContext; - }, - - /** - * Filters the context object to only contain keys specified in - * `contextTypes`, and asserts that they are valid. - * - * @param {object} context - * @return {?object} - * @private - */ - _processContext: function(context) { - var maskedContext = this._maskContext(context); - if ("production" !== process.env.NODE_ENV) { - var Component = ReactNativeComponent.getComponentClassForElement( - this._currentElement - ); - if (Component.contextTypes) { - this._checkPropTypes( - Component.contextTypes, - maskedContext, - ReactPropTypeLocations.context - ); - } - } - return maskedContext; - }, - - /** - * @param {object} currentContext - * @return {object} - * @private - */ - _getValidatedChildContext: function(currentContext) { - var inst = this._instance; - var childContext = inst.getChildContext && inst.getChildContext(); - if (childContext) { - ("production" !== process.env.NODE_ENV ? invariant( - typeof inst.constructor.childContextTypes === 'object', - '%s.getChildContext(): childContextTypes must be defined in order to ' + - 'use getChildContext().', - this.getName() || 'ReactCompositeComponent' - ) : invariant(typeof inst.constructor.childContextTypes === 'object')); - if ("production" !== process.env.NODE_ENV) { - this._checkPropTypes( - inst.constructor.childContextTypes, - childContext, - ReactPropTypeLocations.childContext - ); - } - for (var name in childContext) { - ("production" !== process.env.NODE_ENV ? invariant( - name in inst.constructor.childContextTypes, - '%s.getChildContext(): key "%s" is not defined in childContextTypes.', - this.getName() || 'ReactCompositeComponent', - name - ) : invariant(name in inst.constructor.childContextTypes)); - } - return childContext; - } - return null; - }, - - _mergeChildContext: function(currentContext, childContext) { - if (childContext) { - return assign({}, currentContext, childContext); - } - return currentContext; - }, - - /** - * Processes props by setting default values for unspecified props and - * asserting that the props are valid. Does not mutate its argument; returns - * a new props object with defaults merged in. - * - * @param {object} newProps - * @return {object} - * @private - */ - _processProps: function(newProps) { - if ("production" !== process.env.NODE_ENV) { - var Component = ReactNativeComponent.getComponentClassForElement( - this._currentElement - ); - if (Component.propTypes) { - this._checkPropTypes( - Component.propTypes, - newProps, - ReactPropTypeLocations.prop - ); - } - } - return newProps; - }, - - /** - * Assert that the props are valid - * - * @param {object} propTypes Map of prop name to a ReactPropType - * @param {object} props - * @param {string} location e.g. "prop", "context", "child context" - * @private - */ - _checkPropTypes: function(propTypes, props, location) { - // TODO: Stop validating prop types here and only use the element - // validation. - var componentName = this.getName(); - for (var propName in propTypes) { - if (propTypes.hasOwnProperty(propName)) { - var error; - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - ("production" !== process.env.NODE_ENV ? invariant( - typeof propTypes[propName] === 'function', - '%s: %s type `%s` is invalid; it must be a function, usually ' + - 'from React.PropTypes.', - componentName || 'React class', - ReactPropTypeLocationNames[location], - propName - ) : invariant(typeof propTypes[propName] === 'function')); - error = propTypes[propName](props, propName, componentName, location); - } catch (ex) { - error = ex; - } - if (error instanceof Error) { - // We may want to extend this logic for similar errors in - // React.render calls, so I'm abstracting it away into - // a function to minimize refactoring in the future - var addendum = getDeclarationErrorAddendum(this); - - if (location === ReactPropTypeLocations.prop) { - // Preface gives us something to blacklist in warning module - ("production" !== process.env.NODE_ENV ? warning( - false, - 'Failed Composite propType: %s%s', - error.message, - addendum - ) : null); - } else { - ("production" !== process.env.NODE_ENV ? warning( - false, - 'Failed Context Types: %s%s', - error.message, - addendum - ) : null); - } - } - } - } - }, - - receiveComponent: function(nextElement, transaction, nextContext) { - var prevElement = this._currentElement; - var prevContext = this._context; - - this._pendingElement = null; - - this.updateComponent( - transaction, - prevElement, - nextElement, - prevContext, - nextContext - ); - }, - - /** - * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate` - * is set, update the component. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - performUpdateIfNecessary: function(transaction) { - if (this._pendingElement != null) { - ReactReconciler.receiveComponent( - this, - this._pendingElement || this._currentElement, - transaction, - this._context - ); - } - - if (this._pendingStateQueue !== null || this._pendingForceUpdate) { - if ("production" !== process.env.NODE_ENV) { - ReactElementValidator.checkAndWarnForMutatedProps( - this._currentElement - ); - } - - this.updateComponent( - transaction, - this._currentElement, - this._currentElement, - this._context, - this._context - ); - } - }, - - /** - * Compare two contexts, warning if they are different - * TODO: Remove this check when owner-context is removed - */ - _warnIfContextsDiffer: function(ownerBasedContext, parentBasedContext) { - ownerBasedContext = this._maskContext(ownerBasedContext); - parentBasedContext = this._maskContext(parentBasedContext); - var parentKeys = Object.keys(parentBasedContext).sort(); - var displayName = this.getName() || 'ReactCompositeComponent'; - for (var i = 0; i < parentKeys.length; i++) { - var key = parentKeys[i]; - ("production" !== process.env.NODE_ENV ? warning( - ownerBasedContext[key] === parentBasedContext[key], - 'owner-based and parent-based contexts differ ' + - '(values: `%s` vs `%s`) for key (%s) while mounting %s ' + - '(see: http://fb.me/react-context-by-parent)', - ownerBasedContext[key], - parentBasedContext[key], - key, - displayName - ) : null); - } - }, - - /** - * Perform an update to a mounted component. The componentWillReceiveProps and - * shouldComponentUpdate methods are called, then (assuming the update isn't - * skipped) the remaining update lifecycle methods are called and the DOM - * representation is updated. - * - * By default, this implements React's rendering and reconciliation algorithm. - * Sophisticated clients may wish to override this. - * - * @param {ReactReconcileTransaction} transaction - * @param {ReactElement} prevParentElement - * @param {ReactElement} nextParentElement - * @internal - * @overridable - */ - updateComponent: function( - transaction, - prevParentElement, - nextParentElement, - prevUnmaskedContext, - nextUnmaskedContext - ) { - var inst = this._instance; - - var nextContext = inst.context; - var nextProps = inst.props; - - // Distinguish between a props update versus a simple state update - if (prevParentElement !== nextParentElement) { - nextContext = this._processContext(nextParentElement._context); - nextProps = this._processProps(nextParentElement.props); - - if ("production" !== process.env.NODE_ENV) { - if (nextUnmaskedContext != null) { - this._warnIfContextsDiffer( - nextParentElement._context, - nextUnmaskedContext - ); - } - } - - // An update here will schedule an update but immediately set - // _pendingStateQueue which will ensure that any state updates gets - // immediately reconciled instead of waiting for the next batch. - - if (inst.componentWillReceiveProps) { - inst.componentWillReceiveProps(nextProps, nextContext); - } - } - - var nextState = this._processPendingState(nextProps, nextContext); - - var shouldUpdate = - this._pendingForceUpdate || - !inst.shouldComponentUpdate || - inst.shouldComponentUpdate(nextProps, nextState, nextContext); - - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - typeof shouldUpdate !== 'undefined', - '%s.shouldComponentUpdate(): Returned undefined instead of a ' + - 'boolean value. Make sure to return true or false.', - this.getName() || 'ReactCompositeComponent' - ) : null); - } - - if (shouldUpdate) { - this._pendingForceUpdate = false; - // Will set `this.props`, `this.state` and `this.context`. - this._performComponentUpdate( - nextParentElement, - nextProps, - nextState, - nextContext, - transaction, - nextUnmaskedContext - ); - } else { - // If it's determined that a component should not update, we still want - // to set props and state but we shortcut the rest of the update. - this._currentElement = nextParentElement; - this._context = nextUnmaskedContext; - inst.props = nextProps; - inst.state = nextState; - inst.context = nextContext; - } - }, - - _processPendingState: function(props, context) { - var inst = this._instance; - var queue = this._pendingStateQueue; - var replace = this._pendingReplaceState; - this._pendingReplaceState = false; - this._pendingStateQueue = null; - - if (!queue) { - return inst.state; - } - - if (replace && queue.length === 1) { - return queue[0]; - } - - var nextState = assign({}, replace ? queue[0] : inst.state); - for (var i = replace ? 1 : 0; i < queue.length; i++) { - var partial = queue[i]; - assign( - nextState, - typeof partial === 'function' ? - partial.call(inst, nextState, props, context) : - partial - ); - } - - return nextState; - }, - - /** - * Merges new props and state, notifies delegate methods of update and - * performs update. - * - * @param {ReactElement} nextElement Next element - * @param {object} nextProps Next public object to set as properties. - * @param {?object} nextState Next object to set as state. - * @param {?object} nextContext Next public object to set as context. - * @param {ReactReconcileTransaction} transaction - * @param {?object} unmaskedContext - * @private - */ - _performComponentUpdate: function( - nextElement, - nextProps, - nextState, - nextContext, - transaction, - unmaskedContext - ) { - var inst = this._instance; - - var prevProps = inst.props; - var prevState = inst.state; - var prevContext = inst.context; - - if (inst.componentWillUpdate) { - inst.componentWillUpdate(nextProps, nextState, nextContext); - } - - this._currentElement = nextElement; - this._context = unmaskedContext; - inst.props = nextProps; - inst.state = nextState; - inst.context = nextContext; - - this._updateRenderedComponent(transaction, unmaskedContext); - - if (inst.componentDidUpdate) { - transaction.getReactMountReady().enqueue( - inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), - inst - ); - } - }, - - /** - * Call the component's `render` method and update the DOM accordingly. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - _updateRenderedComponent: function(transaction, context) { - var prevComponentInstance = this._renderedComponent; - var prevRenderedElement = prevComponentInstance._currentElement; - var childContext = this._getValidatedChildContext(); - var nextRenderedElement = this._renderValidatedComponent(childContext); - if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { - ReactReconciler.receiveComponent( - prevComponentInstance, - nextRenderedElement, - transaction, - this._mergeChildContext(context, childContext) - ); - } else { - // These two IDs are actually the same! But nothing should rely on that. - var thisID = this._rootNodeID; - var prevComponentID = prevComponentInstance._rootNodeID; - ReactReconciler.unmountComponent(prevComponentInstance); - - this._renderedComponent = this._instantiateReactComponent( - nextRenderedElement, - this._currentElement.type - ); - var nextMarkup = ReactReconciler.mountComponent( - this._renderedComponent, - thisID, - transaction, - this._mergeChildContext(context, childContext) - ); - this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup); - } - }, - - /** - * @protected - */ - _replaceNodeWithMarkupByID: function(prevComponentID, nextMarkup) { - ReactComponentEnvironment.replaceNodeWithMarkupByID( - prevComponentID, - nextMarkup - ); - }, - - /** - * @protected - */ - _renderValidatedComponentWithoutOwnerOrContext: function() { - var inst = this._instance; - var renderedComponent = inst.render(); - if ("production" !== process.env.NODE_ENV) { - // We allow auto-mocks to proceed as if they're returning null. - if (typeof renderedComponent === 'undefined' && - inst.render._isMockFunction) { - // This is probably bad practice. Consider warning here and - // deprecating this convenience. - renderedComponent = null; - } - } - - return renderedComponent; - }, - - /** - * @private - */ - _renderValidatedComponent: function(childContext) { - var renderedComponent; - var previousContext = ReactContext.current; - ReactContext.current = this._mergeChildContext( - this._currentElement._context, - childContext - ); - ReactCurrentOwner.current = this; - try { - renderedComponent = - this._renderValidatedComponentWithoutOwnerOrContext(); - } finally { - ReactContext.current = previousContext; - ReactCurrentOwner.current = null; - } - ("production" !== process.env.NODE_ENV ? invariant( - // TODO: An `isValidNode` function would probably be more appropriate - renderedComponent === null || renderedComponent === false || - ReactElement.isValidElement(renderedComponent), - '%s.render(): A valid ReactComponent must be returned. You may have ' + - 'returned undefined, an array or some other invalid object.', - this.getName() || 'ReactCompositeComponent' - ) : invariant(// TODO: An `isValidNode` function would probably be more appropriate - renderedComponent === null || renderedComponent === false || - ReactElement.isValidElement(renderedComponent))); - return renderedComponent; - }, - - /** - * Lazily allocates the refs object and stores `component` as `ref`. - * - * @param {string} ref Reference name. - * @param {component} component Component to store as `ref`. - * @final - * @private - */ - attachRef: function(ref, component) { - var inst = this.getPublicInstance(); - var refs = inst.refs === emptyObject ? (inst.refs = {}) : inst.refs; - refs[ref] = component.getPublicInstance(); - }, - - /** - * Detaches a reference name. - * - * @param {string} ref Name to dereference. - * @final - * @private - */ - detachRef: function(ref) { - var refs = this.getPublicInstance().refs; - delete refs[ref]; - }, - - /** - * Get a text description of the component that can be used to identify it - * in error messages. - * @return {string} The name or null. - * @internal - */ - getName: function() { - var type = this._currentElement.type; - var constructor = this._instance && this._instance.constructor; - return ( - type.displayName || (constructor && constructor.displayName) || - type.name || (constructor && constructor.name) || - null - ); - }, - - /** - * Get the publicly accessible representation of this component - i.e. what - * is exposed by refs and returned by React.render. Can be null for stateless - * components. - * - * @return {ReactComponent} the public component instance. - * @internal - */ - getPublicInstance: function() { - return this._instance; - }, - - // Stub - _instantiateReactComponent: null - -}; - -ReactPerf.measureMethods( - ReactCompositeComponentMixin, - 'ReactCompositeComponent', - { - mountComponent: 'mountComponent', - updateComponent: 'updateComponent', - _renderValidatedComponent: '_renderValidatedComponent' - } -); - -var ReactCompositeComponent = { - - Mixin: ReactCompositeComponentMixin - -}; - -module.exports = ReactCompositeComponent; - -}).call(this,require('_process')) -},{"./Object.assign":78,"./ReactComponentEnvironment":88,"./ReactContext":90,"./ReactCurrentOwner":91,"./ReactElement":109,"./ReactElementValidator":110,"./ReactInstanceMap":119,"./ReactLifeCycle":120,"./ReactNativeComponent":125,"./ReactPerf":127,"./ReactPropTypeLocationNames":128,"./ReactPropTypeLocations":129,"./ReactReconciler":133,"./ReactUpdates":139,"./emptyObject":167,"./invariant":187,"./shouldUpdateReactComponent":203,"./warning":206,"_process":1}],90:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactContext - */ - -'use strict'; - -var assign = require("./Object.assign"); -var emptyObject = require("./emptyObject"); -var warning = require("./warning"); - -var didWarn = false; - -/** - * Keeps track of the current context. - * - * The context is automatically passed down the component ownership hierarchy - * and is accessible via `this.context` on ReactCompositeComponents. - */ -var ReactContext = { - - /** - * @internal - * @type {object} - */ - current: emptyObject, - - /** - * Temporarily extends the current context while executing scopedCallback. - * - * A typical use case might look like - * - * render: function() { - * var children = ReactContext.withContext({foo: 'foo'}, () => ( - * - * )); - * return
{children}
; - * } - * - * @param {object} newContext New context to merge into the existing context - * @param {function} scopedCallback Callback to run with the new context - * @return {ReactComponent|array} - */ - withContext: function(newContext, scopedCallback) { - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - didWarn, - 'withContext is deprecated and will be removed in a future version. ' + - 'Use a wrapper component with getChildContext instead.' - ) : null); - - didWarn = true; - } - - var result; - var previousContext = ReactContext.current; - ReactContext.current = assign({}, previousContext, newContext); - try { - result = scopedCallback(); - } finally { - ReactContext.current = previousContext; - } - return result; - } - -}; - -module.exports = ReactContext; - -}).call(this,require('_process')) -},{"./Object.assign":78,"./emptyObject":167,"./warning":206,"_process":1}],91:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactCurrentOwner - */ - -'use strict'; - -/** - * Keeps track of the current owner. - * - * The current owner is the component who should own any components that are - * currently being constructed. - * - * The depth indicate how many composite components are above this render level. - */ -var ReactCurrentOwner = { - - /** - * @internal - * @type {ReactComponent} - */ - current: null - -}; - -module.exports = ReactCurrentOwner; - -},{}],92:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOM - * @typechecks static-only - */ - -'use strict'; - -var ReactElement = require("./ReactElement"); -var ReactElementValidator = require("./ReactElementValidator"); - -var mapObject = require("./mapObject"); - -/** - * Create a factory that creates HTML tag elements. - * - * @param {string} tag Tag name (e.g. `div`). - * @private - */ -function createDOMFactory(tag) { - if ("production" !== process.env.NODE_ENV) { - return ReactElementValidator.createFactory(tag); - } - return ReactElement.createFactory(tag); -} - -/** - * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. - * This is also accessible via `React.DOM`. - * - * @public - */ -var ReactDOM = mapObject({ - a: 'a', - abbr: 'abbr', - address: 'address', - area: 'area', - article: 'article', - aside: 'aside', - audio: 'audio', - b: 'b', - base: 'base', - bdi: 'bdi', - bdo: 'bdo', - big: 'big', - blockquote: 'blockquote', - body: 'body', - br: 'br', - button: 'button', - canvas: 'canvas', - caption: 'caption', - cite: 'cite', - code: 'code', - col: 'col', - colgroup: 'colgroup', - data: 'data', - datalist: 'datalist', - dd: 'dd', - del: 'del', - details: 'details', - dfn: 'dfn', - dialog: 'dialog', - div: 'div', - dl: 'dl', - dt: 'dt', - em: 'em', - embed: 'embed', - fieldset: 'fieldset', - figcaption: 'figcaption', - figure: 'figure', - footer: 'footer', - form: 'form', - h1: 'h1', - h2: 'h2', - h3: 'h3', - h4: 'h4', - h5: 'h5', - h6: 'h6', - head: 'head', - header: 'header', - hr: 'hr', - html: 'html', - i: 'i', - iframe: 'iframe', - img: 'img', - input: 'input', - ins: 'ins', - kbd: 'kbd', - keygen: 'keygen', - label: 'label', - legend: 'legend', - li: 'li', - link: 'link', - main: 'main', - map: 'map', - mark: 'mark', - menu: 'menu', - menuitem: 'menuitem', - meta: 'meta', - meter: 'meter', - nav: 'nav', - noscript: 'noscript', - object: 'object', - ol: 'ol', - optgroup: 'optgroup', - option: 'option', - output: 'output', - p: 'p', - param: 'param', - picture: 'picture', - pre: 'pre', - progress: 'progress', - q: 'q', - rp: 'rp', - rt: 'rt', - ruby: 'ruby', - s: 's', - samp: 'samp', - script: 'script', - section: 'section', - select: 'select', - small: 'small', - source: 'source', - span: 'span', - strong: 'strong', - style: 'style', - sub: 'sub', - summary: 'summary', - sup: 'sup', - table: 'table', - tbody: 'tbody', - td: 'td', - textarea: 'textarea', - tfoot: 'tfoot', - th: 'th', - thead: 'thead', - time: 'time', - title: 'title', - tr: 'tr', - track: 'track', - u: 'u', - ul: 'ul', - 'var': 'var', - video: 'video', - wbr: 'wbr', - - // SVG - circle: 'circle', - clipPath: 'clipPath', - defs: 'defs', - ellipse: 'ellipse', - g: 'g', - line: 'line', - linearGradient: 'linearGradient', - mask: 'mask', - path: 'path', - pattern: 'pattern', - polygon: 'polygon', - polyline: 'polyline', - radialGradient: 'radialGradient', - rect: 'rect', - stop: 'stop', - svg: 'svg', - text: 'text', - tspan: 'tspan' - -}, createDOMFactory); - -module.exports = ReactDOM; - -}).call(this,require('_process')) -},{"./ReactElement":109,"./ReactElementValidator":110,"./mapObject":194,"_process":1}],93:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMButton - */ - -'use strict'; - -var AutoFocusMixin = require("./AutoFocusMixin"); -var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin"); -var ReactClass = require("./ReactClass"); -var ReactElement = require("./ReactElement"); - -var keyMirror = require("./keyMirror"); - -var button = ReactElement.createFactory('button'); - -var mouseListenerNames = keyMirror({ - onClick: true, - onDoubleClick: true, - onMouseDown: true, - onMouseMove: true, - onMouseUp: true, - onClickCapture: true, - onDoubleClickCapture: true, - onMouseDownCapture: true, - onMouseMoveCapture: true, - onMouseUpCapture: true -}); - -/** - * Implements a

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 literal 0 HcmV?d00001 diff --git a/assets/background.jpg b/assets/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19af0ea57137d741e7e3fc87c50bb7653c6adb06 GIT binary patch literal 268452 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