diff --git a/plugins/Show-Hide-Passwords-Bootstrap-4/LICENSE b/plugins/Show-Hide-Passwords-Bootstrap-4/LICENSE deleted file mode 100644 index 94a9ed02..00000000 --- a/plugins/Show-Hide-Passwords-Bootstrap-4/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. - - - Copyright (C) - - 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: - - Copyright (C) - 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/plugins/Show-Hide-Passwords-Bootstrap-4/README.md b/plugins/Show-Hide-Passwords-Bootstrap-4/README.md deleted file mode 100644 index add5716a..00000000 --- a/plugins/Show-Hide-Passwords-Bootstrap-4/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# bootstrap-show-password -Bootstrap 4 show input password when click on icon - -include plugin file - -```bash - -``` - -Example - -```bash -
- -
- -
-
-``` diff --git a/plugins/Show-Hide-Passwords-Bootstrap-4/index.html b/plugins/Show-Hide-Passwords-Bootstrap-4/index.html deleted file mode 100644 index b0a614ca..00000000 --- a/plugins/Show-Hide-Passwords-Bootstrap-4/index.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - -Bootstrap 4 Show/Hide Password Example - - - - - - - -
-
- -
-
-
-
-
-
-

Bootstrap 4 Show/Hide Password Example

-
- - - We'll never share your email with anyone else. -
-
- -
- - -
- -
-
-
-
- - - - - diff --git a/plugins/clipboardjs/clipboard.min.js.old b/plugins/clipboardjs/clipboard.min.js.old deleted file mode 100644 index 28650f3c..00000000 --- a/plugins/clipboardjs/clipboard.min.js.old +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v2.0.6 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o> 8 & 0xFF]; -}; - -var packInt32 = function (number) { - return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; -}; - -var unpackInt32 = function (buffer) { - return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; -}; - -var packFloat32 = function (number) { - return packIEEE754(number, 23, 4); -}; - -var packFloat64 = function (number) { - return packIEEE754(number, 52, 8); -}; - -var addGetter = function (Constructor, key) { - defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } }); -}; - -var get = function (view, count, index, isLittleEndian) { - var intIndex = toIndex(index); - var store = getInternalState(view); - if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX); - var bytes = getInternalState(store.buffer).bytes; - var start = intIndex + store.byteOffset; - var pack = bytes.slice(start, start + count); - return isLittleEndian ? pack : pack.reverse(); -}; - -var set = function (view, count, index, conversion, value, isLittleEndian) { - var intIndex = toIndex(index); - var store = getInternalState(view); - if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX); - var bytes = getInternalState(store.buffer).bytes; - var start = intIndex + store.byteOffset; - var pack = conversion(+value); - for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1]; -}; - -if (!NATIVE_ARRAY_BUFFER) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer, ARRAY_BUFFER); - var byteLength = toIndex(length); - setInternalState(this, { - bytes: arrayFill.call(new Array(byteLength), 0), - byteLength: byteLength - }); - if (!DESCRIPTORS) this.byteLength = byteLength; - }; - - $DataView = function DataView(buffer, byteOffset, byteLength) { - anInstance(this, $DataView, DATA_VIEW); - anInstance(buffer, $ArrayBuffer, DATA_VIEW); - var bufferLength = getInternalState(buffer).byteLength; - var offset = toInteger(byteOffset); - if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset'); - byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); - if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); - setInternalState(this, { - buffer: buffer, - byteLength: byteLength, - byteOffset: offset - }); - if (!DESCRIPTORS) { - this.buffer = buffer; - this.byteLength = byteLength; - this.byteOffset = offset; - } - }; - - if (DESCRIPTORS) { - addGetter($ArrayBuffer, 'byteLength'); - addGetter($DataView, 'buffer'); - addGetter($DataView, 'byteLength'); - addGetter($DataView, 'byteOffset'); - } - - redefineAll($DataView[PROTOTYPE], { - getInt8: function getInt8(byteOffset) { - return get(this, 1, byteOffset)[0] << 24 >> 24; - }, - getUint8: function getUint8(byteOffset) { - return get(this, 1, byteOffset)[0]; - }, - getInt16: function getInt16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); - return (bytes[1] << 8 | bytes[0]) << 16 >> 16; - }, - getUint16: function getUint16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); - return bytes[1] << 8 | bytes[0]; - }, - getInt32: function getInt32(byteOffset /* , littleEndian */) { - return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)); - }, - getUint32: function getUint32(byteOffset /* , littleEndian */) { - return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0; - }, - getFloat32: function getFloat32(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23); - }, - getFloat64: function getFloat64(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52); - }, - setInt8: function setInt8(byteOffset, value) { - set(this, 1, byteOffset, packInt8, value); - }, - setUint8: function setUint8(byteOffset, value) { - set(this, 1, byteOffset, packInt8, value); - }, - setInt16: function setInt16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setUint16: function setUint16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setInt32: function setInt32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setUint32: function setUint32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { - set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined); - } - }); -} else { - /* eslint-disable no-new -- required for testing */ - if (!fails(function () { - NativeArrayBuffer(1); - }) || !fails(function () { - new NativeArrayBuffer(-1); - }) || fails(function () { - new NativeArrayBuffer(); - new NativeArrayBuffer(1.5); - new NativeArrayBuffer(NaN); - return NativeArrayBuffer.name != ARRAY_BUFFER; - })) { - /* eslint-enable no-new -- required for testing */ - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer); - return new NativeArrayBuffer(toIndex(length)); - }; - var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE]; - for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) { - if (!((key = keys[j++]) in $ArrayBuffer)) { - createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]); - } - } - ArrayBufferPrototype.constructor = $ArrayBuffer; - } - - // WebKit bug - the same parent prototype for typed arrays and data view - if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) { - setPrototypeOf($DataViewPrototype, ObjectPrototype); - } - - // iOS Safari 7.x bug - var testView = new $DataView(new $ArrayBuffer(2)); - var nativeSetInt8 = $DataViewPrototype.setInt8; - testView.setInt8(0, 2147483648); - testView.setInt8(1, 2147483649); - if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, { - setInt8: function setInt8(byteOffset, value) { - nativeSetInt8.call(this, byteOffset, value << 24 >> 24); - }, - setUint8: function setUint8(byteOffset, value) { - nativeSetInt8.call(this, byteOffset, value << 24 >> 24); - } - }, { unsafe: true }); -} - -setToStringTag($ArrayBuffer, ARRAY_BUFFER); -setToStringTag($DataView, DATA_VIEW); - -module.exports = { - ArrayBuffer: $ArrayBuffer, - DataView: $DataView -}; - - -/***/ }), - -/***/ 1048: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toObject = __webpack_require__(7908); -var toAbsoluteIndex = __webpack_require__(1400); -var toLength = __webpack_require__(7466); - -var min = Math.min; - -// `Array.prototype.copyWithin` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.copywithin -module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { - var O = toObject(this); - var len = toLength(O.length); - var to = toAbsoluteIndex(target, len); - var from = toAbsoluteIndex(start, len); - var end = arguments.length > 2 ? arguments[2] : undefined; - var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); - var inc = 1; - if (from < to && to < from + count) { - inc = -1; - from += count - 1; - to += count - 1; - } - while (count-- > 0) { - if (from in O) O[to] = O[from]; - else delete O[to]; - to += inc; - from += inc; - } return O; -}; - - -/***/ }), - -/***/ 1285: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toObject = __webpack_require__(7908); -var toAbsoluteIndex = __webpack_require__(1400); -var toLength = __webpack_require__(7466); - -// `Array.prototype.fill` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.fill -module.exports = function fill(value /* , start = 0, end = @length */) { - var O = toObject(this); - var length = toLength(O.length); - var argumentsLength = arguments.length; - var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); - var end = argumentsLength > 2 ? arguments[2] : undefined; - var endPos = end === undefined ? length : toAbsoluteIndex(end, length); - while (endPos > index) O[index++] = value; - return O; -}; - - -/***/ }), - -/***/ 8533: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $forEach = __webpack_require__(2092).forEach; -var arrayMethodIsStrict = __webpack_require__(9341); - -var STRICT_METHOD = arrayMethodIsStrict('forEach'); - -// `Array.prototype.forEach` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.foreach -module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { - return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); -} : [].forEach; - - -/***/ }), - -/***/ 8457: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var bind = __webpack_require__(9974); -var toObject = __webpack_require__(7908); -var callWithSafeIterationClosing = __webpack_require__(3411); -var isArrayIteratorMethod = __webpack_require__(7659); -var toLength = __webpack_require__(7466); -var createProperty = __webpack_require__(6135); -var getIteratorMethod = __webpack_require__(1246); - -// `Array.from` method implementation -// https://tc39.es/ecma262/#sec-array.from -module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var index = 0; - var length, result, step, iterator, next, value; - if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); - // if the target is not iterable or it's an array with the default iterator - use a simple case - if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { - iterator = iteratorMethod.call(O); - next = iterator.next; - result = new C(); - for (;!(step = next.call(iterator)).done; index++) { - value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; - createProperty(result, index, value); - } - } else { - length = toLength(O.length); - result = new C(length); - for (;length > index; index++) { - value = mapping ? mapfn(O[index], index) : O[index]; - createProperty(result, index, value); - } - } - result.length = index; - return result; -}; - - -/***/ }), - -/***/ 1318: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toIndexedObject = __webpack_require__(5656); -var toLength = __webpack_require__(7466); -var toAbsoluteIndex = __webpack_require__(1400); - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare -- NaN check - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare -- NaN check - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -module.exports = { - // `Array.prototype.includes` method - // https://tc39.es/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) -}; - - -/***/ }), - -/***/ 2092: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var bind = __webpack_require__(9974); -var IndexedObject = __webpack_require__(8361); -var toObject = __webpack_require__(7908); -var toLength = __webpack_require__(7466); -var arraySpeciesCreate = __webpack_require__(5417); - -var push = [].push; - -// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation -var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var IS_FILTER_OUT = TYPE == 7; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push.call(target, value); // filter - } else switch (TYPE) { - case 4: return false; // every - case 7: push.call(target, value); // filterOut - } - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; -}; - -module.exports = { - // `Array.prototype.forEach` method - // https://tc39.es/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.es/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.es/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.es/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.es/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.es/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.es/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6), - // `Array.prototype.filterOut` method - // https://github.com/tc39/proposal-array-filtering - filterOut: createMethod(7) -}; - - -/***/ }), - -/***/ 6583: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toIndexedObject = __webpack_require__(5656); -var toInteger = __webpack_require__(9958); -var toLength = __webpack_require__(7466); -var arrayMethodIsStrict = __webpack_require__(9341); - -var min = Math.min; -var nativeLastIndexOf = [].lastIndexOf; -var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; -var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); -var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; - -// `Array.prototype.lastIndexOf` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.lastindexof -module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { - // convert -0 to +0 - if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0; - var O = toIndexedObject(this); - var length = toLength(O.length); - var index = length - 1; - if (arguments.length > 1) index = min(index, toInteger(arguments[1])); - if (index < 0) index = length + index; - for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; - return -1; -} : nativeLastIndexOf; - - -/***/ }), - -/***/ 1194: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var wellKnownSymbol = __webpack_require__(5112); -var V8_VERSION = __webpack_require__(7392); - -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); -}; - - -/***/ }), - -/***/ 9341: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fails = __webpack_require__(7293); - -module.exports = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing - method.call(null, argument || function () { throw 1; }, 1); - }); -}; - - -/***/ }), - -/***/ 3671: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var aFunction = __webpack_require__(3099); -var toObject = __webpack_require__(7908); -var IndexedObject = __webpack_require__(8361); -var toLength = __webpack_require__(7466); - -// `Array.prototype.{ reduce, reduceRight }` methods implementation -var createMethod = function (IS_RIGHT) { - return function (that, callbackfn, argumentsLength, memo) { - aFunction(callbackfn); - var O = toObject(that); - var self = IndexedObject(O); - var length = toLength(O.length); - var index = IS_RIGHT ? length - 1 : 0; - var i = IS_RIGHT ? -1 : 1; - if (argumentsLength < 2) while (true) { - if (index in self) { - memo = self[index]; - index += i; - break; - } - index += i; - if (IS_RIGHT ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); - } - } - for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { - memo = callbackfn(memo, self[index], index, O); - } - return memo; - }; -}; - -module.exports = { - // `Array.prototype.reduce` method - // https://tc39.es/ecma262/#sec-array.prototype.reduce - left: createMethod(false), - // `Array.prototype.reduceRight` method - // https://tc39.es/ecma262/#sec-array.prototype.reduceright - right: createMethod(true) -}; - - -/***/ }), - -/***/ 5417: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); -var isArray = __webpack_require__(3157); -var wellKnownSymbol = __webpack_require__(5112); - -var SPECIES = wellKnownSymbol('species'); - -// `ArraySpeciesCreate` abstract operation -// https://tc39.es/ecma262/#sec-arrayspeciescreate -module.exports = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); -}; - - -/***/ }), - -/***/ 3411: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var iteratorClose = __webpack_require__(9212); - -// call something on iterator step with safe closing on error -module.exports = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (error) { - iteratorClose(iterator); - throw error; - } -}; - - -/***/ }), - -/***/ 7072: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); -var SAFE_CLOSING = false; - -try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR] = function () { - return this; - }; - // eslint-disable-next-line no-throw-literal -- required for testing - Array.from(iteratorWithReturn, function () { throw 2; }); -} catch (error) { /* empty */ } - -module.exports = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; -}; - - -/***/ }), - -/***/ 4326: -/***/ (function(module) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), - -/***/ 648: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(1694); -var classofRaw = __webpack_require__(4326); -var wellKnownSymbol = __webpack_require__(5112); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; - -// getting tag from ES6+ `Object.prototype.toString` -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; - - -/***/ }), - -/***/ 9920: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var has = __webpack_require__(6656); -var ownKeys = __webpack_require__(3887); -var getOwnPropertyDescriptorModule = __webpack_require__(1236); -var definePropertyModule = __webpack_require__(3070); - -module.exports = function (target, source) { - var keys = ownKeys(source); - var defineProperty = definePropertyModule.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } -}; - - -/***/ }), - -/***/ 8544: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -module.exports = !fails(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; -}); - - -/***/ }), - -/***/ 4994: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var IteratorPrototype = __webpack_require__(3383).IteratorPrototype; -var create = __webpack_require__(30); -var createPropertyDescriptor = __webpack_require__(9114); -var setToStringTag = __webpack_require__(8003); -var Iterators = __webpack_require__(7497); - -var returnThis = function () { return this; }; - -module.exports = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); - Iterators[TO_STRING_TAG] = returnThis; - return IteratorConstructor; -}; - - -/***/ }), - -/***/ 8880: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var definePropertyModule = __webpack_require__(3070); -var createPropertyDescriptor = __webpack_require__(9114); - -module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), - -/***/ 9114: -/***/ (function(module) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), - -/***/ 6135: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toPrimitive = __webpack_require__(7593); -var definePropertyModule = __webpack_require__(3070); -var createPropertyDescriptor = __webpack_require__(9114); - -module.exports = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); - else object[propertyKey] = value; -}; - - -/***/ }), - -/***/ 654: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var createIteratorConstructor = __webpack_require__(4994); -var getPrototypeOf = __webpack_require__(9518); -var setPrototypeOf = __webpack_require__(7674); -var setToStringTag = __webpack_require__(8003); -var createNonEnumerableProperty = __webpack_require__(8880); -var redefine = __webpack_require__(1320); -var wellKnownSymbol = __webpack_require__(5112); -var IS_PURE = __webpack_require__(1913); -var Iterators = __webpack_require__(7497); -var IteratorsCore = __webpack_require__(3383); - -var IteratorPrototype = IteratorsCore.IteratorPrototype; -var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; -var ITERATOR = wellKnownSymbol('iterator'); -var KEYS = 'keys'; -var VALUES = 'values'; -var ENTRIES = 'entries'; - -var returnThis = function () { return this; }; - -module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor(IteratorConstructor, NAME, next); - - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; - switch (KIND) { - case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; - case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; - case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; - } return function () { return new IteratorConstructor(this); }; - }; - - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR] - || IterablePrototype['@@iterator'] - || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; - - // fix native - if (anyNativeIterator) { - CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { - if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { - if (setPrototypeOf) { - setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); - } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); - } - } - // Set @@toStringTag to native iterators - setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); - if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; - } - } - - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { return nativeIterator.call(this); }; - } - - // define iterator - if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); - } - Iterators[NAME] = defaultIterator; - - // export additional methods - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - }; - if (FORCED) for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); - } - } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); - } - - return methods; -}; - - -/***/ }), - -/***/ 9781: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -// Detect IE8's incomplete defineProperty implementation -module.exports = !fails(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - - -/***/ }), - -/***/ 317: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var isObject = __webpack_require__(111); - -var document = global.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; - - -/***/ }), - -/***/ 8324: -/***/ (function(module) { - -// iterable DOM collections -// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods -module.exports = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 -}; - - -/***/ }), - -/***/ 8113: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(5005); - -module.exports = getBuiltIn('navigator', 'userAgent') || ''; - - -/***/ }), - -/***/ 7392: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var userAgent = __webpack_require__(8113); - -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } -} - -module.exports = version && +version; - - -/***/ }), - -/***/ 748: -/***/ (function(module) { - -// IE8- don't enum bug keys -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - - -/***/ }), - -/***/ 2109: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var getOwnPropertyDescriptor = __webpack_require__(1236).f; -var createNonEnumerableProperty = __webpack_require__(8880); -var redefine = __webpack_require__(1320); -var setGlobal = __webpack_require__(3505); -var copyConstructorProperties = __webpack_require__(9920); -var isForced = __webpack_require__(4705); - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global; - } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - // extend global - redefine(target, key, sourceProperty, options); - } -}; - - -/***/ }), - -/***/ 7293: -/***/ (function(module) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - - -/***/ }), - -/***/ 7007: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -// TODO: Remove from `core-js@4` since it's moved to entry points -__webpack_require__(4916); -var redefine = __webpack_require__(1320); -var fails = __webpack_require__(7293); -var wellKnownSymbol = __webpack_require__(5112); -var regexpExec = __webpack_require__(2261); -var createNonEnumerableProperty = __webpack_require__(8880); - -var SPECIES = wellKnownSymbol('species'); - -var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; -}); - -// IE <= 11 replaces $0 with the whole match, as if it was $& -// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 -var REPLACE_KEEPS_$0 = (function () { - return 'a'.replace(/./, '$0') === '$0'; -})(); - -var REPLACE = wellKnownSymbol('replace'); -// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string -var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { - if (/./[REPLACE]) { - return /./[REPLACE]('a', '$0') === ''; - } - return false; -})(); - -// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec -// Weex JS has frozen built-in prototypes, so use try / catch wrapper -var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { - // eslint-disable-next-line regexp/no-empty-group -- required for testing - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; -}); - -module.exports = function (KEY, length, exec, sham) { - var SYMBOL = wellKnownSymbol(KEY); - - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES] = function () { return re; }; - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { execCalled = true; return null; }; - - re[SYMBOL](''); - return !execCalled; - }); - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !( - REPLACE_SUPPORTS_NAMED_GROUPS && - REPLACE_KEEPS_$0 && - !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - )) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - - redefine(String.prototype, KEY, stringMethod); - redefine(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return regexMethod.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return regexMethod.call(string, this); } - ); - } - - if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); -}; - - -/***/ }), - -/***/ 9974: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var aFunction = __webpack_require__(3099); - -// optional / simple context binding -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), - -/***/ 5005: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var path = __webpack_require__(857); -var global = __webpack_require__(7854); - -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; - -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) - : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; - - -/***/ }), - -/***/ 1246: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var classof = __webpack_require__(648); -var Iterators = __webpack_require__(7497); -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); - -module.exports = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), - -/***/ 8554: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var getIteratorMethod = __webpack_require__(1246); - -module.exports = function (it) { - var iteratorMethod = getIteratorMethod(it); - if (typeof iteratorMethod != 'function') { - throw TypeError(String(it) + ' is not iterable'); - } return anObject(iteratorMethod.call(it)); -}; - - -/***/ }), - -/***/ 647: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toObject = __webpack_require__(7908); - -var floor = Math.floor; -var replace = ''.replace; -var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; -var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; - -// https://tc39.es/ecma262/#sec-getsubstitution -module.exports = function (matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return replace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); -}; - - -/***/ }), - -/***/ 7854: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -module.exports = - /* global globalThis -- safe */ - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) || - // eslint-disable-next-line no-new-func -- fallback - (function () { return this; })() || Function('return this')(); - - -/***/ }), - -/***/ 6656: -/***/ (function(module) { - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), - -/***/ 3501: -/***/ (function(module) { - -module.exports = {}; - - -/***/ }), - -/***/ 490: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(5005); - -module.exports = getBuiltIn('document', 'documentElement'); - - -/***/ }), - -/***/ 4664: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var fails = __webpack_require__(7293); -var createElement = __webpack_require__(317); - -// Thank's IE8 for his funny defineProperty -module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - - -/***/ }), - -/***/ 1179: -/***/ (function(module) { - -// IEEE754 conversions based on https://github.com/feross/ieee754 -var abs = Math.abs; -var pow = Math.pow; -var floor = Math.floor; -var log = Math.log; -var LN2 = Math.LN2; - -var pack = function (number, mantissaLength, bytes) { - var buffer = new Array(bytes); - var exponentLength = bytes * 8 - mantissaLength - 1; - var eMax = (1 << exponentLength) - 1; - var eBias = eMax >> 1; - var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; - var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; - var index = 0; - var exponent, mantissa, c; - number = abs(number); - // eslint-disable-next-line no-self-compare -- NaN check - if (number != number || number === Infinity) { - // eslint-disable-next-line no-self-compare -- NaN check - mantissa = number != number ? 1 : 0; - exponent = eMax; - } else { - exponent = floor(log(number) / LN2); - if (number * (c = pow(2, -exponent)) < 1) { - exponent--; - c *= 2; - } - if (exponent + eBias >= 1) { - number += rt / c; - } else { - number += rt * pow(2, 1 - eBias); - } - if (number * c >= 2) { - exponent++; - c /= 2; - } - if (exponent + eBias >= eMax) { - mantissa = 0; - exponent = eMax; - } else if (exponent + eBias >= 1) { - mantissa = (number * c - 1) * pow(2, mantissaLength); - exponent = exponent + eBias; - } else { - mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); - exponent = 0; - } - } - for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8); - exponent = exponent << mantissaLength | mantissa; - exponentLength += mantissaLength; - for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8); - buffer[--index] |= sign * 128; - return buffer; -}; - -var unpack = function (buffer, mantissaLength) { - var bytes = buffer.length; - var exponentLength = bytes * 8 - mantissaLength - 1; - var eMax = (1 << exponentLength) - 1; - var eBias = eMax >> 1; - var nBits = exponentLength - 7; - var index = bytes - 1; - var sign = buffer[index--]; - var exponent = sign & 127; - var mantissa; - sign >>= 7; - for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8); - mantissa = exponent & (1 << -nBits) - 1; - exponent >>= -nBits; - nBits += mantissaLength; - for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8); - if (exponent === 0) { - exponent = 1 - eBias; - } else if (exponent === eMax) { - return mantissa ? NaN : sign ? -Infinity : Infinity; - } else { - mantissa = mantissa + pow(2, mantissaLength); - exponent = exponent - eBias; - } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); -}; - -module.exports = { - pack: pack, - unpack: unpack -}; - - -/***/ }), - -/***/ 8361: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var classof = __webpack_require__(4326); - -var split = ''.split; - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins -- safe - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - - -/***/ }), - -/***/ 9587: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); -var setPrototypeOf = __webpack_require__(7674); - -// makes subclassing work correct for wrapped built-ins -module.exports = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if ( - // it can work only with native `setPrototypeOf` - setPrototypeOf && - // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - typeof (NewTarget = dummy.constructor) == 'function' && - NewTarget !== Wrapper && - isObject(NewTargetPrototype = NewTarget.prototype) && - NewTargetPrototype !== Wrapper.prototype - ) setPrototypeOf($this, NewTargetPrototype); - return $this; -}; - - -/***/ }), - -/***/ 2788: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var store = __webpack_require__(5465); - -var functionToString = Function.toString; - -// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper -if (typeof store.inspectSource != 'function') { - store.inspectSource = function (it) { - return functionToString.call(it); - }; -} - -module.exports = store.inspectSource; - - -/***/ }), - -/***/ 9909: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var NATIVE_WEAK_MAP = __webpack_require__(8536); -var global = __webpack_require__(7854); -var isObject = __webpack_require__(111); -var createNonEnumerableProperty = __webpack_require__(8880); -var objectHas = __webpack_require__(6656); -var shared = __webpack_require__(5465); -var sharedKey = __webpack_require__(6200); -var hiddenKeys = __webpack_require__(3501); - -var WeakMap = global.WeakMap; -var set, get, has; - -var enforce = function (it) { - return has(it) ? get(it) : set(it, {}); -}; - -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; -}; - -if (NATIVE_WEAK_MAP) { - var store = shared.state || (shared.state = new WeakMap()); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - set = function (it, metadata) { - metadata.facade = it; - wmset.call(store, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store, it) || {}; - }; - has = function (it) { - return wmhas.call(store, it); - }; -} else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - set = function (it, metadata) { - metadata.facade = it; - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return objectHas(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return objectHas(it, STATE); - }; -} - -module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor -}; - - -/***/ }), - -/***/ 7659: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(5112); -var Iterators = __webpack_require__(7497); - -var ITERATOR = wellKnownSymbol('iterator'); -var ArrayPrototype = Array.prototype; - -// check on default Array iterator -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); -}; - - -/***/ }), - -/***/ 3157: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var classof = __webpack_require__(4326); - -// `IsArray` abstract operation -// https://tc39.es/ecma262/#sec-isarray -module.exports = Array.isArray || function isArray(arg) { - return classof(arg) == 'Array'; -}; - - -/***/ }), - -/***/ 4705: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -var replacement = /#|\.prototype\./; - -var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) - : !!detection; -}; - -var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); -}; - -var data = isForced.data = {}; -var NATIVE = isForced.NATIVE = 'N'; -var POLYFILL = isForced.POLYFILL = 'P'; - -module.exports = isForced; - - -/***/ }), - -/***/ 111: -/***/ (function(module) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), - -/***/ 1913: -/***/ (function(module) { - -module.exports = false; - - -/***/ }), - -/***/ 7850: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); -var classof = __webpack_require__(4326); -var wellKnownSymbol = __webpack_require__(5112); - -var MATCH = wellKnownSymbol('match'); - -// `IsRegExp` abstract operation -// https://tc39.es/ecma262/#sec-isregexp -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); -}; - - -/***/ }), - -/***/ 9212: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); - -module.exports = function (iterator) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) { - return anObject(returnMethod.call(iterator)).value; - } -}; - - -/***/ }), - -/***/ 3383: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fails = __webpack_require__(7293); -var getPrototypeOf = __webpack_require__(9518); -var createNonEnumerableProperty = __webpack_require__(8880); -var has = __webpack_require__(6656); -var wellKnownSymbol = __webpack_require__(5112); -var IS_PURE = __webpack_require__(1913); - -var ITERATOR = wellKnownSymbol('iterator'); -var BUGGY_SAFARI_ITERATORS = false; - -var returnThis = function () { return this; }; - -// `%IteratorPrototype%` object -// https://tc39.es/ecma262/#sec-%iteratorprototype%-object -var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; - -if ([].keys) { - arrayIterator = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; - else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } -} - -var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () { - var test = {}; - // FF44- legacy iterators case - return IteratorPrototype[ITERATOR].call(test) !== test; -}); - -if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); -} - -module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS -}; - - -/***/ }), - -/***/ 7497: -/***/ (function(module) { - -module.exports = {}; - - -/***/ }), - -/***/ 133: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - /* global Symbol -- required for testing */ - return !String(Symbol()); -}); - - -/***/ }), - -/***/ 590: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var wellKnownSymbol = __webpack_require__(5112); -var IS_PURE = __webpack_require__(1913); - -var ITERATOR = wellKnownSymbol('iterator'); - -module.exports = !fails(function () { - var url = new URL('b?a=1&b=2&c=3', 'http://a'); - var searchParams = url.searchParams; - var result = ''; - url.pathname = 'c%20d'; - searchParams.forEach(function (value, key) { - searchParams['delete']('b'); - result += key + value; - }); - return (IS_PURE && !url.toJSON) - || !searchParams.sort - || url.href !== 'http://a/c%20d?a=1&c=3' - || searchParams.get('c') !== '3' - || String(new URLSearchParams('?a=1')) !== 'a=1' - || !searchParams[ITERATOR] - // throws in Edge - || new URL('https://a@b').username !== 'a' - || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' - // not punycoded in Edge - || new URL('http://тест').host !== 'xn--e1aybc' - // not escaped in Chrome 62- - || new URL('http://a#б').hash !== '#%D0%B1' - // fails in Chrome 66- - || result !== 'a1c3' - // throws in Safari - || new URL('http://x', undefined).host !== 'x'; -}); - - -/***/ }), - -/***/ 8536: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var inspectSource = __webpack_require__(2788); - -var WeakMap = global.WeakMap; - -module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); - - -/***/ }), - -/***/ 1574: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var DESCRIPTORS = __webpack_require__(9781); -var fails = __webpack_require__(7293); -var objectKeys = __webpack_require__(1956); -var getOwnPropertySymbolsModule = __webpack_require__(5181); -var propertyIsEnumerableModule = __webpack_require__(5296); -var toObject = __webpack_require__(7908); -var IndexedObject = __webpack_require__(8361); - -var nativeAssign = Object.assign; -var defineProperty = Object.defineProperty; - -// `Object.assign` method -// https://tc39.es/ecma262/#sec-object.assign -module.exports = !nativeAssign || fails(function () { - // should have correct order of operations (Edge bug) - if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', { - enumerable: true, - get: function () { - defineProperty(this, 'b', { - value: 3, - enumerable: false - }); - } - }), { b: 2 })).b !== 1) return true; - // should work with symbols and should have deterministic property order (V8 bug) - var A = {}; - var B = {}; - /* global Symbol -- required for testing */ - var symbol = Symbol(); - var alphabet = 'abcdefghijklmnopqrst'; - A[symbol] = 7; - alphabet.split('').forEach(function (chr) { B[chr] = chr; }); - return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` - var T = toObject(target); - var argumentsLength = arguments.length; - var index = 1; - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - var propertyIsEnumerable = propertyIsEnumerableModule.f; - while (argumentsLength > index) { - var S = IndexedObject(arguments[index++]); - var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key]; - } - } return T; -} : nativeAssign; - - -/***/ }), - -/***/ 30: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var defineProperties = __webpack_require__(6048); -var enumBugKeys = __webpack_require__(748); -var hiddenKeys = __webpack_require__(3501); -var html = __webpack_require__(490); -var documentCreateElement = __webpack_require__(317); -var sharedKey = __webpack_require__(6200); - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; - -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; - -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; -}; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; - -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - /* global ActiveXObject -- old IE */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; - -hiddenKeys[IE_PROTO] = true; - -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : defineProperties(result, Properties); -}; - - -/***/ }), - -/***/ 6048: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var definePropertyModule = __webpack_require__(3070); -var anObject = __webpack_require__(9670); -var objectKeys = __webpack_require__(1956); - -// `Object.defineProperties` method -// https://tc39.es/ecma262/#sec-object.defineproperties -module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); - return O; -}; - - -/***/ }), - -/***/ 3070: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var IE8_DOM_DEFINE = __webpack_require__(4664); -var anObject = __webpack_require__(9670); -var toPrimitive = __webpack_require__(7593); - -var nativeDefineProperty = Object.defineProperty; - -// `Object.defineProperty` method -// https://tc39.es/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), - -/***/ 1236: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var propertyIsEnumerableModule = __webpack_require__(5296); -var createPropertyDescriptor = __webpack_require__(9114); -var toIndexedObject = __webpack_require__(5656); -var toPrimitive = __webpack_require__(7593); -var has = __webpack_require__(6656); -var IE8_DOM_DEFINE = __webpack_require__(4664); - -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); -}; - - -/***/ }), - -/***/ 8006: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var internalObjectKeys = __webpack_require__(6324); -var enumBugKeys = __webpack_require__(748); - -var hiddenKeys = enumBugKeys.concat('length', 'prototype'); - -// `Object.getOwnPropertyNames` method -// https://tc39.es/ecma262/#sec-object.getownpropertynames -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); -}; - - -/***/ }), - -/***/ 5181: -/***/ (function(__unused_webpack_module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), - -/***/ 9518: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var has = __webpack_require__(6656); -var toObject = __webpack_require__(7908); -var sharedKey = __webpack_require__(6200); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544); - -var IE_PROTO = sharedKey('IE_PROTO'); -var ObjectPrototype = Object.prototype; - -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype : null; -}; - - -/***/ }), - -/***/ 6324: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var has = __webpack_require__(6656); -var toIndexedObject = __webpack_require__(5656); -var indexOf = __webpack_require__(1318).indexOf; -var hiddenKeys = __webpack_require__(3501); - -module.exports = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), - -/***/ 1956: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var internalObjectKeys = __webpack_require__(6324); -var enumBugKeys = __webpack_require__(748); - -// `Object.keys` method -// https://tc39.es/ecma262/#sec-object.keys -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); -}; - - -/***/ }), - -/***/ 5296: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var nativePropertyIsEnumerable = {}.propertyIsEnumerable; -var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// Nashorn ~ JDK8 bug -var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); - -// `Object.prototype.propertyIsEnumerable` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable -exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; -} : nativePropertyIsEnumerable; - - -/***/ }), - -/***/ 7674: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -/* eslint-disable no-proto -- safe */ -var anObject = __webpack_require__(9670); -var aPossiblePrototype = __webpack_require__(6077); - -// `Object.setPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.setprototypeof -// Works with __proto__ only. Old v8 can't work with null proto objects. -module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter.call(O, proto); - else O.__proto__ = proto; - return O; - }; -}() : undefined); - - -/***/ }), - -/***/ 288: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var TO_STRING_TAG_SUPPORT = __webpack_require__(1694); -var classof = __webpack_require__(648); - -// `Object.prototype.toString` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.tostring -module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { - return '[object ' + classof(this) + ']'; -}; - - -/***/ }), - -/***/ 3887: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(5005); -var getOwnPropertyNamesModule = __webpack_require__(8006); -var getOwnPropertySymbolsModule = __webpack_require__(5181); -var anObject = __webpack_require__(9670); - -// all object keys, includes non-enumerable and symbols -module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject(it)); - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; -}; - - -/***/ }), - -/***/ 857: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); - -module.exports = global; - - -/***/ }), - -/***/ 2248: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var redefine = __webpack_require__(1320); - -module.exports = function (target, src, options) { - for (var key in src) redefine(target, key, src[key], options); - return target; -}; - - -/***/ }), - -/***/ 1320: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var createNonEnumerableProperty = __webpack_require__(8880); -var has = __webpack_require__(6656); -var setGlobal = __webpack_require__(3505); -var inspectSource = __webpack_require__(2788); -var InternalStateModule = __webpack_require__(9909); - -var getInternalState = InternalStateModule.get; -var enforceInternalState = InternalStateModule.enforce; -var TEMPLATE = String(String).split('String'); - -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - var state; - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) { - createNonEnumerableProperty(value, 'name', key); - } - state = enforceInternalState(value); - if (!state.source) { - state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - } - if (O === global) { - if (simple) O[key] = value; - else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty(O, key, value); -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); -}); - - -/***/ }), - -/***/ 7651: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var classof = __webpack_require__(4326); -var regexpExec = __webpack_require__(2261); - -// `RegExpExec` abstract operation -// https://tc39.es/ecma262/#sec-regexpexec -module.exports = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - - if (classof(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec.call(R, S); -}; - - - -/***/ }), - -/***/ 2261: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var regexpFlags = __webpack_require__(7066); -var stickyHelpers = __webpack_require__(2999); - -var nativeExec = RegExp.prototype.exec; -// This always refers to the native implementation, because the -// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, -// which loads this file before patching the method. -var nativeReplace = String.prototype.replace; - -var patchedExec = nativeExec; - -var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; -})(); - -var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; - -// nonparticipating capturing group, copied from es5-shim's String#split patch. -// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing -var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; - -if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y && re.sticky; - var flags = regexpFlags.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - - strCopy = String(str).slice(re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - - match = nativeExec.call(sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; -} - -module.exports = patchedExec; - - -/***/ }), - -/***/ 7066: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var anObject = __webpack_require__(9670); - -// `RegExp.prototype.flags` getter implementation -// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags -module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; -}; - - -/***/ }), - -/***/ 2999: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - - -var fails = __webpack_require__(7293); - -// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, -// so we use an intermediate function. -function RE(s, f) { - return RegExp(s, f); -} - -exports.UNSUPPORTED_Y = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; -}); - -exports.BROKEN_CARET = fails(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; -}); - - -/***/ }), - -/***/ 4488: -/***/ (function(module) { - -// `RequireObjectCoercible` abstract operation -// https://tc39.es/ecma262/#sec-requireobjectcoercible -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), - -/***/ 3505: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var createNonEnumerableProperty = __webpack_require__(8880); - -module.exports = function (key, value) { - try { - createNonEnumerableProperty(global, key, value); - } catch (error) { - global[key] = value; - } return value; -}; - - -/***/ }), - -/***/ 6340: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var getBuiltIn = __webpack_require__(5005); -var definePropertyModule = __webpack_require__(3070); -var wellKnownSymbol = __webpack_require__(5112); -var DESCRIPTORS = __webpack_require__(9781); - -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule.f; - - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { - defineProperty(Constructor, SPECIES, { - configurable: true, - get: function () { return this; } - }); - } -}; - - -/***/ }), - -/***/ 8003: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var defineProperty = __webpack_require__(3070).f; -var has = __webpack_require__(6656); -var wellKnownSymbol = __webpack_require__(5112); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - -module.exports = function (it, TAG, STATIC) { - if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { - defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); - } -}; - - -/***/ }), - -/***/ 6200: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var shared = __webpack_require__(2309); -var uid = __webpack_require__(9711); - -var keys = shared('keys'); - -module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - - -/***/ }), - -/***/ 5465: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var setGlobal = __webpack_require__(3505); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); - -module.exports = store; - - -/***/ }), - -/***/ 2309: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var IS_PURE = __webpack_require__(1913); -var store = __webpack_require__(5465); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.9.0', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2021 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), - -/***/ 6707: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var aFunction = __webpack_require__(3099); -var wellKnownSymbol = __webpack_require__(5112); - -var SPECIES = wellKnownSymbol('species'); - -// `SpeciesConstructor` abstract operation -// https://tc39.es/ecma262/#sec-speciesconstructor -module.exports = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); -}; - - -/***/ }), - -/***/ 8710: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); -var requireObjectCoercible = __webpack_require__(4488); - -// `String.prototype.{ codePointAt, at }` methods implementation -var createMethod = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING ? S.charAt(position) : first - : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; -}; - -module.exports = { - // `String.prototype.codePointAt` method - // https://tc39.es/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod(true) -}; - - -/***/ }), - -/***/ 3197: -/***/ (function(module) { - -"use strict"; - -// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js -var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 -var base = 36; -var tMin = 1; -var tMax = 26; -var skew = 38; -var damp = 700; -var initialBias = 72; -var initialN = 128; // 0x80 -var delimiter = '-'; // '\x2D' -var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars -var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators -var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; -var baseMinusTMin = base - tMin; -var floor = Math.floor; -var stringFromCharCode = String.fromCharCode; - -/** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - */ -var ucs2decode = function (string) { - var output = []; - var counter = 0; - var length = string.length; - while (counter < length) { - var value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // It's a high surrogate, and there is a next character. - var extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // It's an unmatched surrogate; only append this code unit, in case the - // next code unit is the high surrogate of a surrogate pair. - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; -}; - -/** - * Converts a digit/integer into a basic code point. - */ -var digitToBasic = function (digit) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26); -}; - -/** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - */ -var adapt = function (delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); -}; - -/** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - */ -// eslint-disable-next-line max-statements -- TODO -var encode = function (input) { - var output = []; - - // Convert the input in UCS-2 to an array of Unicode code points. - input = ucs2decode(input); - - // Cache the length. - var inputLength = input.length; - - // Initialize the state. - var n = initialN; - var delta = 0; - var bias = initialBias; - var i, currentValue; - - // Handle the basic code points. - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - var basicLength = output.length; // number of basic code points. - var handledCPCount = basicLength; // number of code points that have been handled; - - // Finish the basic string with a delimiter unless it's empty. - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - // All non-basic code points < n have been handled already. Find the next larger one: - var m = maxInt; - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , but guard against overflow. - var handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - throw RangeError(OVERFLOW_ERROR); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < n && ++delta > maxInt) { - throw RangeError(OVERFLOW_ERROR); - } - if (currentValue == n) { - // Represent delta as a generalized variable-length integer. - var q = delta; - for (var k = base; /* no condition */; k += base) { - var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) break; - var qMinusT = q - t; - var baseMinusT = base - t; - output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT))); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - } - return output.join(''); -}; - -module.exports = function (input) { - var encoded = []; - var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.'); - var i, label; - for (i = 0; i < labels.length; i++) { - label = labels[i]; - encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label); - } - return encoded.join('.'); -}; - - -/***/ }), - -/***/ 6091: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var whitespaces = __webpack_require__(1361); - -var non = '\u200B\u0085\u180E'; - -// check that a method works with the correct list -// of whitespaces and has a correct name -module.exports = function (METHOD_NAME) { - return fails(function () { - return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME; - }); -}; - - -/***/ }), - -/***/ 3111: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var requireObjectCoercible = __webpack_require__(4488); -var whitespaces = __webpack_require__(1361); - -var whitespace = '[' + whitespaces + ']'; -var ltrim = RegExp('^' + whitespace + whitespace + '*'); -var rtrim = RegExp(whitespace + whitespace + '*$'); - -// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation -var createMethod = function (TYPE) { - return function ($this) { - var string = String(requireObjectCoercible($this)); - if (TYPE & 1) string = string.replace(ltrim, ''); - if (TYPE & 2) string = string.replace(rtrim, ''); - return string; - }; -}; - -module.exports = { - // `String.prototype.{ trimLeft, trimStart }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimstart - start: createMethod(1), - // `String.prototype.{ trimRight, trimEnd }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimend - end: createMethod(2), - // `String.prototype.trim` method - // https://tc39.es/ecma262/#sec-string.prototype.trim - trim: createMethod(3) -}; - - -/***/ }), - -/***/ 1400: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); - -var max = Math.max; -var min = Math.min; - -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); -}; - - -/***/ }), - -/***/ 7067: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); -var toLength = __webpack_require__(7466); - -// `ToIndex` abstract operation -// https://tc39.es/ecma262/#sec-toindex -module.exports = function (it) { - if (it === undefined) return 0; - var number = toInteger(it); - var length = toLength(number); - if (number !== length) throw RangeError('Wrong length or index'); - return length; -}; - - -/***/ }), - -/***/ 5656: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -// toObject with fallback for non-array-like ES3 strings -var IndexedObject = __webpack_require__(8361); -var requireObjectCoercible = __webpack_require__(4488); - -module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); -}; - - -/***/ }), - -/***/ 9958: -/***/ (function(module) { - -var ceil = Math.ceil; -var floor = Math.floor; - -// `ToInteger` abstract operation -// https://tc39.es/ecma262/#sec-tointeger -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - - -/***/ }), - -/***/ 7466: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); - -var min = Math.min; - -// `ToLength` abstract operation -// https://tc39.es/ecma262/#sec-tolength -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 -}; - - -/***/ }), - -/***/ 7908: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var requireObjectCoercible = __webpack_require__(4488); - -// `ToObject` abstract operation -// https://tc39.es/ecma262/#sec-toobject -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); -}; - - -/***/ }), - -/***/ 4590: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toPositiveInteger = __webpack_require__(3002); - -module.exports = function (it, BYTES) { - var offset = toPositiveInteger(it); - if (offset % BYTES) throw RangeError('Wrong offset'); - return offset; -}; - - -/***/ }), - -/***/ 3002: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); - -module.exports = function (it) { - var result = toInteger(it); - if (result < 0) throw RangeError("The argument can't be less than 0"); - return result; -}; - - -/***/ }), - -/***/ 7593: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); - -// `ToPrimitive` abstract operation -// https://tc39.es/ecma262/#sec-toprimitive -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), - -/***/ 1694: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(5112); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var test = {}; - -test[TO_STRING_TAG] = 'z'; - -module.exports = String(test) === '[object z]'; - - -/***/ }), - -/***/ 9843: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var global = __webpack_require__(7854); -var DESCRIPTORS = __webpack_require__(9781); -var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(3832); -var ArrayBufferViewCore = __webpack_require__(260); -var ArrayBufferModule = __webpack_require__(3331); -var anInstance = __webpack_require__(5787); -var createPropertyDescriptor = __webpack_require__(9114); -var createNonEnumerableProperty = __webpack_require__(8880); -var toLength = __webpack_require__(7466); -var toIndex = __webpack_require__(7067); -var toOffset = __webpack_require__(4590); -var toPrimitive = __webpack_require__(7593); -var has = __webpack_require__(6656); -var classof = __webpack_require__(648); -var isObject = __webpack_require__(111); -var create = __webpack_require__(30); -var setPrototypeOf = __webpack_require__(7674); -var getOwnPropertyNames = __webpack_require__(8006).f; -var typedArrayFrom = __webpack_require__(7321); -var forEach = __webpack_require__(2092).forEach; -var setSpecies = __webpack_require__(6340); -var definePropertyModule = __webpack_require__(3070); -var getOwnPropertyDescriptorModule = __webpack_require__(1236); -var InternalStateModule = __webpack_require__(9909); -var inheritIfRequired = __webpack_require__(9587); - -var getInternalState = InternalStateModule.get; -var setInternalState = InternalStateModule.set; -var nativeDefineProperty = definePropertyModule.f; -var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; -var round = Math.round; -var RangeError = global.RangeError; -var ArrayBuffer = ArrayBufferModule.ArrayBuffer; -var DataView = ArrayBufferModule.DataView; -var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; -var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; -var TypedArray = ArrayBufferViewCore.TypedArray; -var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; -var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; -var isTypedArray = ArrayBufferViewCore.isTypedArray; -var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; -var WRONG_LENGTH = 'Wrong length'; - -var fromList = function (C, list) { - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); - while (length > index) result[index] = list[index++]; - return result; -}; - -var addGetter = function (it, key) { - nativeDefineProperty(it, key, { get: function () { - return getInternalState(this)[key]; - } }); -}; - -var isArrayBuffer = function (it) { - var klass; - return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer'; -}; - -var isTypedArrayIndex = function (target, key) { - return isTypedArray(target) - && typeof key != 'symbol' - && key in target - && String(+key) == String(key); -}; - -var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { - return isTypedArrayIndex(target, key = toPrimitive(key, true)) - ? createPropertyDescriptor(2, target[key]) - : nativeGetOwnPropertyDescriptor(target, key); -}; - -var wrappedDefineProperty = function defineProperty(target, key, descriptor) { - if (isTypedArrayIndex(target, key = toPrimitive(key, true)) - && isObject(descriptor) - && has(descriptor, 'value') - && !has(descriptor, 'get') - && !has(descriptor, 'set') - // TODO: add validation descriptor w/o calling accessors - && !descriptor.configurable - && (!has(descriptor, 'writable') || descriptor.writable) - && (!has(descriptor, 'enumerable') || descriptor.enumerable) - ) { - target[key] = descriptor.value; - return target; - } return nativeDefineProperty(target, key, descriptor); -}; - -if (DESCRIPTORS) { - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; - definePropertyModule.f = wrappedDefineProperty; - addGetter(TypedArrayPrototype, 'buffer'); - addGetter(TypedArrayPrototype, 'byteOffset'); - addGetter(TypedArrayPrototype, 'byteLength'); - addGetter(TypedArrayPrototype, 'length'); - } - - $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { - getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, - defineProperty: wrappedDefineProperty - }); - - module.exports = function (TYPE, wrapper, CLAMPED) { - var BYTES = TYPE.match(/\d+$/)[0] / 8; - var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; - var GETTER = 'get' + TYPE; - var SETTER = 'set' + TYPE; - var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; - var TypedArrayConstructor = NativeTypedArrayConstructor; - var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; - var exported = {}; - - var getter = function (that, index) { - var data = getInternalState(that); - return data.view[GETTER](index * BYTES + data.byteOffset, true); - }; - - var setter = function (that, index, value) { - var data = getInternalState(that); - if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; - data.view[SETTER](index * BYTES + data.byteOffset, value, true); - }; - - var addElement = function (that, index) { - nativeDefineProperty(that, index, { - get: function () { - return getter(this, index); - }, - set: function (value) { - return setter(this, index, value); - }, - enumerable: true - }); - }; - - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - TypedArrayConstructor = wrapper(function (that, data, offset, $length) { - anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME); - var index = 0; - var byteOffset = 0; - var buffer, byteLength, length; - if (!isObject(data)) { - length = toIndex(data); - byteLength = length * BYTES; - buffer = new ArrayBuffer(byteLength); - } else if (isArrayBuffer(data)) { - buffer = data; - byteOffset = toOffset(offset, BYTES); - var $len = data.byteLength; - if ($length === undefined) { - if ($len % BYTES) throw RangeError(WRONG_LENGTH); - byteLength = $len - byteOffset; - if (byteLength < 0) throw RangeError(WRONG_LENGTH); - } else { - byteLength = toLength($length) * BYTES; - if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH); - } - length = byteLength / BYTES; - } else if (isTypedArray(data)) { - return fromList(TypedArrayConstructor, data); - } else { - return typedArrayFrom.call(TypedArrayConstructor, data); - } - setInternalState(that, { - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength, - length: length, - view: new DataView(buffer) - }); - while (index < length) addElement(that, index++); - }); - - if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); - TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); - } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { - TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { - anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME); - return inheritIfRequired(function () { - if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); - if (isArrayBuffer(data)) return $length !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) - : typedArrayOffset !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) - : new NativeTypedArrayConstructor(data); - if (isTypedArray(data)) return fromList(TypedArrayConstructor, data); - return typedArrayFrom.call(TypedArrayConstructor, data); - }(), dummy, TypedArrayConstructor); - }); - - if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); - forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { - if (!(key in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); - } - }); - TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; - } - - if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); - } - - if (TYPED_ARRAY_TAG) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); - } - - exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; - - $({ - global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS - }, exported); - - if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); - } - - if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); - } - - setSpecies(CONSTRUCTOR_NAME); - }; -} else module.exports = function () { /* empty */ }; - - -/***/ }), - -/***/ 3832: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -/* eslint-disable no-new -- required for testing */ -var global = __webpack_require__(7854); -var fails = __webpack_require__(7293); -var checkCorrectnessOfIteration = __webpack_require__(7072); -var NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(260).NATIVE_ARRAY_BUFFER_VIEWS; - -var ArrayBuffer = global.ArrayBuffer; -var Int8Array = global.Int8Array; - -module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { - Int8Array(1); -}) || !fails(function () { - new Int8Array(-1); -}) || !checkCorrectnessOfIteration(function (iterable) { - new Int8Array(); - new Int8Array(null); - new Int8Array(1.5); - new Int8Array(iterable); -}, true) || fails(function () { - // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill - return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; -}); - - -/***/ }), - -/***/ 3074: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor; -var speciesConstructor = __webpack_require__(6707); - -module.exports = function (instance, list) { - var C = speciesConstructor(instance, instance.constructor); - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); - while (length > index) result[index] = list[index++]; - return result; -}; - - -/***/ }), - -/***/ 7321: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toObject = __webpack_require__(7908); -var toLength = __webpack_require__(7466); -var getIteratorMethod = __webpack_require__(1246); -var isArrayIteratorMethod = __webpack_require__(7659); -var bind = __webpack_require__(9974); -var aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor; - -module.exports = function from(source /* , mapfn, thisArg */) { - var O = toObject(source); - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var i, length, result, step, iterator, next; - if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) { - iterator = iteratorMethod.call(O); - next = iterator.next; - O = []; - while (!(step = next.call(iterator)).done) { - O.push(step.value); - } - } - if (mapping && argumentsLength > 2) { - mapfn = bind(mapfn, arguments[2], 2); - } - length = toLength(O.length); - result = new (aTypedArrayConstructor(this))(length); - for (i = 0; length > i; i++) { - result[i] = mapping ? mapfn(O[i], i) : O[i]; - } - return result; -}; - - -/***/ }), - -/***/ 9711: -/***/ (function(module) { - -var id = 0; -var postfix = Math.random(); - -module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; - - -/***/ }), - -/***/ 3307: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var NATIVE_SYMBOL = __webpack_require__(133); - -module.exports = NATIVE_SYMBOL - /* global Symbol -- safe */ - && !Symbol.sham - && typeof Symbol.iterator == 'symbol'; - - -/***/ }), - -/***/ 5112: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var shared = __webpack_require__(2309); -var has = __webpack_require__(6656); -var uid = __webpack_require__(9711); -var NATIVE_SYMBOL = __webpack_require__(133); -var USE_SYMBOL_AS_UID = __webpack_require__(3307); - -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; -}; - - -/***/ }), - -/***/ 1361: -/***/ (function(module) { - -// a string of all valid unicode whitespaces -module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + - '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - - -/***/ }), - -/***/ 8264: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var global = __webpack_require__(7854); -var arrayBufferModule = __webpack_require__(3331); -var setSpecies = __webpack_require__(6340); - -var ARRAY_BUFFER = 'ArrayBuffer'; -var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; -var NativeArrayBuffer = global[ARRAY_BUFFER]; - -// `ArrayBuffer` constructor -// https://tc39.es/ecma262/#sec-arraybuffer-constructor -$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, { - ArrayBuffer: ArrayBuffer -}); - -setSpecies(ARRAY_BUFFER); - - -/***/ }), - -/***/ 2222: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var fails = __webpack_require__(7293); -var isArray = __webpack_require__(3157); -var isObject = __webpack_require__(111); -var toObject = __webpack_require__(7908); -var toLength = __webpack_require__(7466); -var createProperty = __webpack_require__(6135); -var arraySpeciesCreate = __webpack_require__(5417); -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); -var wellKnownSymbol = __webpack_require__(5112); -var V8_VERSION = __webpack_require__(7392); - -var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); -var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; - -// We can't use this feature detection in V8 since it causes -// deoptimization and serious performance degradation -// https://github.com/zloirock/core-js/issues/679 -var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; -}); - -var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); - -var isConcatSpreadable = function (O) { - if (!isObject(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); -}; - -var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; - -// `Array.prototype.concat` method -// https://tc39.es/ecma262/#sec-array.prototype.concat -// with adding support of @@isConcatSpreadable and @@species -$({ target: 'Array', proto: true, forced: FORCED }, { - // eslint-disable-next-line no-unused-vars -- required for `.length` - concat: function concat(arg) { - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - A.length = n; - return A; - } -}); - - -/***/ }), - -/***/ 7327: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $filter = __webpack_require__(2092).filter; -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); - -// `Array.prototype.filter` method -// https://tc39.es/ecma262/#sec-array.prototype.filter -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - filter: function filter(callbackfn /* , thisArg */) { - return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ 2772: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $indexOf = __webpack_require__(1318).indexOf; -var arrayMethodIsStrict = __webpack_require__(9341); - -var nativeIndexOf = [].indexOf; - -var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0; -var STRICT_METHOD = arrayMethodIsStrict('indexOf'); - -// `Array.prototype.indexOf` method -// https://tc39.es/ecma262/#sec-array.prototype.indexof -$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, { - indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { - return NEGATIVE_ZERO - // convert -0 to +0 - ? nativeIndexOf.apply(this, arguments) || 0 - : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ 6992: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toIndexedObject = __webpack_require__(5656); -var addToUnscopables = __webpack_require__(1223); -var Iterators = __webpack_require__(7497); -var InternalStateModule = __webpack_require__(9909); -var defineIterator = __webpack_require__(654); - -var ARRAY_ITERATOR = 'Array Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); - -// `Array.prototype.entries` method -// https://tc39.es/ecma262/#sec-array.prototype.entries -// `Array.prototype.keys` method -// https://tc39.es/ecma262/#sec-array.prototype.keys -// `Array.prototype.values` method -// https://tc39.es/ecma262/#sec-array.prototype.values -// `Array.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-array.prototype-@@iterator -// `CreateArrayIterator` internal method -// https://tc39.es/ecma262/#sec-createarrayiterator -module.exports = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }); -// `%ArrayIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next -}, function () { - var state = getInternalState(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% -// https://tc39.es/ecma262/#sec-createunmappedargumentsobject -// https://tc39.es/ecma262/#sec-createmappedargumentsobject -Iterators.Arguments = Iterators.Array; - -// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), - -/***/ 1249: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $map = __webpack_require__(2092).map; -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); - -// `Array.prototype.map` method -// https://tc39.es/ecma262/#sec-array.prototype.map -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ 7042: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var isObject = __webpack_require__(111); -var isArray = __webpack_require__(3157); -var toAbsoluteIndex = __webpack_require__(1400); -var toLength = __webpack_require__(7466); -var toIndexedObject = __webpack_require__(5656); -var createProperty = __webpack_require__(6135); -var wellKnownSymbol = __webpack_require__(5112); -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); - -var SPECIES = wellKnownSymbol('species'); -var nativeSlice = [].slice; -var max = Math.max; - -// `Array.prototype.slice` method -// https://tc39.es/ecma262/#sec-array.prototype.slice -// fallback for not array-like ES3 strings and DOM objects -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - slice: function slice(start, end) { - var O = toIndexedObject(this); - var length = toLength(O.length); - var k = toAbsoluteIndex(start, length); - var fin = toAbsoluteIndex(end === undefined ? length : end, length); - // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible - var Constructor, result, n; - if (isArray(O)) { - Constructor = O.constructor; - // cross-realm fallback - if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) { - Constructor = undefined; - } else if (isObject(Constructor)) { - Constructor = Constructor[SPECIES]; - if (Constructor === null) Constructor = undefined; - } - if (Constructor === Array || Constructor === undefined) { - return nativeSlice.call(O, k, fin); - } - } - result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0)); - for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); - result.length = n; - return result; - } -}); - - -/***/ }), - -/***/ 561: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var toAbsoluteIndex = __webpack_require__(1400); -var toInteger = __webpack_require__(9958); -var toLength = __webpack_require__(7466); -var toObject = __webpack_require__(7908); -var arraySpeciesCreate = __webpack_require__(5417); -var createProperty = __webpack_require__(6135); -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); - -var max = Math.max; -var min = Math.min; -var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; - -// `Array.prototype.splice` method -// https://tc39.es/ecma262/#sec-array.prototype.splice -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - splice: function splice(start, deleteCount /* , ...items */) { - var O = toObject(this); - var len = toLength(O.length); - var actualStart = toAbsoluteIndex(start, len); - var argumentsLength = arguments.length; - var insertCount, actualDeleteCount, A, k, from, to; - if (argumentsLength === 0) { - insertCount = actualDeleteCount = 0; - } else if (argumentsLength === 1) { - insertCount = 0; - actualDeleteCount = len - actualStart; - } else { - insertCount = argumentsLength - 2; - actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart); - } - if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) { - throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); - } - A = arraySpeciesCreate(O, actualDeleteCount); - for (k = 0; k < actualDeleteCount; k++) { - from = actualStart + k; - if (from in O) createProperty(A, k, O[from]); - } - A.length = actualDeleteCount; - if (insertCount < actualDeleteCount) { - for (k = actualStart; k < len - actualDeleteCount; k++) { - from = k + actualDeleteCount; - to = k + insertCount; - if (from in O) O[to] = O[from]; - else delete O[to]; - } - for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1]; - } else if (insertCount > actualDeleteCount) { - for (k = len - actualDeleteCount; k > actualStart; k--) { - from = k + actualDeleteCount - 1; - to = k + insertCount - 1; - if (from in O) O[to] = O[from]; - else delete O[to]; - } - } - for (k = 0; k < insertCount; k++) { - O[k + actualStart] = arguments[k + 2]; - } - O.length = len - actualDeleteCount + insertCount; - return A; - } -}); - - -/***/ }), - -/***/ 8309: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var defineProperty = __webpack_require__(3070).f; - -var FunctionPrototype = Function.prototype; -var FunctionPrototypeToString = FunctionPrototype.toString; -var nameRE = /^\s*function ([^ (]*)/; -var NAME = 'name'; - -// Function instances `.name` property -// https://tc39.es/ecma262/#sec-function-instances-name -if (DESCRIPTORS && !(NAME in FunctionPrototype)) { - defineProperty(FunctionPrototype, NAME, { - configurable: true, - get: function () { - try { - return FunctionPrototypeToString.call(this).match(nameRE)[1]; - } catch (error) { - return ''; - } - } - }); -} - - -/***/ }), - -/***/ 489: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var $ = __webpack_require__(2109); -var fails = __webpack_require__(7293); -var toObject = __webpack_require__(7908); -var nativeGetPrototypeOf = __webpack_require__(9518); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544); - -var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); - -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { - getPrototypeOf: function getPrototypeOf(it) { - return nativeGetPrototypeOf(toObject(it)); - } -}); - - - -/***/ }), - -/***/ 1539: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(1694); -var redefine = __webpack_require__(1320); -var toString = __webpack_require__(288); - -// `Object.prototype.toString` method -// https://tc39.es/ecma262/#sec-object.prototype.tostring -if (!TO_STRING_TAG_SUPPORT) { - redefine(Object.prototype, 'toString', toString, { unsafe: true }); -} - - -/***/ }), - -/***/ 4916: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var exec = __webpack_require__(2261); - -// `RegExp.prototype.exec` method -// https://tc39.es/ecma262/#sec-regexp.prototype.exec -$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { - exec: exec -}); - - -/***/ }), - -/***/ 9714: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var redefine = __webpack_require__(1320); -var anObject = __webpack_require__(9670); -var fails = __webpack_require__(7293); -var flags = __webpack_require__(7066); - -var TO_STRING = 'toString'; -var RegExpPrototype = RegExp.prototype; -var nativeToString = RegExpPrototype[TO_STRING]; - -var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); -// FF44- RegExp#toString has a wrong name -var INCORRECT_NAME = nativeToString.name != TO_STRING; - -// `RegExp.prototype.toString` method -// https://tc39.es/ecma262/#sec-regexp.prototype.tostring -if (NOT_GENERIC || INCORRECT_NAME) { - redefine(RegExp.prototype, TO_STRING, function toString() { - var R = anObject(this); - var p = String(R.source); - var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf); - return '/' + p + '/' + f; - }, { unsafe: true }); -} - - -/***/ }), - -/***/ 8783: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var charAt = __webpack_require__(8710).charAt; -var InternalStateModule = __webpack_require__(9909); -var defineIterator = __webpack_require__(654); - -var STRING_ITERATOR = 'String Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); - -// `String.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-string.prototype-@@iterator -defineIterator(String, 'String', function (iterated) { - setInternalState(this, { - type: STRING_ITERATOR, - string: String(iterated), - index: 0 - }); -// `%StringIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next -}, function next() { - var state = getInternalState(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) return { value: undefined, done: true }; - point = charAt(string, index); - state.index += point.length; - return { value: point, done: false }; -}); - - -/***/ }), - -/***/ 4723: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007); -var anObject = __webpack_require__(9670); -var toLength = __webpack_require__(7466); -var requireObjectCoercible = __webpack_require__(4488); -var advanceStringIndex = __webpack_require__(1530); -var regExpExec = __webpack_require__(7651); - -// @@match logic -fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.es/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = requireObjectCoercible(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - - if (!rx.global) return regExpExec(rx, S); - - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regExpExec(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; -}); - - -/***/ }), - -/***/ 5306: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007); -var anObject = __webpack_require__(9670); -var toLength = __webpack_require__(7466); -var toInteger = __webpack_require__(9958); -var requireObjectCoercible = __webpack_require__(4488); -var advanceStringIndex = __webpack_require__(1530); -var getSubstitution = __webpack_require__(647); -var regExpExec = __webpack_require__(7651); - -var max = Math.max; -var min = Math.min; - -var maybeToString = function (it) { - return it === undefined ? it : String(it); -}; - -// @@replace logic -fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; - var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; - var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; - - return [ - // `String.prototype.replace` method - // https://tc39.es/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = requireObjectCoercible(this); - var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; - return replacer !== undefined - ? replacer.call(searchValue, O, replaceValue) - : nativeReplace.call(String(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - if ( - (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || - (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) - ) { - var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); - if (res.done) return res.value; - } - - var rx = anObject(regexp); - var S = String(this); - - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regExpExec(rx, S); - if (result === null) break; - - results.push(result); - if (!global) break; - - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - } - - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - - var matched = String(result[0]); - var position = max(min(toInteger(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + S.slice(nextSourcePosition); - } - ]; -}); - - -/***/ }), - -/***/ 3123: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007); -var isRegExp = __webpack_require__(7850); -var anObject = __webpack_require__(9670); -var requireObjectCoercible = __webpack_require__(4488); -var speciesConstructor = __webpack_require__(6707); -var advanceStringIndex = __webpack_require__(1530); -var toLength = __webpack_require__(7466); -var callRegExpExec = __webpack_require__(7651); -var regexpExec = __webpack_require__(2261); -var fails = __webpack_require__(7293); - -var arrayPush = [].push; -var min = Math.min; -var MAX_UINT32 = 0xFFFFFFFF; - -// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError -var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); }); - -// @@split logic -fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - // eslint-disable-next-line regexp/no-empty-group -- required for testing - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegExp(separator)) { - return nativeSplit.call(string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output.length > lim ? output.slice(0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [ - // `String.prototype.split` method - // https://tc39.es/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y ? 'y' : 'g'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - if ( - z === null || - (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; -}, !SUPPORTS_Y); - - -/***/ }), - -/***/ 3210: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $trim = __webpack_require__(3111).trim; -var forcedStringTrimMethod = __webpack_require__(6091); - -// `String.prototype.trim` method -// https://tc39.es/ecma262/#sec-string.prototype.trim -$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { - trim: function trim() { - return $trim(this); - } -}); - - -/***/ }), - -/***/ 2990: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $copyWithin = __webpack_require__(1048); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.copyWithin` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin -exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { - return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); -}); - - -/***/ }), - -/***/ 8927: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $every = __webpack_require__(2092).every; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.every` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every -exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { - return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 3105: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $fill = __webpack_require__(1285); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.fill` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill -// eslint-disable-next-line no-unused-vars -- required for `.length` -exportTypedArrayMethod('fill', function fill(value /* , start, end */) { - return $fill.apply(aTypedArray(this), arguments); -}); - - -/***/ }), - -/***/ 5035: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $filter = __webpack_require__(2092).filter; -var fromSpeciesAndList = __webpack_require__(3074); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.filter` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter -exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { - var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - return fromSpeciesAndList(this, list); -}); - - -/***/ }), - -/***/ 7174: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $findIndex = __webpack_require__(2092).findIndex; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.findIndex` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex -exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { - return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 4345: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $find = __webpack_require__(2092).find; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.find` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find -exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { - return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 2846: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $forEach = __webpack_require__(2092).forEach; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.forEach` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach -exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { - $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 4731: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $includes = __webpack_require__(1318).includes; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.includes` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes -exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { - return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 7209: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $indexOf = __webpack_require__(1318).indexOf; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.indexOf` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof -exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { - return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 6319: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(7854); -var ArrayBufferViewCore = __webpack_require__(260); -var ArrayIterators = __webpack_require__(6992); -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); -var Uint8Array = global.Uint8Array; -var arrayValues = ArrayIterators.values; -var arrayKeys = ArrayIterators.keys; -var arrayEntries = ArrayIterators.entries; -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR]; - -var CORRECT_ITER_NAME = !!nativeTypedArrayIterator - && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined); - -var typedArrayValues = function values() { - return arrayValues.call(aTypedArray(this)); -}; - -// `%TypedArray%.prototype.entries` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries -exportTypedArrayMethod('entries', function entries() { - return arrayEntries.call(aTypedArray(this)); -}); -// `%TypedArray%.prototype.keys` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys -exportTypedArrayMethod('keys', function keys() { - return arrayKeys.call(aTypedArray(this)); -}); -// `%TypedArray%.prototype.values` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values -exportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME); -// `%TypedArray%.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator -exportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME); - - -/***/ }), - -/***/ 8867: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $join = [].join; - -// `%TypedArray%.prototype.join` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join -// eslint-disable-next-line no-unused-vars -- required for `.length` -exportTypedArrayMethod('join', function join(separator) { - return $join.apply(aTypedArray(this), arguments); -}); - - -/***/ }), - -/***/ 7789: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $lastIndexOf = __webpack_require__(6583); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.lastIndexOf` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof -// eslint-disable-next-line no-unused-vars -- required for `.length` -exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { - return $lastIndexOf.apply(aTypedArray(this), arguments); -}); - - -/***/ }), - -/***/ 3739: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $map = __webpack_require__(2092).map; -var speciesConstructor = __webpack_require__(6707); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.map` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map -exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { - return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { - return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length); - }); -}); - - -/***/ }), - -/***/ 4483: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $reduceRight = __webpack_require__(3671).right; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.reduceRicht` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright -exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { - return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 9368: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $reduce = __webpack_require__(3671).left; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.reduce` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce -exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { - return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 2056: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var floor = Math.floor; - -// `%TypedArray%.prototype.reverse` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse -exportTypedArrayMethod('reverse', function reverse() { - var that = this; - var length = aTypedArray(that).length; - var middle = floor(length / 2); - var index = 0; - var value; - while (index < middle) { - value = that[index]; - that[index++] = that[--length]; - that[length] = value; - } return that; -}); - - -/***/ }), - -/***/ 3462: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var toLength = __webpack_require__(7466); -var toOffset = __webpack_require__(4590); -var toObject = __webpack_require__(7908); -var fails = __webpack_require__(7293); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -var FORCED = fails(function () { - /* global Int8Array -- safe */ - new Int8Array(1).set({}); -}); - -// `%TypedArray%.prototype.set` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set -exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { - aTypedArray(this); - var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); - var length = this.length; - var src = toObject(arrayLike); - var len = toLength(src.length); - var index = 0; - if (len + offset > length) throw RangeError('Wrong length'); - while (index < len) this[offset + index] = src[index++]; -}, FORCED); - - -/***/ }), - -/***/ 678: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var speciesConstructor = __webpack_require__(6707); -var fails = __webpack_require__(7293); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $slice = [].slice; - -var FORCED = fails(function () { - /* global Int8Array -- safe */ - new Int8Array(1).slice(); -}); - -// `%TypedArray%.prototype.slice` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice -exportTypedArrayMethod('slice', function slice(start, end) { - var list = $slice.call(aTypedArray(this), start, end); - var C = speciesConstructor(this, this.constructor); - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); - while (length > index) result[index] = list[index++]; - return result; -}, FORCED); - - -/***/ }), - -/***/ 7462: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $some = __webpack_require__(2092).some; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.some` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some -exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { - return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 3824: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $sort = [].sort; - -// `%TypedArray%.prototype.sort` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort -exportTypedArrayMethod('sort', function sort(comparefn) { - return $sort.call(aTypedArray(this), comparefn); -}); - - -/***/ }), - -/***/ 5021: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var toLength = __webpack_require__(7466); -var toAbsoluteIndex = __webpack_require__(1400); -var speciesConstructor = __webpack_require__(6707); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.subarray` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray -exportTypedArrayMethod('subarray', function subarray(begin, end) { - var O = aTypedArray(this); - var length = O.length; - var beginIndex = toAbsoluteIndex(begin, length); - return new (speciesConstructor(O, O.constructor))( - O.buffer, - O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, - toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) - ); -}); - - -/***/ }), - -/***/ 2974: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(7854); -var ArrayBufferViewCore = __webpack_require__(260); -var fails = __webpack_require__(7293); - -var Int8Array = global.Int8Array; -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $toLocaleString = [].toLocaleString; -var $slice = [].slice; - -// iOS Safari 6.x fails here -var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { - $toLocaleString.call(new Int8Array(1)); -}); - -var FORCED = fails(function () { - return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString(); -}) || !fails(function () { - Int8Array.prototype.toLocaleString.call([1, 2]); -}); - -// `%TypedArray%.prototype.toLocaleString` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring -exportTypedArrayMethod('toLocaleString', function toLocaleString() { - return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments); -}, FORCED); - - -/***/ }), - -/***/ 5016: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var exportTypedArrayMethod = __webpack_require__(260).exportTypedArrayMethod; -var fails = __webpack_require__(7293); -var global = __webpack_require__(7854); - -var Uint8Array = global.Uint8Array; -var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; -var arrayToString = [].toString; -var arrayJoin = [].join; - -if (fails(function () { arrayToString.call({}); })) { - arrayToString = function toString() { - return arrayJoin.call(this); - }; -} - -var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString; - -// `%TypedArray%.prototype.toString` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring -exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); - - -/***/ }), - -/***/ 2472: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var createTypedArrayConstructor = __webpack_require__(9843); - -// `Uint8Array` constructor -// https://tc39.es/ecma262/#sec-typedarray-objects -createTypedArrayConstructor('Uint8', function (init) { - return function Uint8Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - - -/***/ }), - -/***/ 4747: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var DOMIterables = __webpack_require__(8324); -var forEach = __webpack_require__(8533); -var createNonEnumerableProperty = __webpack_require__(8880); - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { - createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); - } catch (error) { - CollectionPrototype.forEach = forEach; - } -} - - -/***/ }), - -/***/ 3948: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var DOMIterables = __webpack_require__(8324); -var ArrayIteratorMethods = __webpack_require__(6992); -var createNonEnumerableProperty = __webpack_require__(8880); -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var ArrayValues = ArrayIteratorMethods.values; - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - if (CollectionPrototype) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[ITERATOR] !== ArrayValues) try { - createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); - } catch (error) { - CollectionPrototype[ITERATOR] = ArrayValues; - } - if (!CollectionPrototype[TO_STRING_TAG]) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { - createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); - } catch (error) { - CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; - } - } - } -} - - -/***/ }), - -/***/ 1637: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` -__webpack_require__(6992); -var $ = __webpack_require__(2109); -var getBuiltIn = __webpack_require__(5005); -var USE_NATIVE_URL = __webpack_require__(590); -var redefine = __webpack_require__(1320); -var redefineAll = __webpack_require__(2248); -var setToStringTag = __webpack_require__(8003); -var createIteratorConstructor = __webpack_require__(4994); -var InternalStateModule = __webpack_require__(9909); -var anInstance = __webpack_require__(5787); -var hasOwn = __webpack_require__(6656); -var bind = __webpack_require__(9974); -var classof = __webpack_require__(648); -var anObject = __webpack_require__(9670); -var isObject = __webpack_require__(111); -var create = __webpack_require__(30); -var createPropertyDescriptor = __webpack_require__(9114); -var getIterator = __webpack_require__(8554); -var getIteratorMethod = __webpack_require__(1246); -var wellKnownSymbol = __webpack_require__(5112); - -var $fetch = getBuiltIn('fetch'); -var Headers = getBuiltIn('Headers'); -var ITERATOR = wellKnownSymbol('iterator'); -var URL_SEARCH_PARAMS = 'URLSearchParams'; -var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); -var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); - -var plus = /\+/g; -var sequences = Array(4); - -var percentSequence = function (bytes) { - return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); -}; - -var percentDecode = function (sequence) { - try { - return decodeURIComponent(sequence); - } catch (error) { - return sequence; - } -}; - -var deserialize = function (it) { - var result = it.replace(plus, ' '); - var bytes = 4; - try { - return decodeURIComponent(result); - } catch (error) { - while (bytes) { - result = result.replace(percentSequence(bytes--), percentDecode); - } - return result; - } -}; - -var find = /[!'()~]|%20/g; - -var replace = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+' -}; - -var replacer = function (match) { - return replace[match]; -}; - -var serialize = function (it) { - return encodeURIComponent(it).replace(find, replacer); -}; - -var parseSearchParams = function (result, query) { - if (query) { - var attributes = query.split('&'); - var index = 0; - var attribute, entry; - while (index < attributes.length) { - attribute = attributes[index++]; - if (attribute.length) { - entry = attribute.split('='); - result.push({ - key: deserialize(entry.shift()), - value: deserialize(entry.join('=')) - }); - } - } - } -}; - -var updateSearchParams = function (query) { - this.entries.length = 0; - parseSearchParams(this.entries, query); -}; - -var validateArgumentsLength = function (passed, required) { - if (passed < required) throw TypeError('Not enough arguments'); -}; - -var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { - setInternalState(this, { - type: URL_SEARCH_PARAMS_ITERATOR, - iterator: getIterator(getInternalParamsState(params).entries), - kind: kind - }); -}, 'Iterator', function next() { - var state = getInternalIteratorState(this); - var kind = state.kind; - var step = state.iterator.next(); - var entry = step.value; - if (!step.done) { - step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value]; - } return step; -}); - -// `URLSearchParams` constructor -// https://url.spec.whatwg.org/#interface-urlsearchparams -var URLSearchParamsConstructor = function URLSearchParams(/* init */) { - anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS); - var init = arguments.length > 0 ? arguments[0] : undefined; - var that = this; - var entries = []; - var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; - - setInternalState(that, { - type: URL_SEARCH_PARAMS, - entries: entries, - updateURL: function () { /* empty */ }, - updateSearchParams: updateSearchParams - }); - - if (init !== undefined) { - if (isObject(init)) { - iteratorMethod = getIteratorMethod(init); - if (typeof iteratorMethod === 'function') { - iterator = iteratorMethod.call(init); - next = iterator.next; - while (!(step = next.call(iterator)).done) { - entryIterator = getIterator(anObject(step.value)); - entryNext = entryIterator.next; - if ( - (first = entryNext.call(entryIterator)).done || - (second = entryNext.call(entryIterator)).done || - !entryNext.call(entryIterator).done - ) throw TypeError('Expected sequence with length 2'); - entries.push({ key: first.value + '', value: second.value + '' }); - } - } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' }); - } else { - parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); - } - } -}; - -var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; - -redefineAll(URLSearchParamsPrototype, { - // `URLSearchParams.prototype.append` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-append - append: function append(name, value) { - validateArgumentsLength(arguments.length, 2); - var state = getInternalParamsState(this); - state.entries.push({ key: name + '', value: value + '' }); - state.updateURL(); - }, - // `URLSearchParams.prototype.delete` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-delete - 'delete': function (name) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index].key === key) entries.splice(index, 1); - else index++; - } - state.updateURL(); - }, - // `URLSearchParams.prototype.get` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-get - get: function get(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) return entries[index].value; - } - return null; - }, - // `URLSearchParams.prototype.getAll` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-getall - getAll: function getAll(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var result = []; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) result.push(entries[index].value); - } - return result; - }, - // `URLSearchParams.prototype.has` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-has - has: function has(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index++].key === key) return true; - } - return false; - }, - // `URLSearchParams.prototype.set` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-set - set: function set(name, value) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var found = false; - var key = name + ''; - var val = value + ''; - var index = 0; - var entry; - for (; index < entries.length; index++) { - entry = entries[index]; - if (entry.key === key) { - if (found) entries.splice(index--, 1); - else { - found = true; - entry.value = val; - } - } - } - if (!found) entries.push({ key: key, value: val }); - state.updateURL(); - }, - // `URLSearchParams.prototype.sort` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-sort - sort: function sort() { - var state = getInternalParamsState(this); - var entries = state.entries; - // Array#sort is not stable in some engines - var slice = entries.slice(); - var entry, entriesIndex, sliceIndex; - entries.length = 0; - for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { - entry = slice[sliceIndex]; - for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { - if (entries[entriesIndex].key > entry.key) { - entries.splice(entriesIndex, 0, entry); - break; - } - } - if (entriesIndex === sliceIndex) entries.push(entry); - } - state.updateURL(); - }, - // `URLSearchParams.prototype.forEach` method - forEach: function forEach(callback /* , thisArg */) { - var entries = getInternalParamsState(this).entries; - var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3); - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - boundFunction(entry.value, entry.key, this); - } - }, - // `URLSearchParams.prototype.keys` method - keys: function keys() { - return new URLSearchParamsIterator(this, 'keys'); - }, - // `URLSearchParams.prototype.values` method - values: function values() { - return new URLSearchParamsIterator(this, 'values'); - }, - // `URLSearchParams.prototype.entries` method - entries: function entries() { - return new URLSearchParamsIterator(this, 'entries'); - } -}, { enumerable: true }); - -// `URLSearchParams.prototype[@@iterator]` method -redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries); - -// `URLSearchParams.prototype.toString` method -// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior -redefine(URLSearchParamsPrototype, 'toString', function toString() { - var entries = getInternalParamsState(this).entries; - var result = []; - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - result.push(serialize(entry.key) + '=' + serialize(entry.value)); - } return result.join('&'); -}, { enumerable: true }); - -setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); - -$({ global: true, forced: !USE_NATIVE_URL }, { - URLSearchParams: URLSearchParamsConstructor -}); - -// Wrap `fetch` for correct work with polyfilled `URLSearchParams` -// https://github.com/zloirock/core-js/issues/674 -if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') { - $({ global: true, enumerable: true, forced: true }, { - fetch: function fetch(input /* , init */) { - var args = [input]; - var init, body, headers; - if (arguments.length > 1) { - init = arguments[1]; - if (isObject(init)) { - body = init.body; - if (classof(body) === URL_SEARCH_PARAMS) { - headers = init.headers ? new Headers(init.headers) : new Headers(); - if (!headers.has('content-type')) { - headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - init = create(init, { - body: createPropertyDescriptor(0, String(body)), - headers: createPropertyDescriptor(0, headers) - }); - } - } - args.push(init); - } return $fetch.apply(this, args); - } - }); -} - -module.exports = { - URLSearchParams: URLSearchParamsConstructor, - getState: getInternalParamsState -}; - - -/***/ }), - -/***/ 285: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` -__webpack_require__(8783); -var $ = __webpack_require__(2109); -var DESCRIPTORS = __webpack_require__(9781); -var USE_NATIVE_URL = __webpack_require__(590); -var global = __webpack_require__(7854); -var defineProperties = __webpack_require__(6048); -var redefine = __webpack_require__(1320); -var anInstance = __webpack_require__(5787); -var has = __webpack_require__(6656); -var assign = __webpack_require__(1574); -var arrayFrom = __webpack_require__(8457); -var codeAt = __webpack_require__(8710).codeAt; -var toASCII = __webpack_require__(3197); -var setToStringTag = __webpack_require__(8003); -var URLSearchParamsModule = __webpack_require__(1637); -var InternalStateModule = __webpack_require__(9909); - -var NativeURL = global.URL; -var URLSearchParams = URLSearchParamsModule.URLSearchParams; -var getInternalSearchParamsState = URLSearchParamsModule.getState; -var setInternalState = InternalStateModule.set; -var getInternalURLState = InternalStateModule.getterFor('URL'); -var floor = Math.floor; -var pow = Math.pow; - -var INVALID_AUTHORITY = 'Invalid authority'; -var INVALID_SCHEME = 'Invalid scheme'; -var INVALID_HOST = 'Invalid host'; -var INVALID_PORT = 'Invalid port'; - -var ALPHA = /[A-Za-z]/; -var ALPHANUMERIC = /[\d+-.A-Za-z]/; -var DIGIT = /\d/; -var HEX_START = /^(0x|0X)/; -var OCT = /^[0-7]+$/; -var DEC = /^\d+$/; -var HEX = /^[\dA-Fa-f]+$/; -/* eslint-disable no-control-regex -- safe */ -var FORBIDDEN_HOST_CODE_POINT = /[\u0000\t\u000A\u000D #%/:?@[\\]]/; -var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\t\u000A\u000D #/:?@[\\]]/; -var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; -var TAB_AND_NEW_LINE = /[\t\u000A\u000D]/g; -/* eslint-enable no-control-regex -- safe */ -var EOF; - -var parseHost = function (url, input) { - var result, codePoints, index; - if (input.charAt(0) == '[') { - if (input.charAt(input.length - 1) != ']') return INVALID_HOST; - result = parseIPv6(input.slice(1, -1)); - if (!result) return INVALID_HOST; - url.host = result; - // opaque host - } else if (!isSpecial(url)) { - if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST; - result = ''; - codePoints = arrayFrom(input); - for (index = 0; index < codePoints.length; index++) { - result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); - } - url.host = result; - } else { - input = toASCII(input); - if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST; - result = parseIPv4(input); - if (result === null) return INVALID_HOST; - url.host = result; - } -}; - -var parseIPv4 = function (input) { - var parts = input.split('.'); - var partsLength, numbers, index, part, radix, number, ipv4; - if (parts.length && parts[parts.length - 1] == '') { - parts.pop(); - } - partsLength = parts.length; - if (partsLength > 4) return input; - numbers = []; - for (index = 0; index < partsLength; index++) { - part = parts[index]; - if (part == '') return input; - radix = 10; - if (part.length > 1 && part.charAt(0) == '0') { - radix = HEX_START.test(part) ? 16 : 8; - part = part.slice(radix == 8 ? 1 : 2); - } - if (part === '') { - number = 0; - } else { - if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input; - number = parseInt(part, radix); - } - numbers.push(number); - } - for (index = 0; index < partsLength; index++) { - number = numbers[index]; - if (index == partsLength - 1) { - if (number >= pow(256, 5 - partsLength)) return null; - } else if (number > 255) return null; - } - ipv4 = numbers.pop(); - for (index = 0; index < numbers.length; index++) { - ipv4 += numbers[index] * pow(256, 3 - index); - } - return ipv4; -}; - -// eslint-disable-next-line max-statements -- TODO -var parseIPv6 = function (input) { - var address = [0, 0, 0, 0, 0, 0, 0, 0]; - var pieceIndex = 0; - var compress = null; - var pointer = 0; - var value, length, numbersSeen, ipv4Piece, number, swaps, swap; - - var char = function () { - return input.charAt(pointer); - }; - - if (char() == ':') { - if (input.charAt(1) != ':') return; - pointer += 2; - pieceIndex++; - compress = pieceIndex; - } - while (char()) { - if (pieceIndex == 8) return; - if (char() == ':') { - if (compress !== null) return; - pointer++; - pieceIndex++; - compress = pieceIndex; - continue; - } - value = length = 0; - while (length < 4 && HEX.test(char())) { - value = value * 16 + parseInt(char(), 16); - pointer++; - length++; - } - if (char() == '.') { - if (length == 0) return; - pointer -= length; - if (pieceIndex > 6) return; - numbersSeen = 0; - while (char()) { - ipv4Piece = null; - if (numbersSeen > 0) { - if (char() == '.' && numbersSeen < 4) pointer++; - else return; - } - if (!DIGIT.test(char())) return; - while (DIGIT.test(char())) { - number = parseInt(char(), 10); - if (ipv4Piece === null) ipv4Piece = number; - else if (ipv4Piece == 0) return; - else ipv4Piece = ipv4Piece * 10 + number; - if (ipv4Piece > 255) return; - pointer++; - } - address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; - numbersSeen++; - if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++; - } - if (numbersSeen != 4) return; - break; - } else if (char() == ':') { - pointer++; - if (!char()) return; - } else if (char()) return; - address[pieceIndex++] = value; - } - if (compress !== null) { - swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex != 0 && swaps > 0) { - swap = address[pieceIndex]; - address[pieceIndex--] = address[compress + swaps - 1]; - address[compress + --swaps] = swap; - } - } else if (pieceIndex != 8) return; - return address; -}; - -var findLongestZeroSequence = function (ipv6) { - var maxIndex = null; - var maxLength = 1; - var currStart = null; - var currLength = 0; - var index = 0; - for (; index < 8; index++) { - if (ipv6[index] !== 0) { - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - currStart = null; - currLength = 0; - } else { - if (currStart === null) currStart = index; - ++currLength; - } - } - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - return maxIndex; -}; - -var serializeHost = function (host) { - var result, index, compress, ignore0; - // ipv4 - if (typeof host == 'number') { - result = []; - for (index = 0; index < 4; index++) { - result.unshift(host % 256); - host = floor(host / 256); - } return result.join('.'); - // ipv6 - } else if (typeof host == 'object') { - result = ''; - compress = findLongestZeroSequence(host); - for (index = 0; index < 8; index++) { - if (ignore0 && host[index] === 0) continue; - if (ignore0) ignore0 = false; - if (compress === index) { - result += index ? ':' : '::'; - ignore0 = true; - } else { - result += host[index].toString(16); - if (index < 7) result += ':'; - } - } - return '[' + result + ']'; - } return host; -}; - -var C0ControlPercentEncodeSet = {}; -var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { - ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 -}); -var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { - '#': 1, '?': 1, '{': 1, '}': 1 -}); -var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { - '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 -}); - -var percentEncode = function (char, set) { - var code = codeAt(char, 0); - return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char); -}; - -var specialSchemes = { - ftp: 21, - file: null, - http: 80, - https: 443, - ws: 80, - wss: 443 -}; - -var isSpecial = function (url) { - return has(specialSchemes, url.scheme); -}; - -var includesCredentials = function (url) { - return url.username != '' || url.password != ''; -}; - -var cannotHaveUsernamePasswordPort = function (url) { - return !url.host || url.cannotBeABaseURL || url.scheme == 'file'; -}; - -var isWindowsDriveLetter = function (string, normalized) { - var second; - return string.length == 2 && ALPHA.test(string.charAt(0)) - && ((second = string.charAt(1)) == ':' || (!normalized && second == '|')); -}; - -var startsWithWindowsDriveLetter = function (string) { - var third; - return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && ( - string.length == 2 || - ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#') - ); -}; - -var shortenURLsPath = function (url) { - var path = url.path; - var pathSize = path.length; - if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { - path.pop(); - } -}; - -var isSingleDot = function (segment) { - return segment === '.' || segment.toLowerCase() === '%2e'; -}; - -var isDoubleDot = function (segment) { - segment = segment.toLowerCase(); - return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; -}; - -// States: -var SCHEME_START = {}; -var SCHEME = {}; -var NO_SCHEME = {}; -var SPECIAL_RELATIVE_OR_AUTHORITY = {}; -var PATH_OR_AUTHORITY = {}; -var RELATIVE = {}; -var RELATIVE_SLASH = {}; -var SPECIAL_AUTHORITY_SLASHES = {}; -var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; -var AUTHORITY = {}; -var HOST = {}; -var HOSTNAME = {}; -var PORT = {}; -var FILE = {}; -var FILE_SLASH = {}; -var FILE_HOST = {}; -var PATH_START = {}; -var PATH = {}; -var CANNOT_BE_A_BASE_URL_PATH = {}; -var QUERY = {}; -var FRAGMENT = {}; - -// eslint-disable-next-line max-statements -- TODO -var parseURL = function (url, input, stateOverride, base) { - var state = stateOverride || SCHEME_START; - var pointer = 0; - var buffer = ''; - var seenAt = false; - var seenBracket = false; - var seenPasswordToken = false; - var codePoints, char, bufferCodePoints, failure; - - if (!stateOverride) { - url.scheme = ''; - url.username = ''; - url.password = ''; - url.host = null; - url.port = null; - url.path = []; - url.query = null; - url.fragment = null; - url.cannotBeABaseURL = false; - input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); - } - - input = input.replace(TAB_AND_NEW_LINE, ''); - - codePoints = arrayFrom(input); - - while (pointer <= codePoints.length) { - char = codePoints[pointer]; - switch (state) { - case SCHEME_START: - if (char && ALPHA.test(char)) { - buffer += char.toLowerCase(); - state = SCHEME; - } else if (!stateOverride) { - state = NO_SCHEME; - continue; - } else return INVALID_SCHEME; - break; - - case SCHEME: - if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) { - buffer += char.toLowerCase(); - } else if (char == ':') { - if (stateOverride && ( - (isSpecial(url) != has(specialSchemes, buffer)) || - (buffer == 'file' && (includesCredentials(url) || url.port !== null)) || - (url.scheme == 'file' && !url.host) - )) return; - url.scheme = buffer; - if (stateOverride) { - if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null; - return; - } - buffer = ''; - if (url.scheme == 'file') { - state = FILE; - } else if (isSpecial(url) && base && base.scheme == url.scheme) { - state = SPECIAL_RELATIVE_OR_AUTHORITY; - } else if (isSpecial(url)) { - state = SPECIAL_AUTHORITY_SLASHES; - } else if (codePoints[pointer + 1] == '/') { - state = PATH_OR_AUTHORITY; - pointer++; - } else { - url.cannotBeABaseURL = true; - url.path.push(''); - state = CANNOT_BE_A_BASE_URL_PATH; - } - } else if (!stateOverride) { - buffer = ''; - state = NO_SCHEME; - pointer = 0; - continue; - } else return INVALID_SCHEME; - break; - - case NO_SCHEME: - if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME; - if (base.cannotBeABaseURL && char == '#') { - url.scheme = base.scheme; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - url.cannotBeABaseURL = true; - state = FRAGMENT; - break; - } - state = base.scheme == 'file' ? FILE : RELATIVE; - continue; - - case SPECIAL_RELATIVE_OR_AUTHORITY: - if (char == '/' && codePoints[pointer + 1] == '/') { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - pointer++; - } else { - state = RELATIVE; - continue; - } break; - - case PATH_OR_AUTHORITY: - if (char == '/') { - state = AUTHORITY; - break; - } else { - state = PATH; - continue; - } - - case RELATIVE: - url.scheme = base.scheme; - if (char == EOF) { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '/' || (char == '\\' && isSpecial(url))) { - state = RELATIVE_SLASH; - } else if (char == '?') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.path.pop(); - state = PATH; - continue; - } break; - - case RELATIVE_SLASH: - if (isSpecial(url) && (char == '/' || char == '\\')) { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - } else if (char == '/') { - state = AUTHORITY; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - state = PATH; - continue; - } break; - - case SPECIAL_AUTHORITY_SLASHES: - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - if (char != '/' || buffer.charAt(pointer + 1) != '/') continue; - pointer++; - break; - - case SPECIAL_AUTHORITY_IGNORE_SLASHES: - if (char != '/' && char != '\\') { - state = AUTHORITY; - continue; - } break; - - case AUTHORITY: - if (char == '@') { - if (seenAt) buffer = '%40' + buffer; - seenAt = true; - bufferCodePoints = arrayFrom(buffer); - for (var i = 0; i < bufferCodePoints.length; i++) { - var codePoint = bufferCodePoints[i]; - if (codePoint == ':' && !seenPasswordToken) { - seenPasswordToken = true; - continue; - } - var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); - if (seenPasswordToken) url.password += encodedCodePoints; - else url.username += encodedCodePoints; - } - buffer = ''; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) - ) { - if (seenAt && buffer == '') return INVALID_AUTHORITY; - pointer -= arrayFrom(buffer).length + 1; - buffer = ''; - state = HOST; - } else buffer += char; - break; - - case HOST: - case HOSTNAME: - if (stateOverride && url.scheme == 'file') { - state = FILE_HOST; - continue; - } else if (char == ':' && !seenBracket) { - if (buffer == '') return INVALID_HOST; - failure = parseHost(url, buffer); - if (failure) return failure; - buffer = ''; - state = PORT; - if (stateOverride == HOSTNAME) return; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) - ) { - if (isSpecial(url) && buffer == '') return INVALID_HOST; - if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return; - failure = parseHost(url, buffer); - if (failure) return failure; - buffer = ''; - state = PATH_START; - if (stateOverride) return; - continue; - } else { - if (char == '[') seenBracket = true; - else if (char == ']') seenBracket = false; - buffer += char; - } break; - - case PORT: - if (DIGIT.test(char)) { - buffer += char; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) || - stateOverride - ) { - if (buffer != '') { - var port = parseInt(buffer, 10); - if (port > 0xFFFF) return INVALID_PORT; - url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port; - buffer = ''; - } - if (stateOverride) return; - state = PATH_START; - continue; - } else return INVALID_PORT; - break; - - case FILE: - url.scheme = 'file'; - if (char == '/' || char == '\\') state = FILE_SLASH; - else if (base && base.scheme == 'file') { - if (char == EOF) { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '?') { - url.host = base.host; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - url.host = base.host; - url.path = base.path.slice(); - shortenURLsPath(url); - } - state = PATH; - continue; - } - } else { - state = PATH; - continue; - } break; - - case FILE_SLASH: - if (char == '/' || char == '\\') { - state = FILE_HOST; - break; - } - if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]); - else url.host = base.host; - } - state = PATH; - continue; - - case FILE_HOST: - if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') { - if (!stateOverride && isWindowsDriveLetter(buffer)) { - state = PATH; - } else if (buffer == '') { - url.host = ''; - if (stateOverride) return; - state = PATH_START; - } else { - failure = parseHost(url, buffer); - if (failure) return failure; - if (url.host == 'localhost') url.host = ''; - if (stateOverride) return; - buffer = ''; - state = PATH_START; - } continue; - } else buffer += char; - break; - - case PATH_START: - if (isSpecial(url)) { - state = PATH; - if (char != '/' && char != '\\') continue; - } else if (!stateOverride && char == '?') { - url.query = ''; - state = QUERY; - } else if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - state = PATH; - if (char != '/') continue; - } break; - - case PATH: - if ( - char == EOF || char == '/' || - (char == '\\' && isSpecial(url)) || - (!stateOverride && (char == '?' || char == '#')) - ) { - if (isDoubleDot(buffer)) { - shortenURLsPath(url); - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else if (isSingleDot(buffer)) { - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else { - if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { - if (url.host) url.host = ''; - buffer = buffer.charAt(0) + ':'; // normalize windows drive letter - } - url.path.push(buffer); - } - buffer = ''; - if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) { - while (url.path.length > 1 && url.path[0] === '') { - url.path.shift(); - } - } - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } - } else { - buffer += percentEncode(char, pathPercentEncodeSet); - } break; - - case CANNOT_BE_A_BASE_URL_PATH: - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - url.path[0] += percentEncode(char, C0ControlPercentEncodeSet); - } break; - - case QUERY: - if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - if (char == "'" && isSpecial(url)) url.query += '%27'; - else if (char == '#') url.query += '%23'; - else url.query += percentEncode(char, C0ControlPercentEncodeSet); - } break; - - case FRAGMENT: - if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet); - break; - } - - pointer++; - } -}; - -// `URL` constructor -// https://url.spec.whatwg.org/#url-class -var URLConstructor = function URL(url /* , base */) { - var that = anInstance(this, URLConstructor, 'URL'); - var base = arguments.length > 1 ? arguments[1] : undefined; - var urlString = String(url); - var state = setInternalState(that, { type: 'URL' }); - var baseState, failure; - if (base !== undefined) { - if (base instanceof URLConstructor) baseState = getInternalURLState(base); - else { - failure = parseURL(baseState = {}, String(base)); - if (failure) throw TypeError(failure); - } - } - failure = parseURL(state, urlString, null, baseState); - if (failure) throw TypeError(failure); - var searchParams = state.searchParams = new URLSearchParams(); - var searchParamsState = getInternalSearchParamsState(searchParams); - searchParamsState.updateSearchParams(state.query); - searchParamsState.updateURL = function () { - state.query = String(searchParams) || null; - }; - if (!DESCRIPTORS) { - that.href = serializeURL.call(that); - that.origin = getOrigin.call(that); - that.protocol = getProtocol.call(that); - that.username = getUsername.call(that); - that.password = getPassword.call(that); - that.host = getHost.call(that); - that.hostname = getHostname.call(that); - that.port = getPort.call(that); - that.pathname = getPathname.call(that); - that.search = getSearch.call(that); - that.searchParams = getSearchParams.call(that); - that.hash = getHash.call(that); - } -}; - -var URLPrototype = URLConstructor.prototype; - -var serializeURL = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var username = url.username; - var password = url.password; - var host = url.host; - var port = url.port; - var path = url.path; - var query = url.query; - var fragment = url.fragment; - var output = scheme + ':'; - if (host !== null) { - output += '//'; - if (includesCredentials(url)) { - output += username + (password ? ':' + password : '') + '@'; - } - output += serializeHost(host); - if (port !== null) output += ':' + port; - } else if (scheme == 'file') output += '//'; - output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; - if (query !== null) output += '?' + query; - if (fragment !== null) output += '#' + fragment; - return output; -}; - -var getOrigin = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var port = url.port; - if (scheme == 'blob') try { - return new URL(scheme.path[0]).origin; - } catch (error) { - return 'null'; - } - if (scheme == 'file' || !isSpecial(url)) return 'null'; - return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : ''); -}; - -var getProtocol = function () { - return getInternalURLState(this).scheme + ':'; -}; - -var getUsername = function () { - return getInternalURLState(this).username; -}; - -var getPassword = function () { - return getInternalURLState(this).password; -}; - -var getHost = function () { - var url = getInternalURLState(this); - var host = url.host; - var port = url.port; - return host === null ? '' - : port === null ? serializeHost(host) - : serializeHost(host) + ':' + port; -}; - -var getHostname = function () { - var host = getInternalURLState(this).host; - return host === null ? '' : serializeHost(host); -}; - -var getPort = function () { - var port = getInternalURLState(this).port; - return port === null ? '' : String(port); -}; - -var getPathname = function () { - var url = getInternalURLState(this); - var path = url.path; - return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; -}; - -var getSearch = function () { - var query = getInternalURLState(this).query; - return query ? '?' + query : ''; -}; - -var getSearchParams = function () { - return getInternalURLState(this).searchParams; -}; - -var getHash = function () { - var fragment = getInternalURLState(this).fragment; - return fragment ? '#' + fragment : ''; -}; - -var accessorDescriptor = function (getter, setter) { - return { get: getter, set: setter, configurable: true, enumerable: true }; -}; - -if (DESCRIPTORS) { - defineProperties(URLPrototype, { - // `URL.prototype.href` accessors pair - // https://url.spec.whatwg.org/#dom-url-href - href: accessorDescriptor(serializeURL, function (href) { - var url = getInternalURLState(this); - var urlString = String(href); - var failure = parseURL(url, urlString); - if (failure) throw TypeError(failure); - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.origin` getter - // https://url.spec.whatwg.org/#dom-url-origin - origin: accessorDescriptor(getOrigin), - // `URL.prototype.protocol` accessors pair - // https://url.spec.whatwg.org/#dom-url-protocol - protocol: accessorDescriptor(getProtocol, function (protocol) { - var url = getInternalURLState(this); - parseURL(url, String(protocol) + ':', SCHEME_START); - }), - // `URL.prototype.username` accessors pair - // https://url.spec.whatwg.org/#dom-url-username - username: accessorDescriptor(getUsername, function (username) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(username)); - if (cannotHaveUsernamePasswordPort(url)) return; - url.username = ''; - for (var i = 0; i < codePoints.length; i++) { - url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - // `URL.prototype.password` accessors pair - // https://url.spec.whatwg.org/#dom-url-password - password: accessorDescriptor(getPassword, function (password) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(password)); - if (cannotHaveUsernamePasswordPort(url)) return; - url.password = ''; - for (var i = 0; i < codePoints.length; i++) { - url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - // `URL.prototype.host` accessors pair - // https://url.spec.whatwg.org/#dom-url-host - host: accessorDescriptor(getHost, function (host) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - parseURL(url, String(host), HOST); - }), - // `URL.prototype.hostname` accessors pair - // https://url.spec.whatwg.org/#dom-url-hostname - hostname: accessorDescriptor(getHostname, function (hostname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - parseURL(url, String(hostname), HOSTNAME); - }), - // `URL.prototype.port` accessors pair - // https://url.spec.whatwg.org/#dom-url-port - port: accessorDescriptor(getPort, function (port) { - var url = getInternalURLState(this); - if (cannotHaveUsernamePasswordPort(url)) return; - port = String(port); - if (port == '') url.port = null; - else parseURL(url, port, PORT); - }), - // `URL.prototype.pathname` accessors pair - // https://url.spec.whatwg.org/#dom-url-pathname - pathname: accessorDescriptor(getPathname, function (pathname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - url.path = []; - parseURL(url, pathname + '', PATH_START); - }), - // `URL.prototype.search` accessors pair - // https://url.spec.whatwg.org/#dom-url-search - search: accessorDescriptor(getSearch, function (search) { - var url = getInternalURLState(this); - search = String(search); - if (search == '') { - url.query = null; - } else { - if ('?' == search.charAt(0)) search = search.slice(1); - url.query = ''; - parseURL(url, search, QUERY); - } - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.searchParams` getter - // https://url.spec.whatwg.org/#dom-url-searchparams - searchParams: accessorDescriptor(getSearchParams), - // `URL.prototype.hash` accessors pair - // https://url.spec.whatwg.org/#dom-url-hash - hash: accessorDescriptor(getHash, function (hash) { - var url = getInternalURLState(this); - hash = String(hash); - if (hash == '') { - url.fragment = null; - return; - } - if ('#' == hash.charAt(0)) hash = hash.slice(1); - url.fragment = ''; - parseURL(url, hash, FRAGMENT); - }) - }); -} - -// `URL.prototype.toJSON` method -// https://url.spec.whatwg.org/#dom-url-tojson -redefine(URLPrototype, 'toJSON', function toJSON() { - return serializeURL.call(this); -}, { enumerable: true }); - -// `URL.prototype.toString` method -// https://url.spec.whatwg.org/#URL-stringification-behavior -redefine(URLPrototype, 'toString', function toString() { - return serializeURL.call(this); -}, { enumerable: true }); - -if (NativeURL) { - var nativeCreateObjectURL = NativeURL.createObjectURL; - var nativeRevokeObjectURL = NativeURL.revokeObjectURL; - // `URL.createObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL - // eslint-disable-next-line no-unused-vars -- required for `.length` - if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) { - return nativeCreateObjectURL.apply(NativeURL, arguments); - }); - // `URL.revokeObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL - // eslint-disable-next-line no-unused-vars -- required for `.length` - if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) { - return nativeRevokeObjectURL.apply(NativeURL, arguments); - }); -} - -setToStringTag(URLConstructor, 'URL'); - -$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { - URL: URLConstructor -}); - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ if(__webpack_module_cache__[moduleId]) { -/******/ return __webpack_module_cache__[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ !function() { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = function(exports, definition) { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ }(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ !function() { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ }(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ !function() { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ }(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -!function() { -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Dropzone": function() { return /* reexport */ Dropzone; }, - "default": function() { return /* binding */ dropzone_dist; } -}); - -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js -var es_array_concat = __webpack_require__(2222); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js -var es_array_filter = __webpack_require__(7327); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js -var es_array_index_of = __webpack_require__(2772); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js -var es_array_iterator = __webpack_require__(6992); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js -var es_array_map = __webpack_require__(1249); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js -var es_array_slice = __webpack_require__(7042); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js -var es_array_splice = __webpack_require__(561); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.constructor.js -var es_array_buffer_constructor = __webpack_require__(8264); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js -var es_function_name = __webpack_require__(8309); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-prototype-of.js -var es_object_get_prototype_of = __webpack_require__(489); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js -var es_object_to_string = __webpack_require__(1539); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js -var es_regexp_exec = __webpack_require__(4916); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js -var es_regexp_to_string = __webpack_require__(9714); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js -var es_string_iterator = __webpack_require__(8783); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js -var es_string_match = __webpack_require__(4723); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js -var es_string_replace = __webpack_require__(5306); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js -var es_string_split = __webpack_require__(3123); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js -var es_string_trim = __webpack_require__(3210); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.uint8-array.js -var es_typed_array_uint8_array = __webpack_require__(2472); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js -var es_typed_array_copy_within = __webpack_require__(2990); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js -var es_typed_array_every = __webpack_require__(8927); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js -var es_typed_array_fill = __webpack_require__(3105); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js -var es_typed_array_filter = __webpack_require__(5035); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js -var es_typed_array_find = __webpack_require__(4345); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js -var es_typed_array_find_index = __webpack_require__(7174); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js -var es_typed_array_for_each = __webpack_require__(2846); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js -var es_typed_array_includes = __webpack_require__(4731); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js -var es_typed_array_index_of = __webpack_require__(7209); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js -var es_typed_array_iterator = __webpack_require__(6319); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js -var es_typed_array_join = __webpack_require__(8867); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js -var es_typed_array_last_index_of = __webpack_require__(7789); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js -var es_typed_array_map = __webpack_require__(3739); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js -var es_typed_array_reduce = __webpack_require__(9368); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js -var es_typed_array_reduce_right = __webpack_require__(4483); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js -var es_typed_array_reverse = __webpack_require__(2056); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js -var es_typed_array_set = __webpack_require__(3462); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js -var es_typed_array_slice = __webpack_require__(678); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js -var es_typed_array_some = __webpack_require__(7462); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js -var es_typed_array_sort = __webpack_require__(3824); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js -var es_typed_array_subarray = __webpack_require__(5021); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js -var es_typed_array_to_locale_string = __webpack_require__(2974); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js -var es_typed_array_to_string = __webpack_require__(5016); -// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js -var web_dom_collections_for_each = __webpack_require__(4747); -// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js -var web_dom_collections_iterator = __webpack_require__(3948); -// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js -var web_url = __webpack_require__(285); -;// CONCATENATED MODULE: ./src/emitter.js - - -function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -// The Emitter class provides the ability to call `.on()` on Dropzone to listen -// to events. -// It is strongly based on component's emitter class, and I removed the -// functionality because of the dependency hell with different frameworks. -var Emitter = /*#__PURE__*/function () { - function Emitter() { - _classCallCheck(this, Emitter); - } - - _createClass(Emitter, [{ - key: "on", - value: // Add an event listener for given event - function on(event, fn) { - this._callbacks = this._callbacks || {}; // Create namespace for this event - - if (!this._callbacks[event]) { - this._callbacks[event] = []; - } - - this._callbacks[event].push(fn); - - return this; - } - }, { - key: "emit", - value: function emit(event) { - this._callbacks = this._callbacks || {}; - var callbacks = this._callbacks[event]; - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (callbacks) { - var _iterator = _createForOfIteratorHelper(callbacks, true), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var callback = _step.value; - callback.apply(this, args); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } // trigger a corresponding DOM event - - - if (this.element) { - this.element.dispatchEvent(this.makeEvent("dropzone:" + event, { - args: args - })); - } - - return this; - } - }, { - key: "makeEvent", - value: function makeEvent(eventName, detail) { - var params = { - bubbles: true, - cancelable: true, - detail: detail - }; - - if (typeof window.CustomEvent === "function") { - return new CustomEvent(eventName, params); - } else { - // IE 11 support - // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent - var evt = document.createEvent("CustomEvent"); - evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); - return evt; - } - } // Remove event listener for given event. If fn is not provided, all event - // listeners for that event will be removed. If neither is provided, all - // event listeners will be removed. - - }, { - key: "off", - value: function off(event, fn) { - if (!this._callbacks || arguments.length === 0) { - this._callbacks = {}; - return this; - } // specific event - - - var callbacks = this._callbacks[event]; - - if (!callbacks) { - return this; - } // remove all handlers - - - if (arguments.length === 1) { - delete this._callbacks[event]; - return this; - } // remove specific handler - - - for (var i = 0; i < callbacks.length; i++) { - var callback = callbacks[i]; - - if (callback === fn) { - callbacks.splice(i, 1); - break; - } - } - - return this; - } - }]); - - return Emitter; -}(); - - -;// CONCATENATED MODULE: ./src/preview-template.html -// Module -var code = "
Check
Error
"; -// Exports -/* harmony default export */ var preview_template = (code); -;// CONCATENATED MODULE: ./src/options.js - - - - - -function options_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = options_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function options_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return options_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return options_arrayLikeToArray(o, minLen); } - -function options_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - - - -var defaultOptions = { - /** - * Has to be specified on elements other than form (or when the form - * doesn't have an `action` attribute). You can also - * provide a function that will be called with `files` and - * must return the url (since `v3.12.0`) - */ - url: null, - - /** - * Can be changed to `"put"` if necessary. You can also provide a function - * that will be called with `files` and must return the method (since `v3.12.0`). - */ - method: "post", - - /** - * Will be set on the XHRequest. - */ - withCredentials: false, - - /** - * The timeout for the XHR requests in milliseconds (since `v4.4.0`). - * If set to null or 0, no timeout is going to be set. - */ - timeout: null, - - /** - * How many file uploads to process in parallel (See the - * Enqueuing file uploads documentation section for more info) - */ - parallelUploads: 2, - - /** - * Whether to send multiple files in one request. If - * this it set to true, then the fallback file input element will - * have the `multiple` attribute as well. This option will - * also trigger additional events (like `processingmultiple`). See the events - * documentation section for more information. - */ - uploadMultiple: false, - - /** - * Whether you want files to be uploaded in chunks to your server. This can't be - * used in combination with `uploadMultiple`. - * - * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload. - */ - chunking: false, - - /** - * If `chunking` is enabled, this defines whether **every** file should be chunked, - * even if the file size is below chunkSize. This means, that the additional chunk - * form data will be submitted and the `chunksUploaded` callback will be invoked. - */ - forceChunking: false, - - /** - * If `chunking` is `true`, then this defines the chunk size in bytes. - */ - chunkSize: 2000000, - - /** - * If `true`, the individual chunks of a file are being uploaded simultaneously. - */ - parallelChunkUploads: false, - - /** - * Whether a chunk should be retried if it fails. - */ - retryChunks: false, - - /** - * If `retryChunks` is true, how many times should it be retried. - */ - retryChunksLimit: 3, - - /** - * The maximum filesize (in bytes) that is allowed to be uploaded. - */ - maxFilesize: 256, - - /** - * The name of the file param that gets transferred. - * **NOTE**: If you have the option `uploadMultiple` set to `true`, then - * Dropzone will append `[]` to the name. - */ - paramName: "file", - - /** - * Whether thumbnails for images should be generated - */ - createImageThumbnails: true, - - /** - * In MB. When the filename exceeds this limit, the thumbnail will not be generated. - */ - maxThumbnailFilesize: 10, - - /** - * If `null`, the ratio of the image will be used to calculate it. - */ - thumbnailWidth: 120, - - /** - * The same as `thumbnailWidth`. If both are null, images will not be resized. - */ - thumbnailHeight: 120, - - /** - * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided. - * Can be either `contain` or `crop`. - */ - thumbnailMethod: "crop", - - /** - * If set, images will be resized to these dimensions before being **uploaded**. - * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect - * ratio of the file will be preserved. - * - * The `options.transformFile` function uses these options, so if the `transformFile` function - * is overridden, these options don't do anything. - */ - resizeWidth: null, - - /** - * See `resizeWidth`. - */ - resizeHeight: null, - - /** - * The mime type of the resized image (before it gets uploaded to the server). - * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`. - * See `resizeWidth` for more information. - */ - resizeMimeType: null, - - /** - * The quality of the resized images. See `resizeWidth`. - */ - resizeQuality: 0.8, - - /** - * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided. - * Can be either `contain` or `crop`. - */ - resizeMethod: "contain", - - /** - * The base that is used to calculate the **displayed** filesize. You can - * change this to 1024 if you would rather display kibibytes, mebibytes, - * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte` - * not `1 kilobyte`. You can change this to `1024` if you don't care about - * validity. - */ - filesizeBase: 1000, - - /** - * If not `null` defines how many files this Dropzone handles. If it exceeds, - * the event `maxfilesexceeded` will be called. The dropzone element gets the - * class `dz-max-files-reached` accordingly so you can provide visual - * feedback. - */ - maxFiles: null, - - /** - * An optional object to send additional headers to the server. Eg: - * `{ "My-Awesome-Header": "header value" }` - */ - headers: null, - - /** - * If `true`, the dropzone element itself will be clickable, if `false` - * nothing will be clickable. - * - * You can also pass an HTML element, a CSS selector (for multiple elements) - * or an array of those. In that case, all of those elements will trigger an - * upload when clicked. - */ - clickable: true, - - /** - * Whether hidden files in directories should be ignored. - */ - ignoreHiddenFiles: true, - - /** - * The default implementation of `accept` checks the file's mime type or - * extension against this list. This is a comma separated list of mime - * types or file extensions. - * - * Eg.: `image/*,application/pdf,.psd` - * - * If the Dropzone is `clickable` this option will also be used as - * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept) - * parameter on the hidden file input as well. - */ - acceptedFiles: null, - - /** - * **Deprecated!** - * Use acceptedFiles instead. - */ - acceptedMimeTypes: null, - - /** - * If false, files will be added to the queue but the queue will not be - * processed automatically. - * This can be useful if you need some additional user input before sending - * files (or if you want want all files sent at once). - * If you're ready to send the file simply call `myDropzone.processQueue()`. - * - * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation - * section for more information. - */ - autoProcessQueue: true, - - /** - * If false, files added to the dropzone will not be queued by default. - * You'll have to call `enqueueFile(file)` manually. - */ - autoQueue: true, - - /** - * If `true`, this will add a link to every file preview to remove or cancel (if - * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation` - * and `dictRemoveFile` options are used for the wording. - */ - addRemoveLinks: false, - - /** - * Defines where to display the file previews – if `null` the - * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS - * selector. The element should have the `dropzone-previews` class so - * the previews are displayed properly. - */ - previewsContainer: null, - - /** - * Set this to `true` if you don't want previews to be shown. - */ - disablePreviews: false, - - /** - * This is the element the hidden input field (which is used when clicking on the - * dropzone to trigger file selection) will be appended to. This might - * be important in case you use frameworks to switch the content of your page. - * - * Can be a selector string, or an element directly. - */ - hiddenInputContainer: "body", - - /** - * If null, no capture type will be specified - * If camera, mobile devices will skip the file selection and choose camera - * If microphone, mobile devices will skip the file selection and choose the microphone - * If camcorder, mobile devices will skip the file selection and choose the camera in video mode - * On apple devices multiple must be set to false. AcceptedFiles may need to - * be set to an appropriate mime type (e.g. "image/*", "audio/*", or "video/*"). - */ - capture: null, - - /** - * **Deprecated**. Use `renameFile` instead. - */ - renameFilename: null, - - /** - * A function that is invoked before the file is uploaded to the server and renames the file. - * This function gets the `File` as argument and can use the `file.name`. The actual name of the - * file that gets used during the upload can be accessed through `file.upload.filename`. - */ - renameFile: null, - - /** - * If `true` the fallback will be forced. This is very useful to test your server - * implementations first and make sure that everything works as - * expected without dropzone if you experience problems, and to test - * how your fallbacks will look. - */ - forceFallback: false, - - /** - * The text used before any files are dropped. - */ - dictDefaultMessage: "Drop files here to upload", - - /** - * The text that replaces the default message text it the browser is not supported. - */ - dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", - - /** - * The text that will be added before the fallback form. - * If you provide a fallback element yourself, or if this option is `null` this will - * be ignored. - */ - dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", - - /** - * If the filesize is too big. - * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values. - */ - dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", - - /** - * If the file doesn't match the file type. - */ - dictInvalidFileType: "You can't upload files of this type.", - - /** - * If the server response was invalid. - * `{{statusCode}}` will be replaced with the servers status code. - */ - dictResponseError: "Server responded with {{statusCode}} code.", - - /** - * If `addRemoveLinks` is true, the text to be used for the cancel upload link. - */ - dictCancelUpload: "Cancel upload", - - /** - * The text that is displayed if an upload was manually canceled - */ - dictUploadCanceled: "Upload canceled.", - - /** - * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload. - */ - dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", - - /** - * If `addRemoveLinks` is true, the text to be used to remove a file. - */ - dictRemoveFile: "Remove file", - - /** - * If this is not null, then the user will be prompted before removing a file. - */ - dictRemoveFileConfirmation: null, - - /** - * Displayed if `maxFiles` is st and exceeded. - * The string `{{maxFiles}}` will be replaced by the configuration value. - */ - dictMaxFilesExceeded: "You can not upload any more files.", - - /** - * Allows you to translate the different units. Starting with `tb` for terabytes and going down to - * `b` for bytes. - */ - dictFileSizeUnits: { - tb: "TB", - gb: "GB", - mb: "MB", - kb: "KB", - b: "b" - }, - - /** - * Called when dropzone initialized - * You can add event listeners here - */ - init: function init() {}, - - /** - * Can be an **object** of additional parameters to transfer to the server, **or** a `Function` - * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case - * of a function, this needs to return a map. - * - * The default implementation does nothing for normal uploads, but adds relevant information for - * chunked uploads. - * - * This is the same as adding hidden input fields in the form element. - */ - params: function params(files, xhr, chunk) { - if (chunk) { - return { - dzuuid: chunk.file.upload.uuid, - dzchunkindex: chunk.index, - dztotalfilesize: chunk.file.size, - dzchunksize: this.options.chunkSize, - dztotalchunkcount: chunk.file.upload.totalChunkCount, - dzchunkbyteoffset: chunk.index * this.options.chunkSize - }; - } - }, - - /** - * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File) - * and a `done` function as parameters. - * - * If the done function is invoked without arguments, the file is "accepted" and will - * be processed. If you pass an error message, the file is rejected, and the error - * message will be displayed. - * This function will not be called if the file is too big or doesn't match the mime types. - */ - accept: function accept(file, done) { - return done(); - }, - - /** - * The callback that will be invoked when all chunks have been uploaded for a file. - * It gets the file for which the chunks have been uploaded as the first parameter, - * and the `done` function as second. `done()` needs to be invoked when everything - * needed to finish the upload process is done. - */ - chunksUploaded: function chunksUploaded(file, done) { - done(); - }, - - /** - * Gets called when the browser is not supported. - * The default implementation shows the fallback input field and adds - * a text. - */ - fallback: function fallback() { - // This code should pass in IE7... :( - var messageElement; - this.element.className = "".concat(this.element.className, " dz-browser-not-supported"); - - var _iterator = options_createForOfIteratorHelper(this.element.getElementsByTagName("div"), true), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var child = _step.value; - - if (/(^| )dz-message($| )/.test(child.className)) { - messageElement = child; - child.className = "dz-message"; // Removes the 'dz-default' class - - break; - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - if (!messageElement) { - messageElement = Dropzone.createElement('
'); - this.element.appendChild(messageElement); - } - - var span = messageElement.getElementsByTagName("span")[0]; - - if (span) { - if (span.textContent != null) { - span.textContent = this.options.dictFallbackMessage; - } else if (span.innerText != null) { - span.innerText = this.options.dictFallbackMessage; - } - } - - return this.element.appendChild(this.getFallbackForm()); - }, - - /** - * Gets called to calculate the thumbnail dimensions. - * - * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing: - * - * - `srcWidth` & `srcHeight` (required) - * - `trgWidth` & `trgHeight` (required) - * - `srcX` & `srcY` (optional, default `0`) - * - `trgX` & `trgY` (optional, default `0`) - * - * Those values are going to be used by `ctx.drawImage()`. - */ - resize: function resize(file, width, height, resizeMethod) { - var info = { - srcX: 0, - srcY: 0, - srcWidth: file.width, - srcHeight: file.height - }; - var srcRatio = file.width / file.height; // Automatically calculate dimensions if not specified - - if (width == null && height == null) { - width = info.srcWidth; - height = info.srcHeight; - } else if (width == null) { - width = height * srcRatio; - } else if (height == null) { - height = width / srcRatio; - } // Make sure images aren't upscaled - - - width = Math.min(width, info.srcWidth); - height = Math.min(height, info.srcHeight); - var trgRatio = width / height; - - if (info.srcWidth > width || info.srcHeight > height) { - // Image is bigger and needs rescaling - if (resizeMethod === "crop") { - if (srcRatio > trgRatio) { - info.srcHeight = file.height; - info.srcWidth = info.srcHeight * trgRatio; - } else { - info.srcWidth = file.width; - info.srcHeight = info.srcWidth / trgRatio; - } - } else if (resizeMethod === "contain") { - // Method 'contain' - if (srcRatio > trgRatio) { - height = width / srcRatio; - } else { - width = height * srcRatio; - } - } else { - throw new Error("Unknown resizeMethod '".concat(resizeMethod, "'")); - } - } - - info.srcX = (file.width - info.srcWidth) / 2; - info.srcY = (file.height - info.srcHeight) / 2; - info.trgWidth = width; - info.trgHeight = height; - return info; - }, - - /** - * Can be used to transform the file (for example, resize an image if necessary). - * - * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes - * images according to those dimensions. - * - * Gets the `file` as the first parameter, and a `done()` function as the second, that needs - * to be invoked with the file when the transformation is done. - */ - transformFile: function transformFile(file, done) { - if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) { - return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done); - } else { - return done(file); - } - }, - - /** - * A string that contains the template used for each dropped - * file. Change it to fulfill your needs but make sure to properly - * provide all elements. - * - * If you want to use an actual HTML element instead of providing a String - * as a config option, you could create a div with the id `tpl`, - * put the template inside it and provide the element like this: - * - * document - * .querySelector('#tpl') - * .innerHTML - * - */ - previewTemplate: preview_template, - - /* - Those functions register themselves to the events on init and handle all - the user interface specific stuff. Overwriting them won't break the upload - but can break the way it's displayed. - You can overwrite them if you don't like the default behavior. If you just - want to add an additional event handler, register it on the dropzone object - and don't overwrite those options. - */ - // Those are self explanatory and simply concern the DragnDrop. - drop: function drop(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - dragstart: function dragstart(e) {}, - dragend: function dragend(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - dragenter: function dragenter(e) { - return this.element.classList.add("dz-drag-hover"); - }, - dragover: function dragover(e) { - return this.element.classList.add("dz-drag-hover"); - }, - dragleave: function dragleave(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - paste: function paste(e) {}, - // Called whenever there are no files left in the dropzone anymore, and the - // dropzone should be displayed as if in the initial state. - reset: function reset() { - return this.element.classList.remove("dz-started"); - }, - // Called when a file is added to the queue - // Receives `file` - addedfile: function addedfile(file) { - var _this = this; - - if (this.element === this.previewsContainer) { - this.element.classList.add("dz-started"); - } - - if (this.previewsContainer && !this.options.disablePreviews) { - file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim()); - file.previewTemplate = file.previewElement; // Backwards compatibility - - this.previewsContainer.appendChild(file.previewElement); - - var _iterator2 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-name]"), true), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var node = _step2.value; - node.textContent = file.name; - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - var _iterator3 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-size]"), true), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - node = _step3.value; - node.innerHTML = this.filesize(file.size); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - - if (this.options.addRemoveLinks) { - file._removeLink = Dropzone.createElement("
".concat(this.options.dictRemoveFile, "")); - file.previewElement.appendChild(file._removeLink); - } - - var removeFileEvent = function removeFileEvent(e) { - e.preventDefault(); - e.stopPropagation(); - - if (file.status === Dropzone.UPLOADING) { - return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function () { - return _this.removeFile(file); - }); - } else { - if (_this.options.dictRemoveFileConfirmation) { - return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function () { - return _this.removeFile(file); - }); - } else { - return _this.removeFile(file); - } - } - }; - - var _iterator4 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-remove]"), true), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var removeLink = _step4.value; - removeLink.addEventListener("click", removeFileEvent); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - } - }, - // Called whenever a file is removed. - removedfile: function removedfile(file) { - if (file.previewElement != null && file.previewElement.parentNode != null) { - file.previewElement.parentNode.removeChild(file.previewElement); - } - - return this._updateMaxFilesReachedClass(); - }, - // Called when a thumbnail has been generated - // Receives `file` and `dataUrl` - thumbnail: function thumbnail(file, dataUrl) { - if (file.previewElement) { - file.previewElement.classList.remove("dz-file-preview"); - - var _iterator5 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-thumbnail]"), true), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var thumbnailElement = _step5.value; - thumbnailElement.alt = file.name; - thumbnailElement.src = dataUrl; - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - return setTimeout(function () { - return file.previewElement.classList.add("dz-image-preview"); - }, 1); - } - }, - // Called whenever an error occurs - // Receives `file` and `message` - error: function error(file, message) { - if (file.previewElement) { - file.previewElement.classList.add("dz-error"); - - if (typeof message !== "string" && message.error) { - message = message.error; - } - - var _iterator6 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-errormessage]"), true), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var node = _step6.value; - node.textContent = message; - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - } - }, - errormultiple: function errormultiple() {}, - // Called when a file gets processed. Since there is a cue, not all added - // files are processed immediately. - // Receives `file` - processing: function processing(file) { - if (file.previewElement) { - file.previewElement.classList.add("dz-processing"); - - if (file._removeLink) { - return file._removeLink.innerHTML = this.options.dictCancelUpload; - } - } - }, - processingmultiple: function processingmultiple() {}, - // Called whenever the upload progress gets updated. - // Receives `file`, `progress` (percentage 0-100) and `bytesSent`. - // To get the total number of bytes of the file, use `file.size` - uploadprogress: function uploadprogress(file, progress, bytesSent) { - if (file.previewElement) { - var _iterator7 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-uploadprogress]"), true), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var node = _step7.value; - node.nodeName === "PROGRESS" ? node.value = progress : node.style.width = "".concat(progress, "%"); - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - } - }, - // Called whenever the total upload progress gets updated. - // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent - totaluploadprogress: function totaluploadprogress() {}, - // Called just before the file is sent. Gets the `xhr` object as second - // parameter, so you can modify it (for example to add a CSRF token) and a - // `formData` object to add additional information. - sending: function sending() {}, - sendingmultiple: function sendingmultiple() {}, - // When the complete upload is finished and successful - // Receives `file` - success: function success(file) { - if (file.previewElement) { - return file.previewElement.classList.add("dz-success"); - } - }, - successmultiple: function successmultiple() {}, - // When the upload is canceled. - canceled: function canceled(file) { - return this.emit("error", file, this.options.dictUploadCanceled); - }, - canceledmultiple: function canceledmultiple() {}, - // When the upload is finished, either with success or an error. - // Receives `file` - complete: function complete(file) { - if (file._removeLink) { - file._removeLink.innerHTML = this.options.dictRemoveFile; - } - - if (file.previewElement) { - return file.previewElement.classList.add("dz-complete"); - } - }, - completemultiple: function completemultiple() {}, - maxfilesexceeded: function maxfilesexceeded() {}, - maxfilesreached: function maxfilesreached() {}, - queuecomplete: function queuecomplete() {}, - addedfiles: function addedfiles() {} -}; -/* harmony default export */ var src_options = (defaultOptions); -;// CONCATENATED MODULE: ./src/dropzone.js -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -function dropzone_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = dropzone_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function dropzone_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return dropzone_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return dropzone_arrayLikeToArray(o, minLen); } - -function dropzone_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function dropzone_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); } } - -function dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) dropzone_defineProperties(Constructor, staticProps); return Constructor; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - - - - -var Dropzone = /*#__PURE__*/function (_Emitter) { - _inherits(Dropzone, _Emitter); - - var _super = _createSuper(Dropzone); - - function Dropzone(el, options) { - var _this; - - dropzone_classCallCheck(this, Dropzone); - - _this = _super.call(this); - var fallback, left; - _this.element = el; // For backwards compatibility since the version was in the prototype previously - - _this.version = Dropzone.version; - _this.clickableElements = []; - _this.listeners = []; - _this.files = []; // All files - - if (typeof _this.element === "string") { - _this.element = document.querySelector(_this.element); - } // Not checking if instance of HTMLElement or Element since IE9 is extremely weird. - - - if (!_this.element || _this.element.nodeType == null) { - throw new Error("Invalid dropzone element."); - } - - if (_this.element.dropzone) { - throw new Error("Dropzone already attached."); - } // Now add this dropzone to the instances. - - - Dropzone.instances.push(_assertThisInitialized(_this)); // Put the dropzone inside the element itself. - - _this.element.dropzone = _assertThisInitialized(_this); - var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {}; - _this.options = Dropzone.extend({}, src_options, elementOptions, options != null ? options : {}); - _this.options.previewTemplate = _this.options.previewTemplate.replace(/\n*/g, ""); // If the browser failed, just call the fallback and leave - - if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) { - return _possibleConstructorReturn(_this, _this.options.fallback.call(_assertThisInitialized(_this))); - } // @options.url = @element.getAttribute "action" unless @options.url? - - - if (_this.options.url == null) { - _this.options.url = _this.element.getAttribute("action"); - } - - if (!_this.options.url) { - throw new Error("No URL provided."); - } - - if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) { - throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); - } - - if (_this.options.uploadMultiple && _this.options.chunking) { - throw new Error("You cannot set both: uploadMultiple and chunking."); - } // Backwards compatibility - - - if (_this.options.acceptedMimeTypes) { - _this.options.acceptedFiles = _this.options.acceptedMimeTypes; - delete _this.options.acceptedMimeTypes; - } // Backwards compatibility - - - if (_this.options.renameFilename != null) { - _this.options.renameFile = function (file) { - return _this.options.renameFilename.call(_assertThisInitialized(_this), file.name, file); - }; - } - - if (typeof _this.options.method === "string") { - _this.options.method = _this.options.method.toUpperCase(); - } - - if ((fallback = _this.getExistingFallback()) && fallback.parentNode) { - // Remove the fallback - fallback.parentNode.removeChild(fallback); - } // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false - - - if (_this.options.previewsContainer !== false) { - if (_this.options.previewsContainer) { - _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, "previewsContainer"); - } else { - _this.previewsContainer = _this.element; - } - } - - if (_this.options.clickable) { - if (_this.options.clickable === true) { - _this.clickableElements = [_this.element]; - } else { - _this.clickableElements = Dropzone.getElements(_this.options.clickable, "clickable"); - } - } - - _this.init(); - - return _this; - } // Returns all files that have been accepted - - - dropzone_createClass(Dropzone, [{ - key: "getAcceptedFiles", - value: function getAcceptedFiles() { - return this.files.filter(function (file) { - return file.accepted; - }).map(function (file) { - return file; - }); - } // Returns all files that have been rejected - // Not sure when that's going to be useful, but added for completeness. - - }, { - key: "getRejectedFiles", - value: function getRejectedFiles() { - return this.files.filter(function (file) { - return !file.accepted; - }).map(function (file) { - return file; - }); - } - }, { - key: "getFilesWithStatus", - value: function getFilesWithStatus(status) { - return this.files.filter(function (file) { - return file.status === status; - }).map(function (file) { - return file; - }); - } // Returns all files that are in the queue - - }, { - key: "getQueuedFiles", - value: function getQueuedFiles() { - return this.getFilesWithStatus(Dropzone.QUEUED); - } - }, { - key: "getUploadingFiles", - value: function getUploadingFiles() { - return this.getFilesWithStatus(Dropzone.UPLOADING); - } - }, { - key: "getAddedFiles", - value: function getAddedFiles() { - return this.getFilesWithStatus(Dropzone.ADDED); - } // Files that are either queued or uploading - - }, { - key: "getActiveFiles", - value: function getActiveFiles() { - return this.files.filter(function (file) { - return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED; - }).map(function (file) { - return file; - }); - } // The function that gets called when Dropzone is initialized. You - // can (and should) setup event listeners inside this function. - - }, { - key: "init", - value: function init() { - var _this2 = this; - - // In case it isn't set already - if (this.element.tagName === "form") { - this.element.setAttribute("enctype", "multipart/form-data"); - } - - if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) { - this.element.appendChild(Dropzone.createElement("
"))); - } - - if (this.clickableElements.length) { - var setupHiddenFileInput = function setupHiddenFileInput() { - if (_this2.hiddenFileInput) { - _this2.hiddenFileInput.parentNode.removeChild(_this2.hiddenFileInput); - } - - _this2.hiddenFileInput = document.createElement("input"); - - _this2.hiddenFileInput.setAttribute("type", "file"); - - if (_this2.options.maxFiles === null || _this2.options.maxFiles > 1) { - _this2.hiddenFileInput.setAttribute("multiple", "multiple"); - } - - _this2.hiddenFileInput.className = "dz-hidden-input"; - - if (_this2.options.acceptedFiles !== null) { - _this2.hiddenFileInput.setAttribute("accept", _this2.options.acceptedFiles); - } - - if (_this2.options.capture !== null) { - _this2.hiddenFileInput.setAttribute("capture", _this2.options.capture); - } // Making sure that no one can "tab" into this field. - - - _this2.hiddenFileInput.setAttribute("tabindex", "-1"); // Not setting `display="none"` because some browsers don't accept clicks - // on elements that aren't displayed. - - - _this2.hiddenFileInput.style.visibility = "hidden"; - _this2.hiddenFileInput.style.position = "absolute"; - _this2.hiddenFileInput.style.top = "0"; - _this2.hiddenFileInput.style.left = "0"; - _this2.hiddenFileInput.style.height = "0"; - _this2.hiddenFileInput.style.width = "0"; - Dropzone.getElement(_this2.options.hiddenInputContainer, "hiddenInputContainer").appendChild(_this2.hiddenFileInput); - - _this2.hiddenFileInput.addEventListener("change", function () { - var files = _this2.hiddenFileInput.files; - - if (files.length) { - var _iterator = dropzone_createForOfIteratorHelper(files, true), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var file = _step.value; - - _this2.addFile(file); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - - _this2.emit("addedfiles", files); - - setupHiddenFileInput(); - }); - }; - - setupHiddenFileInput(); - } - - this.URL = window.URL !== null ? window.URL : window.webkitURL; // Setup all event listeners on the Dropzone object itself. - // They're not in @setupEventListeners() because they shouldn't be removed - // again when the dropzone gets disabled. - - var _iterator2 = dropzone_createForOfIteratorHelper(this.events, true), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var eventName = _step2.value; - this.on(eventName, this.options[eventName]); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - this.on("uploadprogress", function () { - return _this2.updateTotalUploadProgress(); - }); - this.on("removedfile", function () { - return _this2.updateTotalUploadProgress(); - }); - this.on("canceled", function (file) { - return _this2.emit("complete", file); - }); // Emit a `queuecomplete` event if all files finished uploading. - - this.on("complete", function (file) { - if (_this2.getAddedFiles().length === 0 && _this2.getUploadingFiles().length === 0 && _this2.getQueuedFiles().length === 0) { - // This needs to be deferred so that `queuecomplete` really triggers after `complete` - return setTimeout(function () { - return _this2.emit("queuecomplete"); - }, 0); - } - }); - - var containsFiles = function containsFiles(e) { - if (e.dataTransfer.types) { - // Because e.dataTransfer.types is an Object in - // IE, we need to iterate like this instead of - // using e.dataTransfer.types.some() - for (var i = 0; i < e.dataTransfer.types.length; i++) { - if (e.dataTransfer.types[i] === "Files") return true; - } - } - - return false; - }; - - var noPropagation = function noPropagation(e) { - // If there are no files, we don't want to stop - // propagation so we don't interfere with other - // drag and drop behaviour. - if (!containsFiles(e)) return; - e.stopPropagation(); - - if (e.preventDefault) { - return e.preventDefault(); - } else { - return e.returnValue = false; - } - }; // Create the listeners - - - this.listeners = [{ - element: this.element, - events: { - dragstart: function dragstart(e) { - return _this2.emit("dragstart", e); - }, - dragenter: function dragenter(e) { - noPropagation(e); - return _this2.emit("dragenter", e); - }, - dragover: function dragover(e) { - // Makes it possible to drag files from chrome's download bar - // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar - // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception) - var efct; - - try { - efct = e.dataTransfer.effectAllowed; - } catch (error) {} - - e.dataTransfer.dropEffect = "move" === efct || "linkMove" === efct ? "move" : "copy"; - noPropagation(e); - return _this2.emit("dragover", e); - }, - dragleave: function dragleave(e) { - return _this2.emit("dragleave", e); - }, - drop: function drop(e) { - noPropagation(e); - return _this2.drop(e); - }, - dragend: function dragend(e) { - return _this2.emit("dragend", e); - } - } // This is disabled right now, because the browsers don't implement it properly. - // "paste": (e) => - // noPropagation e - // @paste e - - }]; - this.clickableElements.forEach(function (clickableElement) { - return _this2.listeners.push({ - element: clickableElement, - events: { - click: function click(evt) { - // Only the actual dropzone or the message element should trigger file selection - if (clickableElement !== _this2.element || evt.target === _this2.element || Dropzone.elementInside(evt.target, _this2.element.querySelector(".dz-message"))) { - _this2.hiddenFileInput.click(); // Forward the click - - } - - return true; - } - } - }); - }); - this.enable(); - return this.options.init.call(this); - } // Not fully tested yet - - }, { - key: "destroy", - value: function destroy() { - this.disable(); - this.removeAllFiles(true); - - if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) { - this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); - this.hiddenFileInput = null; - } - - delete this.element.dropzone; - return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1); - } - }, { - key: "updateTotalUploadProgress", - value: function updateTotalUploadProgress() { - var totalUploadProgress; - var totalBytesSent = 0; - var totalBytes = 0; - var activeFiles = this.getActiveFiles(); - - if (activeFiles.length) { - var _iterator3 = dropzone_createForOfIteratorHelper(this.getActiveFiles(), true), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var file = _step3.value; - totalBytesSent += file.upload.bytesSent; - totalBytes += file.upload.total; - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - - totalUploadProgress = 100 * totalBytesSent / totalBytes; - } else { - totalUploadProgress = 100; - } - - return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); - } // @options.paramName can be a function taking one parameter rather than a string. - // A parameter name for a file is obtained simply by calling this with an index number. - - }, { - key: "_getParamName", - value: function _getParamName(n) { - if (typeof this.options.paramName === "function") { - return this.options.paramName(n); - } else { - return "".concat(this.options.paramName).concat(this.options.uploadMultiple ? "[".concat(n, "]") : ""); - } - } // If @options.renameFile is a function, - // the function will be used to rename the file.name before appending it to the formData - - }, { - key: "_renameFile", - value: function _renameFile(file) { - if (typeof this.options.renameFile !== "function") { - return file.name; - } - - return this.options.renameFile(file); - } // Returns a form that can be used as fallback if the browser does not support DragnDrop - // - // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided. - // This code has to pass in IE7 :( - - }, { - key: "getFallbackForm", - value: function getFallbackForm() { - var existingFallback, form; - - if (existingFallback = this.getExistingFallback()) { - return existingFallback; - } - - var fieldsString = '
'; - - if (this.options.dictFallbackText) { - fieldsString += "

".concat(this.options.dictFallbackText, "

"); - } - - fieldsString += "
"); - var fields = Dropzone.createElement(fieldsString); - - if (this.element.tagName !== "FORM") { - form = Dropzone.createElement("
")); - form.appendChild(fields); - } else { - // Make sure that the enctype and method attributes are set properly - this.element.setAttribute("enctype", "multipart/form-data"); - this.element.setAttribute("method", this.options.method); - } - - return form != null ? form : fields; - } // Returns the fallback elements if they exist already - // - // This code has to pass in IE7 :( - - }, { - key: "getExistingFallback", - value: function getExistingFallback() { - var getFallback = function getFallback(elements) { - var _iterator4 = dropzone_createForOfIteratorHelper(elements, true), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var el = _step4.value; - - if (/(^| )fallback($| )/.test(el.className)) { - return el; - } - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - }; - - for (var _i = 0, _arr = ["div", "form"]; _i < _arr.length; _i++) { - var tagName = _arr[_i]; - var fallback; - - if (fallback = getFallback(this.element.getElementsByTagName(tagName))) { - return fallback; - } - } - } // Activates all listeners stored in @listeners - - }, { - key: "setupEventListeners", - value: function setupEventListeners() { - return this.listeners.map(function (elementListeners) { - return function () { - var result = []; - - for (var event in elementListeners.events) { - var listener = elementListeners.events[event]; - result.push(elementListeners.element.addEventListener(event, listener, false)); - } - - return result; - }(); - }); - } // Deactivates all listeners stored in @listeners - - }, { - key: "removeEventListeners", - value: function removeEventListeners() { - return this.listeners.map(function (elementListeners) { - return function () { - var result = []; - - for (var event in elementListeners.events) { - var listener = elementListeners.events[event]; - result.push(elementListeners.element.removeEventListener(event, listener, false)); - } - - return result; - }(); - }); - } // Removes all event listeners and cancels all files in the queue or being processed. - - }, { - key: "disable", - value: function disable() { - var _this3 = this; - - this.clickableElements.forEach(function (element) { - return element.classList.remove("dz-clickable"); - }); - this.removeEventListeners(); - this.disabled = true; - return this.files.map(function (file) { - return _this3.cancelUpload(file); - }); - } - }, { - key: "enable", - value: function enable() { - delete this.disabled; - this.clickableElements.forEach(function (element) { - return element.classList.add("dz-clickable"); - }); - return this.setupEventListeners(); - } // Returns a nicely formatted filesize - - }, { - key: "filesize", - value: function filesize(size) { - var selectedSize = 0; - var selectedUnit = "b"; - - if (size > 0) { - var units = ["tb", "gb", "mb", "kb", "b"]; - - for (var i = 0; i < units.length; i++) { - var unit = units[i]; - var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10; - - if (size >= cutoff) { - selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i); - selectedUnit = unit; - break; - } - } - - selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits - } - - return "".concat(selectedSize, " ").concat(this.options.dictFileSizeUnits[selectedUnit]); - } // Adds or removes the `dz-max-files-reached` class from the form. - - }, { - key: "_updateMaxFilesReachedClass", - value: function _updateMaxFilesReachedClass() { - if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { - if (this.getAcceptedFiles().length === this.options.maxFiles) { - this.emit("maxfilesreached", this.files); - } - - return this.element.classList.add("dz-max-files-reached"); - } else { - return this.element.classList.remove("dz-max-files-reached"); - } - } - }, { - key: "drop", - value: function drop(e) { - if (!e.dataTransfer) { - return; - } - - this.emit("drop", e); // Convert the FileList to an Array - // This is necessary for IE11 - - var files = []; - - for (var i = 0; i < e.dataTransfer.files.length; i++) { - files[i] = e.dataTransfer.files[i]; - } // Even if it's a folder, files.length will contain the folders. - - - if (files.length) { - var items = e.dataTransfer.items; - - if (items && items.length && items[0].webkitGetAsEntry != null) { - // The browser supports dropping of folders, so handle items instead of files - this._addFilesFromItems(items); - } else { - this.handleFiles(files); - } - } - - this.emit("addedfiles", files); - } - }, { - key: "paste", - value: function paste(e) { - if (__guard__(e != null ? e.clipboardData : undefined, function (x) { - return x.items; - }) == null) { - return; - } - - this.emit("paste", e); - var items = e.clipboardData.items; - - if (items.length) { - return this._addFilesFromItems(items); - } - } - }, { - key: "handleFiles", - value: function handleFiles(files) { - var _iterator5 = dropzone_createForOfIteratorHelper(files, true), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var file = _step5.value; - this.addFile(file); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - } // When a folder is dropped (or files are pasted), items must be handled - // instead of files. - - }, { - key: "_addFilesFromItems", - value: function _addFilesFromItems(items) { - var _this4 = this; - - return function () { - var result = []; - - var _iterator6 = dropzone_createForOfIteratorHelper(items, true), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var item = _step6.value; - var entry; - - if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) { - if (entry.isFile) { - result.push(_this4.addFile(item.getAsFile())); - } else if (entry.isDirectory) { - // Append all files from that directory to files - result.push(_this4._addFilesFromDirectory(entry, entry.name)); - } else { - result.push(undefined); - } - } else if (item.getAsFile != null) { - if (item.kind == null || item.kind === "file") { - result.push(_this4.addFile(item.getAsFile())); - } else { - result.push(undefined); - } - } else { - result.push(undefined); - } - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - - return result; - }(); - } // Goes through the directory, and adds each file it finds recursively - - }, { - key: "_addFilesFromDirectory", - value: function _addFilesFromDirectory(directory, path) { - var _this5 = this; - - var dirReader = directory.createReader(); - - var errorHandler = function errorHandler(error) { - return __guardMethod__(console, "log", function (o) { - return o.log(error); - }); - }; - - var readEntries = function readEntries() { - return dirReader.readEntries(function (entries) { - if (entries.length > 0) { - var _iterator7 = dropzone_createForOfIteratorHelper(entries, true), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var entry = _step7.value; - - if (entry.isFile) { - entry.file(function (file) { - if (_this5.options.ignoreHiddenFiles && file.name.substring(0, 1) === ".") { - return; - } - - file.fullPath = "".concat(path, "/").concat(file.name); - return _this5.addFile(file); - }); - } else if (entry.isDirectory) { - _this5._addFilesFromDirectory(entry, "".concat(path, "/").concat(entry.name)); - } - } // Recursively call readEntries() again, since browser only handle - // the first 100 entries. - // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries - - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - - readEntries(); - } - - return null; - }, errorHandler); - }; - - return readEntries(); - } // If `done()` is called without argument the file is accepted - // If you call it with an error message, the file is rejected - // (This allows for asynchronous validation) - // - // This function checks the filesize, and if the file.type passes the - // `acceptedFiles` check. - - }, { - key: "accept", - value: function accept(file, done) { - if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) { - done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); - } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) { - done(this.options.dictInvalidFileType); - } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { - done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)); - this.emit("maxfilesexceeded", file); - } else { - this.options.accept.call(this, file, done); - } - } - }, { - key: "addFile", - value: function addFile(file) { - var _this6 = this; - - file.upload = { - uuid: Dropzone.uuidv4(), - progress: 0, - // Setting the total upload size to file.size for the beginning - // It's actual different than the size to be transmitted. - total: file.size, - bytesSent: 0, - filename: this._renameFile(file) // Not setting chunking information here, because the acutal data — and - // thus the chunks — might change if `options.transformFile` is set - // and does something to the data. - - }; - this.files.push(file); - file.status = Dropzone.ADDED; - this.emit("addedfile", file); - - this._enqueueThumbnail(file); - - this.accept(file, function (error) { - if (error) { - file.accepted = false; - - _this6._errorProcessing([file], error); // Will set the file.status - - } else { - file.accepted = true; - - if (_this6.options.autoQueue) { - _this6.enqueueFile(file); - } // Will set .accepted = true - - } - - _this6._updateMaxFilesReachedClass(); - }); - } // Wrapper for enqueueFile - - }, { - key: "enqueueFiles", - value: function enqueueFiles(files) { - var _iterator8 = dropzone_createForOfIteratorHelper(files, true), - _step8; - - try { - for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { - var file = _step8.value; - this.enqueueFile(file); - } - } catch (err) { - _iterator8.e(err); - } finally { - _iterator8.f(); - } - - return null; - } - }, { - key: "enqueueFile", - value: function enqueueFile(file) { - var _this7 = this; - - if (file.status === Dropzone.ADDED && file.accepted === true) { - file.status = Dropzone.QUEUED; - - if (this.options.autoProcessQueue) { - return setTimeout(function () { - return _this7.processQueue(); - }, 0); // Deferring the call - } - } else { - throw new Error("This file can't be queued because it has already been processed or was rejected."); - } - } - }, { - key: "_enqueueThumbnail", - value: function _enqueueThumbnail(file) { - var _this8 = this; - - if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { - this._thumbnailQueue.push(file); - - return setTimeout(function () { - return _this8._processThumbnailQueue(); - }, 0); // Deferring the call - } - } - }, { - key: "_processThumbnailQueue", - value: function _processThumbnailQueue() { - var _this9 = this; - - if (this._processingThumbnail || this._thumbnailQueue.length === 0) { - return; - } - - this._processingThumbnail = true; - - var file = this._thumbnailQueue.shift(); - - return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) { - _this9.emit("thumbnail", file, dataUrl); - - _this9._processingThumbnail = false; - return _this9._processThumbnailQueue(); - }); - } // Can be called by the user to remove a file - - }, { - key: "removeFile", - value: function removeFile(file) { - if (file.status === Dropzone.UPLOADING) { - this.cancelUpload(file); - } - - this.files = without(this.files, file); - this.emit("removedfile", file); - - if (this.files.length === 0) { - return this.emit("reset"); - } - } // Removes all files that aren't currently processed from the list - - }, { - key: "removeAllFiles", - value: function removeAllFiles(cancelIfNecessary) { - // Create a copy of files since removeFile() changes the @files array. - if (cancelIfNecessary == null) { - cancelIfNecessary = false; - } - - var _iterator9 = dropzone_createForOfIteratorHelper(this.files.slice(), true), - _step9; - - try { - for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { - var file = _step9.value; - - if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) { - this.removeFile(file); - } - } - } catch (err) { - _iterator9.e(err); - } finally { - _iterator9.f(); - } - - return null; - } // Resizes an image before it gets sent to the server. This function is the default behavior of - // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with - // the resized blob. - - }, { - key: "resizeImage", - value: function resizeImage(file, width, height, resizeMethod, callback) { - var _this10 = this; - - return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) { - if (canvas == null) { - // The image has not been resized - return callback(file); - } else { - var resizeMimeType = _this10.options.resizeMimeType; - - if (resizeMimeType == null) { - resizeMimeType = file.type; - } - - var resizedDataURL = canvas.toDataURL(resizeMimeType, _this10.options.resizeQuality); - - if (resizeMimeType === "image/jpeg" || resizeMimeType === "image/jpg") { - // Now add the original EXIF information - resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL); - } - - return callback(Dropzone.dataURItoBlob(resizedDataURL)); - } - }); - } - }, { - key: "createThumbnail", - value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) { - var _this11 = this; - - var fileReader = new FileReader(); - - fileReader.onload = function () { - file.dataURL = fileReader.result; // Don't bother creating a thumbnail for SVG images since they're vector - - if (file.type === "image/svg+xml") { - if (callback != null) { - callback(fileReader.result); - } - - return; - } - - _this11.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback); - }; - - fileReader.readAsDataURL(file); - } // `mockFile` needs to have these attributes: - // - // { name: 'name', size: 12345, imageUrl: '' } - // - // `callback` will be invoked when the image has been downloaded and displayed. - // `crossOrigin` will be added to the `img` tag when accessing the file. - - }, { - key: "displayExistingFile", - value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin) { - var _this12 = this; - - var resizeThumbnail = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; - this.emit("addedfile", mockFile); - this.emit("complete", mockFile); - - if (!resizeThumbnail) { - this.emit("thumbnail", mockFile, imageUrl); - if (callback) callback(); - } else { - var onDone = function onDone(thumbnail) { - _this12.emit("thumbnail", mockFile, thumbnail); - - if (callback) callback(); - }; - - mockFile.dataURL = imageUrl; - this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin); - } - } - }, { - key: "createThumbnailFromUrl", - value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) { - var _this13 = this; - - // Not using `new Image` here because of a bug in latest Chrome versions. - // See https://github.com/enyo/dropzone/pull/226 - var img = document.createElement("img"); - - if (crossOrigin) { - img.crossOrigin = crossOrigin; - } // fixOrientation is not needed anymore with browsers handling imageOrientation - - - fixOrientation = getComputedStyle(document.body)["imageOrientation"] == "from-image" ? false : fixOrientation; - - img.onload = function () { - var loadExif = function loadExif(callback) { - return callback(1); - }; - - if (typeof EXIF !== "undefined" && EXIF !== null && fixOrientation) { - loadExif = function loadExif(callback) { - return EXIF.getData(img, function () { - return callback(EXIF.getTag(this, "Orientation")); - }); - }; - } - - return loadExif(function (orientation) { - file.width = img.width; - file.height = img.height; - - var resizeInfo = _this13.options.resize.call(_this13, file, width, height, resizeMethod); - - var canvas = document.createElement("canvas"); - var ctx = canvas.getContext("2d"); - canvas.width = resizeInfo.trgWidth; - canvas.height = resizeInfo.trgHeight; - - if (orientation > 4) { - canvas.width = resizeInfo.trgHeight; - canvas.height = resizeInfo.trgWidth; - } - - switch (orientation) { - case 2: - // horizontal flip - ctx.translate(canvas.width, 0); - ctx.scale(-1, 1); - break; - - case 3: - // 180° rotate left - ctx.translate(canvas.width, canvas.height); - ctx.rotate(Math.PI); - break; - - case 4: - // vertical flip - ctx.translate(0, canvas.height); - ctx.scale(1, -1); - break; - - case 5: - // vertical flip + 90 rotate right - ctx.rotate(0.5 * Math.PI); - ctx.scale(1, -1); - break; - - case 6: - // 90° rotate right - ctx.rotate(0.5 * Math.PI); - ctx.translate(0, -canvas.width); - break; - - case 7: - // horizontal flip + 90 rotate right - ctx.rotate(0.5 * Math.PI); - ctx.translate(canvas.height, -canvas.width); - ctx.scale(-1, 1); - break; - - case 8: - // 90° rotate left - ctx.rotate(-0.5 * Math.PI); - ctx.translate(-canvas.height, 0); - break; - } // This is a bugfix for iOS' scaling bug. - - - drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); - var thumbnail = canvas.toDataURL("image/png"); - - if (callback != null) { - return callback(thumbnail, canvas); - } - }); - }; - - if (callback != null) { - img.onerror = callback; - } - - return img.src = file.dataURL; - } // Goes through the queue and processes files if there aren't too many already. - - }, { - key: "processQueue", - value: function processQueue() { - var parallelUploads = this.options.parallelUploads; - var processingLength = this.getUploadingFiles().length; - var i = processingLength; // There are already at least as many files uploading than should be - - if (processingLength >= parallelUploads) { - return; - } - - var queuedFiles = this.getQueuedFiles(); - - if (!(queuedFiles.length > 0)) { - return; - } - - if (this.options.uploadMultiple) { - // The files should be uploaded in one request - return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); - } else { - while (i < parallelUploads) { - if (!queuedFiles.length) { - return; - } // Nothing left to process - - - this.processFile(queuedFiles.shift()); - i++; - } - } - } // Wrapper for `processFiles` - - }, { - key: "processFile", - value: function processFile(file) { - return this.processFiles([file]); - } // Loads the file, then calls finishedLoading() - - }, { - key: "processFiles", - value: function processFiles(files) { - var _iterator10 = dropzone_createForOfIteratorHelper(files, true), - _step10; - - try { - for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) { - var file = _step10.value; - file.processing = true; // Backwards compatibility - - file.status = Dropzone.UPLOADING; - this.emit("processing", file); - } - } catch (err) { - _iterator10.e(err); - } finally { - _iterator10.f(); - } - - if (this.options.uploadMultiple) { - this.emit("processingmultiple", files); - } - - return this.uploadFiles(files); - } - }, { - key: "_getFilesWithXhr", - value: function _getFilesWithXhr(xhr) { - var files; - return files = this.files.filter(function (file) { - return file.xhr === xhr; - }).map(function (file) { - return file; - }); - } // Cancels the file upload and sets the status to CANCELED - // **if** the file is actually being uploaded. - // If it's still in the queue, the file is being removed from it and the status - // set to CANCELED. - - }, { - key: "cancelUpload", - value: function cancelUpload(file) { - if (file.status === Dropzone.UPLOADING) { - var groupedFiles = this._getFilesWithXhr(file.xhr); - - var _iterator11 = dropzone_createForOfIteratorHelper(groupedFiles, true), - _step11; - - try { - for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) { - var groupedFile = _step11.value; - groupedFile.status = Dropzone.CANCELED; - } - } catch (err) { - _iterator11.e(err); - } finally { - _iterator11.f(); - } - - if (typeof file.xhr !== "undefined") { - file.xhr.abort(); - } - - var _iterator12 = dropzone_createForOfIteratorHelper(groupedFiles, true), - _step12; - - try { - for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) { - var _groupedFile = _step12.value; - this.emit("canceled", _groupedFile); - } - } catch (err) { - _iterator12.e(err); - } finally { - _iterator12.f(); - } - - if (this.options.uploadMultiple) { - this.emit("canceledmultiple", groupedFiles); - } - } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) { - file.status = Dropzone.CANCELED; - this.emit("canceled", file); - - if (this.options.uploadMultiple) { - this.emit("canceledmultiple", [file]); - } - } - - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - } - }, { - key: "resolveOption", - value: function resolveOption(option) { - if (typeof option === "function") { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return option.apply(this, args); - } - - return option; - } - }, { - key: "uploadFile", - value: function uploadFile(file) { - return this.uploadFiles([file]); - } - }, { - key: "uploadFiles", - value: function uploadFiles(files) { - var _this14 = this; - - this._transformFiles(files, function (transformedFiles) { - if (_this14.options.chunking) { - // Chunking is not allowed to be used with `uploadMultiple` so we know - // that there is only __one__file. - var transformedFile = transformedFiles[0]; - files[0].upload.chunked = _this14.options.chunking && (_this14.options.forceChunking || transformedFile.size > _this14.options.chunkSize); - files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this14.options.chunkSize); - } - - if (files[0].upload.chunked) { - // This file should be sent in chunks! - // If the chunking option is set, we **know** that there can only be **one** file, since - // uploadMultiple is not allowed with this option. - var file = files[0]; - var _transformedFile = transformedFiles[0]; - var startedChunkCount = 0; - file.upload.chunks = []; - - var handleNextChunk = function handleNextChunk() { - var chunkIndex = 0; // Find the next item in file.upload.chunks that is not defined yet. - - while (file.upload.chunks[chunkIndex] !== undefined) { - chunkIndex++; - } // This means, that all chunks have already been started. - - - if (chunkIndex >= file.upload.totalChunkCount) return; - startedChunkCount++; - var start = chunkIndex * _this14.options.chunkSize; - var end = Math.min(start + _this14.options.chunkSize, _transformedFile.size); - var dataBlock = { - name: _this14._getParamName(0), - data: _transformedFile.webkitSlice ? _transformedFile.webkitSlice(start, end) : _transformedFile.slice(start, end), - filename: file.upload.filename, - chunkIndex: chunkIndex - }; - file.upload.chunks[chunkIndex] = { - file: file, - index: chunkIndex, - dataBlock: dataBlock, - // In case we want to retry. - status: Dropzone.UPLOADING, - progress: 0, - retries: 0 // The number of times this block has been retried. - - }; - - _this14._uploadData(files, [dataBlock]); - }; - - file.upload.finishedChunkUpload = function (chunk, response) { - var allFinished = true; - chunk.status = Dropzone.SUCCESS; // Clear the data from the chunk - - chunk.dataBlock = null; // Leaving this reference to xhr intact here will cause memory leaks in some browsers - - chunk.xhr = null; - - for (var i = 0; i < file.upload.totalChunkCount; i++) { - if (file.upload.chunks[i] === undefined) { - return handleNextChunk(); - } - - if (file.upload.chunks[i].status !== Dropzone.SUCCESS) { - allFinished = false; - } - } - - if (allFinished) { - _this14.options.chunksUploaded(file, function () { - _this14._finished(files, response, null); - }); - } - }; - - if (_this14.options.parallelChunkUploads) { - for (var i = 0; i < file.upload.totalChunkCount; i++) { - handleNextChunk(); - } - } else { - handleNextChunk(); - } - } else { - var dataBlocks = []; - - for (var _i2 = 0; _i2 < files.length; _i2++) { - dataBlocks[_i2] = { - name: _this14._getParamName(_i2), - data: transformedFiles[_i2], - filename: files[_i2].upload.filename - }; - } - - _this14._uploadData(files, dataBlocks); - } - }); - } /// Returns the right chunk for given file and xhr - - }, { - key: "_getChunk", - value: function _getChunk(file, xhr) { - for (var i = 0; i < file.upload.totalChunkCount; i++) { - if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) { - return file.upload.chunks[i]; - } - } - } // This function actually uploads the file(s) to the server. - // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed - // files, or individual chunks for chunked upload). - - }, { - key: "_uploadData", - value: function _uploadData(files, dataBlocks) { - var _this15 = this; - - var xhr = new XMLHttpRequest(); // Put the xhr object in the file objects to be able to reference it later. - - var _iterator13 = dropzone_createForOfIteratorHelper(files, true), - _step13; - - try { - for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) { - var file = _step13.value; - file.xhr = xhr; - } - } catch (err) { - _iterator13.e(err); - } finally { - _iterator13.f(); - } - - if (files[0].upload.chunked) { - // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk - files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr; - } - - var method = this.resolveOption(this.options.method, files); - var url = this.resolveOption(this.options.url, files); - xhr.open(method, url, true); // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8 - - var timeout = this.resolveOption(this.options.timeout, files); - if (timeout) xhr.timeout = this.resolveOption(this.options.timeout, files); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179 - - xhr.withCredentials = !!this.options.withCredentials; - - xhr.onload = function (e) { - _this15._finishedUploading(files, xhr, e); - }; - - xhr.ontimeout = function () { - _this15._handleUploadError(files, xhr, "Request timedout after ".concat(_this15.options.timeout / 1000, " seconds")); - }; - - xhr.onerror = function () { - _this15._handleUploadError(files, xhr); - }; // Some browsers do not have the .upload property - - - var progressObj = xhr.upload != null ? xhr.upload : xhr; - - progressObj.onprogress = function (e) { - return _this15._updateFilesUploadProgress(files, xhr, e); - }; - - var headers = { - Accept: "application/json", - "Cache-Control": "no-cache", - "X-Requested-With": "XMLHttpRequest" - }; - - if (this.options.headers) { - Dropzone.extend(headers, this.options.headers); - } - - for (var headerName in headers) { - var headerValue = headers[headerName]; - - if (headerValue) { - xhr.setRequestHeader(headerName, headerValue); - } - } - - var formData = new FormData(); // Adding all @options parameters - - if (this.options.params) { - var additionalParams = this.options.params; - - if (typeof additionalParams === "function") { - additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null); - } - - for (var key in additionalParams) { - var value = additionalParams[key]; - - if (Array.isArray(value)) { - // The additional parameter contains an array, - // so lets iterate over it to attach each value - // individually. - for (var i = 0; i < value.length; i++) { - formData.append(key, value[i]); - } - } else { - formData.append(key, value); - } - } - } // Let the user add additional data if necessary - - - var _iterator14 = dropzone_createForOfIteratorHelper(files, true), - _step14; - - try { - for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) { - var _file = _step14.value; - this.emit("sending", _file, xhr, formData); - } - } catch (err) { - _iterator14.e(err); - } finally { - _iterator14.f(); - } - - if (this.options.uploadMultiple) { - this.emit("sendingmultiple", files, xhr, formData); - } - - this._addFormElementData(formData); // Finally add the files - // Has to be last because some servers (eg: S3) expect the file to be the last parameter - - - for (var _i3 = 0; _i3 < dataBlocks.length; _i3++) { - var dataBlock = dataBlocks[_i3]; - formData.append(dataBlock.name, dataBlock.data, dataBlock.filename); - } - - this.submitRequest(xhr, formData, files); - } // Transforms all files with this.options.transformFile and invokes done with the transformed files when done. - - }, { - key: "_transformFiles", - value: function _transformFiles(files, done) { - var _this16 = this; - - var transformedFiles = []; // Clumsy way of handling asynchronous calls, until I get to add a proper Future library. - - var doneCounter = 0; - - var _loop = function _loop(i) { - _this16.options.transformFile.call(_this16, files[i], function (transformedFile) { - transformedFiles[i] = transformedFile; - - if (++doneCounter === files.length) { - done(transformedFiles); - } - }); - }; - - for (var i = 0; i < files.length; i++) { - _loop(i); - } - } // Takes care of adding other input elements of the form to the AJAX request - - }, { - key: "_addFormElementData", - value: function _addFormElementData(formData) { - // Take care of other input elements - if (this.element.tagName === "FORM") { - var _iterator15 = dropzone_createForOfIteratorHelper(this.element.querySelectorAll("input, textarea, select, button"), true), - _step15; - - try { - for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) { - var input = _step15.value; - var inputName = input.getAttribute("name"); - var inputType = input.getAttribute("type"); - if (inputType) inputType = inputType.toLowerCase(); // If the input doesn't have a name, we can't use it. - - if (typeof inputName === "undefined" || inputName === null) continue; - - if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { - // Possibly multiple values - var _iterator16 = dropzone_createForOfIteratorHelper(input.options, true), - _step16; - - try { - for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) { - var option = _step16.value; - - if (option.selected) { - formData.append(inputName, option.value); - } - } - } catch (err) { - _iterator16.e(err); - } finally { - _iterator16.f(); - } - } else if (!inputType || inputType !== "checkbox" && inputType !== "radio" || input.checked) { - formData.append(inputName, input.value); - } - } - } catch (err) { - _iterator15.e(err); - } finally { - _iterator15.f(); - } - } - } // Invoked when there is new progress information about given files. - // If e is not provided, it is assumed that the upload is finished. - - }, { - key: "_updateFilesUploadProgress", - value: function _updateFilesUploadProgress(files, xhr, e) { - if (!files[0].upload.chunked) { - // Handle file uploads without chunking - var _iterator17 = dropzone_createForOfIteratorHelper(files, true), - _step17; - - try { - for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) { - var file = _step17.value; - - if (file.upload.total && file.upload.bytesSent && file.upload.bytesSent == file.upload.total) { - // If both, the `total` and `bytesSent` have already been set, and - // they are equal (meaning progress is at 100%), we can skip this - // file, since an upload progress shouldn't go down. - continue; - } - - if (e) { - file.upload.progress = 100 * e.loaded / e.total; - file.upload.total = e.total; - file.upload.bytesSent = e.loaded; - } else { - // No event, so we're at 100% - file.upload.progress = 100; - file.upload.bytesSent = file.upload.total; - } - - this.emit("uploadprogress", file, file.upload.progress, file.upload.bytesSent); - } - } catch (err) { - _iterator17.e(err); - } finally { - _iterator17.f(); - } - } else { - // Handle chunked file uploads - // Chunked upload is not compatible with uploading multiple files in one - // request, so we know there's only one file. - var _file2 = files[0]; // Since this is a chunked upload, we need to update the appropriate chunk - // progress. - - var chunk = this._getChunk(_file2, xhr); - - if (e) { - chunk.progress = 100 * e.loaded / e.total; - chunk.total = e.total; - chunk.bytesSent = e.loaded; - } else { - // No event, so we're at 100% - chunk.progress = 100; - chunk.bytesSent = chunk.total; - } // Now tally the *file* upload progress from its individual chunks - - - _file2.upload.progress = 0; - _file2.upload.total = 0; - _file2.upload.bytesSent = 0; - - for (var i = 0; i < _file2.upload.totalChunkCount; i++) { - if (_file2.upload.chunks[i] && typeof _file2.upload.chunks[i].progress !== "undefined") { - _file2.upload.progress += _file2.upload.chunks[i].progress; - _file2.upload.total += _file2.upload.chunks[i].total; - _file2.upload.bytesSent += _file2.upload.chunks[i].bytesSent; - } - } // Since the process is a percentage, we need to divide by the amount of - // chunks we've used. - - - _file2.upload.progress = _file2.upload.progress / _file2.upload.totalChunkCount; - this.emit("uploadprogress", _file2, _file2.upload.progress, _file2.upload.bytesSent); - } - } - }, { - key: "_finishedUploading", - value: function _finishedUploading(files, xhr, e) { - var response; - - if (files[0].status === Dropzone.CANCELED) { - return; - } - - if (xhr.readyState !== 4) { - return; - } - - if (xhr.responseType !== "arraybuffer" && xhr.responseType !== "blob") { - response = xhr.responseText; - - if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { - try { - response = JSON.parse(response); - } catch (error) { - e = error; - response = "Invalid JSON response from server."; - } - } - } - - this._updateFilesUploadProgress(files, xhr); - - if (!(200 <= xhr.status && xhr.status < 300)) { - this._handleUploadError(files, xhr, response); - } else { - if (files[0].upload.chunked) { - files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr), response); - } else { - this._finished(files, response, e); - } - } - } - }, { - key: "_handleUploadError", - value: function _handleUploadError(files, xhr, response) { - if (files[0].status === Dropzone.CANCELED) { - return; - } - - if (files[0].upload.chunked && this.options.retryChunks) { - var chunk = this._getChunk(files[0], xhr); - - if (chunk.retries++ < this.options.retryChunksLimit) { - this._uploadData(files, [chunk.dataBlock]); - - return; - } else { - console.warn("Retried this chunk too often. Giving up."); - } - } - - this._errorProcessing(files, response || this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr); - } - }, { - key: "submitRequest", - value: function submitRequest(xhr, formData, files) { - if (xhr.readyState != 1) { - console.warn("Cannot send this request because the XMLHttpRequest.readyState is not OPENED."); - return; - } - - xhr.send(formData); - } // Called internally when processing is finished. - // Individual callbacks have to be called in the appropriate sections. - - }, { - key: "_finished", - value: function _finished(files, responseText, e) { - var _iterator18 = dropzone_createForOfIteratorHelper(files, true), - _step18; - - try { - for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) { - var file = _step18.value; - file.status = Dropzone.SUCCESS; - this.emit("success", file, responseText, e); - this.emit("complete", file); - } - } catch (err) { - _iterator18.e(err); - } finally { - _iterator18.f(); - } - - if (this.options.uploadMultiple) { - this.emit("successmultiple", files, responseText, e); - this.emit("completemultiple", files); - } - - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - } // Called internally when processing is finished. - // Individual callbacks have to be called in the appropriate sections. - - }, { - key: "_errorProcessing", - value: function _errorProcessing(files, message, xhr) { - var _iterator19 = dropzone_createForOfIteratorHelper(files, true), - _step19; - - try { - for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) { - var file = _step19.value; - file.status = Dropzone.ERROR; - this.emit("error", file, message, xhr); - this.emit("complete", file); - } - } catch (err) { - _iterator19.e(err); - } finally { - _iterator19.f(); - } - - if (this.options.uploadMultiple) { - this.emit("errormultiple", files, message, xhr); - this.emit("completemultiple", files); - } - - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - } - }], [{ - key: "initClass", - value: function initClass() { - // Exposing the emitter class, mainly for tests - this.prototype.Emitter = Emitter; - /* - This is a list of all available events you can register on a dropzone object. - You can register an event handler like this: - dropzone.on("dragEnter", function() { }); - */ - - this.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "addedfiles", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"]; - this.prototype._thumbnailQueue = []; - this.prototype._processingThumbnail = false; - } // global utility - - }, { - key: "extend", - value: function extend(target) { - for (var _len2 = arguments.length, objects = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - objects[_key2 - 1] = arguments[_key2]; - } - - for (var _i4 = 0, _objects = objects; _i4 < _objects.length; _i4++) { - var object = _objects[_i4]; - - for (var key in object) { - var val = object[key]; - target[key] = val; - } - } - - return target; - } - }, { - key: "uuidv4", - value: function uuidv4() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, - v = c === "x" ? r : r & 0x3 | 0x8; - return v.toString(16); - }); - } - }]); - - return Dropzone; -}(Emitter); - - -Dropzone.initClass(); -Dropzone.version = "5.9.3"; // This is a map of options for your different dropzones. Add configurations -// to this object for your different dropzone elemens. -// -// Example: -// -// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 }; -// -// To disable autoDiscover for a specific element, you can set `false` as an option: -// -// Dropzone.options.myDisabledElementId = false; -// -// And in html: -// -//
- -Dropzone.options = {}; // Returns the options for an element or undefined if none available. - -Dropzone.optionsForElement = function (element) { - // Get the `Dropzone.options.elementId` for this element if it exists - if (element.getAttribute("id")) { - return Dropzone.options[camelize(element.getAttribute("id"))]; - } else { - return undefined; - } -}; // Holds a list of all dropzone instances - - -Dropzone.instances = []; // Returns the dropzone for given element if any - -Dropzone.forElement = function (element) { - if (typeof element === "string") { - element = document.querySelector(element); - } - - if ((element != null ? element.dropzone : undefined) == null) { - throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); - } - - return element.dropzone; -}; // Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements. - - -Dropzone.autoDiscover = true; // Looks for all .dropzone elements and creates a dropzone for them - -Dropzone.discover = function () { - var dropzones; - - if (document.querySelectorAll) { - dropzones = document.querySelectorAll(".dropzone"); - } else { - dropzones = []; // IE :( - - var checkElements = function checkElements(elements) { - return function () { - var result = []; - - var _iterator20 = dropzone_createForOfIteratorHelper(elements, true), - _step20; - - try { - for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) { - var el = _step20.value; - - if (/(^| )dropzone($| )/.test(el.className)) { - result.push(dropzones.push(el)); - } else { - result.push(undefined); - } - } - } catch (err) { - _iterator20.e(err); - } finally { - _iterator20.f(); - } - - return result; - }(); - }; - - checkElements(document.getElementsByTagName("div")); - checkElements(document.getElementsByTagName("form")); - } - - return function () { - var result = []; - - var _iterator21 = dropzone_createForOfIteratorHelper(dropzones, true), - _step21; - - try { - for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) { - var dropzone = _step21.value; - - // Create a dropzone unless auto discover has been disabled for specific element - if (Dropzone.optionsForElement(dropzone) !== false) { - result.push(new Dropzone(dropzone)); - } else { - result.push(undefined); - } - } - } catch (err) { - _iterator21.e(err); - } finally { - _iterator21.f(); - } - - return result; - }(); -}; // Some browsers support drag and drog functionality, but not correctly. -// -// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know. -// But what to do when browsers *theoretically* support an API, but crash -// when using it. -// -// This is a list of regular expressions tested against navigator.userAgent -// -// ** It should only be used on browser that *do* support the API, but -// incorrectly ** - - -Dropzone.blockedBrowsers = [// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API. -/opera.*(Macintosh|Windows Phone).*version\/12/i]; // Checks if the browser is supported - -Dropzone.isBrowserSupported = function () { - var capableBrowser = true; - - if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { - if (!("classList" in document.createElement("a"))) { - capableBrowser = false; - } else { - if (Dropzone.blacklistedBrowsers !== undefined) { - // Since this has been renamed, this makes sure we don't break older - // configuration. - Dropzone.blockedBrowsers = Dropzone.blacklistedBrowsers; - } // The browser supports the API, but may be blocked. - - - var _iterator22 = dropzone_createForOfIteratorHelper(Dropzone.blockedBrowsers, true), - _step22; - - try { - for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) { - var regex = _step22.value; - - if (regex.test(navigator.userAgent)) { - capableBrowser = false; - continue; - } - } - } catch (err) { - _iterator22.e(err); - } finally { - _iterator22.f(); - } - } - } else { - capableBrowser = false; - } - - return capableBrowser; -}; - -Dropzone.dataURItoBlob = function (dataURI) { - // convert base64 to raw binary data held in a string - // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this - var byteString = atob(dataURI.split(",")[1]); // separate out the mime component - - var mimeString = dataURI.split(",")[0].split(":")[1].split(";")[0]; // write the bytes of the string to an ArrayBuffer - - var ab = new ArrayBuffer(byteString.length); - var ia = new Uint8Array(ab); - - for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) { - ia[i] = byteString.charCodeAt(i); - } // write the ArrayBuffer to a blob - - - return new Blob([ab], { - type: mimeString - }); -}; // Returns an array without the rejected item - - -var without = function without(list, rejectedItem) { - return list.filter(function (item) { - return item !== rejectedItem; - }).map(function (item) { - return item; - }); -}; // abc-def_ghi -> abcDefGhi - - -var camelize = function camelize(str) { - return str.replace(/[\-_](\w)/g, function (match) { - return match.charAt(1).toUpperCase(); - }); -}; // Creates an element from string - - -Dropzone.createElement = function (string) { - var div = document.createElement("div"); - div.innerHTML = string; - return div.childNodes[0]; -}; // Tests if given element is inside (or simply is) the container - - -Dropzone.elementInside = function (element, container) { - if (element === container) { - return true; - } // Coffeescript doesn't support do/while loops - - - while (element = element.parentNode) { - if (element === container) { - return true; - } - } - - return false; -}; - -Dropzone.getElement = function (el, name) { - var element; - - if (typeof el === "string") { - element = document.querySelector(el); - } else if (el.nodeType != null) { - element = el; - } - - if (element == null) { - throw new Error("Invalid `".concat(name, "` option provided. Please provide a CSS selector or a plain HTML element.")); - } - - return element; -}; - -Dropzone.getElements = function (els, name) { - var el, elements; - - if (els instanceof Array) { - elements = []; - - try { - var _iterator23 = dropzone_createForOfIteratorHelper(els, true), - _step23; - - try { - for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) { - el = _step23.value; - elements.push(this.getElement(el, name)); - } - } catch (err) { - _iterator23.e(err); - } finally { - _iterator23.f(); - } - } catch (e) { - elements = null; - } - } else if (typeof els === "string") { - elements = []; - - var _iterator24 = dropzone_createForOfIteratorHelper(document.querySelectorAll(els), true), - _step24; - - try { - for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) { - el = _step24.value; - elements.push(el); - } - } catch (err) { - _iterator24.e(err); - } finally { - _iterator24.f(); - } - } else if (els.nodeType != null) { - elements = [els]; - } - - if (elements == null || !elements.length) { - throw new Error("Invalid `".concat(name, "` option provided. Please provide a CSS selector, a plain HTML element or a list of those.")); - } - - return elements; -}; // Asks the user the question and calls accepted or rejected accordingly -// -// The default implementation just uses `window.confirm` and then calls the -// appropriate callback. - - -Dropzone.confirm = function (question, accepted, rejected) { - if (window.confirm(question)) { - return accepted(); - } else if (rejected != null) { - return rejected(); - } -}; // Validates the mime type like this: -// -// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept - - -Dropzone.isValidFile = function (file, acceptedFiles) { - if (!acceptedFiles) { - return true; - } // If there are no accepted mime types, it's OK - - - acceptedFiles = acceptedFiles.split(","); - var mimeType = file.type; - var baseMimeType = mimeType.replace(/\/.*$/, ""); - - var _iterator25 = dropzone_createForOfIteratorHelper(acceptedFiles, true), - _step25; - - try { - for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) { - var validType = _step25.value; - validType = validType.trim(); - - if (validType.charAt(0) === ".") { - if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) { - return true; - } - } else if (/\/\*$/.test(validType)) { - // This is something like a image/* mime type - if (baseMimeType === validType.replace(/\/.*$/, "")) { - return true; - } - } else { - if (mimeType === validType) { - return true; - } - } - } - } catch (err) { - _iterator25.e(err); - } finally { - _iterator25.f(); - } - - return false; -}; // Augment jQuery - - -if (typeof jQuery !== "undefined" && jQuery !== null) { - jQuery.fn.dropzone = function (options) { - return this.each(function () { - return new Dropzone(this, options); - }); - }; -} // Dropzone file status codes - - -Dropzone.ADDED = "added"; -Dropzone.QUEUED = "queued"; // For backwards compatibility. Now, if a file is accepted, it's either queued -// or uploading. - -Dropzone.ACCEPTED = Dropzone.QUEUED; -Dropzone.UPLOADING = "uploading"; -Dropzone.PROCESSING = Dropzone.UPLOADING; // alias - -Dropzone.CANCELED = "canceled"; -Dropzone.ERROR = "error"; -Dropzone.SUCCESS = "success"; -/* - - Bugfix for iOS 6 and 7 - Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios - based on the work of https://github.com/stomita/ios-imagefile-megapixel - - */ -// Detecting vertical squash in loaded image. -// Fixes a bug which squash image vertically while drawing into canvas for some images. -// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel - -var detectVerticalSquash = function detectVerticalSquash(img) { - var iw = img.naturalWidth; - var ih = img.naturalHeight; - var canvas = document.createElement("canvas"); - canvas.width = 1; - canvas.height = ih; - var ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0); - - var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih), - data = _ctx$getImageData.data; // search image edge pixel position in case it is squashed vertically. - - - var sy = 0; - var ey = ih; - var py = ih; - - while (py > sy) { - var alpha = data[(py - 1) * 4 + 3]; - - if (alpha === 0) { - ey = py; - } else { - sy = py; - } - - py = ey + sy >> 1; - } - - var ratio = py / ih; - - if (ratio === 0) { - return 1; - } else { - return ratio; - } -}; // A replacement for context.drawImage -// (args are for source and destination). - - -var drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { - var vertSquashRatio = detectVerticalSquash(img); - return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); -}; // Based on MinifyJpeg -// Source: http://www.perry.cz/files/ExifRestorer.js -// http://elicon.blog57.fc2.com/blog-entry-206.html - - -var ExifRestore = /*#__PURE__*/function () { - function ExifRestore() { - dropzone_classCallCheck(this, ExifRestore); - } - - dropzone_createClass(ExifRestore, null, [{ - key: "initClass", - value: function initClass() { - this.KEY_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - } - }, { - key: "encode64", - value: function encode64(input) { - var output = ""; - var chr1 = undefined; - var chr2 = undefined; - var chr3 = ""; - var enc1 = undefined; - var enc2 = undefined; - var enc3 = undefined; - var enc4 = ""; - var i = 0; - - while (true) { - chr1 = input[i++]; - chr2 = input[i++]; - chr3 = input[i++]; - enc1 = chr1 >> 2; - enc2 = (chr1 & 3) << 4 | chr2 >> 4; - enc3 = (chr2 & 15) << 2 | chr3 >> 6; - enc4 = chr3 & 63; - - if (isNaN(chr2)) { - enc3 = enc4 = 64; - } else if (isNaN(chr3)) { - enc4 = 64; - } - - output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4); - chr1 = chr2 = chr3 = ""; - enc1 = enc2 = enc3 = enc4 = ""; - - if (!(i < input.length)) { - break; - } - } - - return output; - } - }, { - key: "restore", - value: function restore(origFileBase64, resizedFileBase64) { - if (!origFileBase64.match("data:image/jpeg;base64,")) { - return resizedFileBase64; - } - - var rawImage = this.decode64(origFileBase64.replace("data:image/jpeg;base64,", "")); - var segments = this.slice2Segments(rawImage); - var image = this.exifManipulation(resizedFileBase64, segments); - return "data:image/jpeg;base64,".concat(this.encode64(image)); - } - }, { - key: "exifManipulation", - value: function exifManipulation(resizedFileBase64, segments) { - var exifArray = this.getExifArray(segments); - var newImageArray = this.insertExif(resizedFileBase64, exifArray); - var aBuffer = new Uint8Array(newImageArray); - return aBuffer; - } - }, { - key: "getExifArray", - value: function getExifArray(segments) { - var seg = undefined; - var x = 0; - - while (x < segments.length) { - seg = segments[x]; - - if (seg[0] === 255 & seg[1] === 225) { - return seg; - } - - x++; - } - - return []; - } - }, { - key: "insertExif", - value: function insertExif(resizedFileBase64, exifArray) { - var imageData = resizedFileBase64.replace("data:image/jpeg;base64,", ""); - var buf = this.decode64(imageData); - var separatePoint = buf.indexOf(255, 3); - var mae = buf.slice(0, separatePoint); - var ato = buf.slice(separatePoint); - var array = mae; - array = array.concat(exifArray); - array = array.concat(ato); - return array; - } - }, { - key: "slice2Segments", - value: function slice2Segments(rawImageArray) { - var head = 0; - var segments = []; - - while (true) { - var length; - - if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) { - break; - } - - if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) { - head += 2; - } else { - length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3]; - var endPoint = head + length + 2; - var seg = rawImageArray.slice(head, endPoint); - segments.push(seg); - head = endPoint; - } - - if (head > rawImageArray.length) { - break; - } - } - - return segments; - } - }, { - key: "decode64", - value: function decode64(input) { - var output = ""; - var chr1 = undefined; - var chr2 = undefined; - var chr3 = ""; - var enc1 = undefined; - var enc2 = undefined; - var enc3 = undefined; - var enc4 = ""; - var i = 0; - var buf = []; // remove all characters that are not A-Z, a-z, 0-9, +, /, or = - - var base64test = /[^A-Za-z0-9\+\/\=]/g; - - if (base64test.exec(input)) { - console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."); - } - - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - while (true) { - enc1 = this.KEY_STR.indexOf(input.charAt(i++)); - enc2 = this.KEY_STR.indexOf(input.charAt(i++)); - enc3 = this.KEY_STR.indexOf(input.charAt(i++)); - enc4 = this.KEY_STR.indexOf(input.charAt(i++)); - chr1 = enc1 << 2 | enc2 >> 4; - chr2 = (enc2 & 15) << 4 | enc3 >> 2; - chr3 = (enc3 & 3) << 6 | enc4; - buf.push(chr1); - - if (enc3 !== 64) { - buf.push(chr2); - } - - if (enc4 !== 64) { - buf.push(chr3); - } - - chr1 = chr2 = chr3 = ""; - enc1 = enc2 = enc3 = enc4 = ""; - - if (!(i < input.length)) { - break; - } - } - - return buf; - } - }]); - - return ExifRestore; -}(); - -ExifRestore.initClass(); -/* - * contentloaded.js - * - * Author: Diego Perini (diego.perini at gmail.com) - * Summary: cross-browser wrapper for DOMContentLoaded - * Updated: 20101020 - * License: MIT - * Version: 1.2 - * - * URL: - * http://javascript.nwbox.com/ContentLoaded/ - * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE - */ -// @win window reference -// @fn function reference - -var contentLoaded = function contentLoaded(win, fn) { - var done = false; - var top = true; - var doc = win.document; - var root = doc.documentElement; - var add = doc.addEventListener ? "addEventListener" : "attachEvent"; - var rem = doc.addEventListener ? "removeEventListener" : "detachEvent"; - var pre = doc.addEventListener ? "" : "on"; - - var init = function init(e) { - if (e.type === "readystatechange" && doc.readyState !== "complete") { - return; - } - - (e.type === "load" ? win : doc)[rem](pre + e.type, init, false); - - if (!done && (done = true)) { - return fn.call(win, e.type || e); - } - }; - - var poll = function poll() { - try { - root.doScroll("left"); - } catch (e) { - setTimeout(poll, 50); - return; - } - - return init("poll"); - }; - - if (doc.readyState !== "complete") { - if (doc.createEventObject && root.doScroll) { - try { - top = !win.frameElement; - } catch (error) {} - - if (top) { - poll(); - } - } - - doc[add](pre + "DOMContentLoaded", init, false); - doc[add](pre + "readystatechange", init, false); - return win[add](pre + "load", init, false); - } -}; // As a single function to be able to write tests. - - -Dropzone._autoDiscoverFunction = function () { - if (Dropzone.autoDiscover) { - return Dropzone.discover(); - } -}; - -contentLoaded(window, Dropzone._autoDiscoverFunction); - -function __guard__(value, transform) { - return typeof value !== "undefined" && value !== null ? transform(value) : undefined; -} - -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { - return transform(obj, methodName); - } else { - return undefined; - } -} - - -;// CONCATENATED MODULE: ./tool/dropzone.dist.js - /// Make Dropzone a global variable. - -window.Dropzone = Dropzone; -/* harmony default export */ var dropzone_dist = (Dropzone); - -}(); -/******/ return __webpack_exports__; -/******/ })() -; -}); \ No newline at end of file diff --git a/plugins/dropzone/dropzone.css b/plugins/dropzone/dropzone.css deleted file mode 100644 index b0cf0fe0..00000000 --- a/plugins/dropzone/dropzone.css +++ /dev/null @@ -1,468 +0,0 @@ -@-webkit-keyframes passing-through { - 0% { - opacity: 0; - -webkit-transform: translateY(40px); - -moz-transform: translateY(40px); - -ms-transform: translateY(40px); - -o-transform: translateY(40px); - transform: translateY(40px); - } - 30%, 70% { - opacity: 1; - -webkit-transform: translateY(0px); - -moz-transform: translateY(0px); - -ms-transform: translateY(0px); - -o-transform: translateY(0px); - transform: translateY(0px); - } - 100% { - opacity: 0; - -webkit-transform: translateY(-40px); - -moz-transform: translateY(-40px); - -ms-transform: translateY(-40px); - -o-transform: translateY(-40px); - transform: translateY(-40px); - } -} -@-moz-keyframes passing-through { - 0% { - opacity: 0; - -webkit-transform: translateY(40px); - -moz-transform: translateY(40px); - -ms-transform: translateY(40px); - -o-transform: translateY(40px); - transform: translateY(40px); - } - 30%, 70% { - opacity: 1; - -webkit-transform: translateY(0px); - -moz-transform: translateY(0px); - -ms-transform: translateY(0px); - -o-transform: translateY(0px); - transform: translateY(0px); - } - 100% { - opacity: 0; - -webkit-transform: translateY(-40px); - -moz-transform: translateY(-40px); - -ms-transform: translateY(-40px); - -o-transform: translateY(-40px); - transform: translateY(-40px); - } -} -@keyframes passing-through { - 0% { - opacity: 0; - -webkit-transform: translateY(40px); - -moz-transform: translateY(40px); - -ms-transform: translateY(40px); - -o-transform: translateY(40px); - transform: translateY(40px); - } - 30%, 70% { - opacity: 1; - -webkit-transform: translateY(0px); - -moz-transform: translateY(0px); - -ms-transform: translateY(0px); - -o-transform: translateY(0px); - transform: translateY(0px); - } - 100% { - opacity: 0; - -webkit-transform: translateY(-40px); - -moz-transform: translateY(-40px); - -ms-transform: translateY(-40px); - -o-transform: translateY(-40px); - transform: translateY(-40px); - } -} -@-webkit-keyframes slide-in { - 0% { - opacity: 0; - -webkit-transform: translateY(40px); - -moz-transform: translateY(40px); - -ms-transform: translateY(40px); - -o-transform: translateY(40px); - transform: translateY(40px); - } - 30% { - opacity: 1; - -webkit-transform: translateY(0px); - -moz-transform: translateY(0px); - -ms-transform: translateY(0px); - -o-transform: translateY(0px); - transform: translateY(0px); - } -} -@-moz-keyframes slide-in { - 0% { - opacity: 0; - -webkit-transform: translateY(40px); - -moz-transform: translateY(40px); - -ms-transform: translateY(40px); - -o-transform: translateY(40px); - transform: translateY(40px); - } - 30% { - opacity: 1; - -webkit-transform: translateY(0px); - -moz-transform: translateY(0px); - -ms-transform: translateY(0px); - -o-transform: translateY(0px); - transform: translateY(0px); - } -} -@keyframes slide-in { - 0% { - opacity: 0; - -webkit-transform: translateY(40px); - -moz-transform: translateY(40px); - -ms-transform: translateY(40px); - -o-transform: translateY(40px); - transform: translateY(40px); - } - 30% { - opacity: 1; - -webkit-transform: translateY(0px); - -moz-transform: translateY(0px); - -ms-transform: translateY(0px); - -o-transform: translateY(0px); - transform: translateY(0px); - } -} -@-webkit-keyframes pulse { - 0% { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); - } - 10% { - -webkit-transform: scale(1.1); - -moz-transform: scale(1.1); - -ms-transform: scale(1.1); - -o-transform: scale(1.1); - transform: scale(1.1); - } - 20% { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); - } -} -@-moz-keyframes pulse { - 0% { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); - } - 10% { - -webkit-transform: scale(1.1); - -moz-transform: scale(1.1); - -ms-transform: scale(1.1); - -o-transform: scale(1.1); - transform: scale(1.1); - } - 20% { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); - } -} -@keyframes pulse { - 0% { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); - } - 10% { - -webkit-transform: scale(1.1); - -moz-transform: scale(1.1); - -ms-transform: scale(1.1); - -o-transform: scale(1.1); - transform: scale(1.1); - } - 20% { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); - } -} -.dropzone, .dropzone * { - box-sizing: border-box; -} - -.dropzone { - min-height: 150px; - border: 2px solid rgba(0, 0, 0, 0.3); - background: white; - padding: 20px 20px; -} -.dropzone.dz-clickable { - cursor: pointer; -} -.dropzone.dz-clickable * { - cursor: default; -} -.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * { - cursor: pointer; -} -.dropzone.dz-started .dz-message { - display: none; -} -.dropzone.dz-drag-hover { - border-style: solid; -} -.dropzone.dz-drag-hover .dz-message { - opacity: 0.5; -} -.dropzone .dz-message { - text-align: center; - margin: 2em 0; -} -.dropzone .dz-message .dz-button { - background: none; - color: inherit; - border: none; - padding: 0; - font: inherit; - cursor: pointer; - outline: inherit; -} -.dropzone .dz-preview { - position: relative; - display: inline-block; - vertical-align: top; - margin: 16px; - min-height: 100px; -} -.dropzone .dz-preview:hover { - z-index: 1000; -} -.dropzone .dz-preview:hover .dz-details { - opacity: 1; -} -.dropzone .dz-preview.dz-file-preview .dz-image { - border-radius: 20px; - background: #999; - background: linear-gradient(to bottom, #eee, #ddd); -} -.dropzone .dz-preview.dz-file-preview .dz-details { - opacity: 1; -} -.dropzone .dz-preview.dz-image-preview { - background: white; -} -.dropzone .dz-preview.dz-image-preview .dz-details { - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - -ms-transition: opacity 0.2s linear; - -o-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; -} -.dropzone .dz-preview .dz-remove { - font-size: 14px; - text-align: center; - display: block; - cursor: pointer; - border: none; -} -.dropzone .dz-preview .dz-remove:hover { - text-decoration: underline; -} -.dropzone .dz-preview:hover .dz-details { - opacity: 1; -} -.dropzone .dz-preview .dz-details { - z-index: 20; - position: absolute; - top: 0; - left: 0; - opacity: 0; - font-size: 13px; - min-width: 100%; - max-width: 100%; - padding: 2em 1em; - text-align: center; - color: rgba(0, 0, 0, 0.9); - line-height: 150%; -} -.dropzone .dz-preview .dz-details .dz-size { - margin-bottom: 1em; - font-size: 16px; -} -.dropzone .dz-preview .dz-details .dz-filename { - white-space: nowrap; -} -.dropzone .dz-preview .dz-details .dz-filename:hover span { - border: 1px solid rgba(200, 200, 200, 0.8); - background-color: rgba(255, 255, 255, 0.8); -} -.dropzone .dz-preview .dz-details .dz-filename:not(:hover) { - overflow: hidden; - text-overflow: ellipsis; -} -.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span { - border: 1px solid transparent; -} -.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span { - background-color: rgba(255, 255, 255, 0.4); - padding: 0 0.4em; - border-radius: 3px; -} -.dropzone .dz-preview:hover .dz-image img { - -webkit-transform: scale(1.05, 1.05); - -moz-transform: scale(1.05, 1.05); - -ms-transform: scale(1.05, 1.05); - -o-transform: scale(1.05, 1.05); - transform: scale(1.05, 1.05); - -webkit-filter: blur(8px); - filter: blur(8px); -} -.dropzone .dz-preview .dz-image { - border-radius: 20px; - overflow: hidden; - width: 120px; - height: 120px; - position: relative; - display: block; - z-index: 10; -} -.dropzone .dz-preview .dz-image img { - display: block; -} -.dropzone .dz-preview.dz-success .dz-success-mark { - -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); - -moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); - -ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); - -o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); - animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -} -.dropzone .dz-preview.dz-error .dz-error-mark { - opacity: 1; - -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); - -moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); - -ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); - -o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); - animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -} -.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark { - pointer-events: none; - opacity: 0; - z-index: 500; - position: absolute; - display: block; - top: 50%; - left: 50%; - margin-left: -27px; - margin-top: -27px; -} -.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg { - display: block; - width: 54px; - height: 54px; -} -.dropzone .dz-preview.dz-processing .dz-progress { - opacity: 1; - -webkit-transition: all 0.2s linear; - -moz-transition: all 0.2s linear; - -ms-transition: all 0.2s linear; - -o-transition: all 0.2s linear; - transition: all 0.2s linear; -} -.dropzone .dz-preview.dz-complete .dz-progress { - opacity: 0; - -webkit-transition: opacity 0.4s ease-in; - -moz-transition: opacity 0.4s ease-in; - -ms-transition: opacity 0.4s ease-in; - -o-transition: opacity 0.4s ease-in; - transition: opacity 0.4s ease-in; -} -.dropzone .dz-preview:not(.dz-processing) .dz-progress { - -webkit-animation: pulse 6s ease infinite; - -moz-animation: pulse 6s ease infinite; - -ms-animation: pulse 6s ease infinite; - -o-animation: pulse 6s ease infinite; - animation: pulse 6s ease infinite; -} -.dropzone .dz-preview .dz-progress { - opacity: 1; - z-index: 1000; - pointer-events: none; - position: absolute; - height: 16px; - left: 50%; - top: 50%; - margin-top: -8px; - width: 80px; - margin-left: -40px; - background: rgba(255, 255, 255, 0.9); - -webkit-transform: scale(1); - border-radius: 8px; - overflow: hidden; -} -.dropzone .dz-preview .dz-progress .dz-upload { - background: #333; - background: linear-gradient(to bottom, #666, #444); - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 0; - -webkit-transition: width 300ms ease-in-out; - -moz-transition: width 300ms ease-in-out; - -ms-transition: width 300ms ease-in-out; - -o-transition: width 300ms ease-in-out; - transition: width 300ms ease-in-out; -} -.dropzone .dz-preview.dz-error .dz-error-message { - display: block; -} -.dropzone .dz-preview.dz-error:hover .dz-error-message { - opacity: 1; - pointer-events: auto; -} -.dropzone .dz-preview .dz-error-message { - pointer-events: none; - z-index: 1000; - position: absolute; - display: block; - display: none; - opacity: 0; - -webkit-transition: opacity 0.3s ease; - -moz-transition: opacity 0.3s ease; - -ms-transition: opacity 0.3s ease; - -o-transition: opacity 0.3s ease; - transition: opacity 0.3s ease; - border-radius: 8px; - font-size: 13px; - top: 130px; - left: -10px; - width: 140px; - background: #be2626; - background: linear-gradient(to bottom, #be2626, #a92222); - padding: 0.5em 1.2em; - color: white; -} -.dropzone .dz-preview .dz-error-message:after { - content: ""; - position: absolute; - top: -6px; - left: 64px; - width: 0; - height: 0; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #be2626; -} \ No newline at end of file diff --git a/plugins/dropzone/dropzone.js b/plugins/dropzone/dropzone.js deleted file mode 100644 index db7e403b..00000000 --- a/plugins/dropzone/dropzone.js +++ /dev/null @@ -1,10441 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else { - var a = factory(); - for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; - } -})(self, function() { -return /******/ (function() { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ 3099: -/***/ (function(module) { - -module.exports = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; -}; - - -/***/ }), - -/***/ 6077: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); - -module.exports = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } return it; -}; - - -/***/ }), - -/***/ 1223: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(5112); -var create = __webpack_require__(30); -var definePropertyModule = __webpack_require__(3070); - -var UNSCOPABLES = wellKnownSymbol('unscopables'); -var ArrayPrototype = Array.prototype; - -// Array.prototype[@@unscopables] -// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -if (ArrayPrototype[UNSCOPABLES] == undefined) { - definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { - configurable: true, - value: create(null) - }); -} - -// add a key to Array.prototype[@@unscopables] -module.exports = function (key) { - ArrayPrototype[UNSCOPABLES][key] = true; -}; - - -/***/ }), - -/***/ 1530: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var charAt = __webpack_require__(8710).charAt; - -// `AdvanceStringIndex` abstract operation -// https://tc39.es/ecma262/#sec-advancestringindex -module.exports = function (S, index, unicode) { - return index + (unicode ? charAt(S, index).length : 1); -}; - - -/***/ }), - -/***/ 5787: -/***/ (function(module) { - -module.exports = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } return it; -}; - - -/***/ }), - -/***/ 9670: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); - -module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; -}; - - -/***/ }), - -/***/ 4019: -/***/ (function(module) { - -module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined'; - - -/***/ }), - -/***/ 260: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var NATIVE_ARRAY_BUFFER = __webpack_require__(4019); -var DESCRIPTORS = __webpack_require__(9781); -var global = __webpack_require__(7854); -var isObject = __webpack_require__(111); -var has = __webpack_require__(6656); -var classof = __webpack_require__(648); -var createNonEnumerableProperty = __webpack_require__(8880); -var redefine = __webpack_require__(1320); -var defineProperty = __webpack_require__(3070).f; -var getPrototypeOf = __webpack_require__(9518); -var setPrototypeOf = __webpack_require__(7674); -var wellKnownSymbol = __webpack_require__(5112); -var uid = __webpack_require__(9711); - -var Int8Array = global.Int8Array; -var Int8ArrayPrototype = Int8Array && Int8Array.prototype; -var Uint8ClampedArray = global.Uint8ClampedArray; -var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; -var TypedArray = Int8Array && getPrototypeOf(Int8Array); -var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); -var ObjectPrototype = Object.prototype; -var isPrototypeOf = ObjectPrototype.isPrototypeOf; - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); -// Fixing native typed arrays in Opera Presto crashes the browser, see #595 -var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; -var TYPED_ARRAY_TAG_REQIRED = false; -var NAME; - -var TypedArrayConstructorsList = { - Int8Array: 1, - Uint8Array: 1, - Uint8ClampedArray: 1, - Int16Array: 2, - Uint16Array: 2, - Int32Array: 4, - Uint32Array: 4, - Float32Array: 4, - Float64Array: 8 -}; - -var BigIntArrayConstructorsList = { - BigInt64Array: 8, - BigUint64Array: 8 -}; - -var isView = function isView(it) { - if (!isObject(it)) return false; - var klass = classof(it); - return klass === 'DataView' - || has(TypedArrayConstructorsList, klass) - || has(BigIntArrayConstructorsList, klass); -}; - -var isTypedArray = function (it) { - if (!isObject(it)) return false; - var klass = classof(it); - return has(TypedArrayConstructorsList, klass) - || has(BigIntArrayConstructorsList, klass); -}; - -var aTypedArray = function (it) { - if (isTypedArray(it)) return it; - throw TypeError('Target is not a typed array'); -}; - -var aTypedArrayConstructor = function (C) { - if (setPrototypeOf) { - if (isPrototypeOf.call(TypedArray, C)) return C; - } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) { - var TypedArrayConstructor = global[ARRAY]; - if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) { - return C; - } - } throw TypeError('Target is not a typed array constructor'); -}; - -var exportTypedArrayMethod = function (KEY, property, forced) { - if (!DESCRIPTORS) return; - if (forced) for (var ARRAY in TypedArrayConstructorsList) { - var TypedArrayConstructor = global[ARRAY]; - if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) { - delete TypedArrayConstructor.prototype[KEY]; - } - } - if (!TypedArrayPrototype[KEY] || forced) { - redefine(TypedArrayPrototype, KEY, forced ? property - : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property); - } -}; - -var exportTypedArrayStaticMethod = function (KEY, property, forced) { - var ARRAY, TypedArrayConstructor; - if (!DESCRIPTORS) return; - if (setPrototypeOf) { - if (forced) for (ARRAY in TypedArrayConstructorsList) { - TypedArrayConstructor = global[ARRAY]; - if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) { - delete TypedArrayConstructor[KEY]; - } - } - if (!TypedArray[KEY] || forced) { - // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable - try { - return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property); - } catch (error) { /* empty */ } - } else return; - } - for (ARRAY in TypedArrayConstructorsList) { - TypedArrayConstructor = global[ARRAY]; - if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { - redefine(TypedArrayConstructor, KEY, property); - } - } -}; - -for (NAME in TypedArrayConstructorsList) { - if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false; -} - -// WebKit bug - typed arrays constructors prototype is Object.prototype -if (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) { - // eslint-disable-next-line no-shadow -- safe - TypedArray = function TypedArray() { - throw TypeError('Incorrect invocation'); - }; - if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { - if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); - } -} - -if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { - TypedArrayPrototype = TypedArray.prototype; - if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { - if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); - } -} - -// WebKit bug - one more object in Uint8ClampedArray prototype chain -if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { - setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); -} - -if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) { - TYPED_ARRAY_TAG_REQIRED = true; - defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () { - return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; - } }); - for (NAME in TypedArrayConstructorsList) if (global[NAME]) { - createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); - } -} - -module.exports = { - NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, - TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG, - aTypedArray: aTypedArray, - aTypedArrayConstructor: aTypedArrayConstructor, - exportTypedArrayMethod: exportTypedArrayMethod, - exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, - isView: isView, - isTypedArray: isTypedArray, - TypedArray: TypedArray, - TypedArrayPrototype: TypedArrayPrototype -}; - - -/***/ }), - -/***/ 3331: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(7854); -var DESCRIPTORS = __webpack_require__(9781); -var NATIVE_ARRAY_BUFFER = __webpack_require__(4019); -var createNonEnumerableProperty = __webpack_require__(8880); -var redefineAll = __webpack_require__(2248); -var fails = __webpack_require__(7293); -var anInstance = __webpack_require__(5787); -var toInteger = __webpack_require__(9958); -var toLength = __webpack_require__(7466); -var toIndex = __webpack_require__(7067); -var IEEE754 = __webpack_require__(1179); -var getPrototypeOf = __webpack_require__(9518); -var setPrototypeOf = __webpack_require__(7674); -var getOwnPropertyNames = __webpack_require__(8006).f; -var defineProperty = __webpack_require__(3070).f; -var arrayFill = __webpack_require__(1285); -var setToStringTag = __webpack_require__(8003); -var InternalStateModule = __webpack_require__(9909); - -var getInternalState = InternalStateModule.get; -var setInternalState = InternalStateModule.set; -var ARRAY_BUFFER = 'ArrayBuffer'; -var DATA_VIEW = 'DataView'; -var PROTOTYPE = 'prototype'; -var WRONG_LENGTH = 'Wrong length'; -var WRONG_INDEX = 'Wrong index'; -var NativeArrayBuffer = global[ARRAY_BUFFER]; -var $ArrayBuffer = NativeArrayBuffer; -var $DataView = global[DATA_VIEW]; -var $DataViewPrototype = $DataView && $DataView[PROTOTYPE]; -var ObjectPrototype = Object.prototype; -var RangeError = global.RangeError; - -var packIEEE754 = IEEE754.pack; -var unpackIEEE754 = IEEE754.unpack; - -var packInt8 = function (number) { - return [number & 0xFF]; -}; - -var packInt16 = function (number) { - return [number & 0xFF, number >> 8 & 0xFF]; -}; - -var packInt32 = function (number) { - return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; -}; - -var unpackInt32 = function (buffer) { - return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; -}; - -var packFloat32 = function (number) { - return packIEEE754(number, 23, 4); -}; - -var packFloat64 = function (number) { - return packIEEE754(number, 52, 8); -}; - -var addGetter = function (Constructor, key) { - defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } }); -}; - -var get = function (view, count, index, isLittleEndian) { - var intIndex = toIndex(index); - var store = getInternalState(view); - if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX); - var bytes = getInternalState(store.buffer).bytes; - var start = intIndex + store.byteOffset; - var pack = bytes.slice(start, start + count); - return isLittleEndian ? pack : pack.reverse(); -}; - -var set = function (view, count, index, conversion, value, isLittleEndian) { - var intIndex = toIndex(index); - var store = getInternalState(view); - if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX); - var bytes = getInternalState(store.buffer).bytes; - var start = intIndex + store.byteOffset; - var pack = conversion(+value); - for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1]; -}; - -if (!NATIVE_ARRAY_BUFFER) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer, ARRAY_BUFFER); - var byteLength = toIndex(length); - setInternalState(this, { - bytes: arrayFill.call(new Array(byteLength), 0), - byteLength: byteLength - }); - if (!DESCRIPTORS) this.byteLength = byteLength; - }; - - $DataView = function DataView(buffer, byteOffset, byteLength) { - anInstance(this, $DataView, DATA_VIEW); - anInstance(buffer, $ArrayBuffer, DATA_VIEW); - var bufferLength = getInternalState(buffer).byteLength; - var offset = toInteger(byteOffset); - if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset'); - byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); - if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); - setInternalState(this, { - buffer: buffer, - byteLength: byteLength, - byteOffset: offset - }); - if (!DESCRIPTORS) { - this.buffer = buffer; - this.byteLength = byteLength; - this.byteOffset = offset; - } - }; - - if (DESCRIPTORS) { - addGetter($ArrayBuffer, 'byteLength'); - addGetter($DataView, 'buffer'); - addGetter($DataView, 'byteLength'); - addGetter($DataView, 'byteOffset'); - } - - redefineAll($DataView[PROTOTYPE], { - getInt8: function getInt8(byteOffset) { - return get(this, 1, byteOffset)[0] << 24 >> 24; - }, - getUint8: function getUint8(byteOffset) { - return get(this, 1, byteOffset)[0]; - }, - getInt16: function getInt16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); - return (bytes[1] << 8 | bytes[0]) << 16 >> 16; - }, - getUint16: function getUint16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); - return bytes[1] << 8 | bytes[0]; - }, - getInt32: function getInt32(byteOffset /* , littleEndian */) { - return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)); - }, - getUint32: function getUint32(byteOffset /* , littleEndian */) { - return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0; - }, - getFloat32: function getFloat32(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23); - }, - getFloat64: function getFloat64(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52); - }, - setInt8: function setInt8(byteOffset, value) { - set(this, 1, byteOffset, packInt8, value); - }, - setUint8: function setUint8(byteOffset, value) { - set(this, 1, byteOffset, packInt8, value); - }, - setInt16: function setInt16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setUint16: function setUint16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setInt32: function setInt32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setUint32: function setUint32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { - set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined); - } - }); -} else { - /* eslint-disable no-new -- required for testing */ - if (!fails(function () { - NativeArrayBuffer(1); - }) || !fails(function () { - new NativeArrayBuffer(-1); - }) || fails(function () { - new NativeArrayBuffer(); - new NativeArrayBuffer(1.5); - new NativeArrayBuffer(NaN); - return NativeArrayBuffer.name != ARRAY_BUFFER; - })) { - /* eslint-enable no-new -- required for testing */ - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer); - return new NativeArrayBuffer(toIndex(length)); - }; - var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE]; - for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) { - if (!((key = keys[j++]) in $ArrayBuffer)) { - createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]); - } - } - ArrayBufferPrototype.constructor = $ArrayBuffer; - } - - // WebKit bug - the same parent prototype for typed arrays and data view - if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) { - setPrototypeOf($DataViewPrototype, ObjectPrototype); - } - - // iOS Safari 7.x bug - var testView = new $DataView(new $ArrayBuffer(2)); - var nativeSetInt8 = $DataViewPrototype.setInt8; - testView.setInt8(0, 2147483648); - testView.setInt8(1, 2147483649); - if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, { - setInt8: function setInt8(byteOffset, value) { - nativeSetInt8.call(this, byteOffset, value << 24 >> 24); - }, - setUint8: function setUint8(byteOffset, value) { - nativeSetInt8.call(this, byteOffset, value << 24 >> 24); - } - }, { unsafe: true }); -} - -setToStringTag($ArrayBuffer, ARRAY_BUFFER); -setToStringTag($DataView, DATA_VIEW); - -module.exports = { - ArrayBuffer: $ArrayBuffer, - DataView: $DataView -}; - - -/***/ }), - -/***/ 1048: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toObject = __webpack_require__(7908); -var toAbsoluteIndex = __webpack_require__(1400); -var toLength = __webpack_require__(7466); - -var min = Math.min; - -// `Array.prototype.copyWithin` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.copywithin -module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { - var O = toObject(this); - var len = toLength(O.length); - var to = toAbsoluteIndex(target, len); - var from = toAbsoluteIndex(start, len); - var end = arguments.length > 2 ? arguments[2] : undefined; - var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); - var inc = 1; - if (from < to && to < from + count) { - inc = -1; - from += count - 1; - to += count - 1; - } - while (count-- > 0) { - if (from in O) O[to] = O[from]; - else delete O[to]; - to += inc; - from += inc; - } return O; -}; - - -/***/ }), - -/***/ 1285: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toObject = __webpack_require__(7908); -var toAbsoluteIndex = __webpack_require__(1400); -var toLength = __webpack_require__(7466); - -// `Array.prototype.fill` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.fill -module.exports = function fill(value /* , start = 0, end = @length */) { - var O = toObject(this); - var length = toLength(O.length); - var argumentsLength = arguments.length; - var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); - var end = argumentsLength > 2 ? arguments[2] : undefined; - var endPos = end === undefined ? length : toAbsoluteIndex(end, length); - while (endPos > index) O[index++] = value; - return O; -}; - - -/***/ }), - -/***/ 8533: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $forEach = __webpack_require__(2092).forEach; -var arrayMethodIsStrict = __webpack_require__(9341); - -var STRICT_METHOD = arrayMethodIsStrict('forEach'); - -// `Array.prototype.forEach` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.foreach -module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { - return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); -} : [].forEach; - - -/***/ }), - -/***/ 8457: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var bind = __webpack_require__(9974); -var toObject = __webpack_require__(7908); -var callWithSafeIterationClosing = __webpack_require__(3411); -var isArrayIteratorMethod = __webpack_require__(7659); -var toLength = __webpack_require__(7466); -var createProperty = __webpack_require__(6135); -var getIteratorMethod = __webpack_require__(1246); - -// `Array.from` method implementation -// https://tc39.es/ecma262/#sec-array.from -module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var index = 0; - var length, result, step, iterator, next, value; - if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); - // if the target is not iterable or it's an array with the default iterator - use a simple case - if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { - iterator = iteratorMethod.call(O); - next = iterator.next; - result = new C(); - for (;!(step = next.call(iterator)).done; index++) { - value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; - createProperty(result, index, value); - } - } else { - length = toLength(O.length); - result = new C(length); - for (;length > index; index++) { - value = mapping ? mapfn(O[index], index) : O[index]; - createProperty(result, index, value); - } - } - result.length = index; - return result; -}; - - -/***/ }), - -/***/ 1318: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toIndexedObject = __webpack_require__(5656); -var toLength = __webpack_require__(7466); -var toAbsoluteIndex = __webpack_require__(1400); - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare -- NaN check - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare -- NaN check - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -module.exports = { - // `Array.prototype.includes` method - // https://tc39.es/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) -}; - - -/***/ }), - -/***/ 2092: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var bind = __webpack_require__(9974); -var IndexedObject = __webpack_require__(8361); -var toObject = __webpack_require__(7908); -var toLength = __webpack_require__(7466); -var arraySpeciesCreate = __webpack_require__(5417); - -var push = [].push; - -// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation -var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var IS_FILTER_OUT = TYPE == 7; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push.call(target, value); // filter - } else switch (TYPE) { - case 4: return false; // every - case 7: push.call(target, value); // filterOut - } - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; -}; - -module.exports = { - // `Array.prototype.forEach` method - // https://tc39.es/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.es/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.es/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.es/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.es/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.es/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.es/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6), - // `Array.prototype.filterOut` method - // https://github.com/tc39/proposal-array-filtering - filterOut: createMethod(7) -}; - - -/***/ }), - -/***/ 6583: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toIndexedObject = __webpack_require__(5656); -var toInteger = __webpack_require__(9958); -var toLength = __webpack_require__(7466); -var arrayMethodIsStrict = __webpack_require__(9341); - -var min = Math.min; -var nativeLastIndexOf = [].lastIndexOf; -var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; -var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); -var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; - -// `Array.prototype.lastIndexOf` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.lastindexof -module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { - // convert -0 to +0 - if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0; - var O = toIndexedObject(this); - var length = toLength(O.length); - var index = length - 1; - if (arguments.length > 1) index = min(index, toInteger(arguments[1])); - if (index < 0) index = length + index; - for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; - return -1; -} : nativeLastIndexOf; - - -/***/ }), - -/***/ 1194: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var wellKnownSymbol = __webpack_require__(5112); -var V8_VERSION = __webpack_require__(7392); - -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); -}; - - -/***/ }), - -/***/ 9341: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fails = __webpack_require__(7293); - -module.exports = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing - method.call(null, argument || function () { throw 1; }, 1); - }); -}; - - -/***/ }), - -/***/ 3671: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var aFunction = __webpack_require__(3099); -var toObject = __webpack_require__(7908); -var IndexedObject = __webpack_require__(8361); -var toLength = __webpack_require__(7466); - -// `Array.prototype.{ reduce, reduceRight }` methods implementation -var createMethod = function (IS_RIGHT) { - return function (that, callbackfn, argumentsLength, memo) { - aFunction(callbackfn); - var O = toObject(that); - var self = IndexedObject(O); - var length = toLength(O.length); - var index = IS_RIGHT ? length - 1 : 0; - var i = IS_RIGHT ? -1 : 1; - if (argumentsLength < 2) while (true) { - if (index in self) { - memo = self[index]; - index += i; - break; - } - index += i; - if (IS_RIGHT ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); - } - } - for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { - memo = callbackfn(memo, self[index], index, O); - } - return memo; - }; -}; - -module.exports = { - // `Array.prototype.reduce` method - // https://tc39.es/ecma262/#sec-array.prototype.reduce - left: createMethod(false), - // `Array.prototype.reduceRight` method - // https://tc39.es/ecma262/#sec-array.prototype.reduceright - right: createMethod(true) -}; - - -/***/ }), - -/***/ 5417: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); -var isArray = __webpack_require__(3157); -var wellKnownSymbol = __webpack_require__(5112); - -var SPECIES = wellKnownSymbol('species'); - -// `ArraySpeciesCreate` abstract operation -// https://tc39.es/ecma262/#sec-arrayspeciescreate -module.exports = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); -}; - - -/***/ }), - -/***/ 3411: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var iteratorClose = __webpack_require__(9212); - -// call something on iterator step with safe closing on error -module.exports = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (error) { - iteratorClose(iterator); - throw error; - } -}; - - -/***/ }), - -/***/ 7072: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); -var SAFE_CLOSING = false; - -try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR] = function () { - return this; - }; - // eslint-disable-next-line no-throw-literal -- required for testing - Array.from(iteratorWithReturn, function () { throw 2; }); -} catch (error) { /* empty */ } - -module.exports = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; -}; - - -/***/ }), - -/***/ 4326: -/***/ (function(module) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), - -/***/ 648: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(1694); -var classofRaw = __webpack_require__(4326); -var wellKnownSymbol = __webpack_require__(5112); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; - -// getting tag from ES6+ `Object.prototype.toString` -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; - - -/***/ }), - -/***/ 9920: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var has = __webpack_require__(6656); -var ownKeys = __webpack_require__(3887); -var getOwnPropertyDescriptorModule = __webpack_require__(1236); -var definePropertyModule = __webpack_require__(3070); - -module.exports = function (target, source) { - var keys = ownKeys(source); - var defineProperty = definePropertyModule.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } -}; - - -/***/ }), - -/***/ 8544: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -module.exports = !fails(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; -}); - - -/***/ }), - -/***/ 4994: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var IteratorPrototype = __webpack_require__(3383).IteratorPrototype; -var create = __webpack_require__(30); -var createPropertyDescriptor = __webpack_require__(9114); -var setToStringTag = __webpack_require__(8003); -var Iterators = __webpack_require__(7497); - -var returnThis = function () { return this; }; - -module.exports = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); - Iterators[TO_STRING_TAG] = returnThis; - return IteratorConstructor; -}; - - -/***/ }), - -/***/ 8880: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var definePropertyModule = __webpack_require__(3070); -var createPropertyDescriptor = __webpack_require__(9114); - -module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), - -/***/ 9114: -/***/ (function(module) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), - -/***/ 6135: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toPrimitive = __webpack_require__(7593); -var definePropertyModule = __webpack_require__(3070); -var createPropertyDescriptor = __webpack_require__(9114); - -module.exports = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); - else object[propertyKey] = value; -}; - - -/***/ }), - -/***/ 654: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var createIteratorConstructor = __webpack_require__(4994); -var getPrototypeOf = __webpack_require__(9518); -var setPrototypeOf = __webpack_require__(7674); -var setToStringTag = __webpack_require__(8003); -var createNonEnumerableProperty = __webpack_require__(8880); -var redefine = __webpack_require__(1320); -var wellKnownSymbol = __webpack_require__(5112); -var IS_PURE = __webpack_require__(1913); -var Iterators = __webpack_require__(7497); -var IteratorsCore = __webpack_require__(3383); - -var IteratorPrototype = IteratorsCore.IteratorPrototype; -var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; -var ITERATOR = wellKnownSymbol('iterator'); -var KEYS = 'keys'; -var VALUES = 'values'; -var ENTRIES = 'entries'; - -var returnThis = function () { return this; }; - -module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor(IteratorConstructor, NAME, next); - - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; - switch (KIND) { - case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; - case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; - case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; - } return function () { return new IteratorConstructor(this); }; - }; - - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR] - || IterablePrototype['@@iterator'] - || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; - - // fix native - if (anyNativeIterator) { - CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { - if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { - if (setPrototypeOf) { - setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); - } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); - } - } - // Set @@toStringTag to native iterators - setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); - if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; - } - } - - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { return nativeIterator.call(this); }; - } - - // define iterator - if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); - } - Iterators[NAME] = defaultIterator; - - // export additional methods - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - }; - if (FORCED) for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); - } - } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); - } - - return methods; -}; - - -/***/ }), - -/***/ 9781: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -// Detect IE8's incomplete defineProperty implementation -module.exports = !fails(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - - -/***/ }), - -/***/ 317: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var isObject = __webpack_require__(111); - -var document = global.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; - - -/***/ }), - -/***/ 8324: -/***/ (function(module) { - -// iterable DOM collections -// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods -module.exports = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 -}; - - -/***/ }), - -/***/ 8113: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(5005); - -module.exports = getBuiltIn('navigator', 'userAgent') || ''; - - -/***/ }), - -/***/ 7392: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var userAgent = __webpack_require__(8113); - -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } -} - -module.exports = version && +version; - - -/***/ }), - -/***/ 748: -/***/ (function(module) { - -// IE8- don't enum bug keys -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - - -/***/ }), - -/***/ 2109: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var getOwnPropertyDescriptor = __webpack_require__(1236).f; -var createNonEnumerableProperty = __webpack_require__(8880); -var redefine = __webpack_require__(1320); -var setGlobal = __webpack_require__(3505); -var copyConstructorProperties = __webpack_require__(9920); -var isForced = __webpack_require__(4705); - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global; - } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - // extend global - redefine(target, key, sourceProperty, options); - } -}; - - -/***/ }), - -/***/ 7293: -/***/ (function(module) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - - -/***/ }), - -/***/ 7007: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -// TODO: Remove from `core-js@4` since it's moved to entry points -__webpack_require__(4916); -var redefine = __webpack_require__(1320); -var fails = __webpack_require__(7293); -var wellKnownSymbol = __webpack_require__(5112); -var regexpExec = __webpack_require__(2261); -var createNonEnumerableProperty = __webpack_require__(8880); - -var SPECIES = wellKnownSymbol('species'); - -var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; -}); - -// IE <= 11 replaces $0 with the whole match, as if it was $& -// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 -var REPLACE_KEEPS_$0 = (function () { - return 'a'.replace(/./, '$0') === '$0'; -})(); - -var REPLACE = wellKnownSymbol('replace'); -// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string -var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { - if (/./[REPLACE]) { - return /./[REPLACE]('a', '$0') === ''; - } - return false; -})(); - -// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec -// Weex JS has frozen built-in prototypes, so use try / catch wrapper -var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { - // eslint-disable-next-line regexp/no-empty-group -- required for testing - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; -}); - -module.exports = function (KEY, length, exec, sham) { - var SYMBOL = wellKnownSymbol(KEY); - - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES] = function () { return re; }; - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { execCalled = true; return null; }; - - re[SYMBOL](''); - return !execCalled; - }); - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !( - REPLACE_SUPPORTS_NAMED_GROUPS && - REPLACE_KEEPS_$0 && - !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - )) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - - redefine(String.prototype, KEY, stringMethod); - redefine(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return regexMethod.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return regexMethod.call(string, this); } - ); - } - - if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); -}; - - -/***/ }), - -/***/ 9974: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var aFunction = __webpack_require__(3099); - -// optional / simple context binding -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), - -/***/ 5005: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var path = __webpack_require__(857); -var global = __webpack_require__(7854); - -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; - -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) - : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; - - -/***/ }), - -/***/ 1246: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var classof = __webpack_require__(648); -var Iterators = __webpack_require__(7497); -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); - -module.exports = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), - -/***/ 8554: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var getIteratorMethod = __webpack_require__(1246); - -module.exports = function (it) { - var iteratorMethod = getIteratorMethod(it); - if (typeof iteratorMethod != 'function') { - throw TypeError(String(it) + ' is not iterable'); - } return anObject(iteratorMethod.call(it)); -}; - - -/***/ }), - -/***/ 647: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toObject = __webpack_require__(7908); - -var floor = Math.floor; -var replace = ''.replace; -var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; -var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; - -// https://tc39.es/ecma262/#sec-getsubstitution -module.exports = function (matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return replace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); -}; - - -/***/ }), - -/***/ 7854: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -module.exports = - /* global globalThis -- safe */ - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) || - // eslint-disable-next-line no-new-func -- fallback - (function () { return this; })() || Function('return this')(); - - -/***/ }), - -/***/ 6656: -/***/ (function(module) { - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), - -/***/ 3501: -/***/ (function(module) { - -module.exports = {}; - - -/***/ }), - -/***/ 490: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(5005); - -module.exports = getBuiltIn('document', 'documentElement'); - - -/***/ }), - -/***/ 4664: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var fails = __webpack_require__(7293); -var createElement = __webpack_require__(317); - -// Thank's IE8 for his funny defineProperty -module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - - -/***/ }), - -/***/ 1179: -/***/ (function(module) { - -// IEEE754 conversions based on https://github.com/feross/ieee754 -var abs = Math.abs; -var pow = Math.pow; -var floor = Math.floor; -var log = Math.log; -var LN2 = Math.LN2; - -var pack = function (number, mantissaLength, bytes) { - var buffer = new Array(bytes); - var exponentLength = bytes * 8 - mantissaLength - 1; - var eMax = (1 << exponentLength) - 1; - var eBias = eMax >> 1; - var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; - var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; - var index = 0; - var exponent, mantissa, c; - number = abs(number); - // eslint-disable-next-line no-self-compare -- NaN check - if (number != number || number === Infinity) { - // eslint-disable-next-line no-self-compare -- NaN check - mantissa = number != number ? 1 : 0; - exponent = eMax; - } else { - exponent = floor(log(number) / LN2); - if (number * (c = pow(2, -exponent)) < 1) { - exponent--; - c *= 2; - } - if (exponent + eBias >= 1) { - number += rt / c; - } else { - number += rt * pow(2, 1 - eBias); - } - if (number * c >= 2) { - exponent++; - c /= 2; - } - if (exponent + eBias >= eMax) { - mantissa = 0; - exponent = eMax; - } else if (exponent + eBias >= 1) { - mantissa = (number * c - 1) * pow(2, mantissaLength); - exponent = exponent + eBias; - } else { - mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); - exponent = 0; - } - } - for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8); - exponent = exponent << mantissaLength | mantissa; - exponentLength += mantissaLength; - for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8); - buffer[--index] |= sign * 128; - return buffer; -}; - -var unpack = function (buffer, mantissaLength) { - var bytes = buffer.length; - var exponentLength = bytes * 8 - mantissaLength - 1; - var eMax = (1 << exponentLength) - 1; - var eBias = eMax >> 1; - var nBits = exponentLength - 7; - var index = bytes - 1; - var sign = buffer[index--]; - var exponent = sign & 127; - var mantissa; - sign >>= 7; - for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8); - mantissa = exponent & (1 << -nBits) - 1; - exponent >>= -nBits; - nBits += mantissaLength; - for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8); - if (exponent === 0) { - exponent = 1 - eBias; - } else if (exponent === eMax) { - return mantissa ? NaN : sign ? -Infinity : Infinity; - } else { - mantissa = mantissa + pow(2, mantissaLength); - exponent = exponent - eBias; - } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); -}; - -module.exports = { - pack: pack, - unpack: unpack -}; - - -/***/ }), - -/***/ 8361: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var classof = __webpack_require__(4326); - -var split = ''.split; - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins -- safe - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - - -/***/ }), - -/***/ 9587: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); -var setPrototypeOf = __webpack_require__(7674); - -// makes subclassing work correct for wrapped built-ins -module.exports = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if ( - // it can work only with native `setPrototypeOf` - setPrototypeOf && - // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - typeof (NewTarget = dummy.constructor) == 'function' && - NewTarget !== Wrapper && - isObject(NewTargetPrototype = NewTarget.prototype) && - NewTargetPrototype !== Wrapper.prototype - ) setPrototypeOf($this, NewTargetPrototype); - return $this; -}; - - -/***/ }), - -/***/ 2788: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var store = __webpack_require__(5465); - -var functionToString = Function.toString; - -// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper -if (typeof store.inspectSource != 'function') { - store.inspectSource = function (it) { - return functionToString.call(it); - }; -} - -module.exports = store.inspectSource; - - -/***/ }), - -/***/ 9909: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var NATIVE_WEAK_MAP = __webpack_require__(8536); -var global = __webpack_require__(7854); -var isObject = __webpack_require__(111); -var createNonEnumerableProperty = __webpack_require__(8880); -var objectHas = __webpack_require__(6656); -var shared = __webpack_require__(5465); -var sharedKey = __webpack_require__(6200); -var hiddenKeys = __webpack_require__(3501); - -var WeakMap = global.WeakMap; -var set, get, has; - -var enforce = function (it) { - return has(it) ? get(it) : set(it, {}); -}; - -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; -}; - -if (NATIVE_WEAK_MAP) { - var store = shared.state || (shared.state = new WeakMap()); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - set = function (it, metadata) { - metadata.facade = it; - wmset.call(store, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store, it) || {}; - }; - has = function (it) { - return wmhas.call(store, it); - }; -} else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - set = function (it, metadata) { - metadata.facade = it; - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return objectHas(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return objectHas(it, STATE); - }; -} - -module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor -}; - - -/***/ }), - -/***/ 7659: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(5112); -var Iterators = __webpack_require__(7497); - -var ITERATOR = wellKnownSymbol('iterator'); -var ArrayPrototype = Array.prototype; - -// check on default Array iterator -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); -}; - - -/***/ }), - -/***/ 3157: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var classof = __webpack_require__(4326); - -// `IsArray` abstract operation -// https://tc39.es/ecma262/#sec-isarray -module.exports = Array.isArray || function isArray(arg) { - return classof(arg) == 'Array'; -}; - - -/***/ }), - -/***/ 4705: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -var replacement = /#|\.prototype\./; - -var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) - : !!detection; -}; - -var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); -}; - -var data = isForced.data = {}; -var NATIVE = isForced.NATIVE = 'N'; -var POLYFILL = isForced.POLYFILL = 'P'; - -module.exports = isForced; - - -/***/ }), - -/***/ 111: -/***/ (function(module) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), - -/***/ 1913: -/***/ (function(module) { - -module.exports = false; - - -/***/ }), - -/***/ 7850: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); -var classof = __webpack_require__(4326); -var wellKnownSymbol = __webpack_require__(5112); - -var MATCH = wellKnownSymbol('match'); - -// `IsRegExp` abstract operation -// https://tc39.es/ecma262/#sec-isregexp -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); -}; - - -/***/ }), - -/***/ 9212: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); - -module.exports = function (iterator) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) { - return anObject(returnMethod.call(iterator)).value; - } -}; - - -/***/ }), - -/***/ 3383: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fails = __webpack_require__(7293); -var getPrototypeOf = __webpack_require__(9518); -var createNonEnumerableProperty = __webpack_require__(8880); -var has = __webpack_require__(6656); -var wellKnownSymbol = __webpack_require__(5112); -var IS_PURE = __webpack_require__(1913); - -var ITERATOR = wellKnownSymbol('iterator'); -var BUGGY_SAFARI_ITERATORS = false; - -var returnThis = function () { return this; }; - -// `%IteratorPrototype%` object -// https://tc39.es/ecma262/#sec-%iteratorprototype%-object -var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; - -if ([].keys) { - arrayIterator = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; - else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } -} - -var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () { - var test = {}; - // FF44- legacy iterators case - return IteratorPrototype[ITERATOR].call(test) !== test; -}); - -if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); -} - -module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS -}; - - -/***/ }), - -/***/ 7497: -/***/ (function(module) { - -module.exports = {}; - - -/***/ }), - -/***/ 133: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); - -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - /* global Symbol -- required for testing */ - return !String(Symbol()); -}); - - -/***/ }), - -/***/ 590: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var wellKnownSymbol = __webpack_require__(5112); -var IS_PURE = __webpack_require__(1913); - -var ITERATOR = wellKnownSymbol('iterator'); - -module.exports = !fails(function () { - var url = new URL('b?a=1&b=2&c=3', 'http://a'); - var searchParams = url.searchParams; - var result = ''; - url.pathname = 'c%20d'; - searchParams.forEach(function (value, key) { - searchParams['delete']('b'); - result += key + value; - }); - return (IS_PURE && !url.toJSON) - || !searchParams.sort - || url.href !== 'http://a/c%20d?a=1&c=3' - || searchParams.get('c') !== '3' - || String(new URLSearchParams('?a=1')) !== 'a=1' - || !searchParams[ITERATOR] - // throws in Edge - || new URL('https://a@b').username !== 'a' - || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' - // not punycoded in Edge - || new URL('http://тест').host !== 'xn--e1aybc' - // not escaped in Chrome 62- - || new URL('http://a#б').hash !== '#%D0%B1' - // fails in Chrome 66- - || result !== 'a1c3' - // throws in Safari - || new URL('http://x', undefined).host !== 'x'; -}); - - -/***/ }), - -/***/ 8536: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var inspectSource = __webpack_require__(2788); - -var WeakMap = global.WeakMap; - -module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); - - -/***/ }), - -/***/ 1574: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var DESCRIPTORS = __webpack_require__(9781); -var fails = __webpack_require__(7293); -var objectKeys = __webpack_require__(1956); -var getOwnPropertySymbolsModule = __webpack_require__(5181); -var propertyIsEnumerableModule = __webpack_require__(5296); -var toObject = __webpack_require__(7908); -var IndexedObject = __webpack_require__(8361); - -var nativeAssign = Object.assign; -var defineProperty = Object.defineProperty; - -// `Object.assign` method -// https://tc39.es/ecma262/#sec-object.assign -module.exports = !nativeAssign || fails(function () { - // should have correct order of operations (Edge bug) - if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', { - enumerable: true, - get: function () { - defineProperty(this, 'b', { - value: 3, - enumerable: false - }); - } - }), { b: 2 })).b !== 1) return true; - // should work with symbols and should have deterministic property order (V8 bug) - var A = {}; - var B = {}; - /* global Symbol -- required for testing */ - var symbol = Symbol(); - var alphabet = 'abcdefghijklmnopqrst'; - A[symbol] = 7; - alphabet.split('').forEach(function (chr) { B[chr] = chr; }); - return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` - var T = toObject(target); - var argumentsLength = arguments.length; - var index = 1; - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - var propertyIsEnumerable = propertyIsEnumerableModule.f; - while (argumentsLength > index) { - var S = IndexedObject(arguments[index++]); - var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key]; - } - } return T; -} : nativeAssign; - - -/***/ }), - -/***/ 30: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var defineProperties = __webpack_require__(6048); -var enumBugKeys = __webpack_require__(748); -var hiddenKeys = __webpack_require__(3501); -var html = __webpack_require__(490); -var documentCreateElement = __webpack_require__(317); -var sharedKey = __webpack_require__(6200); - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; - -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; - -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; -}; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; - -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - /* global ActiveXObject -- old IE */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; - -hiddenKeys[IE_PROTO] = true; - -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : defineProperties(result, Properties); -}; - - -/***/ }), - -/***/ 6048: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var definePropertyModule = __webpack_require__(3070); -var anObject = __webpack_require__(9670); -var objectKeys = __webpack_require__(1956); - -// `Object.defineProperties` method -// https://tc39.es/ecma262/#sec-object.defineproperties -module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); - return O; -}; - - -/***/ }), - -/***/ 3070: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var IE8_DOM_DEFINE = __webpack_require__(4664); -var anObject = __webpack_require__(9670); -var toPrimitive = __webpack_require__(7593); - -var nativeDefineProperty = Object.defineProperty; - -// `Object.defineProperty` method -// https://tc39.es/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), - -/***/ 1236: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var propertyIsEnumerableModule = __webpack_require__(5296); -var createPropertyDescriptor = __webpack_require__(9114); -var toIndexedObject = __webpack_require__(5656); -var toPrimitive = __webpack_require__(7593); -var has = __webpack_require__(6656); -var IE8_DOM_DEFINE = __webpack_require__(4664); - -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); -}; - - -/***/ }), - -/***/ 8006: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var internalObjectKeys = __webpack_require__(6324); -var enumBugKeys = __webpack_require__(748); - -var hiddenKeys = enumBugKeys.concat('length', 'prototype'); - -// `Object.getOwnPropertyNames` method -// https://tc39.es/ecma262/#sec-object.getownpropertynames -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); -}; - - -/***/ }), - -/***/ 5181: -/***/ (function(__unused_webpack_module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), - -/***/ 9518: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var has = __webpack_require__(6656); -var toObject = __webpack_require__(7908); -var sharedKey = __webpack_require__(6200); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544); - -var IE_PROTO = sharedKey('IE_PROTO'); -var ObjectPrototype = Object.prototype; - -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype : null; -}; - - -/***/ }), - -/***/ 6324: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var has = __webpack_require__(6656); -var toIndexedObject = __webpack_require__(5656); -var indexOf = __webpack_require__(1318).indexOf; -var hiddenKeys = __webpack_require__(3501); - -module.exports = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), - -/***/ 1956: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var internalObjectKeys = __webpack_require__(6324); -var enumBugKeys = __webpack_require__(748); - -// `Object.keys` method -// https://tc39.es/ecma262/#sec-object.keys -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); -}; - - -/***/ }), - -/***/ 5296: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var nativePropertyIsEnumerable = {}.propertyIsEnumerable; -var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// Nashorn ~ JDK8 bug -var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); - -// `Object.prototype.propertyIsEnumerable` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable -exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; -} : nativePropertyIsEnumerable; - - -/***/ }), - -/***/ 7674: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -/* eslint-disable no-proto -- safe */ -var anObject = __webpack_require__(9670); -var aPossiblePrototype = __webpack_require__(6077); - -// `Object.setPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.setprototypeof -// Works with __proto__ only. Old v8 can't work with null proto objects. -module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter.call(O, proto); - else O.__proto__ = proto; - return O; - }; -}() : undefined); - - -/***/ }), - -/***/ 288: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var TO_STRING_TAG_SUPPORT = __webpack_require__(1694); -var classof = __webpack_require__(648); - -// `Object.prototype.toString` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.tostring -module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { - return '[object ' + classof(this) + ']'; -}; - - -/***/ }), - -/***/ 3887: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(5005); -var getOwnPropertyNamesModule = __webpack_require__(8006); -var getOwnPropertySymbolsModule = __webpack_require__(5181); -var anObject = __webpack_require__(9670); - -// all object keys, includes non-enumerable and symbols -module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject(it)); - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; -}; - - -/***/ }), - -/***/ 857: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); - -module.exports = global; - - -/***/ }), - -/***/ 2248: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var redefine = __webpack_require__(1320); - -module.exports = function (target, src, options) { - for (var key in src) redefine(target, key, src[key], options); - return target; -}; - - -/***/ }), - -/***/ 1320: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var createNonEnumerableProperty = __webpack_require__(8880); -var has = __webpack_require__(6656); -var setGlobal = __webpack_require__(3505); -var inspectSource = __webpack_require__(2788); -var InternalStateModule = __webpack_require__(9909); - -var getInternalState = InternalStateModule.get; -var enforceInternalState = InternalStateModule.enforce; -var TEMPLATE = String(String).split('String'); - -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - var state; - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) { - createNonEnumerableProperty(value, 'name', key); - } - state = enforceInternalState(value); - if (!state.source) { - state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - } - if (O === global) { - if (simple) O[key] = value; - else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty(O, key, value); -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); -}); - - -/***/ }), - -/***/ 7651: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var classof = __webpack_require__(4326); -var regexpExec = __webpack_require__(2261); - -// `RegExpExec` abstract operation -// https://tc39.es/ecma262/#sec-regexpexec -module.exports = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - - if (classof(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec.call(R, S); -}; - - - -/***/ }), - -/***/ 2261: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var regexpFlags = __webpack_require__(7066); -var stickyHelpers = __webpack_require__(2999); - -var nativeExec = RegExp.prototype.exec; -// This always refers to the native implementation, because the -// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, -// which loads this file before patching the method. -var nativeReplace = String.prototype.replace; - -var patchedExec = nativeExec; - -var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; -})(); - -var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; - -// nonparticipating capturing group, copied from es5-shim's String#split patch. -// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing -var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; - -if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y && re.sticky; - var flags = regexpFlags.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - - strCopy = String(str).slice(re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - - match = nativeExec.call(sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; -} - -module.exports = patchedExec; - - -/***/ }), - -/***/ 7066: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var anObject = __webpack_require__(9670); - -// `RegExp.prototype.flags` getter implementation -// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags -module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; -}; - - -/***/ }), - -/***/ 2999: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - - -var fails = __webpack_require__(7293); - -// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, -// so we use an intermediate function. -function RE(s, f) { - return RegExp(s, f); -} - -exports.UNSUPPORTED_Y = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; -}); - -exports.BROKEN_CARET = fails(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; -}); - - -/***/ }), - -/***/ 4488: -/***/ (function(module) { - -// `RequireObjectCoercible` abstract operation -// https://tc39.es/ecma262/#sec-requireobjectcoercible -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), - -/***/ 3505: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var createNonEnumerableProperty = __webpack_require__(8880); - -module.exports = function (key, value) { - try { - createNonEnumerableProperty(global, key, value); - } catch (error) { - global[key] = value; - } return value; -}; - - -/***/ }), - -/***/ 6340: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var getBuiltIn = __webpack_require__(5005); -var definePropertyModule = __webpack_require__(3070); -var wellKnownSymbol = __webpack_require__(5112); -var DESCRIPTORS = __webpack_require__(9781); - -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule.f; - - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { - defineProperty(Constructor, SPECIES, { - configurable: true, - get: function () { return this; } - }); - } -}; - - -/***/ }), - -/***/ 8003: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var defineProperty = __webpack_require__(3070).f; -var has = __webpack_require__(6656); -var wellKnownSymbol = __webpack_require__(5112); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - -module.exports = function (it, TAG, STATIC) { - if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { - defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); - } -}; - - -/***/ }), - -/***/ 6200: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var shared = __webpack_require__(2309); -var uid = __webpack_require__(9711); - -var keys = shared('keys'); - -module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - - -/***/ }), - -/***/ 5465: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var setGlobal = __webpack_require__(3505); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); - -module.exports = store; - - -/***/ }), - -/***/ 2309: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var IS_PURE = __webpack_require__(1913); -var store = __webpack_require__(5465); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.9.0', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2021 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), - -/***/ 6707: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var anObject = __webpack_require__(9670); -var aFunction = __webpack_require__(3099); -var wellKnownSymbol = __webpack_require__(5112); - -var SPECIES = wellKnownSymbol('species'); - -// `SpeciesConstructor` abstract operation -// https://tc39.es/ecma262/#sec-speciesconstructor -module.exports = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); -}; - - -/***/ }), - -/***/ 8710: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); -var requireObjectCoercible = __webpack_require__(4488); - -// `String.prototype.{ codePointAt, at }` methods implementation -var createMethod = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING ? S.charAt(position) : first - : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; -}; - -module.exports = { - // `String.prototype.codePointAt` method - // https://tc39.es/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod(true) -}; - - -/***/ }), - -/***/ 3197: -/***/ (function(module) { - -"use strict"; - -// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js -var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 -var base = 36; -var tMin = 1; -var tMax = 26; -var skew = 38; -var damp = 700; -var initialBias = 72; -var initialN = 128; // 0x80 -var delimiter = '-'; // '\x2D' -var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars -var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators -var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; -var baseMinusTMin = base - tMin; -var floor = Math.floor; -var stringFromCharCode = String.fromCharCode; - -/** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - */ -var ucs2decode = function (string) { - var output = []; - var counter = 0; - var length = string.length; - while (counter < length) { - var value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // It's a high surrogate, and there is a next character. - var extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // It's an unmatched surrogate; only append this code unit, in case the - // next code unit is the high surrogate of a surrogate pair. - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; -}; - -/** - * Converts a digit/integer into a basic code point. - */ -var digitToBasic = function (digit) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26); -}; - -/** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - */ -var adapt = function (delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); -}; - -/** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - */ -// eslint-disable-next-line max-statements -- TODO -var encode = function (input) { - var output = []; - - // Convert the input in UCS-2 to an array of Unicode code points. - input = ucs2decode(input); - - // Cache the length. - var inputLength = input.length; - - // Initialize the state. - var n = initialN; - var delta = 0; - var bias = initialBias; - var i, currentValue; - - // Handle the basic code points. - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - var basicLength = output.length; // number of basic code points. - var handledCPCount = basicLength; // number of code points that have been handled; - - // Finish the basic string with a delimiter unless it's empty. - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - // All non-basic code points < n have been handled already. Find the next larger one: - var m = maxInt; - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , but guard against overflow. - var handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - throw RangeError(OVERFLOW_ERROR); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < n && ++delta > maxInt) { - throw RangeError(OVERFLOW_ERROR); - } - if (currentValue == n) { - // Represent delta as a generalized variable-length integer. - var q = delta; - for (var k = base; /* no condition */; k += base) { - var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) break; - var qMinusT = q - t; - var baseMinusT = base - t; - output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT))); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - } - return output.join(''); -}; - -module.exports = function (input) { - var encoded = []; - var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.'); - var i, label; - for (i = 0; i < labels.length; i++) { - label = labels[i]; - encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label); - } - return encoded.join('.'); -}; - - -/***/ }), - -/***/ 6091: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var fails = __webpack_require__(7293); -var whitespaces = __webpack_require__(1361); - -var non = '\u200B\u0085\u180E'; - -// check that a method works with the correct list -// of whitespaces and has a correct name -module.exports = function (METHOD_NAME) { - return fails(function () { - return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME; - }); -}; - - -/***/ }), - -/***/ 3111: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var requireObjectCoercible = __webpack_require__(4488); -var whitespaces = __webpack_require__(1361); - -var whitespace = '[' + whitespaces + ']'; -var ltrim = RegExp('^' + whitespace + whitespace + '*'); -var rtrim = RegExp(whitespace + whitespace + '*$'); - -// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation -var createMethod = function (TYPE) { - return function ($this) { - var string = String(requireObjectCoercible($this)); - if (TYPE & 1) string = string.replace(ltrim, ''); - if (TYPE & 2) string = string.replace(rtrim, ''); - return string; - }; -}; - -module.exports = { - // `String.prototype.{ trimLeft, trimStart }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimstart - start: createMethod(1), - // `String.prototype.{ trimRight, trimEnd }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimend - end: createMethod(2), - // `String.prototype.trim` method - // https://tc39.es/ecma262/#sec-string.prototype.trim - trim: createMethod(3) -}; - - -/***/ }), - -/***/ 1400: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); - -var max = Math.max; -var min = Math.min; - -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); -}; - - -/***/ }), - -/***/ 7067: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); -var toLength = __webpack_require__(7466); - -// `ToIndex` abstract operation -// https://tc39.es/ecma262/#sec-toindex -module.exports = function (it) { - if (it === undefined) return 0; - var number = toInteger(it); - var length = toLength(number); - if (number !== length) throw RangeError('Wrong length or index'); - return length; -}; - - -/***/ }), - -/***/ 5656: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -// toObject with fallback for non-array-like ES3 strings -var IndexedObject = __webpack_require__(8361); -var requireObjectCoercible = __webpack_require__(4488); - -module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); -}; - - -/***/ }), - -/***/ 9958: -/***/ (function(module) { - -var ceil = Math.ceil; -var floor = Math.floor; - -// `ToInteger` abstract operation -// https://tc39.es/ecma262/#sec-tointeger -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - - -/***/ }), - -/***/ 7466: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); - -var min = Math.min; - -// `ToLength` abstract operation -// https://tc39.es/ecma262/#sec-tolength -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 -}; - - -/***/ }), - -/***/ 7908: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var requireObjectCoercible = __webpack_require__(4488); - -// `ToObject` abstract operation -// https://tc39.es/ecma262/#sec-toobject -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); -}; - - -/***/ }), - -/***/ 4590: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toPositiveInteger = __webpack_require__(3002); - -module.exports = function (it, BYTES) { - var offset = toPositiveInteger(it); - if (offset % BYTES) throw RangeError('Wrong offset'); - return offset; -}; - - -/***/ }), - -/***/ 3002: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toInteger = __webpack_require__(9958); - -module.exports = function (it) { - var result = toInteger(it); - if (result < 0) throw RangeError("The argument can't be less than 0"); - return result; -}; - - -/***/ }), - -/***/ 7593: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var isObject = __webpack_require__(111); - -// `ToPrimitive` abstract operation -// https://tc39.es/ecma262/#sec-toprimitive -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), - -/***/ 1694: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(5112); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var test = {}; - -test[TO_STRING_TAG] = 'z'; - -module.exports = String(test) === '[object z]'; - - -/***/ }), - -/***/ 9843: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var global = __webpack_require__(7854); -var DESCRIPTORS = __webpack_require__(9781); -var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(3832); -var ArrayBufferViewCore = __webpack_require__(260); -var ArrayBufferModule = __webpack_require__(3331); -var anInstance = __webpack_require__(5787); -var createPropertyDescriptor = __webpack_require__(9114); -var createNonEnumerableProperty = __webpack_require__(8880); -var toLength = __webpack_require__(7466); -var toIndex = __webpack_require__(7067); -var toOffset = __webpack_require__(4590); -var toPrimitive = __webpack_require__(7593); -var has = __webpack_require__(6656); -var classof = __webpack_require__(648); -var isObject = __webpack_require__(111); -var create = __webpack_require__(30); -var setPrototypeOf = __webpack_require__(7674); -var getOwnPropertyNames = __webpack_require__(8006).f; -var typedArrayFrom = __webpack_require__(7321); -var forEach = __webpack_require__(2092).forEach; -var setSpecies = __webpack_require__(6340); -var definePropertyModule = __webpack_require__(3070); -var getOwnPropertyDescriptorModule = __webpack_require__(1236); -var InternalStateModule = __webpack_require__(9909); -var inheritIfRequired = __webpack_require__(9587); - -var getInternalState = InternalStateModule.get; -var setInternalState = InternalStateModule.set; -var nativeDefineProperty = definePropertyModule.f; -var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; -var round = Math.round; -var RangeError = global.RangeError; -var ArrayBuffer = ArrayBufferModule.ArrayBuffer; -var DataView = ArrayBufferModule.DataView; -var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; -var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; -var TypedArray = ArrayBufferViewCore.TypedArray; -var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; -var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; -var isTypedArray = ArrayBufferViewCore.isTypedArray; -var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; -var WRONG_LENGTH = 'Wrong length'; - -var fromList = function (C, list) { - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); - while (length > index) result[index] = list[index++]; - return result; -}; - -var addGetter = function (it, key) { - nativeDefineProperty(it, key, { get: function () { - return getInternalState(this)[key]; - } }); -}; - -var isArrayBuffer = function (it) { - var klass; - return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer'; -}; - -var isTypedArrayIndex = function (target, key) { - return isTypedArray(target) - && typeof key != 'symbol' - && key in target - && String(+key) == String(key); -}; - -var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { - return isTypedArrayIndex(target, key = toPrimitive(key, true)) - ? createPropertyDescriptor(2, target[key]) - : nativeGetOwnPropertyDescriptor(target, key); -}; - -var wrappedDefineProperty = function defineProperty(target, key, descriptor) { - if (isTypedArrayIndex(target, key = toPrimitive(key, true)) - && isObject(descriptor) - && has(descriptor, 'value') - && !has(descriptor, 'get') - && !has(descriptor, 'set') - // TODO: add validation descriptor w/o calling accessors - && !descriptor.configurable - && (!has(descriptor, 'writable') || descriptor.writable) - && (!has(descriptor, 'enumerable') || descriptor.enumerable) - ) { - target[key] = descriptor.value; - return target; - } return nativeDefineProperty(target, key, descriptor); -}; - -if (DESCRIPTORS) { - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; - definePropertyModule.f = wrappedDefineProperty; - addGetter(TypedArrayPrototype, 'buffer'); - addGetter(TypedArrayPrototype, 'byteOffset'); - addGetter(TypedArrayPrototype, 'byteLength'); - addGetter(TypedArrayPrototype, 'length'); - } - - $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { - getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, - defineProperty: wrappedDefineProperty - }); - - module.exports = function (TYPE, wrapper, CLAMPED) { - var BYTES = TYPE.match(/\d+$/)[0] / 8; - var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; - var GETTER = 'get' + TYPE; - var SETTER = 'set' + TYPE; - var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; - var TypedArrayConstructor = NativeTypedArrayConstructor; - var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; - var exported = {}; - - var getter = function (that, index) { - var data = getInternalState(that); - return data.view[GETTER](index * BYTES + data.byteOffset, true); - }; - - var setter = function (that, index, value) { - var data = getInternalState(that); - if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; - data.view[SETTER](index * BYTES + data.byteOffset, value, true); - }; - - var addElement = function (that, index) { - nativeDefineProperty(that, index, { - get: function () { - return getter(this, index); - }, - set: function (value) { - return setter(this, index, value); - }, - enumerable: true - }); - }; - - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - TypedArrayConstructor = wrapper(function (that, data, offset, $length) { - anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME); - var index = 0; - var byteOffset = 0; - var buffer, byteLength, length; - if (!isObject(data)) { - length = toIndex(data); - byteLength = length * BYTES; - buffer = new ArrayBuffer(byteLength); - } else if (isArrayBuffer(data)) { - buffer = data; - byteOffset = toOffset(offset, BYTES); - var $len = data.byteLength; - if ($length === undefined) { - if ($len % BYTES) throw RangeError(WRONG_LENGTH); - byteLength = $len - byteOffset; - if (byteLength < 0) throw RangeError(WRONG_LENGTH); - } else { - byteLength = toLength($length) * BYTES; - if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH); - } - length = byteLength / BYTES; - } else if (isTypedArray(data)) { - return fromList(TypedArrayConstructor, data); - } else { - return typedArrayFrom.call(TypedArrayConstructor, data); - } - setInternalState(that, { - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength, - length: length, - view: new DataView(buffer) - }); - while (index < length) addElement(that, index++); - }); - - if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); - TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); - } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { - TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { - anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME); - return inheritIfRequired(function () { - if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); - if (isArrayBuffer(data)) return $length !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) - : typedArrayOffset !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) - : new NativeTypedArrayConstructor(data); - if (isTypedArray(data)) return fromList(TypedArrayConstructor, data); - return typedArrayFrom.call(TypedArrayConstructor, data); - }(), dummy, TypedArrayConstructor); - }); - - if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); - forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { - if (!(key in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); - } - }); - TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; - } - - if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); - } - - if (TYPED_ARRAY_TAG) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); - } - - exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; - - $({ - global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS - }, exported); - - if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); - } - - if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); - } - - setSpecies(CONSTRUCTOR_NAME); - }; -} else module.exports = function () { /* empty */ }; - - -/***/ }), - -/***/ 3832: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -/* eslint-disable no-new -- required for testing */ -var global = __webpack_require__(7854); -var fails = __webpack_require__(7293); -var checkCorrectnessOfIteration = __webpack_require__(7072); -var NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(260).NATIVE_ARRAY_BUFFER_VIEWS; - -var ArrayBuffer = global.ArrayBuffer; -var Int8Array = global.Int8Array; - -module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { - Int8Array(1); -}) || !fails(function () { - new Int8Array(-1); -}) || !checkCorrectnessOfIteration(function (iterable) { - new Int8Array(); - new Int8Array(null); - new Int8Array(1.5); - new Int8Array(iterable); -}, true) || fails(function () { - // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill - return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; -}); - - -/***/ }), - -/***/ 3074: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor; -var speciesConstructor = __webpack_require__(6707); - -module.exports = function (instance, list) { - var C = speciesConstructor(instance, instance.constructor); - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); - while (length > index) result[index] = list[index++]; - return result; -}; - - -/***/ }), - -/***/ 7321: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var toObject = __webpack_require__(7908); -var toLength = __webpack_require__(7466); -var getIteratorMethod = __webpack_require__(1246); -var isArrayIteratorMethod = __webpack_require__(7659); -var bind = __webpack_require__(9974); -var aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor; - -module.exports = function from(source /* , mapfn, thisArg */) { - var O = toObject(source); - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var i, length, result, step, iterator, next; - if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) { - iterator = iteratorMethod.call(O); - next = iterator.next; - O = []; - while (!(step = next.call(iterator)).done) { - O.push(step.value); - } - } - if (mapping && argumentsLength > 2) { - mapfn = bind(mapfn, arguments[2], 2); - } - length = toLength(O.length); - result = new (aTypedArrayConstructor(this))(length); - for (i = 0; length > i; i++) { - result[i] = mapping ? mapfn(O[i], i) : O[i]; - } - return result; -}; - - -/***/ }), - -/***/ 9711: -/***/ (function(module) { - -var id = 0; -var postfix = Math.random(); - -module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; - - -/***/ }), - -/***/ 3307: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var NATIVE_SYMBOL = __webpack_require__(133); - -module.exports = NATIVE_SYMBOL - /* global Symbol -- safe */ - && !Symbol.sham - && typeof Symbol.iterator == 'symbol'; - - -/***/ }), - -/***/ 5112: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var shared = __webpack_require__(2309); -var has = __webpack_require__(6656); -var uid = __webpack_require__(9711); -var NATIVE_SYMBOL = __webpack_require__(133); -var USE_SYMBOL_AS_UID = __webpack_require__(3307); - -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; -}; - - -/***/ }), - -/***/ 1361: -/***/ (function(module) { - -// a string of all valid unicode whitespaces -module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + - '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - - -/***/ }), - -/***/ 8264: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var global = __webpack_require__(7854); -var arrayBufferModule = __webpack_require__(3331); -var setSpecies = __webpack_require__(6340); - -var ARRAY_BUFFER = 'ArrayBuffer'; -var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; -var NativeArrayBuffer = global[ARRAY_BUFFER]; - -// `ArrayBuffer` constructor -// https://tc39.es/ecma262/#sec-arraybuffer-constructor -$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, { - ArrayBuffer: ArrayBuffer -}); - -setSpecies(ARRAY_BUFFER); - - -/***/ }), - -/***/ 2222: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var fails = __webpack_require__(7293); -var isArray = __webpack_require__(3157); -var isObject = __webpack_require__(111); -var toObject = __webpack_require__(7908); -var toLength = __webpack_require__(7466); -var createProperty = __webpack_require__(6135); -var arraySpeciesCreate = __webpack_require__(5417); -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); -var wellKnownSymbol = __webpack_require__(5112); -var V8_VERSION = __webpack_require__(7392); - -var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); -var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; - -// We can't use this feature detection in V8 since it causes -// deoptimization and serious performance degradation -// https://github.com/zloirock/core-js/issues/679 -var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; -}); - -var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); - -var isConcatSpreadable = function (O) { - if (!isObject(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); -}; - -var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; - -// `Array.prototype.concat` method -// https://tc39.es/ecma262/#sec-array.prototype.concat -// with adding support of @@isConcatSpreadable and @@species -$({ target: 'Array', proto: true, forced: FORCED }, { - // eslint-disable-next-line no-unused-vars -- required for `.length` - concat: function concat(arg) { - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - A.length = n; - return A; - } -}); - - -/***/ }), - -/***/ 7327: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $filter = __webpack_require__(2092).filter; -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); - -// `Array.prototype.filter` method -// https://tc39.es/ecma262/#sec-array.prototype.filter -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - filter: function filter(callbackfn /* , thisArg */) { - return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ 2772: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $indexOf = __webpack_require__(1318).indexOf; -var arrayMethodIsStrict = __webpack_require__(9341); - -var nativeIndexOf = [].indexOf; - -var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0; -var STRICT_METHOD = arrayMethodIsStrict('indexOf'); - -// `Array.prototype.indexOf` method -// https://tc39.es/ecma262/#sec-array.prototype.indexof -$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, { - indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { - return NEGATIVE_ZERO - // convert -0 to +0 - ? nativeIndexOf.apply(this, arguments) || 0 - : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ 6992: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var toIndexedObject = __webpack_require__(5656); -var addToUnscopables = __webpack_require__(1223); -var Iterators = __webpack_require__(7497); -var InternalStateModule = __webpack_require__(9909); -var defineIterator = __webpack_require__(654); - -var ARRAY_ITERATOR = 'Array Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); - -// `Array.prototype.entries` method -// https://tc39.es/ecma262/#sec-array.prototype.entries -// `Array.prototype.keys` method -// https://tc39.es/ecma262/#sec-array.prototype.keys -// `Array.prototype.values` method -// https://tc39.es/ecma262/#sec-array.prototype.values -// `Array.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-array.prototype-@@iterator -// `CreateArrayIterator` internal method -// https://tc39.es/ecma262/#sec-createarrayiterator -module.exports = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }); -// `%ArrayIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next -}, function () { - var state = getInternalState(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% -// https://tc39.es/ecma262/#sec-createunmappedargumentsobject -// https://tc39.es/ecma262/#sec-createmappedargumentsobject -Iterators.Arguments = Iterators.Array; - -// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), - -/***/ 1249: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $map = __webpack_require__(2092).map; -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); - -// `Array.prototype.map` method -// https://tc39.es/ecma262/#sec-array.prototype.map -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ 7042: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var isObject = __webpack_require__(111); -var isArray = __webpack_require__(3157); -var toAbsoluteIndex = __webpack_require__(1400); -var toLength = __webpack_require__(7466); -var toIndexedObject = __webpack_require__(5656); -var createProperty = __webpack_require__(6135); -var wellKnownSymbol = __webpack_require__(5112); -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); - -var SPECIES = wellKnownSymbol('species'); -var nativeSlice = [].slice; -var max = Math.max; - -// `Array.prototype.slice` method -// https://tc39.es/ecma262/#sec-array.prototype.slice -// fallback for not array-like ES3 strings and DOM objects -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - slice: function slice(start, end) { - var O = toIndexedObject(this); - var length = toLength(O.length); - var k = toAbsoluteIndex(start, length); - var fin = toAbsoluteIndex(end === undefined ? length : end, length); - // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible - var Constructor, result, n; - if (isArray(O)) { - Constructor = O.constructor; - // cross-realm fallback - if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) { - Constructor = undefined; - } else if (isObject(Constructor)) { - Constructor = Constructor[SPECIES]; - if (Constructor === null) Constructor = undefined; - } - if (Constructor === Array || Constructor === undefined) { - return nativeSlice.call(O, k, fin); - } - } - result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0)); - for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); - result.length = n; - return result; - } -}); - - -/***/ }), - -/***/ 561: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var toAbsoluteIndex = __webpack_require__(1400); -var toInteger = __webpack_require__(9958); -var toLength = __webpack_require__(7466); -var toObject = __webpack_require__(7908); -var arraySpeciesCreate = __webpack_require__(5417); -var createProperty = __webpack_require__(6135); -var arrayMethodHasSpeciesSupport = __webpack_require__(1194); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); - -var max = Math.max; -var min = Math.min; -var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; - -// `Array.prototype.splice` method -// https://tc39.es/ecma262/#sec-array.prototype.splice -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - splice: function splice(start, deleteCount /* , ...items */) { - var O = toObject(this); - var len = toLength(O.length); - var actualStart = toAbsoluteIndex(start, len); - var argumentsLength = arguments.length; - var insertCount, actualDeleteCount, A, k, from, to; - if (argumentsLength === 0) { - insertCount = actualDeleteCount = 0; - } else if (argumentsLength === 1) { - insertCount = 0; - actualDeleteCount = len - actualStart; - } else { - insertCount = argumentsLength - 2; - actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart); - } - if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) { - throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); - } - A = arraySpeciesCreate(O, actualDeleteCount); - for (k = 0; k < actualDeleteCount; k++) { - from = actualStart + k; - if (from in O) createProperty(A, k, O[from]); - } - A.length = actualDeleteCount; - if (insertCount < actualDeleteCount) { - for (k = actualStart; k < len - actualDeleteCount; k++) { - from = k + actualDeleteCount; - to = k + insertCount; - if (from in O) O[to] = O[from]; - else delete O[to]; - } - for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1]; - } else if (insertCount > actualDeleteCount) { - for (k = len - actualDeleteCount; k > actualStart; k--) { - from = k + actualDeleteCount - 1; - to = k + insertCount - 1; - if (from in O) O[to] = O[from]; - else delete O[to]; - } - } - for (k = 0; k < insertCount; k++) { - O[k + actualStart] = arguments[k + 2]; - } - O.length = len - actualDeleteCount + insertCount; - return A; - } -}); - - -/***/ }), - -/***/ 8309: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(9781); -var defineProperty = __webpack_require__(3070).f; - -var FunctionPrototype = Function.prototype; -var FunctionPrototypeToString = FunctionPrototype.toString; -var nameRE = /^\s*function ([^ (]*)/; -var NAME = 'name'; - -// Function instances `.name` property -// https://tc39.es/ecma262/#sec-function-instances-name -if (DESCRIPTORS && !(NAME in FunctionPrototype)) { - defineProperty(FunctionPrototype, NAME, { - configurable: true, - get: function () { - try { - return FunctionPrototypeToString.call(this).match(nameRE)[1]; - } catch (error) { - return ''; - } - } - }); -} - - -/***/ }), - -/***/ 489: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var $ = __webpack_require__(2109); -var fails = __webpack_require__(7293); -var toObject = __webpack_require__(7908); -var nativeGetPrototypeOf = __webpack_require__(9518); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544); - -var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); - -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { - getPrototypeOf: function getPrototypeOf(it) { - return nativeGetPrototypeOf(toObject(it)); - } -}); - - - -/***/ }), - -/***/ 1539: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(1694); -var redefine = __webpack_require__(1320); -var toString = __webpack_require__(288); - -// `Object.prototype.toString` method -// https://tc39.es/ecma262/#sec-object.prototype.tostring -if (!TO_STRING_TAG_SUPPORT) { - redefine(Object.prototype, 'toString', toString, { unsafe: true }); -} - - -/***/ }), - -/***/ 4916: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var exec = __webpack_require__(2261); - -// `RegExp.prototype.exec` method -// https://tc39.es/ecma262/#sec-regexp.prototype.exec -$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { - exec: exec -}); - - -/***/ }), - -/***/ 9714: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var redefine = __webpack_require__(1320); -var anObject = __webpack_require__(9670); -var fails = __webpack_require__(7293); -var flags = __webpack_require__(7066); - -var TO_STRING = 'toString'; -var RegExpPrototype = RegExp.prototype; -var nativeToString = RegExpPrototype[TO_STRING]; - -var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); -// FF44- RegExp#toString has a wrong name -var INCORRECT_NAME = nativeToString.name != TO_STRING; - -// `RegExp.prototype.toString` method -// https://tc39.es/ecma262/#sec-regexp.prototype.tostring -if (NOT_GENERIC || INCORRECT_NAME) { - redefine(RegExp.prototype, TO_STRING, function toString() { - var R = anObject(this); - var p = String(R.source); - var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf); - return '/' + p + '/' + f; - }, { unsafe: true }); -} - - -/***/ }), - -/***/ 8783: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var charAt = __webpack_require__(8710).charAt; -var InternalStateModule = __webpack_require__(9909); -var defineIterator = __webpack_require__(654); - -var STRING_ITERATOR = 'String Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); - -// `String.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-string.prototype-@@iterator -defineIterator(String, 'String', function (iterated) { - setInternalState(this, { - type: STRING_ITERATOR, - string: String(iterated), - index: 0 - }); -// `%StringIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next -}, function next() { - var state = getInternalState(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) return { value: undefined, done: true }; - point = charAt(string, index); - state.index += point.length; - return { value: point, done: false }; -}); - - -/***/ }), - -/***/ 4723: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007); -var anObject = __webpack_require__(9670); -var toLength = __webpack_require__(7466); -var requireObjectCoercible = __webpack_require__(4488); -var advanceStringIndex = __webpack_require__(1530); -var regExpExec = __webpack_require__(7651); - -// @@match logic -fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.es/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = requireObjectCoercible(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - - if (!rx.global) return regExpExec(rx, S); - - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regExpExec(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; -}); - - -/***/ }), - -/***/ 5306: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007); -var anObject = __webpack_require__(9670); -var toLength = __webpack_require__(7466); -var toInteger = __webpack_require__(9958); -var requireObjectCoercible = __webpack_require__(4488); -var advanceStringIndex = __webpack_require__(1530); -var getSubstitution = __webpack_require__(647); -var regExpExec = __webpack_require__(7651); - -var max = Math.max; -var min = Math.min; - -var maybeToString = function (it) { - return it === undefined ? it : String(it); -}; - -// @@replace logic -fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; - var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; - var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; - - return [ - // `String.prototype.replace` method - // https://tc39.es/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = requireObjectCoercible(this); - var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; - return replacer !== undefined - ? replacer.call(searchValue, O, replaceValue) - : nativeReplace.call(String(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - if ( - (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || - (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) - ) { - var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); - if (res.done) return res.value; - } - - var rx = anObject(regexp); - var S = String(this); - - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regExpExec(rx, S); - if (result === null) break; - - results.push(result); - if (!global) break; - - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - } - - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - - var matched = String(result[0]); - var position = max(min(toInteger(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + S.slice(nextSourcePosition); - } - ]; -}); - - -/***/ }), - -/***/ 3123: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007); -var isRegExp = __webpack_require__(7850); -var anObject = __webpack_require__(9670); -var requireObjectCoercible = __webpack_require__(4488); -var speciesConstructor = __webpack_require__(6707); -var advanceStringIndex = __webpack_require__(1530); -var toLength = __webpack_require__(7466); -var callRegExpExec = __webpack_require__(7651); -var regexpExec = __webpack_require__(2261); -var fails = __webpack_require__(7293); - -var arrayPush = [].push; -var min = Math.min; -var MAX_UINT32 = 0xFFFFFFFF; - -// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError -var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); }); - -// @@split logic -fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - // eslint-disable-next-line regexp/no-empty-group -- required for testing - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegExp(separator)) { - return nativeSplit.call(string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output.length > lim ? output.slice(0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [ - // `String.prototype.split` method - // https://tc39.es/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y ? 'y' : 'g'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - if ( - z === null || - (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; -}, !SUPPORTS_Y); - - -/***/ }), - -/***/ 3210: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(2109); -var $trim = __webpack_require__(3111).trim; -var forcedStringTrimMethod = __webpack_require__(6091); - -// `String.prototype.trim` method -// https://tc39.es/ecma262/#sec-string.prototype.trim -$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { - trim: function trim() { - return $trim(this); - } -}); - - -/***/ }), - -/***/ 2990: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $copyWithin = __webpack_require__(1048); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.copyWithin` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin -exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { - return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); -}); - - -/***/ }), - -/***/ 8927: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $every = __webpack_require__(2092).every; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.every` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every -exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { - return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 3105: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $fill = __webpack_require__(1285); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.fill` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill -// eslint-disable-next-line no-unused-vars -- required for `.length` -exportTypedArrayMethod('fill', function fill(value /* , start, end */) { - return $fill.apply(aTypedArray(this), arguments); -}); - - -/***/ }), - -/***/ 5035: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $filter = __webpack_require__(2092).filter; -var fromSpeciesAndList = __webpack_require__(3074); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.filter` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter -exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { - var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - return fromSpeciesAndList(this, list); -}); - - -/***/ }), - -/***/ 7174: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $findIndex = __webpack_require__(2092).findIndex; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.findIndex` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex -exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { - return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 4345: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $find = __webpack_require__(2092).find; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.find` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find -exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { - return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 2846: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $forEach = __webpack_require__(2092).forEach; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.forEach` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach -exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { - $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 4731: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $includes = __webpack_require__(1318).includes; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.includes` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes -exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { - return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 7209: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $indexOf = __webpack_require__(1318).indexOf; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.indexOf` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof -exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { - return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 6319: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(7854); -var ArrayBufferViewCore = __webpack_require__(260); -var ArrayIterators = __webpack_require__(6992); -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); -var Uint8Array = global.Uint8Array; -var arrayValues = ArrayIterators.values; -var arrayKeys = ArrayIterators.keys; -var arrayEntries = ArrayIterators.entries; -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR]; - -var CORRECT_ITER_NAME = !!nativeTypedArrayIterator - && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined); - -var typedArrayValues = function values() { - return arrayValues.call(aTypedArray(this)); -}; - -// `%TypedArray%.prototype.entries` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries -exportTypedArrayMethod('entries', function entries() { - return arrayEntries.call(aTypedArray(this)); -}); -// `%TypedArray%.prototype.keys` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys -exportTypedArrayMethod('keys', function keys() { - return arrayKeys.call(aTypedArray(this)); -}); -// `%TypedArray%.prototype.values` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values -exportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME); -// `%TypedArray%.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator -exportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME); - - -/***/ }), - -/***/ 8867: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $join = [].join; - -// `%TypedArray%.prototype.join` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join -// eslint-disable-next-line no-unused-vars -- required for `.length` -exportTypedArrayMethod('join', function join(separator) { - return $join.apply(aTypedArray(this), arguments); -}); - - -/***/ }), - -/***/ 7789: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $lastIndexOf = __webpack_require__(6583); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.lastIndexOf` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof -// eslint-disable-next-line no-unused-vars -- required for `.length` -exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { - return $lastIndexOf.apply(aTypedArray(this), arguments); -}); - - -/***/ }), - -/***/ 3739: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $map = __webpack_require__(2092).map; -var speciesConstructor = __webpack_require__(6707); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.map` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map -exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { - return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { - return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length); - }); -}); - - -/***/ }), - -/***/ 4483: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $reduceRight = __webpack_require__(3671).right; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.reduceRicht` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright -exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { - return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 9368: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $reduce = __webpack_require__(3671).left; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.reduce` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce -exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { - return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 2056: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var floor = Math.floor; - -// `%TypedArray%.prototype.reverse` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse -exportTypedArrayMethod('reverse', function reverse() { - var that = this; - var length = aTypedArray(that).length; - var middle = floor(length / 2); - var index = 0; - var value; - while (index < middle) { - value = that[index]; - that[index++] = that[--length]; - that[length] = value; - } return that; -}); - - -/***/ }), - -/***/ 3462: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var toLength = __webpack_require__(7466); -var toOffset = __webpack_require__(4590); -var toObject = __webpack_require__(7908); -var fails = __webpack_require__(7293); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -var FORCED = fails(function () { - /* global Int8Array -- safe */ - new Int8Array(1).set({}); -}); - -// `%TypedArray%.prototype.set` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set -exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { - aTypedArray(this); - var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); - var length = this.length; - var src = toObject(arrayLike); - var len = toLength(src.length); - var index = 0; - if (len + offset > length) throw RangeError('Wrong length'); - while (index < len) this[offset + index] = src[index++]; -}, FORCED); - - -/***/ }), - -/***/ 678: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var speciesConstructor = __webpack_require__(6707); -var fails = __webpack_require__(7293); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $slice = [].slice; - -var FORCED = fails(function () { - /* global Int8Array -- safe */ - new Int8Array(1).slice(); -}); - -// `%TypedArray%.prototype.slice` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice -exportTypedArrayMethod('slice', function slice(start, end) { - var list = $slice.call(aTypedArray(this), start, end); - var C = speciesConstructor(this, this.constructor); - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); - while (length > index) result[index] = list[index++]; - return result; -}, FORCED); - - -/***/ }), - -/***/ 7462: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var $some = __webpack_require__(2092).some; - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.some` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some -exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { - return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); -}); - - -/***/ }), - -/***/ 3824: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $sort = [].sort; - -// `%TypedArray%.prototype.sort` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort -exportTypedArrayMethod('sort', function sort(comparefn) { - return $sort.call(aTypedArray(this), comparefn); -}); - - -/***/ }), - -/***/ 5021: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var ArrayBufferViewCore = __webpack_require__(260); -var toLength = __webpack_require__(7466); -var toAbsoluteIndex = __webpack_require__(1400); -var speciesConstructor = __webpack_require__(6707); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.subarray` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray -exportTypedArrayMethod('subarray', function subarray(begin, end) { - var O = aTypedArray(this); - var length = O.length; - var beginIndex = toAbsoluteIndex(begin, length); - return new (speciesConstructor(O, O.constructor))( - O.buffer, - O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, - toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) - ); -}); - - -/***/ }), - -/***/ 2974: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(7854); -var ArrayBufferViewCore = __webpack_require__(260); -var fails = __webpack_require__(7293); - -var Int8Array = global.Int8Array; -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var $toLocaleString = [].toLocaleString; -var $slice = [].slice; - -// iOS Safari 6.x fails here -var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { - $toLocaleString.call(new Int8Array(1)); -}); - -var FORCED = fails(function () { - return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString(); -}) || !fails(function () { - Int8Array.prototype.toLocaleString.call([1, 2]); -}); - -// `%TypedArray%.prototype.toLocaleString` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring -exportTypedArrayMethod('toLocaleString', function toLocaleString() { - return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments); -}, FORCED); - - -/***/ }), - -/***/ 5016: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -var exportTypedArrayMethod = __webpack_require__(260).exportTypedArrayMethod; -var fails = __webpack_require__(7293); -var global = __webpack_require__(7854); - -var Uint8Array = global.Uint8Array; -var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; -var arrayToString = [].toString; -var arrayJoin = [].join; - -if (fails(function () { arrayToString.call({}); })) { - arrayToString = function toString() { - return arrayJoin.call(this); - }; -} - -var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString; - -// `%TypedArray%.prototype.toString` method -// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring -exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); - - -/***/ }), - -/***/ 2472: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var createTypedArrayConstructor = __webpack_require__(9843); - -// `Uint8Array` constructor -// https://tc39.es/ecma262/#sec-typedarray-objects -createTypedArrayConstructor('Uint8', function (init) { - return function Uint8Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - - -/***/ }), - -/***/ 4747: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var DOMIterables = __webpack_require__(8324); -var forEach = __webpack_require__(8533); -var createNonEnumerableProperty = __webpack_require__(8880); - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { - createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); - } catch (error) { - CollectionPrototype.forEach = forEach; - } -} - - -/***/ }), - -/***/ 3948: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -var global = __webpack_require__(7854); -var DOMIterables = __webpack_require__(8324); -var ArrayIteratorMethods = __webpack_require__(6992); -var createNonEnumerableProperty = __webpack_require__(8880); -var wellKnownSymbol = __webpack_require__(5112); - -var ITERATOR = wellKnownSymbol('iterator'); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var ArrayValues = ArrayIteratorMethods.values; - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - if (CollectionPrototype) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[ITERATOR] !== ArrayValues) try { - createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); - } catch (error) { - CollectionPrototype[ITERATOR] = ArrayValues; - } - if (!CollectionPrototype[TO_STRING_TAG]) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { - createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); - } catch (error) { - CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; - } - } - } -} - - -/***/ }), - -/***/ 1637: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` -__webpack_require__(6992); -var $ = __webpack_require__(2109); -var getBuiltIn = __webpack_require__(5005); -var USE_NATIVE_URL = __webpack_require__(590); -var redefine = __webpack_require__(1320); -var redefineAll = __webpack_require__(2248); -var setToStringTag = __webpack_require__(8003); -var createIteratorConstructor = __webpack_require__(4994); -var InternalStateModule = __webpack_require__(9909); -var anInstance = __webpack_require__(5787); -var hasOwn = __webpack_require__(6656); -var bind = __webpack_require__(9974); -var classof = __webpack_require__(648); -var anObject = __webpack_require__(9670); -var isObject = __webpack_require__(111); -var create = __webpack_require__(30); -var createPropertyDescriptor = __webpack_require__(9114); -var getIterator = __webpack_require__(8554); -var getIteratorMethod = __webpack_require__(1246); -var wellKnownSymbol = __webpack_require__(5112); - -var $fetch = getBuiltIn('fetch'); -var Headers = getBuiltIn('Headers'); -var ITERATOR = wellKnownSymbol('iterator'); -var URL_SEARCH_PARAMS = 'URLSearchParams'; -var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); -var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); - -var plus = /\+/g; -var sequences = Array(4); - -var percentSequence = function (bytes) { - return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); -}; - -var percentDecode = function (sequence) { - try { - return decodeURIComponent(sequence); - } catch (error) { - return sequence; - } -}; - -var deserialize = function (it) { - var result = it.replace(plus, ' '); - var bytes = 4; - try { - return decodeURIComponent(result); - } catch (error) { - while (bytes) { - result = result.replace(percentSequence(bytes--), percentDecode); - } - return result; - } -}; - -var find = /[!'()~]|%20/g; - -var replace = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+' -}; - -var replacer = function (match) { - return replace[match]; -}; - -var serialize = function (it) { - return encodeURIComponent(it).replace(find, replacer); -}; - -var parseSearchParams = function (result, query) { - if (query) { - var attributes = query.split('&'); - var index = 0; - var attribute, entry; - while (index < attributes.length) { - attribute = attributes[index++]; - if (attribute.length) { - entry = attribute.split('='); - result.push({ - key: deserialize(entry.shift()), - value: deserialize(entry.join('=')) - }); - } - } - } -}; - -var updateSearchParams = function (query) { - this.entries.length = 0; - parseSearchParams(this.entries, query); -}; - -var validateArgumentsLength = function (passed, required) { - if (passed < required) throw TypeError('Not enough arguments'); -}; - -var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { - setInternalState(this, { - type: URL_SEARCH_PARAMS_ITERATOR, - iterator: getIterator(getInternalParamsState(params).entries), - kind: kind - }); -}, 'Iterator', function next() { - var state = getInternalIteratorState(this); - var kind = state.kind; - var step = state.iterator.next(); - var entry = step.value; - if (!step.done) { - step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value]; - } return step; -}); - -// `URLSearchParams` constructor -// https://url.spec.whatwg.org/#interface-urlsearchparams -var URLSearchParamsConstructor = function URLSearchParams(/* init */) { - anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS); - var init = arguments.length > 0 ? arguments[0] : undefined; - var that = this; - var entries = []; - var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; - - setInternalState(that, { - type: URL_SEARCH_PARAMS, - entries: entries, - updateURL: function () { /* empty */ }, - updateSearchParams: updateSearchParams - }); - - if (init !== undefined) { - if (isObject(init)) { - iteratorMethod = getIteratorMethod(init); - if (typeof iteratorMethod === 'function') { - iterator = iteratorMethod.call(init); - next = iterator.next; - while (!(step = next.call(iterator)).done) { - entryIterator = getIterator(anObject(step.value)); - entryNext = entryIterator.next; - if ( - (first = entryNext.call(entryIterator)).done || - (second = entryNext.call(entryIterator)).done || - !entryNext.call(entryIterator).done - ) throw TypeError('Expected sequence with length 2'); - entries.push({ key: first.value + '', value: second.value + '' }); - } - } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' }); - } else { - parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); - } - } -}; - -var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; - -redefineAll(URLSearchParamsPrototype, { - // `URLSearchParams.prototype.append` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-append - append: function append(name, value) { - validateArgumentsLength(arguments.length, 2); - var state = getInternalParamsState(this); - state.entries.push({ key: name + '', value: value + '' }); - state.updateURL(); - }, - // `URLSearchParams.prototype.delete` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-delete - 'delete': function (name) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index].key === key) entries.splice(index, 1); - else index++; - } - state.updateURL(); - }, - // `URLSearchParams.prototype.get` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-get - get: function get(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) return entries[index].value; - } - return null; - }, - // `URLSearchParams.prototype.getAll` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-getall - getAll: function getAll(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var result = []; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) result.push(entries[index].value); - } - return result; - }, - // `URLSearchParams.prototype.has` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-has - has: function has(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index++].key === key) return true; - } - return false; - }, - // `URLSearchParams.prototype.set` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-set - set: function set(name, value) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var found = false; - var key = name + ''; - var val = value + ''; - var index = 0; - var entry; - for (; index < entries.length; index++) { - entry = entries[index]; - if (entry.key === key) { - if (found) entries.splice(index--, 1); - else { - found = true; - entry.value = val; - } - } - } - if (!found) entries.push({ key: key, value: val }); - state.updateURL(); - }, - // `URLSearchParams.prototype.sort` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-sort - sort: function sort() { - var state = getInternalParamsState(this); - var entries = state.entries; - // Array#sort is not stable in some engines - var slice = entries.slice(); - var entry, entriesIndex, sliceIndex; - entries.length = 0; - for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { - entry = slice[sliceIndex]; - for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { - if (entries[entriesIndex].key > entry.key) { - entries.splice(entriesIndex, 0, entry); - break; - } - } - if (entriesIndex === sliceIndex) entries.push(entry); - } - state.updateURL(); - }, - // `URLSearchParams.prototype.forEach` method - forEach: function forEach(callback /* , thisArg */) { - var entries = getInternalParamsState(this).entries; - var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3); - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - boundFunction(entry.value, entry.key, this); - } - }, - // `URLSearchParams.prototype.keys` method - keys: function keys() { - return new URLSearchParamsIterator(this, 'keys'); - }, - // `URLSearchParams.prototype.values` method - values: function values() { - return new URLSearchParamsIterator(this, 'values'); - }, - // `URLSearchParams.prototype.entries` method - entries: function entries() { - return new URLSearchParamsIterator(this, 'entries'); - } -}, { enumerable: true }); - -// `URLSearchParams.prototype[@@iterator]` method -redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries); - -// `URLSearchParams.prototype.toString` method -// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior -redefine(URLSearchParamsPrototype, 'toString', function toString() { - var entries = getInternalParamsState(this).entries; - var result = []; - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - result.push(serialize(entry.key) + '=' + serialize(entry.value)); - } return result.join('&'); -}, { enumerable: true }); - -setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); - -$({ global: true, forced: !USE_NATIVE_URL }, { - URLSearchParams: URLSearchParamsConstructor -}); - -// Wrap `fetch` for correct work with polyfilled `URLSearchParams` -// https://github.com/zloirock/core-js/issues/674 -if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') { - $({ global: true, enumerable: true, forced: true }, { - fetch: function fetch(input /* , init */) { - var args = [input]; - var init, body, headers; - if (arguments.length > 1) { - init = arguments[1]; - if (isObject(init)) { - body = init.body; - if (classof(body) === URL_SEARCH_PARAMS) { - headers = init.headers ? new Headers(init.headers) : new Headers(); - if (!headers.has('content-type')) { - headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - init = create(init, { - body: createPropertyDescriptor(0, String(body)), - headers: createPropertyDescriptor(0, headers) - }); - } - } - args.push(init); - } return $fetch.apply(this, args); - } - }); -} - -module.exports = { - URLSearchParams: URLSearchParamsConstructor, - getState: getInternalParamsState -}; - - -/***/ }), - -/***/ 285: -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - -// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` -__webpack_require__(8783); -var $ = __webpack_require__(2109); -var DESCRIPTORS = __webpack_require__(9781); -var USE_NATIVE_URL = __webpack_require__(590); -var global = __webpack_require__(7854); -var defineProperties = __webpack_require__(6048); -var redefine = __webpack_require__(1320); -var anInstance = __webpack_require__(5787); -var has = __webpack_require__(6656); -var assign = __webpack_require__(1574); -var arrayFrom = __webpack_require__(8457); -var codeAt = __webpack_require__(8710).codeAt; -var toASCII = __webpack_require__(3197); -var setToStringTag = __webpack_require__(8003); -var URLSearchParamsModule = __webpack_require__(1637); -var InternalStateModule = __webpack_require__(9909); - -var NativeURL = global.URL; -var URLSearchParams = URLSearchParamsModule.URLSearchParams; -var getInternalSearchParamsState = URLSearchParamsModule.getState; -var setInternalState = InternalStateModule.set; -var getInternalURLState = InternalStateModule.getterFor('URL'); -var floor = Math.floor; -var pow = Math.pow; - -var INVALID_AUTHORITY = 'Invalid authority'; -var INVALID_SCHEME = 'Invalid scheme'; -var INVALID_HOST = 'Invalid host'; -var INVALID_PORT = 'Invalid port'; - -var ALPHA = /[A-Za-z]/; -var ALPHANUMERIC = /[\d+-.A-Za-z]/; -var DIGIT = /\d/; -var HEX_START = /^(0x|0X)/; -var OCT = /^[0-7]+$/; -var DEC = /^\d+$/; -var HEX = /^[\dA-Fa-f]+$/; -/* eslint-disable no-control-regex -- safe */ -var FORBIDDEN_HOST_CODE_POINT = /[\u0000\t\u000A\u000D #%/:?@[\\]]/; -var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\t\u000A\u000D #/:?@[\\]]/; -var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; -var TAB_AND_NEW_LINE = /[\t\u000A\u000D]/g; -/* eslint-enable no-control-regex -- safe */ -var EOF; - -var parseHost = function (url, input) { - var result, codePoints, index; - if (input.charAt(0) == '[') { - if (input.charAt(input.length - 1) != ']') return INVALID_HOST; - result = parseIPv6(input.slice(1, -1)); - if (!result) return INVALID_HOST; - url.host = result; - // opaque host - } else if (!isSpecial(url)) { - if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST; - result = ''; - codePoints = arrayFrom(input); - for (index = 0; index < codePoints.length; index++) { - result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); - } - url.host = result; - } else { - input = toASCII(input); - if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST; - result = parseIPv4(input); - if (result === null) return INVALID_HOST; - url.host = result; - } -}; - -var parseIPv4 = function (input) { - var parts = input.split('.'); - var partsLength, numbers, index, part, radix, number, ipv4; - if (parts.length && parts[parts.length - 1] == '') { - parts.pop(); - } - partsLength = parts.length; - if (partsLength > 4) return input; - numbers = []; - for (index = 0; index < partsLength; index++) { - part = parts[index]; - if (part == '') return input; - radix = 10; - if (part.length > 1 && part.charAt(0) == '0') { - radix = HEX_START.test(part) ? 16 : 8; - part = part.slice(radix == 8 ? 1 : 2); - } - if (part === '') { - number = 0; - } else { - if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input; - number = parseInt(part, radix); - } - numbers.push(number); - } - for (index = 0; index < partsLength; index++) { - number = numbers[index]; - if (index == partsLength - 1) { - if (number >= pow(256, 5 - partsLength)) return null; - } else if (number > 255) return null; - } - ipv4 = numbers.pop(); - for (index = 0; index < numbers.length; index++) { - ipv4 += numbers[index] * pow(256, 3 - index); - } - return ipv4; -}; - -// eslint-disable-next-line max-statements -- TODO -var parseIPv6 = function (input) { - var address = [0, 0, 0, 0, 0, 0, 0, 0]; - var pieceIndex = 0; - var compress = null; - var pointer = 0; - var value, length, numbersSeen, ipv4Piece, number, swaps, swap; - - var char = function () { - return input.charAt(pointer); - }; - - if (char() == ':') { - if (input.charAt(1) != ':') return; - pointer += 2; - pieceIndex++; - compress = pieceIndex; - } - while (char()) { - if (pieceIndex == 8) return; - if (char() == ':') { - if (compress !== null) return; - pointer++; - pieceIndex++; - compress = pieceIndex; - continue; - } - value = length = 0; - while (length < 4 && HEX.test(char())) { - value = value * 16 + parseInt(char(), 16); - pointer++; - length++; - } - if (char() == '.') { - if (length == 0) return; - pointer -= length; - if (pieceIndex > 6) return; - numbersSeen = 0; - while (char()) { - ipv4Piece = null; - if (numbersSeen > 0) { - if (char() == '.' && numbersSeen < 4) pointer++; - else return; - } - if (!DIGIT.test(char())) return; - while (DIGIT.test(char())) { - number = parseInt(char(), 10); - if (ipv4Piece === null) ipv4Piece = number; - else if (ipv4Piece == 0) return; - else ipv4Piece = ipv4Piece * 10 + number; - if (ipv4Piece > 255) return; - pointer++; - } - address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; - numbersSeen++; - if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++; - } - if (numbersSeen != 4) return; - break; - } else if (char() == ':') { - pointer++; - if (!char()) return; - } else if (char()) return; - address[pieceIndex++] = value; - } - if (compress !== null) { - swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex != 0 && swaps > 0) { - swap = address[pieceIndex]; - address[pieceIndex--] = address[compress + swaps - 1]; - address[compress + --swaps] = swap; - } - } else if (pieceIndex != 8) return; - return address; -}; - -var findLongestZeroSequence = function (ipv6) { - var maxIndex = null; - var maxLength = 1; - var currStart = null; - var currLength = 0; - var index = 0; - for (; index < 8; index++) { - if (ipv6[index] !== 0) { - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - currStart = null; - currLength = 0; - } else { - if (currStart === null) currStart = index; - ++currLength; - } - } - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - return maxIndex; -}; - -var serializeHost = function (host) { - var result, index, compress, ignore0; - // ipv4 - if (typeof host == 'number') { - result = []; - for (index = 0; index < 4; index++) { - result.unshift(host % 256); - host = floor(host / 256); - } return result.join('.'); - // ipv6 - } else if (typeof host == 'object') { - result = ''; - compress = findLongestZeroSequence(host); - for (index = 0; index < 8; index++) { - if (ignore0 && host[index] === 0) continue; - if (ignore0) ignore0 = false; - if (compress === index) { - result += index ? ':' : '::'; - ignore0 = true; - } else { - result += host[index].toString(16); - if (index < 7) result += ':'; - } - } - return '[' + result + ']'; - } return host; -}; - -var C0ControlPercentEncodeSet = {}; -var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { - ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 -}); -var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { - '#': 1, '?': 1, '{': 1, '}': 1 -}); -var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { - '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 -}); - -var percentEncode = function (char, set) { - var code = codeAt(char, 0); - return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char); -}; - -var specialSchemes = { - ftp: 21, - file: null, - http: 80, - https: 443, - ws: 80, - wss: 443 -}; - -var isSpecial = function (url) { - return has(specialSchemes, url.scheme); -}; - -var includesCredentials = function (url) { - return url.username != '' || url.password != ''; -}; - -var cannotHaveUsernamePasswordPort = function (url) { - return !url.host || url.cannotBeABaseURL || url.scheme == 'file'; -}; - -var isWindowsDriveLetter = function (string, normalized) { - var second; - return string.length == 2 && ALPHA.test(string.charAt(0)) - && ((second = string.charAt(1)) == ':' || (!normalized && second == '|')); -}; - -var startsWithWindowsDriveLetter = function (string) { - var third; - return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && ( - string.length == 2 || - ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#') - ); -}; - -var shortenURLsPath = function (url) { - var path = url.path; - var pathSize = path.length; - if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { - path.pop(); - } -}; - -var isSingleDot = function (segment) { - return segment === '.' || segment.toLowerCase() === '%2e'; -}; - -var isDoubleDot = function (segment) { - segment = segment.toLowerCase(); - return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; -}; - -// States: -var SCHEME_START = {}; -var SCHEME = {}; -var NO_SCHEME = {}; -var SPECIAL_RELATIVE_OR_AUTHORITY = {}; -var PATH_OR_AUTHORITY = {}; -var RELATIVE = {}; -var RELATIVE_SLASH = {}; -var SPECIAL_AUTHORITY_SLASHES = {}; -var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; -var AUTHORITY = {}; -var HOST = {}; -var HOSTNAME = {}; -var PORT = {}; -var FILE = {}; -var FILE_SLASH = {}; -var FILE_HOST = {}; -var PATH_START = {}; -var PATH = {}; -var CANNOT_BE_A_BASE_URL_PATH = {}; -var QUERY = {}; -var FRAGMENT = {}; - -// eslint-disable-next-line max-statements -- TODO -var parseURL = function (url, input, stateOverride, base) { - var state = stateOverride || SCHEME_START; - var pointer = 0; - var buffer = ''; - var seenAt = false; - var seenBracket = false; - var seenPasswordToken = false; - var codePoints, char, bufferCodePoints, failure; - - if (!stateOverride) { - url.scheme = ''; - url.username = ''; - url.password = ''; - url.host = null; - url.port = null; - url.path = []; - url.query = null; - url.fragment = null; - url.cannotBeABaseURL = false; - input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); - } - - input = input.replace(TAB_AND_NEW_LINE, ''); - - codePoints = arrayFrom(input); - - while (pointer <= codePoints.length) { - char = codePoints[pointer]; - switch (state) { - case SCHEME_START: - if (char && ALPHA.test(char)) { - buffer += char.toLowerCase(); - state = SCHEME; - } else if (!stateOverride) { - state = NO_SCHEME; - continue; - } else return INVALID_SCHEME; - break; - - case SCHEME: - if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) { - buffer += char.toLowerCase(); - } else if (char == ':') { - if (stateOverride && ( - (isSpecial(url) != has(specialSchemes, buffer)) || - (buffer == 'file' && (includesCredentials(url) || url.port !== null)) || - (url.scheme == 'file' && !url.host) - )) return; - url.scheme = buffer; - if (stateOverride) { - if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null; - return; - } - buffer = ''; - if (url.scheme == 'file') { - state = FILE; - } else if (isSpecial(url) && base && base.scheme == url.scheme) { - state = SPECIAL_RELATIVE_OR_AUTHORITY; - } else if (isSpecial(url)) { - state = SPECIAL_AUTHORITY_SLASHES; - } else if (codePoints[pointer + 1] == '/') { - state = PATH_OR_AUTHORITY; - pointer++; - } else { - url.cannotBeABaseURL = true; - url.path.push(''); - state = CANNOT_BE_A_BASE_URL_PATH; - } - } else if (!stateOverride) { - buffer = ''; - state = NO_SCHEME; - pointer = 0; - continue; - } else return INVALID_SCHEME; - break; - - case NO_SCHEME: - if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME; - if (base.cannotBeABaseURL && char == '#') { - url.scheme = base.scheme; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - url.cannotBeABaseURL = true; - state = FRAGMENT; - break; - } - state = base.scheme == 'file' ? FILE : RELATIVE; - continue; - - case SPECIAL_RELATIVE_OR_AUTHORITY: - if (char == '/' && codePoints[pointer + 1] == '/') { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - pointer++; - } else { - state = RELATIVE; - continue; - } break; - - case PATH_OR_AUTHORITY: - if (char == '/') { - state = AUTHORITY; - break; - } else { - state = PATH; - continue; - } - - case RELATIVE: - url.scheme = base.scheme; - if (char == EOF) { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '/' || (char == '\\' && isSpecial(url))) { - state = RELATIVE_SLASH; - } else if (char == '?') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.path.pop(); - state = PATH; - continue; - } break; - - case RELATIVE_SLASH: - if (isSpecial(url) && (char == '/' || char == '\\')) { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - } else if (char == '/') { - state = AUTHORITY; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - state = PATH; - continue; - } break; - - case SPECIAL_AUTHORITY_SLASHES: - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - if (char != '/' || buffer.charAt(pointer + 1) != '/') continue; - pointer++; - break; - - case SPECIAL_AUTHORITY_IGNORE_SLASHES: - if (char != '/' && char != '\\') { - state = AUTHORITY; - continue; - } break; - - case AUTHORITY: - if (char == '@') { - if (seenAt) buffer = '%40' + buffer; - seenAt = true; - bufferCodePoints = arrayFrom(buffer); - for (var i = 0; i < bufferCodePoints.length; i++) { - var codePoint = bufferCodePoints[i]; - if (codePoint == ':' && !seenPasswordToken) { - seenPasswordToken = true; - continue; - } - var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); - if (seenPasswordToken) url.password += encodedCodePoints; - else url.username += encodedCodePoints; - } - buffer = ''; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) - ) { - if (seenAt && buffer == '') return INVALID_AUTHORITY; - pointer -= arrayFrom(buffer).length + 1; - buffer = ''; - state = HOST; - } else buffer += char; - break; - - case HOST: - case HOSTNAME: - if (stateOverride && url.scheme == 'file') { - state = FILE_HOST; - continue; - } else if (char == ':' && !seenBracket) { - if (buffer == '') return INVALID_HOST; - failure = parseHost(url, buffer); - if (failure) return failure; - buffer = ''; - state = PORT; - if (stateOverride == HOSTNAME) return; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) - ) { - if (isSpecial(url) && buffer == '') return INVALID_HOST; - if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return; - failure = parseHost(url, buffer); - if (failure) return failure; - buffer = ''; - state = PATH_START; - if (stateOverride) return; - continue; - } else { - if (char == '[') seenBracket = true; - else if (char == ']') seenBracket = false; - buffer += char; - } break; - - case PORT: - if (DIGIT.test(char)) { - buffer += char; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) || - stateOverride - ) { - if (buffer != '') { - var port = parseInt(buffer, 10); - if (port > 0xFFFF) return INVALID_PORT; - url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port; - buffer = ''; - } - if (stateOverride) return; - state = PATH_START; - continue; - } else return INVALID_PORT; - break; - - case FILE: - url.scheme = 'file'; - if (char == '/' || char == '\\') state = FILE_SLASH; - else if (base && base.scheme == 'file') { - if (char == EOF) { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '?') { - url.host = base.host; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - url.host = base.host; - url.path = base.path.slice(); - shortenURLsPath(url); - } - state = PATH; - continue; - } - } else { - state = PATH; - continue; - } break; - - case FILE_SLASH: - if (char == '/' || char == '\\') { - state = FILE_HOST; - break; - } - if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]); - else url.host = base.host; - } - state = PATH; - continue; - - case FILE_HOST: - if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') { - if (!stateOverride && isWindowsDriveLetter(buffer)) { - state = PATH; - } else if (buffer == '') { - url.host = ''; - if (stateOverride) return; - state = PATH_START; - } else { - failure = parseHost(url, buffer); - if (failure) return failure; - if (url.host == 'localhost') url.host = ''; - if (stateOverride) return; - buffer = ''; - state = PATH_START; - } continue; - } else buffer += char; - break; - - case PATH_START: - if (isSpecial(url)) { - state = PATH; - if (char != '/' && char != '\\') continue; - } else if (!stateOverride && char == '?') { - url.query = ''; - state = QUERY; - } else if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - state = PATH; - if (char != '/') continue; - } break; - - case PATH: - if ( - char == EOF || char == '/' || - (char == '\\' && isSpecial(url)) || - (!stateOverride && (char == '?' || char == '#')) - ) { - if (isDoubleDot(buffer)) { - shortenURLsPath(url); - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else if (isSingleDot(buffer)) { - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else { - if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { - if (url.host) url.host = ''; - buffer = buffer.charAt(0) + ':'; // normalize windows drive letter - } - url.path.push(buffer); - } - buffer = ''; - if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) { - while (url.path.length > 1 && url.path[0] === '') { - url.path.shift(); - } - } - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } - } else { - buffer += percentEncode(char, pathPercentEncodeSet); - } break; - - case CANNOT_BE_A_BASE_URL_PATH: - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - url.path[0] += percentEncode(char, C0ControlPercentEncodeSet); - } break; - - case QUERY: - if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - if (char == "'" && isSpecial(url)) url.query += '%27'; - else if (char == '#') url.query += '%23'; - else url.query += percentEncode(char, C0ControlPercentEncodeSet); - } break; - - case FRAGMENT: - if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet); - break; - } - - pointer++; - } -}; - -// `URL` constructor -// https://url.spec.whatwg.org/#url-class -var URLConstructor = function URL(url /* , base */) { - var that = anInstance(this, URLConstructor, 'URL'); - var base = arguments.length > 1 ? arguments[1] : undefined; - var urlString = String(url); - var state = setInternalState(that, { type: 'URL' }); - var baseState, failure; - if (base !== undefined) { - if (base instanceof URLConstructor) baseState = getInternalURLState(base); - else { - failure = parseURL(baseState = {}, String(base)); - if (failure) throw TypeError(failure); - } - } - failure = parseURL(state, urlString, null, baseState); - if (failure) throw TypeError(failure); - var searchParams = state.searchParams = new URLSearchParams(); - var searchParamsState = getInternalSearchParamsState(searchParams); - searchParamsState.updateSearchParams(state.query); - searchParamsState.updateURL = function () { - state.query = String(searchParams) || null; - }; - if (!DESCRIPTORS) { - that.href = serializeURL.call(that); - that.origin = getOrigin.call(that); - that.protocol = getProtocol.call(that); - that.username = getUsername.call(that); - that.password = getPassword.call(that); - that.host = getHost.call(that); - that.hostname = getHostname.call(that); - that.port = getPort.call(that); - that.pathname = getPathname.call(that); - that.search = getSearch.call(that); - that.searchParams = getSearchParams.call(that); - that.hash = getHash.call(that); - } -}; - -var URLPrototype = URLConstructor.prototype; - -var serializeURL = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var username = url.username; - var password = url.password; - var host = url.host; - var port = url.port; - var path = url.path; - var query = url.query; - var fragment = url.fragment; - var output = scheme + ':'; - if (host !== null) { - output += '//'; - if (includesCredentials(url)) { - output += username + (password ? ':' + password : '') + '@'; - } - output += serializeHost(host); - if (port !== null) output += ':' + port; - } else if (scheme == 'file') output += '//'; - output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; - if (query !== null) output += '?' + query; - if (fragment !== null) output += '#' + fragment; - return output; -}; - -var getOrigin = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var port = url.port; - if (scheme == 'blob') try { - return new URL(scheme.path[0]).origin; - } catch (error) { - return 'null'; - } - if (scheme == 'file' || !isSpecial(url)) return 'null'; - return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : ''); -}; - -var getProtocol = function () { - return getInternalURLState(this).scheme + ':'; -}; - -var getUsername = function () { - return getInternalURLState(this).username; -}; - -var getPassword = function () { - return getInternalURLState(this).password; -}; - -var getHost = function () { - var url = getInternalURLState(this); - var host = url.host; - var port = url.port; - return host === null ? '' - : port === null ? serializeHost(host) - : serializeHost(host) + ':' + port; -}; - -var getHostname = function () { - var host = getInternalURLState(this).host; - return host === null ? '' : serializeHost(host); -}; - -var getPort = function () { - var port = getInternalURLState(this).port; - return port === null ? '' : String(port); -}; - -var getPathname = function () { - var url = getInternalURLState(this); - var path = url.path; - return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; -}; - -var getSearch = function () { - var query = getInternalURLState(this).query; - return query ? '?' + query : ''; -}; - -var getSearchParams = function () { - return getInternalURLState(this).searchParams; -}; - -var getHash = function () { - var fragment = getInternalURLState(this).fragment; - return fragment ? '#' + fragment : ''; -}; - -var accessorDescriptor = function (getter, setter) { - return { get: getter, set: setter, configurable: true, enumerable: true }; -}; - -if (DESCRIPTORS) { - defineProperties(URLPrototype, { - // `URL.prototype.href` accessors pair - // https://url.spec.whatwg.org/#dom-url-href - href: accessorDescriptor(serializeURL, function (href) { - var url = getInternalURLState(this); - var urlString = String(href); - var failure = parseURL(url, urlString); - if (failure) throw TypeError(failure); - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.origin` getter - // https://url.spec.whatwg.org/#dom-url-origin - origin: accessorDescriptor(getOrigin), - // `URL.prototype.protocol` accessors pair - // https://url.spec.whatwg.org/#dom-url-protocol - protocol: accessorDescriptor(getProtocol, function (protocol) { - var url = getInternalURLState(this); - parseURL(url, String(protocol) + ':', SCHEME_START); - }), - // `URL.prototype.username` accessors pair - // https://url.spec.whatwg.org/#dom-url-username - username: accessorDescriptor(getUsername, function (username) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(username)); - if (cannotHaveUsernamePasswordPort(url)) return; - url.username = ''; - for (var i = 0; i < codePoints.length; i++) { - url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - // `URL.prototype.password` accessors pair - // https://url.spec.whatwg.org/#dom-url-password - password: accessorDescriptor(getPassword, function (password) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(password)); - if (cannotHaveUsernamePasswordPort(url)) return; - url.password = ''; - for (var i = 0; i < codePoints.length; i++) { - url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - // `URL.prototype.host` accessors pair - // https://url.spec.whatwg.org/#dom-url-host - host: accessorDescriptor(getHost, function (host) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - parseURL(url, String(host), HOST); - }), - // `URL.prototype.hostname` accessors pair - // https://url.spec.whatwg.org/#dom-url-hostname - hostname: accessorDescriptor(getHostname, function (hostname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - parseURL(url, String(hostname), HOSTNAME); - }), - // `URL.prototype.port` accessors pair - // https://url.spec.whatwg.org/#dom-url-port - port: accessorDescriptor(getPort, function (port) { - var url = getInternalURLState(this); - if (cannotHaveUsernamePasswordPort(url)) return; - port = String(port); - if (port == '') url.port = null; - else parseURL(url, port, PORT); - }), - // `URL.prototype.pathname` accessors pair - // https://url.spec.whatwg.org/#dom-url-pathname - pathname: accessorDescriptor(getPathname, function (pathname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - url.path = []; - parseURL(url, pathname + '', PATH_START); - }), - // `URL.prototype.search` accessors pair - // https://url.spec.whatwg.org/#dom-url-search - search: accessorDescriptor(getSearch, function (search) { - var url = getInternalURLState(this); - search = String(search); - if (search == '') { - url.query = null; - } else { - if ('?' == search.charAt(0)) search = search.slice(1); - url.query = ''; - parseURL(url, search, QUERY); - } - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.searchParams` getter - // https://url.spec.whatwg.org/#dom-url-searchparams - searchParams: accessorDescriptor(getSearchParams), - // `URL.prototype.hash` accessors pair - // https://url.spec.whatwg.org/#dom-url-hash - hash: accessorDescriptor(getHash, function (hash) { - var url = getInternalURLState(this); - hash = String(hash); - if (hash == '') { - url.fragment = null; - return; - } - if ('#' == hash.charAt(0)) hash = hash.slice(1); - url.fragment = ''; - parseURL(url, hash, FRAGMENT); - }) - }); -} - -// `URL.prototype.toJSON` method -// https://url.spec.whatwg.org/#dom-url-tojson -redefine(URLPrototype, 'toJSON', function toJSON() { - return serializeURL.call(this); -}, { enumerable: true }); - -// `URL.prototype.toString` method -// https://url.spec.whatwg.org/#URL-stringification-behavior -redefine(URLPrototype, 'toString', function toString() { - return serializeURL.call(this); -}, { enumerable: true }); - -if (NativeURL) { - var nativeCreateObjectURL = NativeURL.createObjectURL; - var nativeRevokeObjectURL = NativeURL.revokeObjectURL; - // `URL.createObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL - // eslint-disable-next-line no-unused-vars -- required for `.length` - if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) { - return nativeCreateObjectURL.apply(NativeURL, arguments); - }); - // `URL.revokeObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL - // eslint-disable-next-line no-unused-vars -- required for `.length` - if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) { - return nativeRevokeObjectURL.apply(NativeURL, arguments); - }); -} - -setToStringTag(URLConstructor, 'URL'); - -$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { - URL: URLConstructor -}); - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ if(__webpack_module_cache__[moduleId]) { -/******/ return __webpack_module_cache__[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ !function() { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = function(exports, definition) { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ }(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ !function() { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ }(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ !function() { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ }(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -!function() { -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Dropzone": function() { return /* reexport */ Dropzone; }, - "default": function() { return /* binding */ dropzone_dist; } -}); - -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js -var es_array_concat = __webpack_require__(2222); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js -var es_array_filter = __webpack_require__(7327); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js -var es_array_index_of = __webpack_require__(2772); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js -var es_array_iterator = __webpack_require__(6992); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js -var es_array_map = __webpack_require__(1249); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js -var es_array_slice = __webpack_require__(7042); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js -var es_array_splice = __webpack_require__(561); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.constructor.js -var es_array_buffer_constructor = __webpack_require__(8264); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js -var es_function_name = __webpack_require__(8309); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-prototype-of.js -var es_object_get_prototype_of = __webpack_require__(489); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js -var es_object_to_string = __webpack_require__(1539); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js -var es_regexp_exec = __webpack_require__(4916); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js -var es_regexp_to_string = __webpack_require__(9714); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js -var es_string_iterator = __webpack_require__(8783); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js -var es_string_match = __webpack_require__(4723); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js -var es_string_replace = __webpack_require__(5306); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js -var es_string_split = __webpack_require__(3123); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js -var es_string_trim = __webpack_require__(3210); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.uint8-array.js -var es_typed_array_uint8_array = __webpack_require__(2472); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js -var es_typed_array_copy_within = __webpack_require__(2990); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js -var es_typed_array_every = __webpack_require__(8927); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js -var es_typed_array_fill = __webpack_require__(3105); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js -var es_typed_array_filter = __webpack_require__(5035); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js -var es_typed_array_find = __webpack_require__(4345); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js -var es_typed_array_find_index = __webpack_require__(7174); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js -var es_typed_array_for_each = __webpack_require__(2846); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js -var es_typed_array_includes = __webpack_require__(4731); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js -var es_typed_array_index_of = __webpack_require__(7209); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js -var es_typed_array_iterator = __webpack_require__(6319); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js -var es_typed_array_join = __webpack_require__(8867); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js -var es_typed_array_last_index_of = __webpack_require__(7789); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js -var es_typed_array_map = __webpack_require__(3739); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js -var es_typed_array_reduce = __webpack_require__(9368); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js -var es_typed_array_reduce_right = __webpack_require__(4483); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js -var es_typed_array_reverse = __webpack_require__(2056); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js -var es_typed_array_set = __webpack_require__(3462); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js -var es_typed_array_slice = __webpack_require__(678); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js -var es_typed_array_some = __webpack_require__(7462); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js -var es_typed_array_sort = __webpack_require__(3824); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js -var es_typed_array_subarray = __webpack_require__(5021); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js -var es_typed_array_to_locale_string = __webpack_require__(2974); -// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js -var es_typed_array_to_string = __webpack_require__(5016); -// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js -var web_dom_collections_for_each = __webpack_require__(4747); -// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js -var web_dom_collections_iterator = __webpack_require__(3948); -// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js -var web_url = __webpack_require__(285); -;// CONCATENATED MODULE: ./src/emitter.js - - -function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -// The Emitter class provides the ability to call `.on()` on Dropzone to listen -// to events. -// It is strongly based on component's emitter class, and I removed the -// functionality because of the dependency hell with different frameworks. -var Emitter = /*#__PURE__*/function () { - function Emitter() { - _classCallCheck(this, Emitter); - } - - _createClass(Emitter, [{ - key: "on", - value: // Add an event listener for given event - function on(event, fn) { - this._callbacks = this._callbacks || {}; // Create namespace for this event - - if (!this._callbacks[event]) { - this._callbacks[event] = []; - } - - this._callbacks[event].push(fn); - - return this; - } - }, { - key: "emit", - value: function emit(event) { - this._callbacks = this._callbacks || {}; - var callbacks = this._callbacks[event]; - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (callbacks) { - var _iterator = _createForOfIteratorHelper(callbacks, true), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var callback = _step.value; - callback.apply(this, args); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } // trigger a corresponding DOM event - - - if (this.element) { - this.element.dispatchEvent(this.makeEvent("dropzone:" + event, { - args: args - })); - } - - return this; - } - }, { - key: "makeEvent", - value: function makeEvent(eventName, detail) { - var params = { - bubbles: true, - cancelable: true, - detail: detail - }; - - if (typeof window.CustomEvent === "function") { - return new CustomEvent(eventName, params); - } else { - // IE 11 support - // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent - var evt = document.createEvent("CustomEvent"); - evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); - return evt; - } - } // Remove event listener for given event. If fn is not provided, all event - // listeners for that event will be removed. If neither is provided, all - // event listeners will be removed. - - }, { - key: "off", - value: function off(event, fn) { - if (!this._callbacks || arguments.length === 0) { - this._callbacks = {}; - return this; - } // specific event - - - var callbacks = this._callbacks[event]; - - if (!callbacks) { - return this; - } // remove all handlers - - - if (arguments.length === 1) { - delete this._callbacks[event]; - return this; - } // remove specific handler - - - for (var i = 0; i < callbacks.length; i++) { - var callback = callbacks[i]; - - if (callback === fn) { - callbacks.splice(i, 1); - break; - } - } - - return this; - } - }]); - - return Emitter; -}(); - - -;// CONCATENATED MODULE: ./src/preview-template.html -// Module -var code = "
Check
Error
"; -// Exports -/* harmony default export */ var preview_template = (code); -;// CONCATENATED MODULE: ./src/options.js - - - - - -function options_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = options_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function options_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return options_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return options_arrayLikeToArray(o, minLen); } - -function options_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - - - -var defaultOptions = { - /** - * Has to be specified on elements other than form (or when the form - * doesn't have an `action` attribute). You can also - * provide a function that will be called with `files` and - * must return the url (since `v3.12.0`) - */ - url: null, - - /** - * Can be changed to `"put"` if necessary. You can also provide a function - * that will be called with `files` and must return the method (since `v3.12.0`). - */ - method: "post", - - /** - * Will be set on the XHRequest. - */ - withCredentials: false, - - /** - * The timeout for the XHR requests in milliseconds (since `v4.4.0`). - * If set to null or 0, no timeout is going to be set. - */ - timeout: null, - - /** - * How many file uploads to process in parallel (See the - * Enqueuing file uploads documentation section for more info) - */ - parallelUploads: 2, - - /** - * Whether to send multiple files in one request. If - * this it set to true, then the fallback file input element will - * have the `multiple` attribute as well. This option will - * also trigger additional events (like `processingmultiple`). See the events - * documentation section for more information. - */ - uploadMultiple: false, - - /** - * Whether you want files to be uploaded in chunks to your server. This can't be - * used in combination with `uploadMultiple`. - * - * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload. - */ - chunking: false, - - /** - * If `chunking` is enabled, this defines whether **every** file should be chunked, - * even if the file size is below chunkSize. This means, that the additional chunk - * form data will be submitted and the `chunksUploaded` callback will be invoked. - */ - forceChunking: false, - - /** - * If `chunking` is `true`, then this defines the chunk size in bytes. - */ - chunkSize: 2000000, - - /** - * If `true`, the individual chunks of a file are being uploaded simultaneously. - */ - parallelChunkUploads: false, - - /** - * Whether a chunk should be retried if it fails. - */ - retryChunks: false, - - /** - * If `retryChunks` is true, how many times should it be retried. - */ - retryChunksLimit: 3, - - /** - * The maximum filesize (in bytes) that is allowed to be uploaded. - */ - maxFilesize: 256, - - /** - * The name of the file param that gets transferred. - * **NOTE**: If you have the option `uploadMultiple` set to `true`, then - * Dropzone will append `[]` to the name. - */ - paramName: "file", - - /** - * Whether thumbnails for images should be generated - */ - createImageThumbnails: true, - - /** - * In MB. When the filename exceeds this limit, the thumbnail will not be generated. - */ - maxThumbnailFilesize: 10, - - /** - * If `null`, the ratio of the image will be used to calculate it. - */ - thumbnailWidth: 120, - - /** - * The same as `thumbnailWidth`. If both are null, images will not be resized. - */ - thumbnailHeight: 120, - - /** - * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided. - * Can be either `contain` or `crop`. - */ - thumbnailMethod: "crop", - - /** - * If set, images will be resized to these dimensions before being **uploaded**. - * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect - * ratio of the file will be preserved. - * - * The `options.transformFile` function uses these options, so if the `transformFile` function - * is overridden, these options don't do anything. - */ - resizeWidth: null, - - /** - * See `resizeWidth`. - */ - resizeHeight: null, - - /** - * The mime type of the resized image (before it gets uploaded to the server). - * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`. - * See `resizeWidth` for more information. - */ - resizeMimeType: null, - - /** - * The quality of the resized images. See `resizeWidth`. - */ - resizeQuality: 0.8, - - /** - * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided. - * Can be either `contain` or `crop`. - */ - resizeMethod: "contain", - - /** - * The base that is used to calculate the **displayed** filesize. You can - * change this to 1024 if you would rather display kibibytes, mebibytes, - * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte` - * not `1 kilobyte`. You can change this to `1024` if you don't care about - * validity. - */ - filesizeBase: 1000, - - /** - * If not `null` defines how many files this Dropzone handles. If it exceeds, - * the event `maxfilesexceeded` will be called. The dropzone element gets the - * class `dz-max-files-reached` accordingly so you can provide visual - * feedback. - */ - maxFiles: null, - - /** - * An optional object to send additional headers to the server. Eg: - * `{ "My-Awesome-Header": "header value" }` - */ - headers: null, - - /** - * If `true`, the dropzone element itself will be clickable, if `false` - * nothing will be clickable. - * - * You can also pass an HTML element, a CSS selector (for multiple elements) - * or an array of those. In that case, all of those elements will trigger an - * upload when clicked. - */ - clickable: true, - - /** - * Whether hidden files in directories should be ignored. - */ - ignoreHiddenFiles: true, - - /** - * The default implementation of `accept` checks the file's mime type or - * extension against this list. This is a comma separated list of mime - * types or file extensions. - * - * Eg.: `image/*,application/pdf,.psd` - * - * If the Dropzone is `clickable` this option will also be used as - * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept) - * parameter on the hidden file input as well. - */ - acceptedFiles: null, - - /** - * **Deprecated!** - * Use acceptedFiles instead. - */ - acceptedMimeTypes: null, - - /** - * If false, files will be added to the queue but the queue will not be - * processed automatically. - * This can be useful if you need some additional user input before sending - * files (or if you want want all files sent at once). - * If you're ready to send the file simply call `myDropzone.processQueue()`. - * - * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation - * section for more information. - */ - autoProcessQueue: true, - - /** - * If false, files added to the dropzone will not be queued by default. - * You'll have to call `enqueueFile(file)` manually. - */ - autoQueue: true, - - /** - * If `true`, this will add a link to every file preview to remove or cancel (if - * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation` - * and `dictRemoveFile` options are used for the wording. - */ - addRemoveLinks: false, - - /** - * Defines where to display the file previews – if `null` the - * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS - * selector. The element should have the `dropzone-previews` class so - * the previews are displayed properly. - */ - previewsContainer: null, - - /** - * Set this to `true` if you don't want previews to be shown. - */ - disablePreviews: false, - - /** - * This is the element the hidden input field (which is used when clicking on the - * dropzone to trigger file selection) will be appended to. This might - * be important in case you use frameworks to switch the content of your page. - * - * Can be a selector string, or an element directly. - */ - hiddenInputContainer: "body", - - /** - * If null, no capture type will be specified - * If camera, mobile devices will skip the file selection and choose camera - * If microphone, mobile devices will skip the file selection and choose the microphone - * If camcorder, mobile devices will skip the file selection and choose the camera in video mode - * On apple devices multiple must be set to false. AcceptedFiles may need to - * be set to an appropriate mime type (e.g. "image/*", "audio/*", or "video/*"). - */ - capture: null, - - /** - * **Deprecated**. Use `renameFile` instead. - */ - renameFilename: null, - - /** - * A function that is invoked before the file is uploaded to the server and renames the file. - * This function gets the `File` as argument and can use the `file.name`. The actual name of the - * file that gets used during the upload can be accessed through `file.upload.filename`. - */ - renameFile: null, - - /** - * If `true` the fallback will be forced. This is very useful to test your server - * implementations first and make sure that everything works as - * expected without dropzone if you experience problems, and to test - * how your fallbacks will look. - */ - forceFallback: false, - - /** - * The text used before any files are dropped. - */ - dictDefaultMessage: "Drop files here to upload", - - /** - * The text that replaces the default message text it the browser is not supported. - */ - dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", - - /** - * The text that will be added before the fallback form. - * If you provide a fallback element yourself, or if this option is `null` this will - * be ignored. - */ - dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", - - /** - * If the filesize is too big. - * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values. - */ - dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", - - /** - * If the file doesn't match the file type. - */ - dictInvalidFileType: "You can't upload files of this type.", - - /** - * If the server response was invalid. - * `{{statusCode}}` will be replaced with the servers status code. - */ - dictResponseError: "Server responded with {{statusCode}} code.", - - /** - * If `addRemoveLinks` is true, the text to be used for the cancel upload link. - */ - dictCancelUpload: "Cancel upload", - - /** - * The text that is displayed if an upload was manually canceled - */ - dictUploadCanceled: "Upload canceled.", - - /** - * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload. - */ - dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", - - /** - * If `addRemoveLinks` is true, the text to be used to remove a file. - */ - dictRemoveFile: "Remove file", - - /** - * If this is not null, then the user will be prompted before removing a file. - */ - dictRemoveFileConfirmation: null, - - /** - * Displayed if `maxFiles` is st and exceeded. - * The string `{{maxFiles}}` will be replaced by the configuration value. - */ - dictMaxFilesExceeded: "You can not upload any more files.", - - /** - * Allows you to translate the different units. Starting with `tb` for terabytes and going down to - * `b` for bytes. - */ - dictFileSizeUnits: { - tb: "TB", - gb: "GB", - mb: "MB", - kb: "KB", - b: "b" - }, - - /** - * Called when dropzone initialized - * You can add event listeners here - */ - init: function init() {}, - - /** - * Can be an **object** of additional parameters to transfer to the server, **or** a `Function` - * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case - * of a function, this needs to return a map. - * - * The default implementation does nothing for normal uploads, but adds relevant information for - * chunked uploads. - * - * This is the same as adding hidden input fields in the form element. - */ - params: function params(files, xhr, chunk) { - if (chunk) { - return { - dzuuid: chunk.file.upload.uuid, - dzchunkindex: chunk.index, - dztotalfilesize: chunk.file.size, - dzchunksize: this.options.chunkSize, - dztotalchunkcount: chunk.file.upload.totalChunkCount, - dzchunkbyteoffset: chunk.index * this.options.chunkSize - }; - } - }, - - /** - * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File) - * and a `done` function as parameters. - * - * If the done function is invoked without arguments, the file is "accepted" and will - * be processed. If you pass an error message, the file is rejected, and the error - * message will be displayed. - * This function will not be called if the file is too big or doesn't match the mime types. - */ - accept: function accept(file, done) { - return done(); - }, - - /** - * The callback that will be invoked when all chunks have been uploaded for a file. - * It gets the file for which the chunks have been uploaded as the first parameter, - * and the `done` function as second. `done()` needs to be invoked when everything - * needed to finish the upload process is done. - */ - chunksUploaded: function chunksUploaded(file, done) { - done(); - }, - - /** - * Gets called when the browser is not supported. - * The default implementation shows the fallback input field and adds - * a text. - */ - fallback: function fallback() { - // This code should pass in IE7... :( - var messageElement; - this.element.className = "".concat(this.element.className, " dz-browser-not-supported"); - - var _iterator = options_createForOfIteratorHelper(this.element.getElementsByTagName("div"), true), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var child = _step.value; - - if (/(^| )dz-message($| )/.test(child.className)) { - messageElement = child; - child.className = "dz-message"; // Removes the 'dz-default' class - - break; - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - if (!messageElement) { - messageElement = Dropzone.createElement('
'); - this.element.appendChild(messageElement); - } - - var span = messageElement.getElementsByTagName("span")[0]; - - if (span) { - if (span.textContent != null) { - span.textContent = this.options.dictFallbackMessage; - } else if (span.innerText != null) { - span.innerText = this.options.dictFallbackMessage; - } - } - - return this.element.appendChild(this.getFallbackForm()); - }, - - /** - * Gets called to calculate the thumbnail dimensions. - * - * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing: - * - * - `srcWidth` & `srcHeight` (required) - * - `trgWidth` & `trgHeight` (required) - * - `srcX` & `srcY` (optional, default `0`) - * - `trgX` & `trgY` (optional, default `0`) - * - * Those values are going to be used by `ctx.drawImage()`. - */ - resize: function resize(file, width, height, resizeMethod) { - var info = { - srcX: 0, - srcY: 0, - srcWidth: file.width, - srcHeight: file.height - }; - var srcRatio = file.width / file.height; // Automatically calculate dimensions if not specified - - if (width == null && height == null) { - width = info.srcWidth; - height = info.srcHeight; - } else if (width == null) { - width = height * srcRatio; - } else if (height == null) { - height = width / srcRatio; - } // Make sure images aren't upscaled - - - width = Math.min(width, info.srcWidth); - height = Math.min(height, info.srcHeight); - var trgRatio = width / height; - - if (info.srcWidth > width || info.srcHeight > height) { - // Image is bigger and needs rescaling - if (resizeMethod === "crop") { - if (srcRatio > trgRatio) { - info.srcHeight = file.height; - info.srcWidth = info.srcHeight * trgRatio; - } else { - info.srcWidth = file.width; - info.srcHeight = info.srcWidth / trgRatio; - } - } else if (resizeMethod === "contain") { - // Method 'contain' - if (srcRatio > trgRatio) { - height = width / srcRatio; - } else { - width = height * srcRatio; - } - } else { - throw new Error("Unknown resizeMethod '".concat(resizeMethod, "'")); - } - } - - info.srcX = (file.width - info.srcWidth) / 2; - info.srcY = (file.height - info.srcHeight) / 2; - info.trgWidth = width; - info.trgHeight = height; - return info; - }, - - /** - * Can be used to transform the file (for example, resize an image if necessary). - * - * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes - * images according to those dimensions. - * - * Gets the `file` as the first parameter, and a `done()` function as the second, that needs - * to be invoked with the file when the transformation is done. - */ - transformFile: function transformFile(file, done) { - if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) { - return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done); - } else { - return done(file); - } - }, - - /** - * A string that contains the template used for each dropped - * file. Change it to fulfill your needs but make sure to properly - * provide all elements. - * - * If you want to use an actual HTML element instead of providing a String - * as a config option, you could create a div with the id `tpl`, - * put the template inside it and provide the element like this: - * - * document - * .querySelector('#tpl') - * .innerHTML - * - */ - previewTemplate: preview_template, - - /* - Those functions register themselves to the events on init and handle all - the user interface specific stuff. Overwriting them won't break the upload - but can break the way it's displayed. - You can overwrite them if you don't like the default behavior. If you just - want to add an additional event handler, register it on the dropzone object - and don't overwrite those options. - */ - // Those are self explanatory and simply concern the DragnDrop. - drop: function drop(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - dragstart: function dragstart(e) {}, - dragend: function dragend(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - dragenter: function dragenter(e) { - return this.element.classList.add("dz-drag-hover"); - }, - dragover: function dragover(e) { - return this.element.classList.add("dz-drag-hover"); - }, - dragleave: function dragleave(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - paste: function paste(e) {}, - // Called whenever there are no files left in the dropzone anymore, and the - // dropzone should be displayed as if in the initial state. - reset: function reset() { - return this.element.classList.remove("dz-started"); - }, - // Called when a file is added to the queue - // Receives `file` - addedfile: function addedfile(file) { - var _this = this; - - if (this.element === this.previewsContainer) { - this.element.classList.add("dz-started"); - } - - if (this.previewsContainer && !this.options.disablePreviews) { - file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim()); - file.previewTemplate = file.previewElement; // Backwards compatibility - - this.previewsContainer.appendChild(file.previewElement); - - var _iterator2 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-name]"), true), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var node = _step2.value; - node.textContent = file.name; - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - var _iterator3 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-size]"), true), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - node = _step3.value; - node.innerHTML = this.filesize(file.size); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - - if (this.options.addRemoveLinks) { - file._removeLink = Dropzone.createElement("
".concat(this.options.dictRemoveFile, "")); - file.previewElement.appendChild(file._removeLink); - } - - var removeFileEvent = function removeFileEvent(e) { - e.preventDefault(); - e.stopPropagation(); - - if (file.status === Dropzone.UPLOADING) { - return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function () { - return _this.removeFile(file); - }); - } else { - if (_this.options.dictRemoveFileConfirmation) { - return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function () { - return _this.removeFile(file); - }); - } else { - return _this.removeFile(file); - } - } - }; - - var _iterator4 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-remove]"), true), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var removeLink = _step4.value; - removeLink.addEventListener("click", removeFileEvent); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - } - }, - // Called whenever a file is removed. - removedfile: function removedfile(file) { - if (file.previewElement != null && file.previewElement.parentNode != null) { - file.previewElement.parentNode.removeChild(file.previewElement); - } - - return this._updateMaxFilesReachedClass(); - }, - // Called when a thumbnail has been generated - // Receives `file` and `dataUrl` - thumbnail: function thumbnail(file, dataUrl) { - if (file.previewElement) { - file.previewElement.classList.remove("dz-file-preview"); - - var _iterator5 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-thumbnail]"), true), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var thumbnailElement = _step5.value; - thumbnailElement.alt = file.name; - thumbnailElement.src = dataUrl; - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - return setTimeout(function () { - return file.previewElement.classList.add("dz-image-preview"); - }, 1); - } - }, - // Called whenever an error occurs - // Receives `file` and `message` - error: function error(file, message) { - if (file.previewElement) { - file.previewElement.classList.add("dz-error"); - - if (typeof message !== "string" && message.error) { - message = message.error; - } - - var _iterator6 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-errormessage]"), true), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var node = _step6.value; - node.textContent = message; - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - } - }, - errormultiple: function errormultiple() {}, - // Called when a file gets processed. Since there is a cue, not all added - // files are processed immediately. - // Receives `file` - processing: function processing(file) { - if (file.previewElement) { - file.previewElement.classList.add("dz-processing"); - - if (file._removeLink) { - return file._removeLink.innerHTML = this.options.dictCancelUpload; - } - } - }, - processingmultiple: function processingmultiple() {}, - // Called whenever the upload progress gets updated. - // Receives `file`, `progress` (percentage 0-100) and `bytesSent`. - // To get the total number of bytes of the file, use `file.size` - uploadprogress: function uploadprogress(file, progress, bytesSent) { - if (file.previewElement) { - var _iterator7 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll("[data-dz-uploadprogress]"), true), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var node = _step7.value; - node.nodeName === "PROGRESS" ? node.value = progress : node.style.width = "".concat(progress, "%"); - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - } - }, - // Called whenever the total upload progress gets updated. - // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent - totaluploadprogress: function totaluploadprogress() {}, - // Called just before the file is sent. Gets the `xhr` object as second - // parameter, so you can modify it (for example to add a CSRF token) and a - // `formData` object to add additional information. - sending: function sending() {}, - sendingmultiple: function sendingmultiple() {}, - // When the complete upload is finished and successful - // Receives `file` - success: function success(file) { - if (file.previewElement) { - return file.previewElement.classList.add("dz-success"); - } - }, - successmultiple: function successmultiple() {}, - // When the upload is canceled. - canceled: function canceled(file) { - return this.emit("error", file, this.options.dictUploadCanceled); - }, - canceledmultiple: function canceledmultiple() {}, - // When the upload is finished, either with success or an error. - // Receives `file` - complete: function complete(file) { - if (file._removeLink) { - file._removeLink.innerHTML = this.options.dictRemoveFile; - } - - if (file.previewElement) { - return file.previewElement.classList.add("dz-complete"); - } - }, - completemultiple: function completemultiple() {}, - maxfilesexceeded: function maxfilesexceeded() {}, - maxfilesreached: function maxfilesreached() {}, - queuecomplete: function queuecomplete() {}, - addedfiles: function addedfiles() {} -}; -/* harmony default export */ var src_options = (defaultOptions); -;// CONCATENATED MODULE: ./src/dropzone.js -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -function dropzone_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = dropzone_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function dropzone_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return dropzone_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return dropzone_arrayLikeToArray(o, minLen); } - -function dropzone_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function dropzone_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); } } - -function dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) dropzone_defineProperties(Constructor, staticProps); return Constructor; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - - - - -var Dropzone = /*#__PURE__*/function (_Emitter) { - _inherits(Dropzone, _Emitter); - - var _super = _createSuper(Dropzone); - - function Dropzone(el, options) { - var _this; - - dropzone_classCallCheck(this, Dropzone); - - _this = _super.call(this); - var fallback, left; - _this.element = el; // For backwards compatibility since the version was in the prototype previously - - _this.version = Dropzone.version; - _this.clickableElements = []; - _this.listeners = []; - _this.files = []; // All files - - if (typeof _this.element === "string") { - _this.element = document.querySelector(_this.element); - } // Not checking if instance of HTMLElement or Element since IE9 is extremely weird. - - - if (!_this.element || _this.element.nodeType == null) { - throw new Error("Invalid dropzone element."); - } - - if (_this.element.dropzone) { - throw new Error("Dropzone already attached."); - } // Now add this dropzone to the instances. - - - Dropzone.instances.push(_assertThisInitialized(_this)); // Put the dropzone inside the element itself. - - _this.element.dropzone = _assertThisInitialized(_this); - var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {}; - _this.options = Dropzone.extend({}, src_options, elementOptions, options != null ? options : {}); - _this.options.previewTemplate = _this.options.previewTemplate.replace(/\n*/g, ""); // If the browser failed, just call the fallback and leave - - if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) { - return _possibleConstructorReturn(_this, _this.options.fallback.call(_assertThisInitialized(_this))); - } // @options.url = @element.getAttribute "action" unless @options.url? - - - if (_this.options.url == null) { - _this.options.url = _this.element.getAttribute("action"); - } - - if (!_this.options.url) { - throw new Error("No URL provided."); - } - - if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) { - throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); - } - - if (_this.options.uploadMultiple && _this.options.chunking) { - throw new Error("You cannot set both: uploadMultiple and chunking."); - } // Backwards compatibility - - - if (_this.options.acceptedMimeTypes) { - _this.options.acceptedFiles = _this.options.acceptedMimeTypes; - delete _this.options.acceptedMimeTypes; - } // Backwards compatibility - - - if (_this.options.renameFilename != null) { - _this.options.renameFile = function (file) { - return _this.options.renameFilename.call(_assertThisInitialized(_this), file.name, file); - }; - } - - if (typeof _this.options.method === "string") { - _this.options.method = _this.options.method.toUpperCase(); - } - - if ((fallback = _this.getExistingFallback()) && fallback.parentNode) { - // Remove the fallback - fallback.parentNode.removeChild(fallback); - } // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false - - - if (_this.options.previewsContainer !== false) { - if (_this.options.previewsContainer) { - _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, "previewsContainer"); - } else { - _this.previewsContainer = _this.element; - } - } - - if (_this.options.clickable) { - if (_this.options.clickable === true) { - _this.clickableElements = [_this.element]; - } else { - _this.clickableElements = Dropzone.getElements(_this.options.clickable, "clickable"); - } - } - - _this.init(); - - return _this; - } // Returns all files that have been accepted - - - dropzone_createClass(Dropzone, [{ - key: "getAcceptedFiles", - value: function getAcceptedFiles() { - return this.files.filter(function (file) { - return file.accepted; - }).map(function (file) { - return file; - }); - } // Returns all files that have been rejected - // Not sure when that's going to be useful, but added for completeness. - - }, { - key: "getRejectedFiles", - value: function getRejectedFiles() { - return this.files.filter(function (file) { - return !file.accepted; - }).map(function (file) { - return file; - }); - } - }, { - key: "getFilesWithStatus", - value: function getFilesWithStatus(status) { - return this.files.filter(function (file) { - return file.status === status; - }).map(function (file) { - return file; - }); - } // Returns all files that are in the queue - - }, { - key: "getQueuedFiles", - value: function getQueuedFiles() { - return this.getFilesWithStatus(Dropzone.QUEUED); - } - }, { - key: "getUploadingFiles", - value: function getUploadingFiles() { - return this.getFilesWithStatus(Dropzone.UPLOADING); - } - }, { - key: "getAddedFiles", - value: function getAddedFiles() { - return this.getFilesWithStatus(Dropzone.ADDED); - } // Files that are either queued or uploading - - }, { - key: "getActiveFiles", - value: function getActiveFiles() { - return this.files.filter(function (file) { - return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED; - }).map(function (file) { - return file; - }); - } // The function that gets called when Dropzone is initialized. You - // can (and should) setup event listeners inside this function. - - }, { - key: "init", - value: function init() { - var _this2 = this; - - // In case it isn't set already - if (this.element.tagName === "form") { - this.element.setAttribute("enctype", "multipart/form-data"); - } - - if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) { - this.element.appendChild(Dropzone.createElement("
"))); - } - - if (this.clickableElements.length) { - var setupHiddenFileInput = function setupHiddenFileInput() { - if (_this2.hiddenFileInput) { - _this2.hiddenFileInput.parentNode.removeChild(_this2.hiddenFileInput); - } - - _this2.hiddenFileInput = document.createElement("input"); - - _this2.hiddenFileInput.setAttribute("type", "file"); - - if (_this2.options.maxFiles === null || _this2.options.maxFiles > 1) { - _this2.hiddenFileInput.setAttribute("multiple", "multiple"); - } - - _this2.hiddenFileInput.className = "dz-hidden-input"; - - if (_this2.options.acceptedFiles !== null) { - _this2.hiddenFileInput.setAttribute("accept", _this2.options.acceptedFiles); - } - - if (_this2.options.capture !== null) { - _this2.hiddenFileInput.setAttribute("capture", _this2.options.capture); - } // Making sure that no one can "tab" into this field. - - - _this2.hiddenFileInput.setAttribute("tabindex", "-1"); // Not setting `display="none"` because some browsers don't accept clicks - // on elements that aren't displayed. - - - _this2.hiddenFileInput.style.visibility = "hidden"; - _this2.hiddenFileInput.style.position = "absolute"; - _this2.hiddenFileInput.style.top = "0"; - _this2.hiddenFileInput.style.left = "0"; - _this2.hiddenFileInput.style.height = "0"; - _this2.hiddenFileInput.style.width = "0"; - Dropzone.getElement(_this2.options.hiddenInputContainer, "hiddenInputContainer").appendChild(_this2.hiddenFileInput); - - _this2.hiddenFileInput.addEventListener("change", function () { - var files = _this2.hiddenFileInput.files; - - if (files.length) { - var _iterator = dropzone_createForOfIteratorHelper(files, true), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var file = _step.value; - - _this2.addFile(file); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - - _this2.emit("addedfiles", files); - - setupHiddenFileInput(); - }); - }; - - setupHiddenFileInput(); - } - - this.URL = window.URL !== null ? window.URL : window.webkitURL; // Setup all event listeners on the Dropzone object itself. - // They're not in @setupEventListeners() because they shouldn't be removed - // again when the dropzone gets disabled. - - var _iterator2 = dropzone_createForOfIteratorHelper(this.events, true), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var eventName = _step2.value; - this.on(eventName, this.options[eventName]); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - this.on("uploadprogress", function () { - return _this2.updateTotalUploadProgress(); - }); - this.on("removedfile", function () { - return _this2.updateTotalUploadProgress(); - }); - this.on("canceled", function (file) { - return _this2.emit("complete", file); - }); // Emit a `queuecomplete` event if all files finished uploading. - - this.on("complete", function (file) { - if (_this2.getAddedFiles().length === 0 && _this2.getUploadingFiles().length === 0 && _this2.getQueuedFiles().length === 0) { - // This needs to be deferred so that `queuecomplete` really triggers after `complete` - return setTimeout(function () { - return _this2.emit("queuecomplete"); - }, 0); - } - }); - - var containsFiles = function containsFiles(e) { - if (e.dataTransfer.types) { - // Because e.dataTransfer.types is an Object in - // IE, we need to iterate like this instead of - // using e.dataTransfer.types.some() - for (var i = 0; i < e.dataTransfer.types.length; i++) { - if (e.dataTransfer.types[i] === "Files") return true; - } - } - - return false; - }; - - var noPropagation = function noPropagation(e) { - // If there are no files, we don't want to stop - // propagation so we don't interfere with other - // drag and drop behaviour. - if (!containsFiles(e)) return; - e.stopPropagation(); - - if (e.preventDefault) { - return e.preventDefault(); - } else { - return e.returnValue = false; - } - }; // Create the listeners - - - this.listeners = [{ - element: this.element, - events: { - dragstart: function dragstart(e) { - return _this2.emit("dragstart", e); - }, - dragenter: function dragenter(e) { - noPropagation(e); - return _this2.emit("dragenter", e); - }, - dragover: function dragover(e) { - // Makes it possible to drag files from chrome's download bar - // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar - // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception) - var efct; - - try { - efct = e.dataTransfer.effectAllowed; - } catch (error) {} - - e.dataTransfer.dropEffect = "move" === efct || "linkMove" === efct ? "move" : "copy"; - noPropagation(e); - return _this2.emit("dragover", e); - }, - dragleave: function dragleave(e) { - return _this2.emit("dragleave", e); - }, - drop: function drop(e) { - noPropagation(e); - return _this2.drop(e); - }, - dragend: function dragend(e) { - return _this2.emit("dragend", e); - } - } // This is disabled right now, because the browsers don't implement it properly. - // "paste": (e) => - // noPropagation e - // @paste e - - }]; - this.clickableElements.forEach(function (clickableElement) { - return _this2.listeners.push({ - element: clickableElement, - events: { - click: function click(evt) { - // Only the actual dropzone or the message element should trigger file selection - if (clickableElement !== _this2.element || evt.target === _this2.element || Dropzone.elementInside(evt.target, _this2.element.querySelector(".dz-message"))) { - _this2.hiddenFileInput.click(); // Forward the click - - } - - return true; - } - } - }); - }); - this.enable(); - return this.options.init.call(this); - } // Not fully tested yet - - }, { - key: "destroy", - value: function destroy() { - this.disable(); - this.removeAllFiles(true); - - if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) { - this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); - this.hiddenFileInput = null; - } - - delete this.element.dropzone; - return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1); - } - }, { - key: "updateTotalUploadProgress", - value: function updateTotalUploadProgress() { - var totalUploadProgress; - var totalBytesSent = 0; - var totalBytes = 0; - var activeFiles = this.getActiveFiles(); - - if (activeFiles.length) { - var _iterator3 = dropzone_createForOfIteratorHelper(this.getActiveFiles(), true), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var file = _step3.value; - totalBytesSent += file.upload.bytesSent; - totalBytes += file.upload.total; - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - - totalUploadProgress = 100 * totalBytesSent / totalBytes; - } else { - totalUploadProgress = 100; - } - - return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); - } // @options.paramName can be a function taking one parameter rather than a string. - // A parameter name for a file is obtained simply by calling this with an index number. - - }, { - key: "_getParamName", - value: function _getParamName(n) { - if (typeof this.options.paramName === "function") { - return this.options.paramName(n); - } else { - return "".concat(this.options.paramName).concat(this.options.uploadMultiple ? "[".concat(n, "]") : ""); - } - } // If @options.renameFile is a function, - // the function will be used to rename the file.name before appending it to the formData - - }, { - key: "_renameFile", - value: function _renameFile(file) { - if (typeof this.options.renameFile !== "function") { - return file.name; - } - - return this.options.renameFile(file); - } // Returns a form that can be used as fallback if the browser does not support DragnDrop - // - // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided. - // This code has to pass in IE7 :( - - }, { - key: "getFallbackForm", - value: function getFallbackForm() { - var existingFallback, form; - - if (existingFallback = this.getExistingFallback()) { - return existingFallback; - } - - var fieldsString = '
'; - - if (this.options.dictFallbackText) { - fieldsString += "

".concat(this.options.dictFallbackText, "

"); - } - - fieldsString += "
"); - var fields = Dropzone.createElement(fieldsString); - - if (this.element.tagName !== "FORM") { - form = Dropzone.createElement("
")); - form.appendChild(fields); - } else { - // Make sure that the enctype and method attributes are set properly - this.element.setAttribute("enctype", "multipart/form-data"); - this.element.setAttribute("method", this.options.method); - } - - return form != null ? form : fields; - } // Returns the fallback elements if they exist already - // - // This code has to pass in IE7 :( - - }, { - key: "getExistingFallback", - value: function getExistingFallback() { - var getFallback = function getFallback(elements) { - var _iterator4 = dropzone_createForOfIteratorHelper(elements, true), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var el = _step4.value; - - if (/(^| )fallback($| )/.test(el.className)) { - return el; - } - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - }; - - for (var _i = 0, _arr = ["div", "form"]; _i < _arr.length; _i++) { - var tagName = _arr[_i]; - var fallback; - - if (fallback = getFallback(this.element.getElementsByTagName(tagName))) { - return fallback; - } - } - } // Activates all listeners stored in @listeners - - }, { - key: "setupEventListeners", - value: function setupEventListeners() { - return this.listeners.map(function (elementListeners) { - return function () { - var result = []; - - for (var event in elementListeners.events) { - var listener = elementListeners.events[event]; - result.push(elementListeners.element.addEventListener(event, listener, false)); - } - - return result; - }(); - }); - } // Deactivates all listeners stored in @listeners - - }, { - key: "removeEventListeners", - value: function removeEventListeners() { - return this.listeners.map(function (elementListeners) { - return function () { - var result = []; - - for (var event in elementListeners.events) { - var listener = elementListeners.events[event]; - result.push(elementListeners.element.removeEventListener(event, listener, false)); - } - - return result; - }(); - }); - } // Removes all event listeners and cancels all files in the queue or being processed. - - }, { - key: "disable", - value: function disable() { - var _this3 = this; - - this.clickableElements.forEach(function (element) { - return element.classList.remove("dz-clickable"); - }); - this.removeEventListeners(); - this.disabled = true; - return this.files.map(function (file) { - return _this3.cancelUpload(file); - }); - } - }, { - key: "enable", - value: function enable() { - delete this.disabled; - this.clickableElements.forEach(function (element) { - return element.classList.add("dz-clickable"); - }); - return this.setupEventListeners(); - } // Returns a nicely formatted filesize - - }, { - key: "filesize", - value: function filesize(size) { - var selectedSize = 0; - var selectedUnit = "b"; - - if (size > 0) { - var units = ["tb", "gb", "mb", "kb", "b"]; - - for (var i = 0; i < units.length; i++) { - var unit = units[i]; - var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10; - - if (size >= cutoff) { - selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i); - selectedUnit = unit; - break; - } - } - - selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits - } - - return "".concat(selectedSize, " ").concat(this.options.dictFileSizeUnits[selectedUnit]); - } // Adds or removes the `dz-max-files-reached` class from the form. - - }, { - key: "_updateMaxFilesReachedClass", - value: function _updateMaxFilesReachedClass() { - if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { - if (this.getAcceptedFiles().length === this.options.maxFiles) { - this.emit("maxfilesreached", this.files); - } - - return this.element.classList.add("dz-max-files-reached"); - } else { - return this.element.classList.remove("dz-max-files-reached"); - } - } - }, { - key: "drop", - value: function drop(e) { - if (!e.dataTransfer) { - return; - } - - this.emit("drop", e); // Convert the FileList to an Array - // This is necessary for IE11 - - var files = []; - - for (var i = 0; i < e.dataTransfer.files.length; i++) { - files[i] = e.dataTransfer.files[i]; - } // Even if it's a folder, files.length will contain the folders. - - - if (files.length) { - var items = e.dataTransfer.items; - - if (items && items.length && items[0].webkitGetAsEntry != null) { - // The browser supports dropping of folders, so handle items instead of files - this._addFilesFromItems(items); - } else { - this.handleFiles(files); - } - } - - this.emit("addedfiles", files); - } - }, { - key: "paste", - value: function paste(e) { - if (__guard__(e != null ? e.clipboardData : undefined, function (x) { - return x.items; - }) == null) { - return; - } - - this.emit("paste", e); - var items = e.clipboardData.items; - - if (items.length) { - return this._addFilesFromItems(items); - } - } - }, { - key: "handleFiles", - value: function handleFiles(files) { - var _iterator5 = dropzone_createForOfIteratorHelper(files, true), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var file = _step5.value; - this.addFile(file); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - } // When a folder is dropped (or files are pasted), items must be handled - // instead of files. - - }, { - key: "_addFilesFromItems", - value: function _addFilesFromItems(items) { - var _this4 = this; - - return function () { - var result = []; - - var _iterator6 = dropzone_createForOfIteratorHelper(items, true), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var item = _step6.value; - var entry; - - if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) { - if (entry.isFile) { - result.push(_this4.addFile(item.getAsFile())); - } else if (entry.isDirectory) { - // Append all files from that directory to files - result.push(_this4._addFilesFromDirectory(entry, entry.name)); - } else { - result.push(undefined); - } - } else if (item.getAsFile != null) { - if (item.kind == null || item.kind === "file") { - result.push(_this4.addFile(item.getAsFile())); - } else { - result.push(undefined); - } - } else { - result.push(undefined); - } - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - - return result; - }(); - } // Goes through the directory, and adds each file it finds recursively - - }, { - key: "_addFilesFromDirectory", - value: function _addFilesFromDirectory(directory, path) { - var _this5 = this; - - var dirReader = directory.createReader(); - - var errorHandler = function errorHandler(error) { - return __guardMethod__(console, "log", function (o) { - return o.log(error); - }); - }; - - var readEntries = function readEntries() { - return dirReader.readEntries(function (entries) { - if (entries.length > 0) { - var _iterator7 = dropzone_createForOfIteratorHelper(entries, true), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var entry = _step7.value; - - if (entry.isFile) { - entry.file(function (file) { - if (_this5.options.ignoreHiddenFiles && file.name.substring(0, 1) === ".") { - return; - } - - file.fullPath = "".concat(path, "/").concat(file.name); - return _this5.addFile(file); - }); - } else if (entry.isDirectory) { - _this5._addFilesFromDirectory(entry, "".concat(path, "/").concat(entry.name)); - } - } // Recursively call readEntries() again, since browser only handle - // the first 100 entries. - // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries - - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - - readEntries(); - } - - return null; - }, errorHandler); - }; - - return readEntries(); - } // If `done()` is called without argument the file is accepted - // If you call it with an error message, the file is rejected - // (This allows for asynchronous validation) - // - // This function checks the filesize, and if the file.type passes the - // `acceptedFiles` check. - - }, { - key: "accept", - value: function accept(file, done) { - if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) { - done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); - } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) { - done(this.options.dictInvalidFileType); - } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { - done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)); - this.emit("maxfilesexceeded", file); - } else { - this.options.accept.call(this, file, done); - } - } - }, { - key: "addFile", - value: function addFile(file) { - var _this6 = this; - - file.upload = { - uuid: Dropzone.uuidv4(), - progress: 0, - // Setting the total upload size to file.size for the beginning - // It's actual different than the size to be transmitted. - total: file.size, - bytesSent: 0, - filename: this._renameFile(file) // Not setting chunking information here, because the acutal data — and - // thus the chunks — might change if `options.transformFile` is set - // and does something to the data. - - }; - this.files.push(file); - file.status = Dropzone.ADDED; - this.emit("addedfile", file); - - this._enqueueThumbnail(file); - - this.accept(file, function (error) { - if (error) { - file.accepted = false; - - _this6._errorProcessing([file], error); // Will set the file.status - - } else { - file.accepted = true; - - if (_this6.options.autoQueue) { - _this6.enqueueFile(file); - } // Will set .accepted = true - - } - - _this6._updateMaxFilesReachedClass(); - }); - } // Wrapper for enqueueFile - - }, { - key: "enqueueFiles", - value: function enqueueFiles(files) { - var _iterator8 = dropzone_createForOfIteratorHelper(files, true), - _step8; - - try { - for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { - var file = _step8.value; - this.enqueueFile(file); - } - } catch (err) { - _iterator8.e(err); - } finally { - _iterator8.f(); - } - - return null; - } - }, { - key: "enqueueFile", - value: function enqueueFile(file) { - var _this7 = this; - - if (file.status === Dropzone.ADDED && file.accepted === true) { - file.status = Dropzone.QUEUED; - - if (this.options.autoProcessQueue) { - return setTimeout(function () { - return _this7.processQueue(); - }, 0); // Deferring the call - } - } else { - throw new Error("This file can't be queued because it has already been processed or was rejected."); - } - } - }, { - key: "_enqueueThumbnail", - value: function _enqueueThumbnail(file) { - var _this8 = this; - - if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { - this._thumbnailQueue.push(file); - - return setTimeout(function () { - return _this8._processThumbnailQueue(); - }, 0); // Deferring the call - } - } - }, { - key: "_processThumbnailQueue", - value: function _processThumbnailQueue() { - var _this9 = this; - - if (this._processingThumbnail || this._thumbnailQueue.length === 0) { - return; - } - - this._processingThumbnail = true; - - var file = this._thumbnailQueue.shift(); - - return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) { - _this9.emit("thumbnail", file, dataUrl); - - _this9._processingThumbnail = false; - return _this9._processThumbnailQueue(); - }); - } // Can be called by the user to remove a file - - }, { - key: "removeFile", - value: function removeFile(file) { - if (file.status === Dropzone.UPLOADING) { - this.cancelUpload(file); - } - - this.files = without(this.files, file); - this.emit("removedfile", file); - - if (this.files.length === 0) { - return this.emit("reset"); - } - } // Removes all files that aren't currently processed from the list - - }, { - key: "removeAllFiles", - value: function removeAllFiles(cancelIfNecessary) { - // Create a copy of files since removeFile() changes the @files array. - if (cancelIfNecessary == null) { - cancelIfNecessary = false; - } - - var _iterator9 = dropzone_createForOfIteratorHelper(this.files.slice(), true), - _step9; - - try { - for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { - var file = _step9.value; - - if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) { - this.removeFile(file); - } - } - } catch (err) { - _iterator9.e(err); - } finally { - _iterator9.f(); - } - - return null; - } // Resizes an image before it gets sent to the server. This function is the default behavior of - // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with - // the resized blob. - - }, { - key: "resizeImage", - value: function resizeImage(file, width, height, resizeMethod, callback) { - var _this10 = this; - - return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) { - if (canvas == null) { - // The image has not been resized - return callback(file); - } else { - var resizeMimeType = _this10.options.resizeMimeType; - - if (resizeMimeType == null) { - resizeMimeType = file.type; - } - - var resizedDataURL = canvas.toDataURL(resizeMimeType, _this10.options.resizeQuality); - - if (resizeMimeType === "image/jpeg" || resizeMimeType === "image/jpg") { - // Now add the original EXIF information - resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL); - } - - return callback(Dropzone.dataURItoBlob(resizedDataURL)); - } - }); - } - }, { - key: "createThumbnail", - value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) { - var _this11 = this; - - var fileReader = new FileReader(); - - fileReader.onload = function () { - file.dataURL = fileReader.result; // Don't bother creating a thumbnail for SVG images since they're vector - - if (file.type === "image/svg+xml") { - if (callback != null) { - callback(fileReader.result); - } - - return; - } - - _this11.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback); - }; - - fileReader.readAsDataURL(file); - } // `mockFile` needs to have these attributes: - // - // { name: 'name', size: 12345, imageUrl: '' } - // - // `callback` will be invoked when the image has been downloaded and displayed. - // `crossOrigin` will be added to the `img` tag when accessing the file. - - }, { - key: "displayExistingFile", - value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin) { - var _this12 = this; - - var resizeThumbnail = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; - this.emit("addedfile", mockFile); - this.emit("complete", mockFile); - - if (!resizeThumbnail) { - this.emit("thumbnail", mockFile, imageUrl); - if (callback) callback(); - } else { - var onDone = function onDone(thumbnail) { - _this12.emit("thumbnail", mockFile, thumbnail); - - if (callback) callback(); - }; - - mockFile.dataURL = imageUrl; - this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin); - } - } - }, { - key: "createThumbnailFromUrl", - value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) { - var _this13 = this; - - // Not using `new Image` here because of a bug in latest Chrome versions. - // See https://github.com/enyo/dropzone/pull/226 - var img = document.createElement("img"); - - if (crossOrigin) { - img.crossOrigin = crossOrigin; - } // fixOrientation is not needed anymore with browsers handling imageOrientation - - - fixOrientation = getComputedStyle(document.body)["imageOrientation"] == "from-image" ? false : fixOrientation; - - img.onload = function () { - var loadExif = function loadExif(callback) { - return callback(1); - }; - - if (typeof EXIF !== "undefined" && EXIF !== null && fixOrientation) { - loadExif = function loadExif(callback) { - return EXIF.getData(img, function () { - return callback(EXIF.getTag(this, "Orientation")); - }); - }; - } - - return loadExif(function (orientation) { - file.width = img.width; - file.height = img.height; - - var resizeInfo = _this13.options.resize.call(_this13, file, width, height, resizeMethod); - - var canvas = document.createElement("canvas"); - var ctx = canvas.getContext("2d"); - canvas.width = resizeInfo.trgWidth; - canvas.height = resizeInfo.trgHeight; - - if (orientation > 4) { - canvas.width = resizeInfo.trgHeight; - canvas.height = resizeInfo.trgWidth; - } - - switch (orientation) { - case 2: - // horizontal flip - ctx.translate(canvas.width, 0); - ctx.scale(-1, 1); - break; - - case 3: - // 180° rotate left - ctx.translate(canvas.width, canvas.height); - ctx.rotate(Math.PI); - break; - - case 4: - // vertical flip - ctx.translate(0, canvas.height); - ctx.scale(1, -1); - break; - - case 5: - // vertical flip + 90 rotate right - ctx.rotate(0.5 * Math.PI); - ctx.scale(1, -1); - break; - - case 6: - // 90° rotate right - ctx.rotate(0.5 * Math.PI); - ctx.translate(0, -canvas.width); - break; - - case 7: - // horizontal flip + 90 rotate right - ctx.rotate(0.5 * Math.PI); - ctx.translate(canvas.height, -canvas.width); - ctx.scale(-1, 1); - break; - - case 8: - // 90° rotate left - ctx.rotate(-0.5 * Math.PI); - ctx.translate(-canvas.height, 0); - break; - } // This is a bugfix for iOS' scaling bug. - - - drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); - var thumbnail = canvas.toDataURL("image/png"); - - if (callback != null) { - return callback(thumbnail, canvas); - } - }); - }; - - if (callback != null) { - img.onerror = callback; - } - - return img.src = file.dataURL; - } // Goes through the queue and processes files if there aren't too many already. - - }, { - key: "processQueue", - value: function processQueue() { - var parallelUploads = this.options.parallelUploads; - var processingLength = this.getUploadingFiles().length; - var i = processingLength; // There are already at least as many files uploading than should be - - if (processingLength >= parallelUploads) { - return; - } - - var queuedFiles = this.getQueuedFiles(); - - if (!(queuedFiles.length > 0)) { - return; - } - - if (this.options.uploadMultiple) { - // The files should be uploaded in one request - return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); - } else { - while (i < parallelUploads) { - if (!queuedFiles.length) { - return; - } // Nothing left to process - - - this.processFile(queuedFiles.shift()); - i++; - } - } - } // Wrapper for `processFiles` - - }, { - key: "processFile", - value: function processFile(file) { - return this.processFiles([file]); - } // Loads the file, then calls finishedLoading() - - }, { - key: "processFiles", - value: function processFiles(files) { - var _iterator10 = dropzone_createForOfIteratorHelper(files, true), - _step10; - - try { - for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) { - var file = _step10.value; - file.processing = true; // Backwards compatibility - - file.status = Dropzone.UPLOADING; - this.emit("processing", file); - } - } catch (err) { - _iterator10.e(err); - } finally { - _iterator10.f(); - } - - if (this.options.uploadMultiple) { - this.emit("processingmultiple", files); - } - - return this.uploadFiles(files); - } - }, { - key: "_getFilesWithXhr", - value: function _getFilesWithXhr(xhr) { - var files; - return files = this.files.filter(function (file) { - return file.xhr === xhr; - }).map(function (file) { - return file; - }); - } // Cancels the file upload and sets the status to CANCELED - // **if** the file is actually being uploaded. - // If it's still in the queue, the file is being removed from it and the status - // set to CANCELED. - - }, { - key: "cancelUpload", - value: function cancelUpload(file) { - if (file.status === Dropzone.UPLOADING) { - var groupedFiles = this._getFilesWithXhr(file.xhr); - - var _iterator11 = dropzone_createForOfIteratorHelper(groupedFiles, true), - _step11; - - try { - for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) { - var groupedFile = _step11.value; - groupedFile.status = Dropzone.CANCELED; - } - } catch (err) { - _iterator11.e(err); - } finally { - _iterator11.f(); - } - - if (typeof file.xhr !== "undefined") { - file.xhr.abort(); - } - - var _iterator12 = dropzone_createForOfIteratorHelper(groupedFiles, true), - _step12; - - try { - for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) { - var _groupedFile = _step12.value; - this.emit("canceled", _groupedFile); - } - } catch (err) { - _iterator12.e(err); - } finally { - _iterator12.f(); - } - - if (this.options.uploadMultiple) { - this.emit("canceledmultiple", groupedFiles); - } - } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) { - file.status = Dropzone.CANCELED; - this.emit("canceled", file); - - if (this.options.uploadMultiple) { - this.emit("canceledmultiple", [file]); - } - } - - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - } - }, { - key: "resolveOption", - value: function resolveOption(option) { - if (typeof option === "function") { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return option.apply(this, args); - } - - return option; - } - }, { - key: "uploadFile", - value: function uploadFile(file) { - return this.uploadFiles([file]); - } - }, { - key: "uploadFiles", - value: function uploadFiles(files) { - var _this14 = this; - - this._transformFiles(files, function (transformedFiles) { - if (_this14.options.chunking) { - // Chunking is not allowed to be used with `uploadMultiple` so we know - // that there is only __one__file. - var transformedFile = transformedFiles[0]; - files[0].upload.chunked = _this14.options.chunking && (_this14.options.forceChunking || transformedFile.size > _this14.options.chunkSize); - files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this14.options.chunkSize); - } - - if (files[0].upload.chunked) { - // This file should be sent in chunks! - // If the chunking option is set, we **know** that there can only be **one** file, since - // uploadMultiple is not allowed with this option. - var file = files[0]; - var _transformedFile = transformedFiles[0]; - var startedChunkCount = 0; - file.upload.chunks = []; - - var handleNextChunk = function handleNextChunk() { - var chunkIndex = 0; // Find the next item in file.upload.chunks that is not defined yet. - - while (file.upload.chunks[chunkIndex] !== undefined) { - chunkIndex++; - } // This means, that all chunks have already been started. - - - if (chunkIndex >= file.upload.totalChunkCount) return; - startedChunkCount++; - var start = chunkIndex * _this14.options.chunkSize; - var end = Math.min(start + _this14.options.chunkSize, _transformedFile.size); - var dataBlock = { - name: _this14._getParamName(0), - data: _transformedFile.webkitSlice ? _transformedFile.webkitSlice(start, end) : _transformedFile.slice(start, end), - filename: file.upload.filename, - chunkIndex: chunkIndex - }; - file.upload.chunks[chunkIndex] = { - file: file, - index: chunkIndex, - dataBlock: dataBlock, - // In case we want to retry. - status: Dropzone.UPLOADING, - progress: 0, - retries: 0 // The number of times this block has been retried. - - }; - - _this14._uploadData(files, [dataBlock]); - }; - - file.upload.finishedChunkUpload = function (chunk, response) { - var allFinished = true; - chunk.status = Dropzone.SUCCESS; // Clear the data from the chunk - - chunk.dataBlock = null; // Leaving this reference to xhr intact here will cause memory leaks in some browsers - - chunk.xhr = null; - - for (var i = 0; i < file.upload.totalChunkCount; i++) { - if (file.upload.chunks[i] === undefined) { - return handleNextChunk(); - } - - if (file.upload.chunks[i].status !== Dropzone.SUCCESS) { - allFinished = false; - } - } - - if (allFinished) { - _this14.options.chunksUploaded(file, function () { - _this14._finished(files, response, null); - }); - } - }; - - if (_this14.options.parallelChunkUploads) { - for (var i = 0; i < file.upload.totalChunkCount; i++) { - handleNextChunk(); - } - } else { - handleNextChunk(); - } - } else { - var dataBlocks = []; - - for (var _i2 = 0; _i2 < files.length; _i2++) { - dataBlocks[_i2] = { - name: _this14._getParamName(_i2), - data: transformedFiles[_i2], - filename: files[_i2].upload.filename - }; - } - - _this14._uploadData(files, dataBlocks); - } - }); - } /// Returns the right chunk for given file and xhr - - }, { - key: "_getChunk", - value: function _getChunk(file, xhr) { - for (var i = 0; i < file.upload.totalChunkCount; i++) { - if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) { - return file.upload.chunks[i]; - } - } - } // This function actually uploads the file(s) to the server. - // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed - // files, or individual chunks for chunked upload). - - }, { - key: "_uploadData", - value: function _uploadData(files, dataBlocks) { - var _this15 = this; - - var xhr = new XMLHttpRequest(); // Put the xhr object in the file objects to be able to reference it later. - - var _iterator13 = dropzone_createForOfIteratorHelper(files, true), - _step13; - - try { - for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) { - var file = _step13.value; - file.xhr = xhr; - } - } catch (err) { - _iterator13.e(err); - } finally { - _iterator13.f(); - } - - if (files[0].upload.chunked) { - // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk - files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr; - } - - var method = this.resolveOption(this.options.method, files); - var url = this.resolveOption(this.options.url, files); - xhr.open(method, url, true); // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8 - - var timeout = this.resolveOption(this.options.timeout, files); - if (timeout) xhr.timeout = this.resolveOption(this.options.timeout, files); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179 - - xhr.withCredentials = !!this.options.withCredentials; - - xhr.onload = function (e) { - _this15._finishedUploading(files, xhr, e); - }; - - xhr.ontimeout = function () { - _this15._handleUploadError(files, xhr, "Request timedout after ".concat(_this15.options.timeout / 1000, " seconds")); - }; - - xhr.onerror = function () { - _this15._handleUploadError(files, xhr); - }; // Some browsers do not have the .upload property - - - var progressObj = xhr.upload != null ? xhr.upload : xhr; - - progressObj.onprogress = function (e) { - return _this15._updateFilesUploadProgress(files, xhr, e); - }; - - var headers = { - Accept: "application/json", - "Cache-Control": "no-cache", - "X-Requested-With": "XMLHttpRequest" - }; - - if (this.options.headers) { - Dropzone.extend(headers, this.options.headers); - } - - for (var headerName in headers) { - var headerValue = headers[headerName]; - - if (headerValue) { - xhr.setRequestHeader(headerName, headerValue); - } - } - - var formData = new FormData(); // Adding all @options parameters - - if (this.options.params) { - var additionalParams = this.options.params; - - if (typeof additionalParams === "function") { - additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null); - } - - for (var key in additionalParams) { - var value = additionalParams[key]; - - if (Array.isArray(value)) { - // The additional parameter contains an array, - // so lets iterate over it to attach each value - // individually. - for (var i = 0; i < value.length; i++) { - formData.append(key, value[i]); - } - } else { - formData.append(key, value); - } - } - } // Let the user add additional data if necessary - - - var _iterator14 = dropzone_createForOfIteratorHelper(files, true), - _step14; - - try { - for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) { - var _file = _step14.value; - this.emit("sending", _file, xhr, formData); - } - } catch (err) { - _iterator14.e(err); - } finally { - _iterator14.f(); - } - - if (this.options.uploadMultiple) { - this.emit("sendingmultiple", files, xhr, formData); - } - - this._addFormElementData(formData); // Finally add the files - // Has to be last because some servers (eg: S3) expect the file to be the last parameter - - - for (var _i3 = 0; _i3 < dataBlocks.length; _i3++) { - var dataBlock = dataBlocks[_i3]; - formData.append(dataBlock.name, dataBlock.data, dataBlock.filename); - } - - this.submitRequest(xhr, formData, files); - } // Transforms all files with this.options.transformFile and invokes done with the transformed files when done. - - }, { - key: "_transformFiles", - value: function _transformFiles(files, done) { - var _this16 = this; - - var transformedFiles = []; // Clumsy way of handling asynchronous calls, until I get to add a proper Future library. - - var doneCounter = 0; - - var _loop = function _loop(i) { - _this16.options.transformFile.call(_this16, files[i], function (transformedFile) { - transformedFiles[i] = transformedFile; - - if (++doneCounter === files.length) { - done(transformedFiles); - } - }); - }; - - for (var i = 0; i < files.length; i++) { - _loop(i); - } - } // Takes care of adding other input elements of the form to the AJAX request - - }, { - key: "_addFormElementData", - value: function _addFormElementData(formData) { - // Take care of other input elements - if (this.element.tagName === "FORM") { - var _iterator15 = dropzone_createForOfIteratorHelper(this.element.querySelectorAll("input, textarea, select, button"), true), - _step15; - - try { - for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) { - var input = _step15.value; - var inputName = input.getAttribute("name"); - var inputType = input.getAttribute("type"); - if (inputType) inputType = inputType.toLowerCase(); // If the input doesn't have a name, we can't use it. - - if (typeof inputName === "undefined" || inputName === null) continue; - - if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { - // Possibly multiple values - var _iterator16 = dropzone_createForOfIteratorHelper(input.options, true), - _step16; - - try { - for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) { - var option = _step16.value; - - if (option.selected) { - formData.append(inputName, option.value); - } - } - } catch (err) { - _iterator16.e(err); - } finally { - _iterator16.f(); - } - } else if (!inputType || inputType !== "checkbox" && inputType !== "radio" || input.checked) { - formData.append(inputName, input.value); - } - } - } catch (err) { - _iterator15.e(err); - } finally { - _iterator15.f(); - } - } - } // Invoked when there is new progress information about given files. - // If e is not provided, it is assumed that the upload is finished. - - }, { - key: "_updateFilesUploadProgress", - value: function _updateFilesUploadProgress(files, xhr, e) { - if (!files[0].upload.chunked) { - // Handle file uploads without chunking - var _iterator17 = dropzone_createForOfIteratorHelper(files, true), - _step17; - - try { - for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) { - var file = _step17.value; - - if (file.upload.total && file.upload.bytesSent && file.upload.bytesSent == file.upload.total) { - // If both, the `total` and `bytesSent` have already been set, and - // they are equal (meaning progress is at 100%), we can skip this - // file, since an upload progress shouldn't go down. - continue; - } - - if (e) { - file.upload.progress = 100 * e.loaded / e.total; - file.upload.total = e.total; - file.upload.bytesSent = e.loaded; - } else { - // No event, so we're at 100% - file.upload.progress = 100; - file.upload.bytesSent = file.upload.total; - } - - this.emit("uploadprogress", file, file.upload.progress, file.upload.bytesSent); - } - } catch (err) { - _iterator17.e(err); - } finally { - _iterator17.f(); - } - } else { - // Handle chunked file uploads - // Chunked upload is not compatible with uploading multiple files in one - // request, so we know there's only one file. - var _file2 = files[0]; // Since this is a chunked upload, we need to update the appropriate chunk - // progress. - - var chunk = this._getChunk(_file2, xhr); - - if (e) { - chunk.progress = 100 * e.loaded / e.total; - chunk.total = e.total; - chunk.bytesSent = e.loaded; - } else { - // No event, so we're at 100% - chunk.progress = 100; - chunk.bytesSent = chunk.total; - } // Now tally the *file* upload progress from its individual chunks - - - _file2.upload.progress = 0; - _file2.upload.total = 0; - _file2.upload.bytesSent = 0; - - for (var i = 0; i < _file2.upload.totalChunkCount; i++) { - if (_file2.upload.chunks[i] && typeof _file2.upload.chunks[i].progress !== "undefined") { - _file2.upload.progress += _file2.upload.chunks[i].progress; - _file2.upload.total += _file2.upload.chunks[i].total; - _file2.upload.bytesSent += _file2.upload.chunks[i].bytesSent; - } - } // Since the process is a percentage, we need to divide by the amount of - // chunks we've used. - - - _file2.upload.progress = _file2.upload.progress / _file2.upload.totalChunkCount; - this.emit("uploadprogress", _file2, _file2.upload.progress, _file2.upload.bytesSent); - } - } - }, { - key: "_finishedUploading", - value: function _finishedUploading(files, xhr, e) { - var response; - - if (files[0].status === Dropzone.CANCELED) { - return; - } - - if (xhr.readyState !== 4) { - return; - } - - if (xhr.responseType !== "arraybuffer" && xhr.responseType !== "blob") { - response = xhr.responseText; - - if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { - try { - response = JSON.parse(response); - } catch (error) { - e = error; - response = "Invalid JSON response from server."; - } - } - } - - this._updateFilesUploadProgress(files, xhr); - - if (!(200 <= xhr.status && xhr.status < 300)) { - this._handleUploadError(files, xhr, response); - } else { - if (files[0].upload.chunked) { - files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr), response); - } else { - this._finished(files, response, e); - } - } - } - }, { - key: "_handleUploadError", - value: function _handleUploadError(files, xhr, response) { - if (files[0].status === Dropzone.CANCELED) { - return; - } - - if (files[0].upload.chunked && this.options.retryChunks) { - var chunk = this._getChunk(files[0], xhr); - - if (chunk.retries++ < this.options.retryChunksLimit) { - this._uploadData(files, [chunk.dataBlock]); - - return; - } else { - console.warn("Retried this chunk too often. Giving up."); - } - } - - this._errorProcessing(files, response || this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr); - } - }, { - key: "submitRequest", - value: function submitRequest(xhr, formData, files) { - if (xhr.readyState != 1) { - console.warn("Cannot send this request because the XMLHttpRequest.readyState is not OPENED."); - return; - } - - xhr.send(formData); - } // Called internally when processing is finished. - // Individual callbacks have to be called in the appropriate sections. - - }, { - key: "_finished", - value: function _finished(files, responseText, e) { - var _iterator18 = dropzone_createForOfIteratorHelper(files, true), - _step18; - - try { - for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) { - var file = _step18.value; - file.status = Dropzone.SUCCESS; - this.emit("success", file, responseText, e); - this.emit("complete", file); - } - } catch (err) { - _iterator18.e(err); - } finally { - _iterator18.f(); - } - - if (this.options.uploadMultiple) { - this.emit("successmultiple", files, responseText, e); - this.emit("completemultiple", files); - } - - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - } // Called internally when processing is finished. - // Individual callbacks have to be called in the appropriate sections. - - }, { - key: "_errorProcessing", - value: function _errorProcessing(files, message, xhr) { - var _iterator19 = dropzone_createForOfIteratorHelper(files, true), - _step19; - - try { - for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) { - var file = _step19.value; - file.status = Dropzone.ERROR; - this.emit("error", file, message, xhr); - this.emit("complete", file); - } - } catch (err) { - _iterator19.e(err); - } finally { - _iterator19.f(); - } - - if (this.options.uploadMultiple) { - this.emit("errormultiple", files, message, xhr); - this.emit("completemultiple", files); - } - - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - } - }], [{ - key: "initClass", - value: function initClass() { - // Exposing the emitter class, mainly for tests - this.prototype.Emitter = Emitter; - /* - This is a list of all available events you can register on a dropzone object. - You can register an event handler like this: - dropzone.on("dragEnter", function() { }); - */ - - this.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "addedfiles", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"]; - this.prototype._thumbnailQueue = []; - this.prototype._processingThumbnail = false; - } // global utility - - }, { - key: "extend", - value: function extend(target) { - for (var _len2 = arguments.length, objects = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - objects[_key2 - 1] = arguments[_key2]; - } - - for (var _i4 = 0, _objects = objects; _i4 < _objects.length; _i4++) { - var object = _objects[_i4]; - - for (var key in object) { - var val = object[key]; - target[key] = val; - } - } - - return target; - } - }, { - key: "uuidv4", - value: function uuidv4() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, - v = c === "x" ? r : r & 0x3 | 0x8; - return v.toString(16); - }); - } - }]); - - return Dropzone; -}(Emitter); - - -Dropzone.initClass(); -Dropzone.version = "5.9.3"; // This is a map of options for your different dropzones. Add configurations -// to this object for your different dropzone elemens. -// -// Example: -// -// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 }; -// -// To disable autoDiscover for a specific element, you can set `false` as an option: -// -// Dropzone.options.myDisabledElementId = false; -// -// And in html: -// -//
- -Dropzone.options = {}; // Returns the options for an element or undefined if none available. - -Dropzone.optionsForElement = function (element) { - // Get the `Dropzone.options.elementId` for this element if it exists - if (element.getAttribute("id")) { - return Dropzone.options[camelize(element.getAttribute("id"))]; - } else { - return undefined; - } -}; // Holds a list of all dropzone instances - - -Dropzone.instances = []; // Returns the dropzone for given element if any - -Dropzone.forElement = function (element) { - if (typeof element === "string") { - element = document.querySelector(element); - } - - if ((element != null ? element.dropzone : undefined) == null) { - throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); - } - - return element.dropzone; -}; // Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements. - - -Dropzone.autoDiscover = true; // Looks for all .dropzone elements and creates a dropzone for them - -Dropzone.discover = function () { - var dropzones; - - if (document.querySelectorAll) { - dropzones = document.querySelectorAll(".dropzone"); - } else { - dropzones = []; // IE :( - - var checkElements = function checkElements(elements) { - return function () { - var result = []; - - var _iterator20 = dropzone_createForOfIteratorHelper(elements, true), - _step20; - - try { - for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) { - var el = _step20.value; - - if (/(^| )dropzone($| )/.test(el.className)) { - result.push(dropzones.push(el)); - } else { - result.push(undefined); - } - } - } catch (err) { - _iterator20.e(err); - } finally { - _iterator20.f(); - } - - return result; - }(); - }; - - checkElements(document.getElementsByTagName("div")); - checkElements(document.getElementsByTagName("form")); - } - - return function () { - var result = []; - - var _iterator21 = dropzone_createForOfIteratorHelper(dropzones, true), - _step21; - - try { - for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) { - var dropzone = _step21.value; - - // Create a dropzone unless auto discover has been disabled for specific element - if (Dropzone.optionsForElement(dropzone) !== false) { - result.push(new Dropzone(dropzone)); - } else { - result.push(undefined); - } - } - } catch (err) { - _iterator21.e(err); - } finally { - _iterator21.f(); - } - - return result; - }(); -}; // Some browsers support drag and drog functionality, but not correctly. -// -// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know. -// But what to do when browsers *theoretically* support an API, but crash -// when using it. -// -// This is a list of regular expressions tested against navigator.userAgent -// -// ** It should only be used on browser that *do* support the API, but -// incorrectly ** - - -Dropzone.blockedBrowsers = [// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API. -/opera.*(Macintosh|Windows Phone).*version\/12/i]; // Checks if the browser is supported - -Dropzone.isBrowserSupported = function () { - var capableBrowser = true; - - if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { - if (!("classList" in document.createElement("a"))) { - capableBrowser = false; - } else { - if (Dropzone.blacklistedBrowsers !== undefined) { - // Since this has been renamed, this makes sure we don't break older - // configuration. - Dropzone.blockedBrowsers = Dropzone.blacklistedBrowsers; - } // The browser supports the API, but may be blocked. - - - var _iterator22 = dropzone_createForOfIteratorHelper(Dropzone.blockedBrowsers, true), - _step22; - - try { - for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) { - var regex = _step22.value; - - if (regex.test(navigator.userAgent)) { - capableBrowser = false; - continue; - } - } - } catch (err) { - _iterator22.e(err); - } finally { - _iterator22.f(); - } - } - } else { - capableBrowser = false; - } - - return capableBrowser; -}; - -Dropzone.dataURItoBlob = function (dataURI) { - // convert base64 to raw binary data held in a string - // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this - var byteString = atob(dataURI.split(",")[1]); // separate out the mime component - - var mimeString = dataURI.split(",")[0].split(":")[1].split(";")[0]; // write the bytes of the string to an ArrayBuffer - - var ab = new ArrayBuffer(byteString.length); - var ia = new Uint8Array(ab); - - for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) { - ia[i] = byteString.charCodeAt(i); - } // write the ArrayBuffer to a blob - - - return new Blob([ab], { - type: mimeString - }); -}; // Returns an array without the rejected item - - -var without = function without(list, rejectedItem) { - return list.filter(function (item) { - return item !== rejectedItem; - }).map(function (item) { - return item; - }); -}; // abc-def_ghi -> abcDefGhi - - -var camelize = function camelize(str) { - return str.replace(/[\-_](\w)/g, function (match) { - return match.charAt(1).toUpperCase(); - }); -}; // Creates an element from string - - -Dropzone.createElement = function (string) { - var div = document.createElement("div"); - div.innerHTML = string; - return div.childNodes[0]; -}; // Tests if given element is inside (or simply is) the container - - -Dropzone.elementInside = function (element, container) { - if (element === container) { - return true; - } // Coffeescript doesn't support do/while loops - - - while (element = element.parentNode) { - if (element === container) { - return true; - } - } - - return false; -}; - -Dropzone.getElement = function (el, name) { - var element; - - if (typeof el === "string") { - element = document.querySelector(el); - } else if (el.nodeType != null) { - element = el; - } - - if (element == null) { - throw new Error("Invalid `".concat(name, "` option provided. Please provide a CSS selector or a plain HTML element.")); - } - - return element; -}; - -Dropzone.getElements = function (els, name) { - var el, elements; - - if (els instanceof Array) { - elements = []; - - try { - var _iterator23 = dropzone_createForOfIteratorHelper(els, true), - _step23; - - try { - for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) { - el = _step23.value; - elements.push(this.getElement(el, name)); - } - } catch (err) { - _iterator23.e(err); - } finally { - _iterator23.f(); - } - } catch (e) { - elements = null; - } - } else if (typeof els === "string") { - elements = []; - - var _iterator24 = dropzone_createForOfIteratorHelper(document.querySelectorAll(els), true), - _step24; - - try { - for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) { - el = _step24.value; - elements.push(el); - } - } catch (err) { - _iterator24.e(err); - } finally { - _iterator24.f(); - } - } else if (els.nodeType != null) { - elements = [els]; - } - - if (elements == null || !elements.length) { - throw new Error("Invalid `".concat(name, "` option provided. Please provide a CSS selector, a plain HTML element or a list of those.")); - } - - return elements; -}; // Asks the user the question and calls accepted or rejected accordingly -// -// The default implementation just uses `window.confirm` and then calls the -// appropriate callback. - - -Dropzone.confirm = function (question, accepted, rejected) { - if (window.confirm(question)) { - return accepted(); - } else if (rejected != null) { - return rejected(); - } -}; // Validates the mime type like this: -// -// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept - - -Dropzone.isValidFile = function (file, acceptedFiles) { - if (!acceptedFiles) { - return true; - } // If there are no accepted mime types, it's OK - - - acceptedFiles = acceptedFiles.split(","); - var mimeType = file.type; - var baseMimeType = mimeType.replace(/\/.*$/, ""); - - var _iterator25 = dropzone_createForOfIteratorHelper(acceptedFiles, true), - _step25; - - try { - for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) { - var validType = _step25.value; - validType = validType.trim(); - - if (validType.charAt(0) === ".") { - if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) { - return true; - } - } else if (/\/\*$/.test(validType)) { - // This is something like a image/* mime type - if (baseMimeType === validType.replace(/\/.*$/, "")) { - return true; - } - } else { - if (mimeType === validType) { - return true; - } - } - } - } catch (err) { - _iterator25.e(err); - } finally { - _iterator25.f(); - } - - return false; -}; // Augment jQuery - - -if (typeof jQuery !== "undefined" && jQuery !== null) { - jQuery.fn.dropzone = function (options) { - return this.each(function () { - return new Dropzone(this, options); - }); - }; -} // Dropzone file status codes - - -Dropzone.ADDED = "added"; -Dropzone.QUEUED = "queued"; // For backwards compatibility. Now, if a file is accepted, it's either queued -// or uploading. - -Dropzone.ACCEPTED = Dropzone.QUEUED; -Dropzone.UPLOADING = "uploading"; -Dropzone.PROCESSING = Dropzone.UPLOADING; // alias - -Dropzone.CANCELED = "canceled"; -Dropzone.ERROR = "error"; -Dropzone.SUCCESS = "success"; -/* - - Bugfix for iOS 6 and 7 - Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios - based on the work of https://github.com/stomita/ios-imagefile-megapixel - - */ -// Detecting vertical squash in loaded image. -// Fixes a bug which squash image vertically while drawing into canvas for some images. -// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel - -var detectVerticalSquash = function detectVerticalSquash(img) { - var iw = img.naturalWidth; - var ih = img.naturalHeight; - var canvas = document.createElement("canvas"); - canvas.width = 1; - canvas.height = ih; - var ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0); - - var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih), - data = _ctx$getImageData.data; // search image edge pixel position in case it is squashed vertically. - - - var sy = 0; - var ey = ih; - var py = ih; - - while (py > sy) { - var alpha = data[(py - 1) * 4 + 3]; - - if (alpha === 0) { - ey = py; - } else { - sy = py; - } - - py = ey + sy >> 1; - } - - var ratio = py / ih; - - if (ratio === 0) { - return 1; - } else { - return ratio; - } -}; // A replacement for context.drawImage -// (args are for source and destination). - - -var drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { - var vertSquashRatio = detectVerticalSquash(img); - return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); -}; // Based on MinifyJpeg -// Source: http://www.perry.cz/files/ExifRestorer.js -// http://elicon.blog57.fc2.com/blog-entry-206.html - - -var ExifRestore = /*#__PURE__*/function () { - function ExifRestore() { - dropzone_classCallCheck(this, ExifRestore); - } - - dropzone_createClass(ExifRestore, null, [{ - key: "initClass", - value: function initClass() { - this.KEY_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - } - }, { - key: "encode64", - value: function encode64(input) { - var output = ""; - var chr1 = undefined; - var chr2 = undefined; - var chr3 = ""; - var enc1 = undefined; - var enc2 = undefined; - var enc3 = undefined; - var enc4 = ""; - var i = 0; - - while (true) { - chr1 = input[i++]; - chr2 = input[i++]; - chr3 = input[i++]; - enc1 = chr1 >> 2; - enc2 = (chr1 & 3) << 4 | chr2 >> 4; - enc3 = (chr2 & 15) << 2 | chr3 >> 6; - enc4 = chr3 & 63; - - if (isNaN(chr2)) { - enc3 = enc4 = 64; - } else if (isNaN(chr3)) { - enc4 = 64; - } - - output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4); - chr1 = chr2 = chr3 = ""; - enc1 = enc2 = enc3 = enc4 = ""; - - if (!(i < input.length)) { - break; - } - } - - return output; - } - }, { - key: "restore", - value: function restore(origFileBase64, resizedFileBase64) { - if (!origFileBase64.match("data:image/jpeg;base64,")) { - return resizedFileBase64; - } - - var rawImage = this.decode64(origFileBase64.replace("data:image/jpeg;base64,", "")); - var segments = this.slice2Segments(rawImage); - var image = this.exifManipulation(resizedFileBase64, segments); - return "data:image/jpeg;base64,".concat(this.encode64(image)); - } - }, { - key: "exifManipulation", - value: function exifManipulation(resizedFileBase64, segments) { - var exifArray = this.getExifArray(segments); - var newImageArray = this.insertExif(resizedFileBase64, exifArray); - var aBuffer = new Uint8Array(newImageArray); - return aBuffer; - } - }, { - key: "getExifArray", - value: function getExifArray(segments) { - var seg = undefined; - var x = 0; - - while (x < segments.length) { - seg = segments[x]; - - if (seg[0] === 255 & seg[1] === 225) { - return seg; - } - - x++; - } - - return []; - } - }, { - key: "insertExif", - value: function insertExif(resizedFileBase64, exifArray) { - var imageData = resizedFileBase64.replace("data:image/jpeg;base64,", ""); - var buf = this.decode64(imageData); - var separatePoint = buf.indexOf(255, 3); - var mae = buf.slice(0, separatePoint); - var ato = buf.slice(separatePoint); - var array = mae; - array = array.concat(exifArray); - array = array.concat(ato); - return array; - } - }, { - key: "slice2Segments", - value: function slice2Segments(rawImageArray) { - var head = 0; - var segments = []; - - while (true) { - var length; - - if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) { - break; - } - - if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) { - head += 2; - } else { - length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3]; - var endPoint = head + length + 2; - var seg = rawImageArray.slice(head, endPoint); - segments.push(seg); - head = endPoint; - } - - if (head > rawImageArray.length) { - break; - } - } - - return segments; - } - }, { - key: "decode64", - value: function decode64(input) { - var output = ""; - var chr1 = undefined; - var chr2 = undefined; - var chr3 = ""; - var enc1 = undefined; - var enc2 = undefined; - var enc3 = undefined; - var enc4 = ""; - var i = 0; - var buf = []; // remove all characters that are not A-Z, a-z, 0-9, +, /, or = - - var base64test = /[^A-Za-z0-9\+\/\=]/g; - - if (base64test.exec(input)) { - console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."); - } - - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - while (true) { - enc1 = this.KEY_STR.indexOf(input.charAt(i++)); - enc2 = this.KEY_STR.indexOf(input.charAt(i++)); - enc3 = this.KEY_STR.indexOf(input.charAt(i++)); - enc4 = this.KEY_STR.indexOf(input.charAt(i++)); - chr1 = enc1 << 2 | enc2 >> 4; - chr2 = (enc2 & 15) << 4 | enc3 >> 2; - chr3 = (enc3 & 3) << 6 | enc4; - buf.push(chr1); - - if (enc3 !== 64) { - buf.push(chr2); - } - - if (enc4 !== 64) { - buf.push(chr3); - } - - chr1 = chr2 = chr3 = ""; - enc1 = enc2 = enc3 = enc4 = ""; - - if (!(i < input.length)) { - break; - } - } - - return buf; - } - }]); - - return ExifRestore; -}(); - -ExifRestore.initClass(); -/* - * contentloaded.js - * - * Author: Diego Perini (diego.perini at gmail.com) - * Summary: cross-browser wrapper for DOMContentLoaded - * Updated: 20101020 - * License: MIT - * Version: 1.2 - * - * URL: - * http://javascript.nwbox.com/ContentLoaded/ - * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE - */ -// @win window reference -// @fn function reference - -var contentLoaded = function contentLoaded(win, fn) { - var done = false; - var top = true; - var doc = win.document; - var root = doc.documentElement; - var add = doc.addEventListener ? "addEventListener" : "attachEvent"; - var rem = doc.addEventListener ? "removeEventListener" : "detachEvent"; - var pre = doc.addEventListener ? "" : "on"; - - var init = function init(e) { - if (e.type === "readystatechange" && doc.readyState !== "complete") { - return; - } - - (e.type === "load" ? win : doc)[rem](pre + e.type, init, false); - - if (!done && (done = true)) { - return fn.call(win, e.type || e); - } - }; - - var poll = function poll() { - try { - root.doScroll("left"); - } catch (e) { - setTimeout(poll, 50); - return; - } - - return init("poll"); - }; - - if (doc.readyState !== "complete") { - if (doc.createEventObject && root.doScroll) { - try { - top = !win.frameElement; - } catch (error) {} - - if (top) { - poll(); - } - } - - doc[add](pre + "DOMContentLoaded", init, false); - doc[add](pre + "readystatechange", init, false); - return win[add](pre + "load", init, false); - } -}; // As a single function to be able to write tests. - - -Dropzone._autoDiscoverFunction = function () { - if (Dropzone.autoDiscover) { - return Dropzone.discover(); - } -}; - -contentLoaded(window, Dropzone._autoDiscoverFunction); - -function __guard__(value, transform) { - return typeof value !== "undefined" && value !== null ? transform(value) : undefined; -} - -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { - return transform(obj, methodName); - } else { - return undefined; - } -} - - -;// CONCATENATED MODULE: ./tool/dropzone.dist.js - /// Make Dropzone a global variable. - -window.Dropzone = Dropzone; -/* harmony default export */ var dropzone_dist = (Dropzone); - -}(); -/******/ return __webpack_exports__; -/******/ })() -; -}); \ No newline at end of file diff --git a/plugins/dropzone/dropzone.js.map b/plugins/dropzone/dropzone.js.map deleted file mode 100644 index 1ee4b646..00000000 --- a/plugins/dropzone/dropzone.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/dropzone.js"],"names":["Emitter","event","fn","_callbacks","push","callbacks","args","callback","apply","arguments","length","i","splice","Dropzone","prototype","events","defaultOptions","url","method","withCredentials","timeout","parallelUploads","uploadMultiple","chunking","forceChunking","chunkSize","parallelChunkUploads","retryChunks","retryChunksLimit","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailMethod","resizeWidth","resizeHeight","resizeMimeType","resizeQuality","resizeMethod","filesizeBase","maxFiles","headers","clickable","ignoreHiddenFiles","acceptedFiles","acceptedMimeTypes","autoProcessQueue","autoQueue","addRemoveLinks","previewsContainer","hiddenInputContainer","capture","renameFilename","renameFile","forceFallback","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictUploadCanceled","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","dictFileSizeUnits","tb","gb","mb","kb","b","init","params","files","xhr","chunk","dzuuid","file","upload","uuid","dzchunkindex","index","dztotalfilesize","size","dzchunksize","options","dztotalchunkcount","totalChunkCount","dzchunkbyteoffset","accept","done","chunksUploaded","fallback","messageElement","element","className","getElementsByTagName","child","test","createElement","appendChild","span","textContent","innerText","getFallbackForm","resize","width","height","info","srcX","srcY","srcWidth","srcHeight","srcRatio","Math","min","trgRatio","Error","trgWidth","trgHeight","transformFile","type","match","resizeImage","previewTemplate","drop","e","classList","remove","dragstart","dragend","dragenter","add","dragover","dragleave","paste","reset","addedfile","previewElement","trim","querySelectorAll","node","name","innerHTML","filesize","_removeLink","removeFileEvent","preventDefault","stopPropagation","status","UPLOADING","confirm","removeFile","removeLink","addEventListener","removedfile","parentNode","removeChild","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","alt","src","setTimeout","error","message","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","nodeName","value","style","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","emit","canceledmultiple","complete","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","_thumbnailQueue","_processingThumbnail","target","objects","object","key","val","el","left","version","replace","clickableElements","listeners","document","querySelector","nodeType","dropzone","instances","elementOptions","optionsForElement","extend","isBrowserSupported","call","getAttribute","toUpperCase","getExistingFallback","getElement","getElements","filter","accepted","map","getFilesWithStatus","QUEUED","ADDED","tagName","setAttribute","contains","setupHiddenFileInput","hiddenFileInput","visibility","position","top","addFile","URL","window","webkitURL","eventName","on","updateTotalUploadProgress","getAddedFiles","getUploadingFiles","getQueuedFiles","noPropagation","returnValue","efct","dataTransfer","effectAllowed","dropEffect","forEach","clickableElement","evt","elementInside","click","enable","disable","removeAllFiles","undefined","indexOf","totalUploadProgress","totalBytesSent","totalBytes","activeFiles","getActiveFiles","total","n","existingFallback","form","fieldsString","_getParamName","fields","getFallback","elements","elementListeners","result","listener","removeEventListener","removeEventListeners","disabled","cancelUpload","setupEventListeners","selectedSize","selectedUnit","units","unit","cutoff","pow","round","getAcceptedFiles","items","webkitGetAsEntry","_addFilesFromItems","handleFiles","__guard__","clipboardData","x","item","entry","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","path","dirReader","createReader","errorHandler","__guardMethod__","console","o","log","readEntries","entries","substring","fullPath","isValidFile","uuidv4","filename","_renameFile","chunked","ceil","_enqueueThumbnail","_errorProcessing","enqueueFile","processQueue","_processThumbnailQueue","shift","createThumbnail","without","cancelIfNecessary","slice","canvas","resizedDataURL","toDataURL","ExifRestore","restore","dataURL","dataURItoBlob","fixOrientation","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","crossOrigin","img","loadExif","EXIF","getData","getTag","orientation","resizeInfo","ctx","getContext","translate","scale","rotate","PI","drawImageIOSFix","trgX","trgY","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","groupedFiles","_getFilesWithXhr","groupedFile","CANCELED","abort","option","_transformFiles","transformedFiles","transformedFile","startedChunkCount","chunks","handleNextChunk","chunkIndex","start","end","dataBlock","data","webkitSlice","retries","_uploadData","finishedChunkUpload","allFinished","SUCCESS","_finished","dataBlocks","XMLHttpRequest","resolveOption","open","_finishedUploading","ontimeout","_handleUploadError","progressObj","onprogress","_updateFilesUploadProgress","headerName","headerValue","setRequestHeader","formData","FormData","additionalParams","_getChunk","append","_addFormElementData","submitRequest","doneCounter","input","inputName","inputType","toLowerCase","hasAttribute","selected","checked","loaded","fileProgress","fileTotal","fileBytesSent","allFilesFinished","response","readyState","responseType","responseText","getResponseHeader","JSON","parse","warn","send","ERROR","c","r","random","v","toString","initClass","camelize","forElement","autoDiscover","discover","dropzones","checkElements","blacklistedBrowsers","capableBrowser","File","FileList","Blob","regex","navigator","userAgent","dataURI","byteString","atob","split","mimeString","ab","ArrayBuffer","ia","Uint8Array","asc","charCodeAt","list","rejectedItem","str","charAt","string","div","childNodes","container","els","Array","question","rejected","mimeType","baseMimeType","validType","jQuery","each","module","exports","ACCEPTED","PROCESSING","detectVerticalSquash","iw","naturalWidth","ih","naturalHeight","drawImage","getImageData","sy","ey","py","alpha","ratio","sx","sw","sh","dx","dy","dw","dh","vertSquashRatio","KEY_STR","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","isNaN","origFileBase64","resizedFileBase64","rawImage","decode64","segments","slice2Segments","image","exifManipulation","encode64","exifArray","getExifArray","newImageArray","insertExif","aBuffer","seg","imageData","buf","separatePoint","mae","ato","array","concat","rawImageArray","head","endPoint","base64test","exec","contentLoaded","win","doc","root","documentElement","rem","pre","poll","doScroll","createEventObject","frameElement","_autoDiscoverFunction","transform","obj","methodName"],"mappings":"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","sourcesContent":["/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n\n// The Emitter class provides the ability to call `.on()` on Dropzone to listen\n// to events.\n// It is strongly based on component's emitter class, and I removed the\n// functionality because of the dependency hell with different frameworks.\nclass Emitter {\n // Add an event listener for given event\n on(event, fn) {\n this._callbacks = this._callbacks || {};\n // Create namespace for this event\n if (!this._callbacks[event]) {\n this._callbacks[event] = [];\n }\n this._callbacks[event].push(fn);\n return this;\n }\n\n\n emit(event, ...args) {\n this._callbacks = this._callbacks || {};\n let callbacks = this._callbacks[event];\n\n if (callbacks) {\n for (let callback of callbacks) {\n callback.apply(this, args);\n }\n }\n\n return this;\n }\n\n // Remove event listener for given event. If fn is not provided, all event\n // listeners for that event will be removed. If neither is provided, all\n // event listeners will be removed.\n off(event, fn) {\n if (!this._callbacks || (arguments.length === 0)) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n let callbacks = this._callbacks[event];\n if (!callbacks) {\n return this;\n }\n\n // remove all handlers\n if (arguments.length === 1) {\n delete this._callbacks[event];\n return this;\n }\n\n // remove specific handler\n for (let i = 0; i < callbacks.length; i++) {\n let callback = callbacks[i];\n if (callback === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n return this;\n }\n}\n\nclass Dropzone extends Emitter {\n static initClass() {\n\n // Exposing the emitter class, mainly for tests\n this.prototype.Emitter = Emitter;\n\n /*\n This is a list of all available events you can register on a dropzone object.\n\n You can register an event handler like this:\n\n dropzone.on(\"dragEnter\", function() { });\n\n */\n this.prototype.events = [\n \"drop\",\n \"dragstart\",\n \"dragend\",\n \"dragenter\",\n \"dragover\",\n \"dragleave\",\n \"addedfile\",\n \"addedfiles\",\n \"removedfile\",\n \"thumbnail\",\n \"error\",\n \"errormultiple\",\n \"processing\",\n \"processingmultiple\",\n \"uploadprogress\",\n \"totaluploadprogress\",\n \"sending\",\n \"sendingmultiple\",\n \"success\",\n \"successmultiple\",\n \"canceled\",\n \"canceledmultiple\",\n \"complete\",\n \"completemultiple\",\n \"reset\",\n \"maxfilesexceeded\",\n \"maxfilesreached\",\n \"queuecomplete\"\n ];\n\n\n this.prototype.defaultOptions = {\n /**\n * Has to be specified on elements other than form (or when the form\n * doesn't have an `action` attribute). You can also\n * provide a function that will be called with `files` and\n * must return the url (since `v3.12.0`)\n */\n url: null,\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method (since `v3.12.0`).\n */\n method: \"post\",\n\n /**\n * Will be set on the XHRequest.\n */\n withCredentials: false,\n\n /**\n * The timeout for the XHR requests in milliseconds (since `v4.4.0`).\n */\n timeout: 30000,\n\n /**\n * How many file uploads to process in parallel (See the\n * Enqueuing file uploads* documentation section for more info)\n */\n parallelUploads: 2,\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `processingmultiple`). See the events\n * documentation section for more information.\n */\n uploadMultiple: false,\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload.\n */\n chunking: false,\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n forceChunking: false,\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n chunkSize: 2000000,\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n parallelChunkUploads: false,\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n retryChunks: false,\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n retryChunksLimit: 3,\n\n /**\n * If not `null` defines how many files this Dropzone handles. If it exceeds,\n * the event `maxfilesexceeded` will be called. The dropzone element gets the\n * class `dz-max-files-reached` accordingly so you can provide visual feedback.\n */\n maxFilesize: 256,\n\n /**\n * The name of the file param that gets transferred.\n * **NOTE**: If you have the option `uploadMultiple` set to `true`, then\n * Dropzone will append `[]` to the name.\n */\n paramName: \"file\",\n\n /**\n * Whether thumbnails for images should be generated\n */\n createImageThumbnails: true,\n\n /**\n * In MB. When the filename exceeds this limit, the thumbnail will not be generated.\n */\n maxThumbnailFilesize: 10,\n\n /**\n * If `null`, the ratio of the image will be used to calculate it.\n */\n thumbnailWidth: 120,\n\n /**\n * The same as `thumbnailWidth`. If both are null, images will not be resized.\n */\n thumbnailHeight: 120,\n\n /**\n * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n thumbnailMethod: 'crop',\n\n /**\n * If set, images will be resized to these dimensions before being **uploaded**.\n * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect\n * ratio of the file will be preserved.\n *\n * The `options.transformFile` function uses these options, so if the `transformFile` function\n * is overridden, these options don't do anything.\n */\n resizeWidth: null,\n\n /**\n * See `resizeWidth`.\n */\n resizeHeight: null,\n\n /**\n * The mime type of the resized image (before it gets uploaded to the server).\n * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`.\n * See `resizeWidth` for more information.\n */\n resizeMimeType: null,\n\n /**\n * The quality of the resized images. See `resizeWidth`.\n */\n resizeQuality: 0.8,\n\n /**\n * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n resizeMethod: 'contain',\n\n /**\n * The base that is used to calculate the filesize. You can change this to\n * 1024 if you would rather display kibibytes, mebibytes, etc...\n * 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte` not `1 kilobyte`.\n * You can change this to `1024` if you don't care about validity.\n */\n filesizeBase: 1000,\n\n /**\n * Can be used to limit the maximum number of files that will be handled by this Dropzone\n */\n maxFiles: null,\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n */\n headers: null,\n\n /**\n * If `true`, the dropzone element itself will be clickable, if `false`\n * nothing will be clickable.\n *\n * You can also pass an HTML element, a CSS selector (for multiple elements)\n * or an array of those. In that case, all of those elements will trigger an\n * upload when clicked.\n */\n clickable: true,\n\n /**\n * Whether hidden files in directories should be ignored.\n */\n ignoreHiddenFiles: true,\n\n\n /**\n * The default implementation of `accept` checks the file's mime type or\n * extension against this list. This is a comma separated list of mime\n * types or file extensions.\n *\n * Eg.: `image/*,application/pdf,.psd`\n *\n * If the Dropzone is `clickable` this option will also be used as\n * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n * parameter on the hidden file input as well.\n */\n acceptedFiles: null,\n\n /**\n * **Deprecated!**\n * Use acceptedFiles instead.\n */\n acceptedMimeTypes: null,\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want want all files sent at once).\n * If you're ready to send the file simply call `myDropzone.processQueue()`.\n *\n * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation\n * section for more information.\n */\n autoProcessQueue: true,\n\n /**\n * If false, files added to the dropzone will not be queued by default.\n * You'll have to call `enqueueFile(file)` manually.\n */\n autoQueue: true,\n\n /**\n * If `true`, this will add a link to every file preview to remove or cancel (if\n * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation`\n * and `dictRemoveFile` options are used for the wording.\n */\n addRemoveLinks: false,\n\n /**\n * Defines where to display the file previews – if `null` the\n * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS\n * selector. The element should have the `dropzone-previews` class so\n * the previews are displayed properly.\n */\n previewsContainer: null,\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly.\n */\n hiddenInputContainer: \"body\",\n\n /**\n * If null, no capture type will be specified\n * If camera, mobile devices will skip the file selection and choose camera\n * If microphone, mobile devices will skip the file selection and choose the microphone\n * If camcorder, mobile devices will skip the file selection and choose the camera in video mode\n * On apple devices multiple must be set to false. AcceptedFiles may need to\n * be set to an appropriate mime type (e.g. \"image/*\", \"audio/*\", or \"video/*\").\n */\n capture: null,\n\n /**\n * **Deprecated**. Use `renameFile` instead.\n */\n renameFilename: null,\n\n /**\n * A function that is invoked before the file is uploaded to the server and renames the file.\n * This function gets the `File` as argument and can use the `file.name`. The actual name of the\n * file that gets used during the upload can be accessed through `file.upload.filename`.\n */\n renameFile: null,\n\n /**\n * If `true` the fallback will be forced. This is very useful to test your server\n * implementations first and make sure that everything works as\n * expected without dropzone if you experience problems, and to test\n * how your fallbacks will look.\n */\n forceFallback: false,\n\n /**\n * The text used before any files are dropped.\n */\n dictDefaultMessage: \"Drop files here to upload\",\n\n /**\n * The text that replaces the default message text it the browser is not supported.\n */\n dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n\n /**\n * The text that will be added before the fallback form.\n * If you provide a fallback element yourself, or if this option is `null` this will\n * be ignored.\n */\n dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n\n /**\n * If the filesize is too big.\n * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values.\n */\n dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\n /**\n * If the file doesn't match the file type.\n */\n dictInvalidFileType: \"You can't upload files of this type.\",\n\n /**\n * If the server response was invalid.\n * `{{statusCode}}` will be replaced with the servers status code.\n */\n dictResponseError: \"Server responded with {{statusCode}} code.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for the cancel upload link.\n */\n dictCancelUpload: \"Cancel upload\",\n\n /**\n * The text that is displayed if an upload was manually canceled\n */\n dictUploadCanceled: \"Upload canceled.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload.\n */\n dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used to remove a file.\n */\n dictRemoveFile: \"Remove file\",\n\n /**\n * If this is not null, then the user will be prompted before removing a file.\n */\n dictRemoveFileConfirmation: null,\n\n /**\n * Displayed if `maxFiles` is st and exceeded.\n * The string `{{maxFiles}}` will be replaced by the configuration value.\n */\n dictMaxFilesExceeded: \"You can not upload any more files.\",\n\n /**\n * Allows you to translate the different units. Starting with `tb` for terabytes and going down to\n * `b` for bytes.\n */\n dictFileSizeUnits: {tb: \"TB\", gb: \"GB\", mb: \"MB\", kb: \"KB\", b: \"b\"},\n /**\n * Called when dropzone initialized\n * You can add event listeners here\n */\n init() {},\n\n /**\n * Can be an **object** of additional parameters to transfer to the server, **or** a `Function`\n * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case\n * of a function, this needs to return a map.\n *\n * The default implementation does nothing for normal uploads, but adds relevant information for\n * chunked uploads.\n *\n * This is the same as adding hidden input fields in the form element.\n */\n params(files, xhr, chunk) {\n if (chunk) {\n return {\n dzuuid: chunk.file.upload.uuid,\n dzchunkindex: chunk.index,\n dztotalfilesize: chunk.file.size,\n dzchunksize: this.options.chunkSize,\n dztotalchunkcount: chunk.file.upload.totalChunkCount,\n dzchunkbyteoffset: chunk.index * this.options.chunkSize\n };\n }\n },\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n accept(file, done) {\n return done();\n },\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n chunksUploaded: function(file, done) { done(); },\n\n /**\n * Gets called when the browser is not supported.\n * The default implementation shows the fallback input field and adds\n * a text.\n */\n fallback() {\n // This code should pass in IE7... :(\n let messageElement;\n this.element.className = `${this.element.className} dz-browser-not-supported`;\n\n for (let child of this.element.getElementsByTagName(\"div\")) {\n if (/(^| )dz-message($| )/.test(child.className)) {\n messageElement = child;\n child.className = \"dz-message\"; // Removes the 'dz-default' class\n break;\n }\n }\n if (!messageElement) {\n messageElement = Dropzone.createElement(\"
\");\n this.element.appendChild(messageElement);\n }\n\n let span = messageElement.getElementsByTagName(\"span\")[0];\n if (span) {\n if (span.textContent != null) {\n span.textContent = this.options.dictFallbackMessage;\n } else if (span.innerText != null) {\n span.innerText = this.options.dictFallbackMessage;\n }\n }\n\n return this.element.appendChild(this.getFallbackForm());\n },\n\n\n /**\n * Gets called to calculate the thumbnail dimensions.\n *\n * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing:\n *\n * - `srcWidth` & `srcHeight` (required)\n * - `trgWidth` & `trgHeight` (required)\n * - `srcX` & `srcY` (optional, default `0`)\n * - `trgX` & `trgY` (optional, default `0`)\n *\n * Those values are going to be used by `ctx.drawImage()`.\n */\n resize(file, width, height, resizeMethod) {\n let info = {\n srcX: 0,\n srcY: 0,\n srcWidth: file.width,\n srcHeight: file.height\n };\n\n let srcRatio = file.width / file.height;\n\n // Automatically calculate dimensions if not specified\n if ((width == null) && (height == null)) {\n width = info.srcWidth;\n height = info.srcHeight;\n } else if ((width == null)) {\n width = height * srcRatio;\n } else if ((height == null)) {\n height = width / srcRatio;\n }\n\n // Make sure images aren't upscaled\n width = Math.min(width, info.srcWidth);\n height = Math.min(height, info.srcHeight);\n\n let trgRatio = width / height;\n\n if ((info.srcWidth > width) || (info.srcHeight > height)) {\n // Image is bigger and needs rescaling\n if (resizeMethod === 'crop') {\n if (srcRatio > trgRatio) {\n info.srcHeight = file.height;\n info.srcWidth = info.srcHeight * trgRatio;\n } else {\n info.srcWidth = file.width;\n info.srcHeight = info.srcWidth / trgRatio;\n }\n } else if (resizeMethod === 'contain') {\n // Method 'contain'\n if (srcRatio > trgRatio) {\n height = width / srcRatio;\n } else {\n width = height * srcRatio;\n }\n } else {\n throw new Error(`Unknown resizeMethod '${resizeMethod}'`);\n }\n }\n\n info.srcX = (file.width - info.srcWidth) / 2;\n info.srcY = (file.height - info.srcHeight) / 2;\n\n info.trgWidth = width;\n info.trgHeight = height;\n\n return info;\n },\n\n /**\n * Can be used to transform the file (for example, resize an image if necessary).\n *\n * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes\n * images according to those dimensions.\n *\n * Gets the `file` as the first parameter, and a `done()` function as the second, that needs\n * to be invoked with the file when the transformation is done.\n */\n transformFile(file, done) {\n if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {\n return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done);\n } else {\n return done(file);\n }\n },\n\n\n /**\n * A string that contains the template used for each dropped\n * file. Change it to fulfill your needs but make sure to properly\n * provide all elements.\n *\n * If you want to use an actual HTML element instead of providing a String\n * as a config option, you could create a div with the id `tpl`,\n * put the template inside it and provide the element like this:\n *\n * document\n * .querySelector('#tpl')\n * .innerHTML\n *\n */\n previewTemplate: `\\\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n Check\n \n \n \n \n \n
\n
\n \n Error\n \n \n \n \n \n \n \n
\n
\\\n`,\n\n // END OPTIONS\n // (Required by the dropzone documentation parser)\n\n\n /*\n Those functions register themselves to the events on init and handle all\n the user interface specific stuff. Overwriting them won't break the upload\n but can break the way it's displayed.\n You can overwrite them if you don't like the default behavior. If you just\n want to add an additional event handler, register it on the dropzone object\n and don't overwrite those options.\n */\n\n\n\n\n // Those are self explanatory and simply concern the DragnDrop.\n drop(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragstart(e) {\n },\n dragend(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragenter(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragover(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragleave(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n\n paste(e) {\n },\n\n // Called whenever there are no files left in the dropzone anymore, and the\n // dropzone should be displayed as if in the initial state.\n reset() {\n return this.element.classList.remove(\"dz-started\");\n },\n\n // Called when a file is added to the queue\n // Receives `file`\n addedfile(file) {\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n if (this.previewsContainer) {\n file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement; // Backwards compatibility\n\n this.previewsContainer.appendChild(file.previewElement);\n for (var node of file.previewElement.querySelectorAll(\"[data-dz-name]\")) {\n node.textContent = file.name;\n }\n for (node of file.previewElement.querySelectorAll(\"[data-dz-size]\")) {\n node.innerHTML = this.filesize(file.size);\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = Dropzone.createElement(`${this.options.dictRemoveFile}`);\n file.previewElement.appendChild(file._removeLink);\n }\n\n let removeFileEvent = e => {\n e.preventDefault();\n e.stopPropagation();\n if (file.status === Dropzone.UPLOADING) {\n return Dropzone.confirm(this.options.dictCancelUploadConfirmation, () => this.removeFile(file));\n } else {\n if (this.options.dictRemoveFileConfirmation) {\n return Dropzone.confirm(this.options.dictRemoveFileConfirmation, () => this.removeFile(file));\n } else {\n return this.removeFile(file);\n }\n }\n };\n\n for (let removeLink of file.previewElement.querySelectorAll(\"[data-dz-remove]\")) {\n removeLink.addEventListener(\"click\", removeFileEvent);\n }\n }\n },\n\n\n // Called whenever a file is removed.\n removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n return this._updateMaxFilesReachedClass();\n },\n\n // Called when a thumbnail has been generated\n // Receives `file` and `dataUrl`\n thumbnail(file, dataUrl) {\n if (file.previewElement) {\n file.previewElement.classList.remove(\"dz-file-preview\");\n for (let thumbnailElement of file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\")) {\n thumbnailElement.alt = file.name;\n thumbnailElement.src = dataUrl;\n }\n\n return setTimeout((() => file.previewElement.classList.add(\"dz-image-preview\")), 1);\n }\n },\n\n // Called whenever an error occurs\n // Receives `file` and `message`\n error(file, message) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n if ((typeof message !== \"String\") && message.error) {\n message = message.error;\n }\n for (let node of file.previewElement.querySelectorAll(\"[data-dz-errormessage]\")) {\n node.textContent = message;\n }\n }\n },\n\n errormultiple() {\n },\n\n // Called when a file gets processed. Since there is a cue, not all added\n // files are processed immediately.\n // Receives `file`\n processing(file) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-processing\");\n if (file._removeLink) {\n return file._removeLink.innerHTML = this.options.dictCancelUpload;\n }\n }\n },\n\n processingmultiple() {\n },\n\n // Called whenever the upload progress gets updated.\n // Receives `file`, `progress` (percentage 0-100) and `bytesSent`.\n // To get the total number of bytes of the file, use `file.size`\n uploadprogress(file, progress, bytesSent) {\n if (file.previewElement) {\n for (let node of file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\")) {\n node.nodeName === 'PROGRESS' ?\n (node.value = progress)\n :\n (node.style.width = `${progress}%`)\n }\n }\n },\n\n // Called whenever the total upload progress gets updated.\n // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent\n totaluploadprogress() {\n },\n\n // Called just before the file is sent. Gets the `xhr` object as second\n // parameter, so you can modify it (for example to add a CSRF token) and a\n // `formData` object to add additional information.\n sending() {\n },\n\n sendingmultiple() {},\n\n // When the complete upload is finished and successful\n // Receives `file`\n success(file) {\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-success\");\n }\n },\n\n successmultiple() {},\n\n // When the upload is canceled.\n canceled(file) {\n return this.emit(\"error\", file, this.options.dictUploadCanceled);\n },\n\n canceledmultiple() {},\n\n // When the upload is finished, either with success or an error.\n // Receives `file`\n complete(file) {\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n\n completemultiple() {},\n\n maxfilesexceeded() {},\n\n maxfilesreached() {},\n\n queuecomplete() {},\n\n addedfiles() {}\n };\n\n\n this.prototype._thumbnailQueue = [];\n this.prototype._processingThumbnail = false;\n }\n\n // global utility\n static extend(target, ...objects) {\n for (let object of objects) {\n for (let key in object) {\n let val = object[key];\n target[key] = val;\n }\n }\n return target;\n }\n\n constructor(el, options) {\n super();\n let fallback, left;\n this.element = el;\n // For backwards compatibility since the version was in the prototype previously\n this.version = Dropzone.version;\n\n this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n\n this.clickableElements = [];\n this.listeners = [];\n this.files = []; // All files\n\n if (typeof this.element === \"string\") {\n this.element = document.querySelector(this.element);\n }\n\n // Not checking if instance of HTMLElement or Element since IE9 is extremely weird.\n if (!this.element || (this.element.nodeType == null)) {\n throw new Error(\"Invalid dropzone element.\");\n }\n\n if (this.element.dropzone) {\n throw new Error(\"Dropzone already attached.\");\n }\n\n // Now add this dropzone to the instances.\n Dropzone.instances.push(this);\n\n // Put the dropzone inside the element itself.\n this.element.dropzone = this;\n\n let elementOptions = (left = Dropzone.optionsForElement(this.element)) != null ? left : {};\n\n this.options = Dropzone.extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n\n // If the browser failed, just call the fallback and leave\n if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n return this.options.fallback.call(this);\n }\n\n // @options.url = @element.getAttribute \"action\" unless @options.url?\n if (this.options.url == null) {\n this.options.url = this.element.getAttribute(\"action\");\n }\n\n if (!this.options.url) {\n throw new Error(\"No URL provided.\");\n }\n\n if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n }\n\n if (this.options.uploadMultiple && this.options.chunking) {\n throw new Error('You cannot set both: uploadMultiple and chunking.');\n }\n\n // Backwards compatibility\n if (this.options.acceptedMimeTypes) {\n this.options.acceptedFiles = this.options.acceptedMimeTypes;\n delete this.options.acceptedMimeTypes;\n }\n\n // Backwards compatibility\n if (this.options.renameFilename != null) {\n this.options.renameFile = file => this.options.renameFilename.call(this, file.name, file);\n }\n\n this.options.method = this.options.method.toUpperCase();\n\n if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n // Remove the fallback\n fallback.parentNode.removeChild(fallback);\n }\n\n // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false\n if (this.options.previewsContainer !== false) {\n if (this.options.previewsContainer) {\n this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n } else {\n this.previewsContainer = this.element;\n }\n }\n\n if (this.options.clickable) {\n if (this.options.clickable === true) {\n this.clickableElements = [this.element];\n } else {\n this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n }\n }\n\n\n this.init();\n }\n\n\n // Returns all files that have been accepted\n getAcceptedFiles() {\n return this.files.filter((file) => file.accepted).map((file) => file);\n }\n\n // Returns all files that have been rejected\n // Not sure when that's going to be useful, but added for completeness.\n getRejectedFiles() {\n return this.files.filter((file) => !file.accepted).map((file) => file);\n }\n\n getFilesWithStatus(status) {\n return this.files.filter((file) => file.status === status).map((file) => file);\n }\n\n // Returns all files that are in the queue\n getQueuedFiles() {\n return this.getFilesWithStatus(Dropzone.QUEUED);\n }\n\n getUploadingFiles() {\n return this.getFilesWithStatus(Dropzone.UPLOADING);\n }\n\n getAddedFiles() {\n return this.getFilesWithStatus(Dropzone.ADDED);\n }\n\n // Files that are either queued or uploading\n getActiveFiles() {\n return this.files.filter((file) => (file.status === Dropzone.UPLOADING) || (file.status === Dropzone.QUEUED)).map((file) => file);\n }\n\n // The function that gets called when Dropzone is initialized. You\n // can (and should) setup event listeners inside this function.\n init() {\n // In case it isn't set already\n if (this.element.tagName === \"form\") {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n }\n\n if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n this.element.appendChild(Dropzone.createElement(`
${this.options.dictDefaultMessage}
`));\n }\n\n if (this.clickableElements.length) {\n let setupHiddenFileInput = () => {\n if (this.hiddenFileInput) {\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n }\n this.hiddenFileInput = document.createElement(\"input\");\n this.hiddenFileInput.setAttribute(\"type\", \"file\");\n if ((this.options.maxFiles === null) || (this.options.maxFiles > 1)) {\n this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n }\n this.hiddenFileInput.className = \"dz-hidden-input\";\n\n if (this.options.acceptedFiles !== null) {\n this.hiddenFileInput.setAttribute(\"accept\", this.options.acceptedFiles);\n }\n if (this.options.capture !== null) {\n this.hiddenFileInput.setAttribute(\"capture\", this.options.capture);\n }\n\n // Not setting `display=\"none\"` because some browsers don't accept clicks\n // on elements that aren't displayed.\n this.hiddenFileInput.style.visibility = \"hidden\";\n this.hiddenFileInput.style.position = \"absolute\";\n this.hiddenFileInput.style.top = \"0\";\n this.hiddenFileInput.style.left = \"0\";\n this.hiddenFileInput.style.height = \"0\";\n this.hiddenFileInput.style.width = \"0\";\n Dropzone.getElement(this.options.hiddenInputContainer, 'hiddenInputContainer').appendChild(this.hiddenFileInput);\n return this.hiddenFileInput.addEventListener(\"change\", () => {\n let {files} = this.hiddenFileInput;\n if (files.length) {\n for (let file of files) {\n this.addFile(file);\n }\n }\n this.emit(\"addedfiles\", files);\n return setupHiddenFileInput();\n });\n };\n setupHiddenFileInput();\n }\n\n this.URL = window.URL !== null ? window.URL : window.webkitURL;\n\n\n // Setup all event listeners on the Dropzone object itself.\n // They're not in @setupEventListeners() because they shouldn't be removed\n // again when the dropzone gets disabled.\n for (let eventName of this.events) {\n this.on(eventName, this.options[eventName]);\n }\n\n this.on(\"uploadprogress\", () => this.updateTotalUploadProgress());\n\n this.on(\"removedfile\", () => this.updateTotalUploadProgress());\n\n this.on(\"canceled\", file => this.emit(\"complete\", file));\n\n // Emit a `queuecomplete` event if all files finished uploading.\n this.on(\"complete\", file => {\n if ((this.getAddedFiles().length === 0) && (this.getUploadingFiles().length === 0) && (this.getQueuedFiles().length === 0)) {\n // This needs to be deferred so that `queuecomplete` really triggers after `complete`\n return setTimeout((() => this.emit(\"queuecomplete\")), 0);\n }\n });\n\n\n let noPropagation = function (e) {\n e.stopPropagation();\n if (e.preventDefault) {\n return e.preventDefault();\n } else {\n return e.returnValue = false;\n }\n };\n\n // Create the listeners\n this.listeners = [\n {\n element: this.element,\n events: {\n \"dragstart\": e => {\n return this.emit(\"dragstart\", e);\n },\n \"dragenter\": e => {\n noPropagation(e);\n return this.emit(\"dragenter\", e);\n },\n \"dragover\": e => {\n // Makes it possible to drag files from chrome's download bar\n // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar\n // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception)\n let efct;\n try {\n efct = e.dataTransfer.effectAllowed;\n } catch (error) {\n }\n e.dataTransfer.dropEffect = ('move' === efct) || ('linkMove' === efct) ? 'move' : 'copy';\n\n noPropagation(e);\n return this.emit(\"dragover\", e);\n },\n \"dragleave\": e => {\n return this.emit(\"dragleave\", e);\n },\n \"drop\": e => {\n noPropagation(e);\n return this.drop(e);\n },\n \"dragend\": e => {\n return this.emit(\"dragend\", e);\n }\n }\n\n // This is disabled right now, because the browsers don't implement it properly.\n // \"paste\": (e) =>\n // noPropagation e\n // @paste e\n }\n ];\n\n this.clickableElements.forEach(clickableElement => {\n return this.listeners.push({\n element: clickableElement,\n events: {\n \"click\": evt => {\n // Only the actual dropzone or the message element should trigger file selection\n if ((clickableElement !== this.element) || ((evt.target === this.element) || Dropzone.elementInside(evt.target, this.element.querySelector(\".dz-message\")))) {\n this.hiddenFileInput.click(); // Forward the click\n }\n return true;\n }\n }\n });\n });\n\n this.enable();\n\n return this.options.init.call(this);\n }\n\n // Not fully tested yet\n destroy() {\n this.disable();\n this.removeAllFiles(true);\n if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) {\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n this.hiddenFileInput = null;\n }\n delete this.element.dropzone;\n return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n }\n\n\n updateTotalUploadProgress() {\n let totalUploadProgress;\n let totalBytesSent = 0;\n let totalBytes = 0;\n\n let activeFiles = this.getActiveFiles();\n\n if (activeFiles.length) {\n for (let file of this.getActiveFiles()) {\n totalBytesSent += file.upload.bytesSent;\n totalBytes += file.upload.total;\n }\n totalUploadProgress = (100 * totalBytesSent) / totalBytes;\n } else {\n totalUploadProgress = 100;\n }\n\n return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n }\n\n // @options.paramName can be a function taking one parameter rather than a string.\n // A parameter name for a file is obtained simply by calling this with an index number.\n _getParamName(n) {\n if (typeof this.options.paramName === \"function\") {\n return this.options.paramName(n);\n } else {\n return `${this.options.paramName}${this.options.uploadMultiple ? `[${n}]` : \"\"}`;\n }\n }\n\n // If @options.renameFile is a function,\n // the function will be used to rename the file.name before appending it to the formData\n _renameFile(file) {\n if (typeof this.options.renameFile !== \"function\") {\n return file.name;\n }\n return this.options.renameFile(file);\n }\n\n // Returns a form that can be used as fallback if the browser does not support DragnDrop\n //\n // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.\n // This code has to pass in IE7 :(\n getFallbackForm() {\n let existingFallback, form;\n if (existingFallback = this.getExistingFallback()) {\n return existingFallback;\n }\n\n let fieldsString = \"
\";\n if (this.options.dictFallbackText) {\n fieldsString += `

${this.options.dictFallbackText}

`;\n }\n fieldsString += `
`;\n\n let fields = Dropzone.createElement(fieldsString);\n if (this.element.tagName !== \"FORM\") {\n form = Dropzone.createElement(`
`);\n form.appendChild(fields);\n } else {\n // Make sure that the enctype and method attributes are set properly\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n this.element.setAttribute(\"method\", this.options.method);\n }\n return form != null ? form : fields;\n }\n\n\n // Returns the fallback elements if they exist already\n //\n // This code has to pass in IE7 :(\n getExistingFallback() {\n let getFallback = function (elements) {\n for (let el of elements) {\n if (/(^| )fallback($| )/.test(el.className)) {\n return el;\n }\n }\n };\n\n for (let tagName of [\"div\", \"form\"]) {\n var fallback;\n if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n return fallback;\n }\n }\n }\n\n\n // Activates all listeners stored in @listeners\n setupEventListeners() {\n return this.listeners.map((elementListeners) =>\n (() => {\n let result = [];\n for (let event in elementListeners.events) {\n let listener = elementListeners.events[event];\n result.push(elementListeners.element.addEventListener(event, listener, false));\n }\n return result;\n })());\n }\n\n\n // Deactivates all listeners stored in @listeners\n removeEventListeners() {\n return this.listeners.map((elementListeners) =>\n (() => {\n let result = [];\n for (let event in elementListeners.events) {\n let listener = elementListeners.events[event];\n result.push(elementListeners.element.removeEventListener(event, listener, false));\n }\n return result;\n })());\n }\n\n // Removes all event listeners and cancels all files in the queue or being processed.\n disable() {\n this.clickableElements.forEach(element => element.classList.remove(\"dz-clickable\"));\n this.removeEventListeners();\n this.disabled = true;\n\n return this.files.map((file) => this.cancelUpload(file));\n }\n\n enable() {\n delete this.disabled;\n this.clickableElements.forEach(element => element.classList.add(\"dz-clickable\"));\n return this.setupEventListeners();\n }\n\n // Returns a nicely formatted filesize\n filesize(size) {\n let selectedSize = 0;\n let selectedUnit = \"b\";\n\n if (size > 0) {\n let units = ['tb', 'gb', 'mb', 'kb', 'b'];\n\n for (let i = 0; i < units.length; i++) {\n let unit = units[i];\n let cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\n }\n\n return `${selectedSize} ${this.options.dictFileSizeUnits[selectedUnit]}`;\n }\n\n\n // Adds or removes the `dz-max-files-reached` class from the form.\n _updateMaxFilesReachedClass() {\n if ((this.options.maxFiles != null) && (this.getAcceptedFiles().length >= this.options.maxFiles)) {\n if (this.getAcceptedFiles().length === this.options.maxFiles) {\n this.emit('maxfilesreached', this.files);\n }\n return this.element.classList.add(\"dz-max-files-reached\");\n } else {\n return this.element.classList.remove(\"dz-max-files-reached\");\n }\n }\n\n\n drop(e) {\n if (!e.dataTransfer) {\n return;\n }\n this.emit(\"drop\", e);\n\n // Convert the FileList to an Array\n // This is necessary for IE11\n let files = [];\n for (let i = 0; i < e.dataTransfer.files.length; i++) {\n files[i] = e.dataTransfer.files[i];\n }\n\n this.emit(\"addedfiles\", files);\n\n // Even if it's a folder, files.length will contain the folders.\n if (files.length) {\n let {items} = e.dataTransfer;\n if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n // The browser supports dropping of folders, so handle items instead of files\n this._addFilesFromItems(items);\n } else {\n this.handleFiles(files);\n }\n }\n }\n\n paste(e) {\n if (__guard__(e != null ? e.clipboardData : undefined, x => x.items) == null) {\n return;\n }\n\n this.emit(\"paste\", e);\n let {items} = e.clipboardData;\n\n if (items.length) {\n return this._addFilesFromItems(items);\n }\n }\n\n\n handleFiles(files) {\n for(let file of files) {\n this.addFile(file);\n }\n }\n\n // When a folder is dropped (or files are pasted), items must be handled\n // instead of files.\n _addFilesFromItems(items) {\n return (() => {\n let result = [];\n for (let item of items) {\n var entry;\n if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n if (entry.isFile) {\n result.push(this.addFile(item.getAsFile()));\n } else if (entry.isDirectory) {\n // Append all files from that directory to files\n result.push(this._addFilesFromDirectory(entry, entry.name));\n } else {\n result.push(undefined);\n }\n } else if (item.getAsFile != null) {\n if ((item.kind == null) || (item.kind === \"file\")) {\n result.push(this.addFile(item.getAsFile()));\n } else {\n result.push(undefined);\n }\n } else {\n result.push(undefined);\n }\n }\n return result;\n })();\n }\n\n\n // Goes through the directory, and adds each file it finds recursively\n _addFilesFromDirectory(directory, path) {\n let dirReader = directory.createReader();\n\n let errorHandler = error => __guardMethod__(console, 'log', o => o.log(error));\n\n var readEntries = () => {\n return dirReader.readEntries(entries => {\n if (entries.length > 0) {\n for (let entry of entries) {\n if (entry.isFile) {\n entry.file(file => {\n if (this.options.ignoreHiddenFiles && (file.name.substring(0, 1) === '.')) {\n return;\n }\n file.fullPath = `${path}/${file.name}`;\n return this.addFile(file);\n });\n } else if (entry.isDirectory) {\n this._addFilesFromDirectory(entry, `${path}/${entry.name}`);\n }\n }\n\n // Recursively call readEntries() again, since browser only handle\n // the first 100 entries.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries\n readEntries();\n }\n return null;\n }\n , errorHandler);\n };\n\n return readEntries();\n }\n\n\n // If `done()` is called without argument the file is accepted\n // If you call it with an error message, the file is rejected\n // (This allows for asynchronous validation)\n //\n // This function checks the filesize, and if the file.type passes the\n // `acceptedFiles` check.\n accept(file, done) {\n if (this.options.maxFilesize && file.size > (this.options.maxFilesize * 1024 * 1024)) {\n return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n return done(this.options.dictInvalidFileType);\n } else if ((this.options.maxFiles != null) && (this.getAcceptedFiles().length >= this.options.maxFiles)) {\n done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n return this.emit(\"maxfilesexceeded\", file);\n } else {\n return this.options.accept.call(this, file, done);\n }\n }\n\n addFile(file) {\n file.upload = {\n uuid: Dropzone.uuidv4(),\n progress: 0,\n // Setting the total upload size to file.size for the beginning\n // It's actual different than the size to be transmitted.\n total: file.size,\n bytesSent: 0,\n filename: this._renameFile(file),\n chunked: this.options.chunking && (this.options.forceChunking || file.size > this.options.chunkSize),\n totalChunkCount: Math.ceil(file.size / this.options.chunkSize)\n };\n this.files.push(file);\n\n file.status = Dropzone.ADDED;\n\n this.emit(\"addedfile\", file);\n\n this._enqueueThumbnail(file);\n\n return this.accept(file, error => {\n if (error) {\n file.accepted = false;\n this._errorProcessing([file], error); // Will set the file.status\n } else {\n file.accepted = true;\n if (this.options.autoQueue) {\n this.enqueueFile(file);\n } // Will set .accepted = true\n }\n return this._updateMaxFilesReachedClass();\n });\n }\n\n\n // Wrapper for enqueueFile\n enqueueFiles(files) {\n for (let file of files) {\n this.enqueueFile(file);\n }\n return null;\n }\n\n enqueueFile(file) {\n if ((file.status === Dropzone.ADDED) && (file.accepted === true)) {\n file.status = Dropzone.QUEUED;\n if (this.options.autoProcessQueue) {\n return setTimeout((() => this.processQueue()), 0); // Deferring the call\n }\n } else {\n throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n }\n }\n\n _enqueueThumbnail(file) {\n if (this.options.createImageThumbnails && file.type.match(/image.*/) && (file.size <= (this.options.maxThumbnailFilesize * 1024 * 1024))) {\n this._thumbnailQueue.push(file);\n return setTimeout((() => this._processThumbnailQueue()), 0); // Deferring the call\n }\n }\n\n _processThumbnailQueue() {\n if (this._processingThumbnail || (this._thumbnailQueue.length === 0)) {\n return;\n }\n\n this._processingThumbnail = true;\n let file = this._thumbnailQueue.shift();\n return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, dataUrl => {\n this.emit(\"thumbnail\", file, dataUrl);\n this._processingThumbnail = false;\n return this._processThumbnailQueue();\n });\n }\n\n\n // Can be called by the user to remove a file\n removeFile(file) {\n if (file.status === Dropzone.UPLOADING) {\n this.cancelUpload(file);\n }\n this.files = without(this.files, file);\n\n this.emit(\"removedfile\", file);\n if (this.files.length === 0) {\n return this.emit(\"reset\");\n }\n }\n\n // Removes all files that aren't currently processed from the list\n removeAllFiles(cancelIfNecessary) {\n // Create a copy of files since removeFile() changes the @files array.\n if (cancelIfNecessary == null) {\n cancelIfNecessary = false;\n }\n for (let file of this.files.slice()) {\n if ((file.status !== Dropzone.UPLOADING) || cancelIfNecessary) {\n this.removeFile(file);\n }\n }\n return null;\n }\n\n // Resizes an image before it gets sent to the server. This function is the default behavior of\n // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with\n // the resized blob.\n resizeImage(file, width, height, resizeMethod, callback) {\n return this.createThumbnail(file, width, height, resizeMethod, true, (dataUrl, canvas) => {\n if (canvas == null) {\n // The image has not been resized\n return callback(file);\n } else {\n let {resizeMimeType} = this.options;\n if (resizeMimeType == null) {\n resizeMimeType = file.type;\n }\n let resizedDataURL = canvas.toDataURL(resizeMimeType, this.options.resizeQuality);\n if ((resizeMimeType === 'image/jpeg') || (resizeMimeType === 'image/jpg')) {\n // Now add the original EXIF information\n resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL);\n }\n return callback(Dropzone.dataURItoBlob(resizedDataURL));\n }\n });\n }\n\n createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) {\n let fileReader = new FileReader;\n\n fileReader.onload = () => {\n\n file.dataURL = fileReader.result;\n\n // Don't bother creating a thumbnail for SVG images since they're vector\n if (file.type === \"image/svg+xml\") {\n if (callback != null) {\n callback(fileReader.result);\n }\n return;\n }\n\n return this.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback);\n };\n\n return fileReader.readAsDataURL(file);\n }\n\n createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) {\n // Not using `new Image` here because of a bug in latest Chrome versions.\n // See https://github.com/enyo/dropzone/pull/226\n let img = document.createElement(\"img\");\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.onload = () => {\n let loadExif = callback => callback(1);\n if ((typeof EXIF !== 'undefined' && EXIF !== null) && fixOrientation) {\n loadExif = callback =>\n EXIF.getData(img, function () {\n return callback(EXIF.getTag(this, 'Orientation'));\n })\n ;\n }\n\n return loadExif(orientation => {\n file.width = img.width;\n file.height = img.height;\n\n let resizeInfo = this.options.resize.call(this, file, width, height, resizeMethod);\n\n let canvas = document.createElement(\"canvas\");\n let ctx = canvas.getContext(\"2d\");\n\n canvas.width = resizeInfo.trgWidth;\n canvas.height = resizeInfo.trgHeight;\n\n if (orientation > 4) {\n canvas.width = resizeInfo.trgHeight;\n canvas.height = resizeInfo.trgWidth;\n }\n\n switch (orientation) {\n case 2:\n // horizontal flip\n ctx.translate(canvas.width, 0);\n ctx.scale(-1, 1);\n break;\n case 3:\n // 180° rotate left\n ctx.translate(canvas.width, canvas.height);\n ctx.rotate(Math.PI);\n break;\n case 4:\n // vertical flip\n ctx.translate(0, canvas.height);\n ctx.scale(1, -1);\n break;\n case 5:\n // vertical flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.scale(1, -1);\n break;\n case 6:\n // 90° rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(0, -canvas.width);\n break;\n case 7:\n // horizontal flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(canvas.height, -canvas.width);\n ctx.scale(-1, 1);\n break;\n case 8:\n // 90° rotate left\n ctx.rotate(-0.5 * Math.PI);\n ctx.translate(-canvas.height, 0);\n break;\n }\n\n // This is a bugfix for iOS' scaling bug.\n drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n\n let thumbnail = canvas.toDataURL(\"image/png\");\n\n if (callback != null) {\n return callback(thumbnail, canvas);\n }\n });\n };\n\n if (callback != null) {\n img.onerror = callback;\n }\n\n return img.src = file.dataURL;\n }\n\n\n // Goes through the queue and processes files if there aren't too many already.\n processQueue() {\n let {parallelUploads} = this.options;\n let processingLength = this.getUploadingFiles().length;\n let i = processingLength;\n\n // There are already at least as many files uploading than should be\n if (processingLength >= parallelUploads) {\n return;\n }\n\n let queuedFiles = this.getQueuedFiles();\n\n if (!(queuedFiles.length > 0)) {\n return;\n }\n\n if (this.options.uploadMultiple) {\n // The files should be uploaded in one request\n return this.processFiles(queuedFiles.slice(0, (parallelUploads - processingLength)));\n } else {\n while (i < parallelUploads) {\n if (!queuedFiles.length) {\n return;\n } // Nothing left to process\n this.processFile(queuedFiles.shift());\n i++;\n }\n }\n }\n\n\n // Wrapper for `processFiles`\n processFile(file) {\n return this.processFiles([file]);\n }\n\n\n // Loads the file, then calls finishedLoading()\n processFiles(files) {\n for (let file of files) {\n file.processing = true; // Backwards compatibility\n file.status = Dropzone.UPLOADING;\n\n this.emit(\"processing\", file);\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"processingmultiple\", files);\n }\n\n return this.uploadFiles(files);\n }\n\n\n _getFilesWithXhr(xhr) {\n let files;\n return files = (this.files.filter((file) => file.xhr === xhr).map((file) => file));\n }\n\n\n // Cancels the file upload and sets the status to CANCELED\n // **if** the file is actually being uploaded.\n // If it's still in the queue, the file is being removed from it and the status\n // set to CANCELED.\n cancelUpload(file) {\n if (file.status === Dropzone.UPLOADING) {\n let groupedFiles = this._getFilesWithXhr(file.xhr);\n for (let groupedFile of groupedFiles) {\n groupedFile.status = Dropzone.CANCELED;\n }\n if (typeof file.xhr !== 'undefined') {\n file.xhr.abort();\n }\n for (let groupedFile of groupedFiles) {\n this.emit(\"canceled\", groupedFile);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", groupedFiles);\n }\n\n } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) {\n file.status = Dropzone.CANCELED;\n this.emit(\"canceled\", file);\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", [file]);\n }\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n\n resolveOption(option, ...args) {\n if (typeof option === 'function') {\n return option.apply(this, args);\n }\n return option;\n }\n\n uploadFile(file) { return this.uploadFiles([file]); }\n\n uploadFiles(files) {\n this._transformFiles(files, (transformedFiles) => {\n if (files[0].upload.chunked) {\n // This file should be sent in chunks!\n\n // If the chunking option is set, we **know** that there can only be **one** file, since\n // uploadMultiple is not allowed with this option.\n let file = files[0];\n let transformedFile = transformedFiles[0];\n let startedChunkCount = 0;\n\n file.upload.chunks = [];\n\n let handleNextChunk = () => {\n let chunkIndex = 0;\n\n // Find the next item in file.upload.chunks that is not defined yet.\n while (file.upload.chunks[chunkIndex] !== undefined) {\n chunkIndex++;\n }\n\n // This means, that all chunks have already been started.\n if (chunkIndex >= file.upload.totalChunkCount) return;\n\n startedChunkCount++;\n\n let start = chunkIndex * this.options.chunkSize;\n let end = Math.min(start + this.options.chunkSize, file.size);\n\n let dataBlock = {\n name: this._getParamName(0),\n data: transformedFile.webkitSlice ? transformedFile.webkitSlice(start, end) : transformedFile.slice(start, end),\n filename: file.upload.filename,\n chunkIndex: chunkIndex\n };\n\n file.upload.chunks[chunkIndex] = {\n file: file,\n index: chunkIndex,\n dataBlock: dataBlock, // In case we want to retry.\n status: Dropzone.UPLOADING,\n progress: 0,\n retries: 0 // The number of times this block has been retried.\n };\n\n\n this._uploadData(files, [dataBlock]);\n };\n\n file.upload.finishedChunkUpload = (chunk) => {\n let allFinished = true;\n chunk.status = Dropzone.SUCCESS;\n\n // Clear the data from the chunk\n chunk.dataBlock = null;\n // Leaving this reference to xhr intact here will cause memory leaks in some browsers\n chunk.xhr = null;\n\n for (let i = 0; i < file.upload.totalChunkCount; i ++) {\n if (file.upload.chunks[i] === undefined) {\n return handleNextChunk();\n }\n if (file.upload.chunks[i].status !== Dropzone.SUCCESS) {\n allFinished = false;\n }\n }\n\n if (allFinished) {\n this.options.chunksUploaded(file, () => {\n this._finished(files, '', null);\n });\n }\n };\n\n if (this.options.parallelChunkUploads) {\n for (let i = 0; i < file.upload.totalChunkCount; i++) {\n handleNextChunk();\n }\n }\n else {\n handleNextChunk();\n }\n } else {\n let dataBlocks = [];\n for (let i = 0; i < files.length; i++) {\n dataBlocks[i] = {\n name: this._getParamName(i),\n data: transformedFiles[i],\n filename: files[i].upload.filename\n };\n }\n this._uploadData(files, dataBlocks);\n }\n });\n }\n\n /// Returns the right chunk for given file and xhr\n _getChunk(file, xhr) {\n for (let i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) {\n return file.upload.chunks[i];\n }\n }\n }\n\n // This function actually uploads the file(s) to the server.\n // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed\n // files, or individual chunks for chunked upload).\n _uploadData(files, dataBlocks) {\n let xhr = new XMLHttpRequest();\n\n // Put the xhr object in the file objects to be able to reference it later.\n for (let file of files) {\n file.xhr = xhr;\n }\n if (files[0].upload.chunked) {\n // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk\n files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr;\n }\n\n let method = this.resolveOption(this.options.method, files);\n let url = this.resolveOption(this.options.url, files);\n xhr.open(method, url, true);\n\n // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8\n xhr.timeout = this.resolveOption(this.options.timeout, files);\n\n // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n xhr.withCredentials = !!this.options.withCredentials;\n\n\n xhr.onload = e => {\n this._finishedUploading(files, xhr, e);\n };\n\n xhr.ontimeout = () => {\n this._handleUploadError(files, xhr, `Request timedout after ${this.options.timeout} seconds`);\n };\n\n xhr.onerror = () => {\n this._handleUploadError(files, xhr);\n };\n\n // Some browsers do not have the .upload property\n let progressObj = xhr.upload != null ? xhr.upload : xhr;\n progressObj.onprogress = (e) => this._updateFilesUploadProgress(files, xhr, e);\n\n let headers = {\n \"Accept\": \"application/json\",\n \"Cache-Control\": \"no-cache\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n };\n\n if (this.options.headers) {\n Dropzone.extend(headers, this.options.headers);\n }\n\n for (let headerName in headers) {\n let headerValue = headers[headerName];\n if (headerValue) {\n xhr.setRequestHeader(headerName, headerValue);\n }\n }\n\n let formData = new FormData();\n\n // Adding all @options parameters\n if (this.options.params) {\n let additionalParams = this.options.params;\n if (typeof additionalParams === 'function') {\n additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null);\n }\n\n for (let key in additionalParams) {\n let value = additionalParams[key];\n formData.append(key, value);\n }\n }\n\n // Let the user add additional data if necessary\n for (let file of files) {\n this.emit(\"sending\", file, xhr, formData);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"sendingmultiple\", files, xhr, formData);\n }\n\n\n this._addFormElementData(formData);\n\n\n // Finally add the files\n // Has to be last because some servers (eg: S3) expect the file to be the last parameter\n for (let i = 0; i < dataBlocks.length; i++) {\n let dataBlock = dataBlocks[i];\n formData.append(dataBlock.name, dataBlock.data, dataBlock.filename);\n }\n\n this.submitRequest(xhr, formData, files);\n }\n\n\n // Transforms all files with this.options.transformFile and invokes done with the transformed files when done.\n _transformFiles(files, done) {\n let transformedFiles = [];\n // Clumsy way of handling asynchronous calls, until I get to add a proper Future library.\n let doneCounter = 0;\n for (let i = 0; i < files.length; i++) {\n this.options.transformFile.call(this, files[i], (transformedFile) => {\n transformedFiles[i] = transformedFile;\n if (++doneCounter === files.length) {\n done(transformedFiles);\n }\n });\n }\n }\n\n // Takes care of adding other input elements of the form to the AJAX request\n _addFormElementData(formData) {\n // Take care of other input elements\n if (this.element.tagName === \"FORM\") {\n for (let input of this.element.querySelectorAll(\"input, textarea, select, button\")) {\n let inputName = input.getAttribute(\"name\");\n let inputType = input.getAttribute(\"type\");\n if (inputType) inputType = inputType.toLowerCase();\n\n // If the input doesn't have a name, we can't use it.\n if (typeof inputName === 'undefined' || inputName === null) continue;\n\n if ((input.tagName === \"SELECT\") && input.hasAttribute(\"multiple\")) {\n // Possibly multiple values\n for (let option of input.options) {\n if (option.selected) {\n formData.append(inputName, option.value);\n }\n }\n } else if (!inputType || (inputType !== \"checkbox\" && inputType !== \"radio\") || input.checked) {\n formData.append(inputName, input.value);\n }\n }\n }\n }\n\n // Invoked when there is new progress information about given files.\n // If e is not provided, it is assumed that the upload is finished.\n _updateFilesUploadProgress(files, xhr, e) {\n let progress;\n if (typeof e !== 'undefined') {\n progress = (100 * e.loaded) / e.total;\n\n if (files[0].upload.chunked) {\n let file = files[0];\n // Since this is a chunked upload, we need to update the appropriate chunk progress.\n let chunk = this._getChunk(file, xhr);\n chunk.progress = progress;\n chunk.total = e.total;\n chunk.bytesSent = e.loaded;\n let fileProgress = 0, fileTotal, fileBytesSent;\n file.upload.progress = 0;\n file.upload.total = 0;\n file.upload.bytesSent = 0;\n for (let i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].progress !== undefined) {\n file.upload.progress += file.upload.chunks[i].progress;\n file.upload.total += file.upload.chunks[i].total;\n file.upload.bytesSent += file.upload.chunks[i].bytesSent;\n }\n }\n file.upload.progress = file.upload.progress / file.upload.totalChunkCount;\n } else {\n for (let file of files) {\n file.upload.progress = progress;\n file.upload.total = e.total;\n file.upload.bytesSent = e.loaded;\n }\n }\n for (let file of files) {\n this.emit(\"uploadprogress\", file, file.upload.progress, file.upload.bytesSent);\n }\n } else {\n // Called when the file finished uploading\n\n let allFilesFinished = true;\n\n progress = 100;\n\n for (let file of files) {\n if ((file.upload.progress !== 100) || (file.upload.bytesSent !== file.upload.total)) {\n allFilesFinished = false;\n }\n file.upload.progress = progress;\n file.upload.bytesSent = file.upload.total;\n }\n\n // Nothing to do, all files already at 100%\n if (allFilesFinished) {\n return;\n }\n\n for (let file of files) {\n this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent);\n }\n }\n\n }\n\n\n _finishedUploading(files, xhr, e) {\n let response;\n\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if ((xhr.responseType !== 'arraybuffer') && (xhr.responseType !== 'blob')) {\n response = xhr.responseText;\n\n if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n try {\n response = JSON.parse(response);\n } catch (error) {\n e = error;\n response = \"Invalid JSON response from server.\";\n }\n }\n }\n\n this._updateFilesUploadProgress(files);\n\n if (!(200 <= xhr.status && xhr.status < 300)) {\n this._handleUploadError(files, xhr, response);\n } else {\n if (files[0].upload.chunked) {\n files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr));\n } else {\n this._finished(files, response, e);\n }\n }\n }\n\n _handleUploadError(files, xhr, response) {\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (files[0].upload.chunked && this.options.retryChunks) {\n let chunk = this._getChunk(files[0], xhr);\n if (chunk.retries++ < this.options.retryChunksLimit) {\n this._uploadData(files, [chunk.dataBlock]);\n return;\n } else {\n console.warn('Retried this chunk too often. Giving up.')\n }\n }\n\n for (let file of files) {\n this._errorProcessing(files, response || this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr);\n }\n }\n\n submitRequest(xhr, formData, files) {\n xhr.send(formData);\n }\n\n // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n _finished(files, responseText, e) {\n for (let file of files) {\n file.status = Dropzone.SUCCESS;\n this.emit(\"success\", file, responseText, e);\n this.emit(\"complete\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"successmultiple\", files, responseText, e);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n\n // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n _errorProcessing(files, message, xhr) {\n for (let file of files) {\n file.status = Dropzone.ERROR;\n this.emit(\"error\", file, message, xhr);\n this.emit(\"complete\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"errormultiple\", files, message, xhr);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n\n static uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n };\n}\nDropzone.initClass();\n\n\nDropzone.version = \"5.5.0\";\n\n\n// This is a map of options for your different dropzones. Add configurations\n// to this object for your different dropzone elemens.\n//\n// Example:\n//\n// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 };\n//\n// To disable autoDiscover for a specific element, you can set `false` as an option:\n//\n// Dropzone.options.myDisabledElementId = false;\n//\n// And in html:\n//\n//
\nDropzone.options = {};\n\n\n// Returns the options for an element or undefined if none available.\nDropzone.optionsForElement = function (element) {\n // Get the `Dropzone.options.elementId` for this element if it exists\n if (element.getAttribute(\"id\")) {\n return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n } else {\n return undefined;\n }\n};\n\n\n// Holds a list of all dropzone instances\nDropzone.instances = [];\n\n// Returns the dropzone for given element if any\nDropzone.forElement = function (element) {\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n if ((element != null ? element.dropzone : undefined) == null) {\n throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n }\n return element.dropzone;\n};\n\n\n// Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements.\nDropzone.autoDiscover = true;\n\n// Looks for all .dropzone elements and creates a dropzone for them\nDropzone.discover = function () {\n let dropzones;\n if (document.querySelectorAll) {\n dropzones = document.querySelectorAll(\".dropzone\");\n } else {\n dropzones = [];\n // IE :(\n let checkElements = elements =>\n (() => {\n let result = [];\n for (let el of elements) {\n if (/(^| )dropzone($| )/.test(el.className)) {\n result.push(dropzones.push(el));\n } else {\n result.push(undefined);\n }\n }\n return result;\n })()\n ;\n checkElements(document.getElementsByTagName(\"div\"));\n checkElements(document.getElementsByTagName(\"form\"));\n }\n\n return (() => {\n let result = [];\n for (let dropzone of dropzones) {\n // Create a dropzone unless auto discover has been disabled for specific element\n if (Dropzone.optionsForElement(dropzone) !== false) {\n result.push(new Dropzone(dropzone));\n } else {\n result.push(undefined);\n }\n }\n return result;\n })();\n};\n\n\n// Since the whole Drag'n'Drop API is pretty new, some browsers implement it,\n// but not correctly.\n// So I created a blacklist of userAgents. Yes, yes. Browser sniffing, I know.\n// But what to do when browsers *theoretically* support an API, but crash\n// when using it.\n//\n// This is a list of regular expressions tested against navigator.userAgent\n//\n// ** It should only be used on browser that *do* support the API, but\n// incorrectly **\n//\nDropzone.blacklistedBrowsers = [\n // The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API.\n /opera.*(Macintosh|Windows Phone).*version\\/12/i\n];\n\n\n// Checks if the browser is supported\nDropzone.isBrowserSupported = function () {\n let capableBrowser = true;\n\n if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n if (!(\"classList\" in document.createElement(\"a\"))) {\n capableBrowser = false;\n } else {\n // The browser supports the API, but may be blacklisted.\n for (let regex of Dropzone.blacklistedBrowsers) {\n if (regex.test(navigator.userAgent)) {\n capableBrowser = false;\n continue;\n }\n }\n }\n } else {\n capableBrowser = false;\n }\n\n return capableBrowser;\n};\n\nDropzone.dataURItoBlob = function (dataURI) {\n // convert base64 to raw binary data held in a string\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n let byteString = atob(dataURI.split(',')[1]);\n\n // separate out the mime component\n let mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\n // write the bytes of the string to an ArrayBuffer\n let ab = new ArrayBuffer(byteString.length);\n let ia = new Uint8Array(ab);\n for (let i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n // write the ArrayBuffer to a blob\n return new Blob([ab], {type: mimeString});\n};\n\n// Returns an array without the rejected item\nconst without = (list, rejectedItem) => list.filter((item) => item !== rejectedItem).map((item) => item);\n\n// abc-def_ghi -> abcDefGhi\nconst camelize = str => str.replace(/[\\-_](\\w)/g, match => match.charAt(1).toUpperCase());\n\n// Creates an element from string\nDropzone.createElement = function (string) {\n let div = document.createElement(\"div\");\n div.innerHTML = string;\n return div.childNodes[0];\n};\n\n// Tests if given element is inside (or simply is) the container\nDropzone.elementInside = function (element, container) {\n if (element === container) {\n return true;\n } // Coffeescript doesn't support do/while loops\n while ((element = element.parentNode)) {\n if (element === container) {\n return true;\n }\n }\n return false;\n};\n\n\nDropzone.getElement = function (el, name) {\n let element;\n if (typeof el === \"string\") {\n element = document.querySelector(el);\n } else if (el.nodeType != null) {\n element = el;\n }\n if (element == null) {\n throw new Error(`Invalid \\`${name}\\` option provided. Please provide a CSS selector or a plain HTML element.`);\n }\n return element;\n};\n\n\nDropzone.getElements = function (els, name) {\n let el, elements;\n if (els instanceof Array) {\n elements = [];\n try {\n for (el of els) {\n elements.push(this.getElement(el, name));\n }\n } catch (e) {\n elements = null;\n }\n } else if (typeof els === \"string\") {\n elements = [];\n for (el of document.querySelectorAll(els)) {\n elements.push(el);\n }\n } else if (els.nodeType != null) {\n elements = [els];\n }\n\n if ((elements == null) || !elements.length) {\n throw new Error(`Invalid \\`${name}\\` option provided. Please provide a CSS selector, a plain HTML element or a list of those.`);\n }\n\n return elements;\n};\n\n// Asks the user the question and calls accepted or rejected accordingly\n//\n// The default implementation just uses `window.confirm` and then calls the\n// appropriate callback.\nDropzone.confirm = function (question, accepted, rejected) {\n if (window.confirm(question)) {\n return accepted();\n } else if (rejected != null) {\n return rejected();\n }\n};\n\n// Validates the mime type like this:\n//\n// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept\nDropzone.isValidFile = function (file, acceptedFiles) {\n if (!acceptedFiles) {\n return true;\n } // If there are no accepted mime types, it's OK\n acceptedFiles = acceptedFiles.split(\",\");\n\n let mimeType = file.type;\n let baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n for (let validType of acceptedFiles) {\n validType = validType.trim();\n if (validType.charAt(0) === \".\") {\n if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n return true;\n }\n } else if (/\\/\\*$/.test(validType)) {\n // This is something like a image/* mime type\n if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n return true;\n }\n } else {\n if (mimeType === validType) {\n return true;\n }\n }\n }\n\n return false;\n};\n\n// Augment jQuery\nif (typeof jQuery !== 'undefined' && jQuery !== null) {\n jQuery.fn.dropzone = function (options) {\n return this.each(function () {\n return new Dropzone(this, options);\n });\n };\n}\n\n\nif (typeof module !== 'undefined' && module !== null) {\n module.exports = Dropzone;\n} else {\n window.Dropzone = Dropzone;\n}\n\n\n// Dropzone file status codes\nDropzone.ADDED = \"added\";\n\nDropzone.QUEUED = \"queued\";\n// For backwards compatibility. Now, if a file is accepted, it's either queued\n// or uploading.\nDropzone.ACCEPTED = Dropzone.QUEUED;\n\nDropzone.UPLOADING = \"uploading\";\nDropzone.PROCESSING = Dropzone.UPLOADING; // alias\n\nDropzone.CANCELED = \"canceled\";\nDropzone.ERROR = \"error\";\nDropzone.SUCCESS = \"success\";\n\n\n/*\n\n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\n */\n\n// Detecting vertical squash in loaded image.\n// Fixes a bug which squash image vertically while drawing into canvas for some images.\n// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel\nlet detectVerticalSquash = function (img) {\n let iw = img.naturalWidth;\n let ih = img.naturalHeight;\n let canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = ih;\n let ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n let {data} = ctx.getImageData(1, 0, 1, ih);\n\n\n // search image edge pixel position in case it is squashed vertically.\n let sy = 0;\n let ey = ih;\n let py = ih;\n while (py > sy) {\n let alpha = data[((py - 1) * 4) + 3];\n\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n\n py = (ey + sy) >> 1;\n }\n let ratio = (py / ih);\n\n if (ratio === 0) {\n return 1;\n } else {\n return ratio;\n }\n};\n\n// A replacement for context.drawImage\n// (args are for source and destination).\nvar drawImageIOSFix = function (ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n let vertSquashRatio = detectVerticalSquash(img);\n return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n};\n\n\n// Based on MinifyJpeg\n// Source: http://www.perry.cz/files/ExifRestorer.js\n// http://elicon.blog57.fc2.com/blog-entry-206.html\nclass ExifRestore {\n static initClass() {\n this.KEY_STR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n }\n\n static encode64(input) {\n let output = '';\n let chr1 = undefined;\n let chr2 = undefined;\n let chr3 = '';\n let enc1 = undefined;\n let enc2 = undefined;\n let enc3 = undefined;\n let enc4 = '';\n let i = 0;\n while (true) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n if (isNaN(chr2)) {\n enc3 = (enc4 = 64);\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4);\n chr1 = (chr2 = (chr3 = ''));\n enc1 = (enc2 = (enc3 = (enc4 = '')));\n if (!(i < input.length)) {\n break;\n }\n }\n return output;\n }\n\n static restore(origFileBase64, resizedFileBase64) {\n if (!origFileBase64.match('data:image/jpeg;base64,')) {\n return resizedFileBase64;\n }\n let rawImage = this.decode64(origFileBase64.replace('data:image/jpeg;base64,', ''));\n let segments = this.slice2Segments(rawImage);\n let image = this.exifManipulation(resizedFileBase64, segments);\n return `data:image/jpeg;base64,${this.encode64(image)}`;\n }\n\n static exifManipulation(resizedFileBase64, segments) {\n let exifArray = this.getExifArray(segments);\n let newImageArray = this.insertExif(resizedFileBase64, exifArray);\n let aBuffer = new Uint8Array(newImageArray);\n return aBuffer;\n }\n\n static getExifArray(segments) {\n let seg = undefined;\n let x = 0;\n while (x < segments.length) {\n seg = segments[x];\n if ((seg[0] === 255) & (seg[1] === 225)) {\n return seg;\n }\n x++;\n }\n return [];\n }\n\n static insertExif(resizedFileBase64, exifArray) {\n let imageData = resizedFileBase64.replace('data:image/jpeg;base64,', '');\n let buf = this.decode64(imageData);\n let separatePoint = buf.indexOf(255, 3);\n let mae = buf.slice(0, separatePoint);\n let ato = buf.slice(separatePoint);\n let array = mae;\n array = array.concat(exifArray);\n array = array.concat(ato);\n return array;\n }\n\n static slice2Segments(rawImageArray) {\n let head = 0;\n let segments = [];\n while (true) {\n var length;\n if ((rawImageArray[head] === 255) & (rawImageArray[head + 1] === 218)) {\n break;\n }\n if ((rawImageArray[head] === 255) & (rawImageArray[head + 1] === 216)) {\n head += 2;\n } else {\n length = (rawImageArray[head + 2] * 256) + rawImageArray[head + 3];\n let endPoint = head + length + 2;\n let seg = rawImageArray.slice(head, endPoint);\n segments.push(seg);\n head = endPoint;\n }\n if (head > rawImageArray.length) {\n break;\n }\n }\n return segments;\n }\n\n static decode64(input) {\n let output = '';\n let chr1 = undefined;\n let chr2 = undefined;\n let chr3 = '';\n let enc1 = undefined;\n let enc2 = undefined;\n let enc3 = undefined;\n let enc4 = '';\n let i = 0;\n let buf = [];\n // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n let base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\n if (base64test.exec(input)) {\n console.warn('There were invalid base64 characters in the input text.\\nValid base64 characters are A-Z, a-z, 0-9, \\'+\\', \\'/\\',and \\'=\\'\\nExpect errors in decoding.');\n }\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n while (true) {\n enc1 = this.KEY_STR.indexOf(input.charAt(i++));\n enc2 = this.KEY_STR.indexOf(input.charAt(i++));\n enc3 = this.KEY_STR.indexOf(input.charAt(i++));\n enc4 = this.KEY_STR.indexOf(input.charAt(i++));\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n buf.push(chr1);\n if (enc3 !== 64) {\n buf.push(chr2);\n }\n if (enc4 !== 64) {\n buf.push(chr3);\n }\n chr1 = (chr2 = (chr3 = ''));\n enc1 = (enc2 = (enc3 = (enc4 = '')));\n if (!(i < input.length)) {\n break;\n }\n }\n return buf;\n }\n}\nExifRestore.initClass();\n\n\n/*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n\n// @win window reference\n// @fn function reference\nlet contentLoaded = function (win, fn) {\n let done = false;\n let top = true;\n let doc = win.document;\n let root = doc.documentElement;\n let add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n let rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n let pre = (doc.addEventListener ? \"\" : \"on\");\n var init = function (e) {\n if ((e.type === \"readystatechange\") && (doc.readyState !== \"complete\")) {\n return;\n }\n ((e.type === \"load\" ? win : doc))[rem](pre + e.type, init, false);\n if (!done && (done = true)) {\n return fn.call(win, e.type || e);\n }\n };\n\n var poll = function () {\n try {\n root.doScroll(\"left\");\n } catch (e) {\n setTimeout(poll, 50);\n return;\n }\n return init(\"poll\");\n };\n\n if (doc.readyState !== \"complete\") {\n if (doc.createEventObject && root.doScroll) {\n try {\n top = !win.frameElement;\n } catch (error) {\n }\n if (top) {\n poll();\n }\n }\n doc[add](pre + \"DOMContentLoaded\", init, false);\n doc[add](pre + \"readystatechange\", init, false);\n return win[add](pre + \"load\", init, false);\n }\n};\n\n\n// As a single function to be able to write tests.\nDropzone._autoDiscoverFunction = function () {\n if (Dropzone.autoDiscover) {\n return Dropzone.discover();\n }\n};\ncontentLoaded(window, Dropzone._autoDiscoverFunction);\n\nfunction __guard__(value, transform) {\n return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined;\n}\nfunction __guardMethod__(obj, methodName, transform) {\n if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') {\n return transform(obj, methodName);\n } else {\n return undefined;\n }\n}"],"file":"dropzone.js"} \ No newline at end of file diff --git a/plugins/moment/locales.js b/plugins/moment/locales.js deleted file mode 100644 index 038692fd..00000000 --- a/plugins/moment/locales.js +++ /dev/null @@ -1,12429 +0,0 @@ -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - moment.defineLocale('af', { - months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( - '_' - ), - weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM: function (input) { - return /^nm$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Vandag om] LT', - nextDay: '[Môre om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[Gister om] LT', - lastWeek: '[Laas] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'oor %s', - past: '%s gelede', - s: "'n paar sekondes", - ss: '%d sekondes', - m: "'n minuut", - mm: '%d minute', - h: "'n uur", - hh: '%d ure', - d: "'n dag", - dd: '%d dae', - M: "'n maand", - MM: '%d maande', - y: "'n jaar", - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week: { - dow: 1, // Maandag is die eerste dag van die week. - doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - }); - - //! moment.js locale configuration - - var pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months = [ - 'جانفي', - 'فيفري', - 'مارس', - 'أفريل', - 'ماي', - 'جوان', - 'جويلية', - 'أوت', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; - - moment.defineLocale('ar-dz', { - months: months, - monthsShort: months, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ar-kw', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap = { - 1: '1', - 2: '2', - 3: '3', - 4: '4', - 5: '5', - 6: '6', - 7: '7', - 8: '8', - 9: '9', - 0: '0', - }, - pluralForm$1 = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals$1 = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize$1 = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm$1(number), - str = plurals$1[u][pluralForm$1(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months$1 = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; - - moment.defineLocale('ar-ly', { - months: months$1, - monthsShort: months$1, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize$1('s'), - ss: pluralize$1('s'), - m: pluralize$1('m'), - mm: pluralize$1('m'), - h: pluralize$1('h'), - hh: pluralize$1('h'), - d: pluralize$1('d'), - dd: pluralize$1('d'), - M: pluralize$1('M'), - MM: pluralize$1('M'), - y: pluralize$1('y'), - yy: pluralize$1('y'), - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ar-ma', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$1 = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }; - - moment.defineLocale('ar-sa', { - months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$1[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$2 = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap$1 = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - pluralForm$2 = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals$2 = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize$2 = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm$2(number), - str = plurals$2[u][pluralForm$2(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months$2 = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; - - moment.defineLocale('ar', { - months: months$2, - monthsShort: months$2, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize$2('s'), - ss: pluralize$2('s'), - m: pluralize$2('m'), - mm: pluralize$2('m'), - h: pluralize$2('h'), - hh: pluralize$2('h'), - d: pluralize$2('d'), - dd: pluralize$2('d'), - M: pluralize$2('M'), - MM: pluralize$2('M'), - y: pluralize$2('y'), - yy: pluralize$2('y'), - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap$1[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$2[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes = { - 1: '-inci', - 5: '-inci', - 8: '-inci', - 70: '-inci', - 80: '-inci', - 2: '-nci', - 7: '-nci', - 20: '-nci', - 50: '-nci', - 3: '-üncü', - 4: '-üncü', - 100: '-üncü', - 6: '-ncı', - 9: '-uncu', - 10: '-uncu', - 30: '-uncu', - 60: '-ıncı', - 90: '-ıncı', - }; - - moment.defineLocale('az', { - months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( - '_' - ), - monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( - '_' - ), - weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[sabah saat] LT', - nextWeek: '[gələn həftə] dddd [saat] LT', - lastDay: '[dünən] LT', - lastWeek: '[keçən həftə] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s sonra', - past: '%s əvvəl', - s: 'bir neçə saniyə', - ss: '%d saniyə', - m: 'bir dəqiqə', - mm: '%d dəqiqə', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - M: 'bir ay', - MM: '%d ay', - y: 'bir il', - yy: '%d il', - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM: function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal: function (number) { - if (number === 0) { - // special case for zero - return number + '-ıncı'; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - dd: 'дзень_дні_дзён', - MM: 'месяц_месяцы_месяцаў', - yy: 'год_гады_гадоў', - }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; - } else { - return number + ' ' + plural(format[key], +number); - } - } - - moment.defineLocale('be', { - months: { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( - '_' - ), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( - '_' - ), - }, - monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split( - '_' - ), - weekdays: { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( - '_' - ), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( - '_' - ), - isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, - }, - weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., HH:mm', - LLLL: 'dddd, D MMMM YYYY г., HH:mm', - }, - calendar: { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'праз %s', - past: '%s таму', - s: 'некалькі секунд', - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: relativeTimeWithPlural, - hh: relativeTimeWithPlural, - d: 'дзень', - dd: relativeTimeWithPlural, - M: 'месяц', - MM: relativeTimeWithPlural, - y: 'год', - yy: relativeTimeWithPlural, - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM: function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечара'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && - number % 100 !== 12 && - number % 100 !== 13 - ? number + '-і' - : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('bg', { - months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( - '_' - ), - weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Днес в] LT', - nextDay: '[Утре в] LT', - nextWeek: 'dddd [в] LT', - lastDay: '[Вчера в] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Миналата] dddd [в] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Миналия] dddd [в] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'след %s', - past: 'преди %s', - s: 'няколко секунди', - ss: '%d секунди', - m: 'минута', - mm: '%d минути', - h: 'час', - hh: '%d часа', - d: 'ден', - dd: '%d дена', - w: 'седмица', - ww: '%d седмици', - M: 'месец', - MM: '%d месеца', - y: 'година', - yy: '%d години', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('bm', { - months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( - '_' - ), - monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), - weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), - weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), - weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'MMMM [tile] D [san] YYYY', - LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - }, - calendar: { - sameDay: '[Bi lɛrɛ] LT', - nextDay: '[Sini lɛrɛ] LT', - nextWeek: 'dddd [don lɛrɛ] LT', - lastDay: '[Kunu lɛrɛ] LT', - lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s kɔnɔ', - past: 'a bɛ %s bɔ', - s: 'sanga dama dama', - ss: 'sekondi %d', - m: 'miniti kelen', - mm: 'miniti %d', - h: 'lɛrɛ kelen', - hh: 'lɛrɛ %d', - d: 'tile kelen', - dd: 'tile %d', - M: 'kalo kelen', - MM: 'kalo %d', - y: 'san kelen', - yy: 'san %d', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$3 = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap$2 = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; - - moment.defineLocale('bn-bd', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), - longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', - }, - calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap$2[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$3[match]; - }); - }, - - meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'রাত') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ভোর') { - return hour; - } else if (meridiem === 'সকাল') { - return hour; - } else if (meridiem === 'দুপুর') { - return hour >= 3 ? hour : hour + 12; - } else if (meridiem === 'বিকাল') { - return hour + 12; - } else if (meridiem === 'সন্ধ্যা') { - return hour + 12; - } - }, - - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 6) { - return 'ভোর'; - } else if (hour < 12) { - return 'সকাল'; - } else if (hour < 15) { - return 'দুপুর'; - } else if (hour < 18) { - return 'বিকাল'; - } else if (hour < 20) { - return 'সন্ধ্যা'; - } else { - return 'রাত'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$4 = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap$3 = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; - - moment.defineLocale('bn', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), - longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', - }, - calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap$3[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$4[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$5 = { - 1: '༡', - 2: '༢', - 3: '༣', - 4: '༤', - 5: '༥', - 6: '༦', - 7: '༧', - 8: '༨', - 9: '༩', - 0: '༠', - }, - numberMap$4 = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0', - }; - - moment.defineLocale('bo', { - months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( - '_' - ), - monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( - '_' - ), - monthsShortRegex: /^(ཟླ་\d{1,2})/, - monthsParseExact: true, - weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( - '_' - ), - weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( - '_' - ), - weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[དི་རིང] LT', - nextDay: '[སང་ཉིན] LT', - nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', - lastDay: '[ཁ་སང] LT', - lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ལ་', - past: '%s སྔན་ལ', - s: 'ལམ་སང', - ss: '%d སྐར་ཆ།', - m: 'སྐར་མ་གཅིག', - mm: '%d སྐར་མ', - h: 'ཆུ་ཚོད་གཅིག', - hh: '%d ཆུ་ཚོད', - d: 'ཉིན་གཅིག', - dd: '%d ཉིན་', - M: 'ཟླ་བ་གཅིག', - MM: '%d ཟླ་བ', - y: 'ལོ་གཅིག', - yy: '%d ལོ', - }, - preparse: function (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap$4[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$5[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - mm: 'munutenn', - MM: 'miz', - dd: 'devezh', - }; - return number + ' ' + mutation(format[key], number); - } - function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } - } - function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; - } - function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; - } - function softMutation(text) { - var mutationTable = { - m: 'v', - b: 'v', - d: 'z', - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); - } - - var monthsParse = [ - /^gen/i, - /^c[ʼ\']hwe/i, - /^meu/i, - /^ebr/i, - /^mae/i, - /^(mez|eve)/i, - /^gou/i, - /^eos/i, - /^gwe/i, - /^her/i, - /^du/i, - /^ker/i, - ], - monthsRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, - monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - fullWeekdaysParse = [ - /^sul/i, - /^lun/i, - /^meurzh/i, - /^merc[ʼ\']her/i, - /^yaou/i, - /^gwener/i, - /^sadorn/i, - ], - shortWeekdaysParse = [ - /^Sul/i, - /^Lun/i, - /^Meu/i, - /^Mer/i, - /^Yao/i, - /^Gwe/i, - /^Sad/i, - ], - minWeekdaysParse = [ - /^Su/i, - /^Lu/i, - /^Me([^r]|$)/i, - /^Mer/i, - /^Ya/i, - /^Gw/i, - /^Sa/i, - ]; - - moment.defineLocale('br', { - months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( - '_' - ), - monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), - weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), - weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), - weekdaysParse: minWeekdaysParse, - fullWeekdaysParse: fullWeekdaysParse, - shortWeekdaysParse: shortWeekdaysParse, - minWeekdaysParse: minWeekdaysParse, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: monthsStrictRegex, - monthsShortStrictRegex: monthsShortStrictRegex, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [a viz] MMMM YYYY', - LLL: 'D [a viz] MMMM YYYY HH:mm', - LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Hiziv da] LT', - nextDay: '[Warcʼhoazh da] LT', - nextWeek: 'dddd [da] LT', - lastDay: '[Decʼh da] LT', - lastWeek: 'dddd [paset da] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'a-benn %s', - past: '%s ʼzo', - s: 'un nebeud segondennoù', - ss: '%d eilenn', - m: 'ur vunutenn', - mm: relativeTimeWithMutation, - h: 'un eur', - hh: '%d eur', - d: 'un devezh', - dd: relativeTimeWithMutation, - M: 'ur miz', - MM: relativeTimeWithMutation, - y: 'ur bloaz', - yy: specialMutationForYears, - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal: function (number) { - var output = number === 1 ? 'añ' : 'vet'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn - isPM: function (token) { - return token === 'g.m.'; - }, - meridiem: function (hour, minute, isLower) { - return hour < 12 ? 'a.m.' : 'g.m.'; - }, - }); - - //! moment.js locale configuration - - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } - } - - moment.defineLocale('bs', { - months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - return '[prošlu] dddd [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prošli] dddd [u] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: 'dan', - dd: translate, - M: 'mjesec', - MM: translate, - y: 'godinu', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ca', { - months: { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( - '_' - ), - format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( - '_' - ), - weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a les] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', - llll: 'ddd D MMM YYYY, H:mm', - }, - calendar: { - sameDay: function () { - return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextDay: function () { - return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastDay: function () { - return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [passat a ' + - (this.hours() !== 1 ? 'les' : 'la') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'uns segons', - ss: '%d segons', - m: 'un minut', - mm: '%d minuts', - h: 'una hora', - hh: '%d hores', - d: 'un dia', - dd: '%d dies', - M: 'un mes', - MM: '%d mesos', - y: 'un any', - yy: '%d anys', - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$3 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( - '_' - ), - monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), - monthsParse$1 = [ - /^led/i, - /^úno/i, - /^bře/i, - /^dub/i, - /^kvě/i, - /^(čvn|červen$|června)/i, - /^(čvc|červenec|července)/i, - /^srp/i, - /^zář/i, - /^říj/i, - /^lis/i, - /^pro/i, - ], - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsRegex$1 = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; - - function plural$1(n) { - return n > 1 && n < 5 && ~~(n / 10) !== 1; - } - function translate$1(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'sekundy' : 'sekund'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - } - } - - moment.defineLocale('cs', { - months: months$3, - monthsShort: monthsShort, - monthsRegex: monthsRegex$1, - monthsShortRegex: monthsRegex$1, - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, - monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, - monthsParse: monthsParse$1, - longMonthsParse: monthsParse$1, - shortMonthsParse: monthsParse$1, - weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), - weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), - weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', - l: 'D. M. YYYY', - }, - calendar: { - sameDay: '[dnes v] LT', - nextDay: '[zítra v] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v neděli v] LT'; - case 1: - case 2: - return '[v] dddd [v] LT'; - case 3: - return '[ve středu v] LT'; - case 4: - return '[ve čtvrtek v] LT'; - case 5: - return '[v pátek v] LT'; - case 6: - return '[v sobotu v] LT'; - } - }, - lastDay: '[včera v] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulou neděli v] LT'; - case 1: - case 2: - return '[minulé] dddd [v] LT'; - case 3: - return '[minulou středu v] LT'; - case 4: - case 5: - return '[minulý] dddd [v] LT'; - case 6: - return '[minulou sobotu v] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'před %s', - s: translate$1, - ss: translate$1, - m: translate$1, - mm: translate$1, - h: translate$1, - hh: translate$1, - d: translate$1, - dd: translate$1, - M: translate$1, - MM: translate$1, - y: translate$1, - yy: translate$1, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('cv', { - months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( - '_' - ), - monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( - '_' - ), - weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - }, - calendar: { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L', - }, - relativeTime: { - future: function (output) { - var affix = /сехет$/i.exec(output) - ? 'рен' - : /ҫул$/i.exec(output) - ? 'тан' - : 'ран'; - return output + affix; - }, - past: '%s каялла', - s: 'пӗр-ик ҫеккунт', - ss: '%d ҫеккунт', - m: 'пӗр минут', - mm: '%d минут', - h: 'пӗр сехет', - hh: '%d сехет', - d: 'пӗр кун', - dd: '%d кун', - M: 'пӗр уйӑх', - MM: '%d уйӑх', - y: 'пӗр ҫул', - yy: '%d ҫул', - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal: '%d-мӗш', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( - '_' - ), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( - '_' - ), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( - '_' - ), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact: true, - // time formats are the same as en-gb - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - ss: '%d eiliad', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd', - }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh - ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', - 'af', - 'il', - 'ydd', - 'ydd', - 'ed', - 'ed', - 'ed', - 'fed', - 'fed', - 'fed', // 1af to 10fed - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'fed', // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('da', { - months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'på dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[i] dddd[s kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'få sekunder', - ss: '%d sekunder', - m: 'et minut', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dage', - M: 'en måned', - MM: '%d måneder', - y: 'et år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - moment.defineLocale('de-at', { - months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$1(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - moment.defineLocale('de-ch', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime$1, - mm: '%d Minuten', - h: processRelativeTime$1, - hh: '%d Stunden', - d: processRelativeTime$1, - dd: processRelativeTime$1, - w: processRelativeTime$1, - ww: '%d Wochen', - M: processRelativeTime$1, - MM: processRelativeTime$1, - y: processRelativeTime$1, - yy: processRelativeTime$1, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$2(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - moment.defineLocale('de', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime$2, - mm: '%d Minuten', - h: processRelativeTime$2, - hh: '%d Stunden', - d: processRelativeTime$2, - dd: processRelativeTime$2, - w: processRelativeTime$2, - ww: '%d Wochen', - M: processRelativeTime$2, - MM: processRelativeTime$2, - y: processRelativeTime$2, - yy: processRelativeTime$2, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$4 = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު', - ], - weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު', - ]; - - moment.defineLocale('dv', { - months: months$4, - monthsShort: months$4, - weekdays: weekdays, - weekdaysShort: weekdays, - weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/M/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /މކ|މފ/, - isPM: function (input) { - return 'މފ' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - calendar: { - sameDay: '[މިއަދު] LT', - nextDay: '[މާދަމާ] LT', - nextWeek: 'dddd LT', - lastDay: '[އިއްޔެ] LT', - lastWeek: '[ފާއިތުވި] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ތެރޭގައި %s', - past: 'ކުރިން %s', - s: 'ސިކުންތުކޮޅެއް', - ss: 'd% ސިކުންތު', - m: 'މިނިޓެއް', - mm: 'މިނިޓު %d', - h: 'ގަޑިއިރެއް', - hh: 'ގަޑިއިރު %d', - d: 'ދުވަހެއް', - dd: 'ދުވަސް %d', - M: 'މަހެއް', - MM: 'މަސް %d', - y: 'އަހަރެއް', - yy: 'އަހަރު %d', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 7, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function isFunction(input) { - return ( - (typeof Function !== 'undefined' && input instanceof Function) || - Object.prototype.toString.call(input) === '[object Function]' - ); - } - - moment.defineLocale('el', { - monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( - '_' - ), - monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( - '_' - ), - months: function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if ( - typeof format === 'string' && - /D/.test(format.substring(0, format.indexOf('MMMM'))) - ) { - // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( - '_' - ), - weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM: function (input) { - return (input + '').toLowerCase()[0] === 'μ'; - }, - meridiemParse: /[ΠΜ]\.?Μ?\.?/i, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendarEl: { - sameDay: '[Σήμερα {}] LT', - nextDay: '[Αύριο {}] LT', - nextWeek: 'dddd [{}] LT', - lastDay: '[Χθες {}] LT', - lastWeek: function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse: 'L', - }, - calendar: function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); - }, - relativeTime: { - future: 'σε %s', - past: '%s πριν', - s: 'λίγα δευτερόλεπτα', - ss: '%d δευτερόλεπτα', - m: 'ένα λεπτό', - mm: '%d λεπτά', - h: 'μία ώρα', - hh: '%d ώρες', - d: 'μία μέρα', - dd: '%d μέρες', - M: 'ένας μήνας', - MM: '%d μήνες', - y: 'ένας χρόνος', - yy: '%d χρόνια', - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-au', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-ca', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'YYYY-MM-DD', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY h:mm A', - LLLL: 'dddd, MMMM D, YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-gb', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-ie', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-il', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-in', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 1st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-nz', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('en-sg', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('eo', { - months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( - '_' - ), - monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), - weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), - weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), - weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: '[la] D[-an de] MMMM, YYYY', - LLL: '[la] D[-an de] MMMM, YYYY HH:mm', - LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', - llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? 'a.t.m.' : 'A.T.M.'; - } - }, - calendar: { - sameDay: '[Hodiaŭ je] LT', - nextDay: '[Morgaŭ je] LT', - nextWeek: 'dddd[n je] LT', - lastDay: '[Hieraŭ je] LT', - lastWeek: '[pasintan] dddd[n je] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'post %s', - past: 'antaŭ %s', - s: 'kelkaj sekundoj', - ss: '%d sekundoj', - m: 'unu minuto', - mm: '%d minutoj', - h: 'unu horo', - hh: '%d horoj', - d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo - dd: '%d tagoj', - M: 'unu monato', - MM: '%d monatoj', - y: 'unu jaro', - yy: '%d jaroj', - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal: '%da', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$2 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$2 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - moment.defineLocale('es-do', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort$1[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex$2, - monthsShortRegex: monthsRegex$2, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$2, - longMonthsParse: monthsParse$2, - shortMonthsParse: monthsParse$2, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$3 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - moment.defineLocale('es-mx', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot$1; - } else if (/-MMM-/.test(format)) { - return monthsShort$2[m.month()]; - } else { - return monthsShortDot$1[m.month()]; - } - }, - monthsRegex: monthsRegex$3, - monthsShortRegex: monthsRegex$3, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$3, - longMonthsParse: monthsParse$3, - shortMonthsParse: monthsParse$3, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - invalidDate: 'Fecha inválida', - }); - - //! moment.js locale configuration - - var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$4 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - moment.defineLocale('es-us', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot$2; - } else if (/-MMM-/.test(format)) { - return monthsShort$3[m.month()]; - } else { - return monthsShortDot$2[m.month()]; - } - }, - monthsRegex: monthsRegex$4, - monthsShortRegex: monthsRegex$4, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$4, - longMonthsParse: monthsParse$4, - shortMonthsParse: monthsParse$4, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'MM/DD/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$5 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$5 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - moment.defineLocale('es', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot$3; - } else if (/-MMM-/.test(format)) { - return monthsShort$4[m.month()]; - } else { - return monthsShortDot$3[m.month()]; - } - }, - monthsRegex: monthsRegex$5, - monthsShortRegex: monthsRegex$5, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$5, - longMonthsParse: monthsParse$5, - shortMonthsParse: monthsParse$5, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - invalidDate: 'Fecha inválida', - }); - - //! moment.js locale configuration - - function processRelativeTime$3(number, withoutSuffix, key, isFuture) { - var format = { - s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - ss: [number + 'sekundi', number + 'sekundit'], - m: ['ühe minuti', 'üks minut'], - mm: [number + ' minuti', number + ' minutit'], - h: ['ühe tunni', 'tund aega', 'üks tund'], - hh: [number + ' tunni', number + ' tundi'], - d: ['ühe päeva', 'üks päev'], - M: ['kuu aja', 'kuu aega', 'üks kuu'], - MM: [number + ' kuu', number + ' kuud'], - y: ['ühe aasta', 'aasta', 'üks aasta'], - yy: [number + ' aasta', number + ' aastat'], - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; - } - - moment.defineLocale('et', { - months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( - '_' - ), - monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split( - '_' - ), - weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( - '_' - ), - weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Täna,] LT', - nextDay: '[Homme,] LT', - nextWeek: '[Järgmine] dddd LT', - lastDay: '[Eile,] LT', - lastWeek: '[Eelmine] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s pärast', - past: '%s tagasi', - s: processRelativeTime$3, - ss: processRelativeTime$3, - m: processRelativeTime$3, - mm: processRelativeTime$3, - h: processRelativeTime$3, - hh: processRelativeTime$3, - d: processRelativeTime$3, - dd: '%d päeva', - M: processRelativeTime$3, - MM: processRelativeTime$3, - y: processRelativeTime$3, - yy: processRelativeTime$3, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('eu', { - months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( - '_' - ), - monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( - '_' - ), - weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), - weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY[ko] MMMM[ren] D[a]', - LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l: 'YYYY-M-D', - ll: 'YYYY[ko] MMM D[a]', - lll: 'YYYY[ko] MMM D[a] HH:mm', - llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', - }, - calendar: { - sameDay: '[gaur] LT[etan]', - nextDay: '[bihar] LT[etan]', - nextWeek: 'dddd LT[etan]', - lastDay: '[atzo] LT[etan]', - lastWeek: '[aurreko] dddd LT[etan]', - sameElse: 'L', - }, - relativeTime: { - future: '%s barru', - past: 'duela %s', - s: 'segundo batzuk', - ss: '%d segundo', - m: 'minutu bat', - mm: '%d minutu', - h: 'ordu bat', - hh: '%d ordu', - d: 'egun bat', - dd: '%d egun', - M: 'hilabete bat', - MM: '%d hilabete', - y: 'urte bat', - yy: '%d urte', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$6 = { - 1: '۱', - 2: '۲', - 3: '۳', - 4: '۴', - 5: '۵', - 6: '۶', - 7: '۷', - 8: '۸', - 9: '۹', - 0: '۰', - }, - numberMap$5 = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0', - }; - - moment.defineLocale('fa', { - months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - weekdays: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysShort: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - calendar: { - sameDay: '[امروز ساعت] LT', - nextDay: '[فردا ساعت] LT', - nextWeek: 'dddd [ساعت] LT', - lastDay: '[دیروز ساعت] LT', - lastWeek: 'dddd [پیش] [ساعت] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'در %s', - past: '%s پیش', - s: 'چند ثانیه', - ss: '%d ثانیه', - m: 'یک دقیقه', - mm: '%d دقیقه', - h: 'یک ساعت', - hh: '%d ساعت', - d: 'یک روز', - dd: '%d روز', - M: 'یک ماه', - MM: '%d ماه', - y: 'یک سال', - yy: '%d سال', - }, - preparse: function (string) { - return string - .replace(/[۰-۹]/g, function (match) { - return numberMap$5[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$6[match]; - }) - .replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal: '%dم', - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( - ' ' - ), - numbersFuture = [ - 'nolla', - 'yhden', - 'kahden', - 'kolmen', - 'neljän', - 'viiden', - 'kuuden', - numbersPast[7], - numbersPast[8], - numbersPast[9], - ]; - function translate$2(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'ss': - result = isFuture ? 'sekunnin' : 'sekuntia'; - break; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; - } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; - } - function verbalNumber(number, isFuture) { - return number < 10 - ? isFuture - ? numbersFuture[number] - : numbersPast[number] - : number; - } - - moment.defineLocale('fi', { - months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( - '_' - ), - monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( - '_' - ), - weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( - '_' - ), - weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), - weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD.MM.YYYY', - LL: 'Do MMMM[ta] YYYY', - LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l: 'D.M.YYYY', - ll: 'Do MMM YYYY', - lll: 'Do MMM YYYY, [klo] HH.mm', - llll: 'ddd, Do MMM YYYY, [klo] HH.mm', - }, - calendar: { - sameDay: '[tänään] [klo] LT', - nextDay: '[huomenna] [klo] LT', - nextWeek: 'dddd [klo] LT', - lastDay: '[eilen] [klo] LT', - lastWeek: '[viime] dddd[na] [klo] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s päästä', - past: '%s sitten', - s: translate$2, - ss: translate$2, - m: translate$2, - mm: translate$2, - h: translate$2, - hh: translate$2, - d: translate$2, - dd: translate$2, - M: translate$2, - MM: translate$2, - y: translate$2, - yy: translate$2, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('fil', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( - '_' - ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', - }, - calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L', - }, - relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('fo', { - months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( - '_' - ), - weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D. MMMM, YYYY HH:mm', - }, - calendar: { - sameDay: '[Í dag kl.] LT', - nextDay: '[Í morgin kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[Í gjár kl.] LT', - lastWeek: '[síðstu] dddd [kl] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'um %s', - past: '%s síðani', - s: 'fá sekund', - ss: '%d sekundir', - m: 'ein minuttur', - mm: '%d minuttir', - h: 'ein tími', - hh: '%d tímar', - d: 'ein dagur', - dd: '%d dagar', - M: 'ein mánaður', - MM: '%d mánaðir', - y: 'eitt ár', - yy: '%d ár', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('fr-ca', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('fr-ch', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsStrictRegex$1 = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsShortStrictRegex$1 = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, - monthsRegex$6 = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsParse$6 = [ - /^janv/i, - /^févr/i, - /^mars/i, - /^avr/i, - /^mai/i, - /^juin/i, - /^juil/i, - /^août/i, - /^sept/i, - /^oct/i, - /^nov/i, - /^déc/i, - ]; - - moment.defineLocale('fr', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsRegex: monthsRegex$6, - monthsShortRegex: monthsRegex$6, - monthsStrictRegex: monthsStrictRegex$1, - monthsShortStrictRegex: monthsShortStrictRegex$1, - monthsParse: monthsParse$6, - longMonthsParse: monthsParse$6, - shortMonthsParse: monthsParse$6, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - w: 'une semaine', - ww: '%d semaines', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal: function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split( - '_' - ); - - moment.defineLocale('fy', { - months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact: true, - weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( - '_' - ), - weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'oer %s', - past: '%s lyn', - s: 'in pear sekonden', - ss: '%d sekonden', - m: 'ien minút', - mm: '%d minuten', - h: 'ien oere', - hh: '%d oeren', - d: 'ien dei', - dd: '%d dagen', - M: 'ien moanne', - MM: '%d moannen', - y: 'ien jier', - yy: '%d jierren', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$5 = [ - 'Eanáir', - 'Feabhra', - 'Márta', - 'Aibreán', - 'Bealtaine', - 'Meitheamh', - 'Iúil', - 'Lúnasa', - 'Meán Fómhair', - 'Deireadh Fómhair', - 'Samhain', - 'Nollaig', - ], - monthsShort$5 = [ - 'Ean', - 'Feabh', - 'Márt', - 'Aib', - 'Beal', - 'Meith', - 'Iúil', - 'Lún', - 'M.F.', - 'D.F.', - 'Samh', - 'Noll', - ], - weekdays$1 = [ - 'Dé Domhnaigh', - 'Dé Luain', - 'Dé Máirt', - 'Dé Céadaoin', - 'Déardaoin', - 'Dé hAoine', - 'Dé Sathairn', - ], - weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], - weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; - - moment.defineLocale('ga', { - months: months$5, - monthsShort: monthsShort$5, - monthsParseExact: true, - weekdays: weekdays$1, - weekdaysShort: weekdaysShort, - weekdaysMin: weekdaysMin, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Inniu ag] LT', - nextDay: '[Amárach ag] LT', - nextWeek: 'dddd [ag] LT', - lastDay: '[Inné ag] LT', - lastWeek: 'dddd [seo caite] [ag] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'i %s', - past: '%s ó shin', - s: 'cúpla soicind', - ss: '%d soicind', - m: 'nóiméad', - mm: '%d nóiméad', - h: 'uair an chloig', - hh: '%d uair an chloig', - d: 'lá', - dd: '%d lá', - M: 'mí', - MM: '%d míonna', - y: 'bliain', - yy: '%d bliain', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$6 = [ - 'Am Faoilleach', - 'An Gearran', - 'Am Màrt', - 'An Giblean', - 'An Cèitean', - 'An t-Ògmhios', - 'An t-Iuchar', - 'An Lùnastal', - 'An t-Sultain', - 'An Dàmhair', - 'An t-Samhain', - 'An Dùbhlachd', - ], - monthsShort$6 = [ - 'Faoi', - 'Gear', - 'Màrt', - 'Gibl', - 'Cèit', - 'Ògmh', - 'Iuch', - 'Lùn', - 'Sult', - 'Dàmh', - 'Samh', - 'Dùbh', - ], - weekdays$2 = [ - 'Didòmhnaich', - 'Diluain', - 'Dimàirt', - 'Diciadain', - 'Diardaoin', - 'Dihaoine', - 'Disathairne', - ], - weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], - weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - - moment.defineLocale('gd', { - months: months$6, - monthsShort: monthsShort$6, - monthsParseExact: true, - weekdays: weekdays$2, - weekdaysShort: weekdaysShort$1, - weekdaysMin: weekdaysMin$1, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[An-diugh aig] LT', - nextDay: '[A-màireach aig] LT', - nextWeek: 'dddd [aig] LT', - lastDay: '[An-dè aig] LT', - lastWeek: 'dddd [seo chaidh] [aig] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ann an %s', - past: 'bho chionn %s', - s: 'beagan diogan', - ss: '%d diogan', - m: 'mionaid', - mm: '%d mionaidean', - h: 'uair', - hh: '%d uairean', - d: 'latha', - dd: '%d latha', - M: 'mìos', - MM: '%d mìosan', - y: 'bliadhna', - yy: '%d bliadhna', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('gl', { - months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( - '_' - ), - monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextDay: function () { - return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextWeek: function () { - return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; - }, - lastDay: function () { - return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; - }, - lastWeek: function () { - return ( - '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - past: 'hai %s', - s: 'uns segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'unha hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - M: 'un mes', - MM: '%d meses', - y: 'un ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$4(number, withoutSuffix, key, isFuture) { - var format = { - s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], - ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], - m: ['एका मिणटान', 'एक मिनूट'], - mm: [number + ' मिणटांनी', number + ' मिणटां'], - h: ['एका वरान', 'एक वर'], - hh: [number + ' वरांनी', number + ' वरां'], - d: ['एका दिसान', 'एक दीस'], - dd: [number + ' दिसांनी', number + ' दीस'], - M: ['एका म्हयन्यान', 'एक म्हयनो'], - MM: [number + ' म्हयन्यानी', number + ' म्हयने'], - y: ['एका वर्सान', 'एक वर्स'], - yy: [number + ' वर्सांनी', number + ' वर्सां'], - }; - return isFuture ? format[key][0] : format[key][1]; - } - - moment.defineLocale('gom-deva', { - months: { - standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( - '_' - ), - format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), - weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), - weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'A h:mm [वाजतां]', - LTS: 'A h:mm:ss [वाजतां]', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [वाजतां]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', - llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', - }, - calendar: { - sameDay: '[आयज] LT', - nextDay: '[फाल्यां] LT', - nextWeek: '[फुडलो] dddd[,] LT', - lastDay: '[काल] LT', - lastWeek: '[फाटलो] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s', - past: '%s आदीं', - s: processRelativeTime$4, - ss: processRelativeTime$4, - m: processRelativeTime$4, - mm: processRelativeTime$4, - h: processRelativeTime$4, - hh: processRelativeTime$4, - d: processRelativeTime$4, - dd: processRelativeTime$4, - M: processRelativeTime$4, - MM: processRelativeTime$4, - y: processRelativeTime$4, - yy: processRelativeTime$4, - }, - dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'वेर' only applies to day of the month - case 'D': - return number + 'वेर'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) - }, - meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राती') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळीं') { - return hour; - } else if (meridiem === 'दनपारां') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'सांजे') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'राती'; - } else if (hour < 12) { - return 'सकाळीं'; - } else if (hour < 16) { - return 'दनपारां'; - } else if (hour < 20) { - return 'सांजे'; - } else { - return 'राती'; - } - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$5(number, withoutSuffix, key, isFuture) { - var format = { - s: ['thoddea sekondamni', 'thodde sekond'], - ss: [number + ' sekondamni', number + ' sekond'], - m: ['eka mintan', 'ek minut'], - mm: [number + ' mintamni', number + ' mintam'], - h: ['eka voran', 'ek vor'], - hh: [number + ' voramni', number + ' voram'], - d: ['eka disan', 'ek dis'], - dd: [number + ' disamni', number + ' dis'], - M: ['eka mhoinean', 'ek mhoino'], - MM: [number + ' mhoineamni', number + ' mhoine'], - y: ['eka vorsan', 'ek voros'], - yy: [number + ' vorsamni', number + ' vorsam'], - }; - return isFuture ? format[key][0] : format[key][1]; - } - - moment.defineLocale('gom-latn', { - months: { - standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( - '_' - ), - format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), - weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'A h:mm [vazta]', - LTS: 'A h:mm:ss [vazta]', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [vazta]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]', - }, - calendar: { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Fuddlo] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fattlo] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s', - past: '%s adim', - s: processRelativeTime$5, - ss: processRelativeTime$5, - m: processRelativeTime$5, - mm: processRelativeTime$5, - h: processRelativeTime$5, - hh: processRelativeTime$5, - d: processRelativeTime$5, - dd: processRelativeTime$5, - M: processRelativeTime$5, - MM: processRelativeTime$5, - y: processRelativeTime$5, - yy: processRelativeTime$5, - }, - dayOfMonthOrdinalParse: /\d{1,2}(er)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) - }, - meridiemParse: /rati|sokallim|donparam|sanje/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokallim') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokallim'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - }, - }); - - //! moment.js locale configuration - - var symbolMap$7 = { - 1: '૧', - 2: '૨', - 3: '૩', - 4: '૪', - 5: '૫', - 6: '૬', - 7: '૭', - 8: '૮', - 9: '૯', - 0: '૦', - }, - numberMap$6 = { - '૧': '1', - '૨': '2', - '૩': '3', - '૪': '4', - '૫': '5', - '૬': '6', - '૭': '7', - '૮': '8', - '૯': '9', - '૦': '0', - }; - - moment.defineLocale('gu', { - months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( - '_' - ), - monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( - '_' - ), - weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), - weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), - longDateFormat: { - LT: 'A h:mm વાગ્યે', - LTS: 'A h:mm:ss વાગ્યે', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm વાગ્યે', - LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', - }, - calendar: { - sameDay: '[આજ] LT', - nextDay: '[કાલે] LT', - nextWeek: 'dddd, LT', - lastDay: '[ગઇકાલે] LT', - lastWeek: '[પાછલા] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s મા', - past: '%s પહેલા', - s: 'અમુક પળો', - ss: '%d સેકંડ', - m: 'એક મિનિટ', - mm: '%d મિનિટ', - h: 'એક કલાક', - hh: '%d કલાક', - d: 'એક દિવસ', - dd: '%d દિવસ', - M: 'એક મહિનો', - MM: '%d મહિનો', - y: 'એક વર્ષ', - yy: '%d વર્ષ', - }, - preparse: function (string) { - return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { - return numberMap$6[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$7[match]; - }); - }, - // Gujarati notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. - meridiemParse: /રાત|બપોર|સવાર|સાંજ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'રાત') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'સવાર') { - return hour; - } else if (meridiem === 'બપોર') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'સાંજ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'રાત'; - } else if (hour < 10) { - return 'સવાર'; - } else if (hour < 17) { - return 'બપોર'; - } else if (hour < 20) { - return 'સાંજ'; - } else { - return 'રાત'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('he', { - months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( - '_' - ), - monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split( - '_' - ), - weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [ב]MMMM YYYY', - LLL: 'D [ב]MMMM YYYY HH:mm', - LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', - l: 'D/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[היום ב־]LT', - nextDay: '[מחר ב־]LT', - nextWeek: 'dddd [בשעה] LT', - lastDay: '[אתמול ב־]LT', - lastWeek: '[ביום] dddd [האחרון בשעה] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'בעוד %s', - past: 'לפני %s', - s: 'מספר שניות', - ss: '%d שניות', - m: 'דקה', - mm: '%d דקות', - h: 'שעה', - hh: function (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d: 'יום', - dd: function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M: 'חודש', - MM: function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y: 'שנה', - yy: function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - }, - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM: function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - }, - }); - - //! moment.js locale configuration - - var symbolMap$8 = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap$7 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }, - monthsParse$7 = [ - /^जन/i, - /^फ़र|फर/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सितं|सित/i, - /^अक्टू/i, - /^नव|नवं/i, - /^दिसं|दिस/i, - ], - shortMonthsParse = [ - /^जन/i, - /^फ़र/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सित/i, - /^अक्टू/i, - /^नव/i, - /^दिस/i, - ]; - - moment.defineLocale('hi', { - months: { - format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( - '_' - ), - standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( - '_' - ), - }, - monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split( - '_' - ), - weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat: { - LT: 'A h:mm बजे', - LTS: 'A h:mm:ss बजे', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', - }, - - monthsParse: monthsParse$7, - longMonthsParse: monthsParse$7, - shortMonthsParse: shortMonthsParse, - - monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - - monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - - monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, - - monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, - - calendar: { - sameDay: '[आज] LT', - nextDay: '[कल] LT', - nextWeek: 'dddd, LT', - lastDay: '[कल] LT', - lastWeek: '[पिछले] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s में', - past: '%s पहले', - s: 'कुछ ही क्षण', - ss: '%d सेकंड', - m: 'एक मिनट', - mm: '%d मिनट', - h: 'एक घंटा', - hh: '%d घंटे', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महीने', - MM: '%d महीने', - y: 'एक वर्ष', - yy: '%d वर्ष', - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$7[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$8[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function translate$3(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } - } - - moment.defineLocale('hr', { - months: { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( - '_' - ), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( - '_' - ), - }, - monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'Do MMMM YYYY', - LLL: 'Do MMMM YYYY H:mm', - LLLL: 'dddd, Do MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[prošlu] [nedjelju] [u] LT'; - case 3: - return '[prošlu] [srijedu] [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prošli] dddd [u] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate$3, - m: translate$3, - mm: translate$3, - h: translate$3, - hh: translate$3, - d: 'dan', - dd: translate$3, - M: 'mjesec', - MM: translate$3, - y: 'godinu', - yy: translate$3, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split( - ' ' - ); - function translate$4(number, withoutSuffix, key, isFuture) { - var num = number; - switch (key) { - case 's': - return isFuture || withoutSuffix - ? 'néhány másodperc' - : 'néhány másodperce'; - case 'ss': - return num + (isFuture || withoutSuffix) - ? ' másodperc' - : ' másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; - } - function week(isFuture) { - return ( - (isFuture ? '' : '[múlt] ') + - '[' + - weekEndings[this.day()] + - '] LT[-kor]' - ); - } - - moment.defineLocale('hu', { - months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), - weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY. MMMM D.', - LLL: 'YYYY. MMMM D. H:mm', - LLLL: 'YYYY. MMMM D., dddd H:mm', - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar: { - sameDay: '[ma] LT[-kor]', - nextDay: '[holnap] LT[-kor]', - nextWeek: function () { - return week.call(this, true); - }, - lastDay: '[tegnap] LT[-kor]', - lastWeek: function () { - return week.call(this, false); - }, - sameElse: 'L', - }, - relativeTime: { - future: '%s múlva', - past: '%s', - s: translate$4, - ss: translate$4, - m: translate$4, - mm: translate$4, - h: translate$4, - hh: translate$4, - d: translate$4, - dd: translate$4, - M: translate$4, - MM: translate$4, - y: translate$4, - yy: translate$4, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('hy-am', { - months: { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( - '_' - ), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( - '_' - ), - }, - monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( - '_' - ), - weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY թ.', - LLL: 'D MMMM YYYY թ., HH:mm', - LLLL: 'dddd, D MMMM YYYY թ., HH:mm', - }, - calendar: { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - return '[անցած] dddd [օրը ժամը] LT'; - }, - sameElse: 'L', - }, - relativeTime: { - future: '%s հետո', - past: '%s առաջ', - s: 'մի քանի վայրկյան', - ss: '%d վայրկյան', - m: 'րոպե', - mm: '%d րոպե', - h: 'ժամ', - hh: '%d ժամ', - d: 'օր', - dd: '%d օր', - M: 'ամիս', - MM: '%d ամիս', - y: 'տարի', - yy: '%d տարի', - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem: function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('id', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Besok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kemarin pukul] LT', - lastWeek: 'dddd [lalu pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lalu', - s: 'beberapa detik', - ss: '%d detik', - m: 'semenit', - mm: '%d menit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural$2(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; - } - return true; - } - function translate$5(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nokkrar sekúndur' - : 'nokkrum sekúndum'; - case 'ss': - if (plural$2(number)) { - return ( - result + - (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') - ); - } - return result + 'sekúnda'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural$2(number)) { - return ( - result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') - ); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural$2(number)) { - return ( - result + - (withoutSuffix || isFuture - ? 'klukkustundir' - : 'klukkustundum') - ); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); - } - } - - moment.defineLocale('is', { - months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), - weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( - '_' - ), - weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), - weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', - }, - calendar: { - sameDay: '[í dag kl.] LT', - nextDay: '[á morgun kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[í gær kl.] LT', - lastWeek: '[síðasta] dddd [kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'eftir %s', - past: 'fyrir %s síðan', - s: translate$5, - ss: translate$5, - m: translate$5, - mm: translate$5, - h: 'klukkustund', - hh: translate$5, - d: translate$5, - dd: translate$5, - M: translate$5, - MM: translate$5, - y: translate$5, - yy: translate$5, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('it-ch', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( - '_' - ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( - '_' - ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: function (s) { - return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; - }, - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('it', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( - '_' - ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( - '_' - ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: function () { - return ( - '[Oggi a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextDay: function () { - return ( - '[Domani a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextWeek: function () { - return ( - 'dddd [a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastDay: function () { - return ( - '[Ieri a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastWeek: function () { - switch (this.day()) { - case 0: - return ( - '[La scorsa] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); - default: - return ( - '[Lo scorso] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'tra %s', - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - w: 'una settimana', - ww: '%d settimane', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ja', { - eras: [ - { - since: '2019-05-01', - offset: 1, - name: '令和', - narrow: '㋿', - abbr: 'R', - }, - { - since: '1989-01-08', - until: '2019-04-30', - offset: 1, - name: '平成', - narrow: '㍻', - abbr: 'H', - }, - { - since: '1926-12-25', - until: '1989-01-07', - offset: 1, - name: '昭和', - narrow: '㍼', - abbr: 'S', - }, - { - since: '1912-07-30', - until: '1926-12-24', - offset: 1, - name: '大正', - narrow: '㍽', - abbr: 'T', - }, - { - since: '1873-01-01', - until: '1912-07-29', - offset: 6, - name: '明治', - narrow: '㍾', - abbr: 'M', - }, - { - since: '0001-01-01', - until: '1873-12-31', - offset: 1, - name: '西暦', - narrow: 'AD', - abbr: 'AD', - }, - { - since: '0000-12-31', - until: -Infinity, - offset: 1, - name: '紀元前', - narrow: 'BC', - abbr: 'BC', - }, - ], - eraYearOrdinalRegex: /(元|\d+)年/, - eraYearOrdinalParse: function (input, match) { - return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); - }, - months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), - weekdaysShort: '日_月_火_水_木_金_土'.split('_'), - weekdaysMin: '日_月_火_水_木_金_土'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日 dddd HH:mm', - l: 'YYYY/MM/DD', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日(ddd) HH:mm', - }, - meridiemParse: /午前|午後/i, - isPM: function (input) { - return input === '午後'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } - }, - calendar: { - sameDay: '[今日] LT', - nextDay: '[明日] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[来週]dddd LT'; - } else { - return 'dddd LT'; - } - }, - lastDay: '[昨日] LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[先週]dddd LT'; - } else { - return 'dddd LT'; - } - }, - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}日/, - ordinal: function (number, period) { - switch (period) { - case 'y': - return number === 1 ? '元年' : number + '年'; - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '数秒', - ss: '%d秒', - m: '1分', - mm: '%d分', - h: '1時間', - hh: '%d時間', - d: '1日', - dd: '%d日', - M: '1ヶ月', - MM: '%dヶ月', - y: '1年', - yy: '%d年', - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('jv', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; - } - }, - calendar: { - sameDay: '[Dinten puniko pukul] LT', - nextDay: '[Mbenjang pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kala wingi pukul] LT', - lastWeek: 'dddd [kepengker pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'wonten ing %s', - past: '%s ingkang kepengker', - s: 'sawetawis detik', - ss: '%d detik', - m: 'setunggal menit', - mm: '%d menit', - h: 'setunggal jam', - hh: '%d jam', - d: 'sedinten', - dd: '%d dinten', - M: 'sewulan', - MM: '%d wulan', - y: 'setaun', - yy: '%d taun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ka', { - months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( - '_' - ), - monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays: { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( - '_' - ), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( - '_' - ), - isFormat: /(წინა|შემდეგ)/, - }, - weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[დღეს] LT[-ზე]', - nextDay: '[ხვალ] LT[-ზე]', - lastDay: '[გუშინ] LT[-ზე]', - nextWeek: '[შემდეგ] dddd LT[-ზე]', - lastWeek: '[წინა] dddd LT-ზე', - sameElse: 'L', - }, - relativeTime: { - future: function (s) { - return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ( - $0, - $1, - $2 - ) { - return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; - }); - }, - past: function (s) { - if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { - return s.replace(/(ი|ე)$/, 'ის წინ'); - } - if (/წელი/.test(s)) { - return s.replace(/წელი$/, 'წლის წინ'); - } - return s; - }, - s: 'რამდენიმე წამი', - ss: '%d წამი', - m: 'წუთი', - mm: '%d წუთი', - h: 'საათი', - hh: '%d საათი', - d: 'დღე', - dd: '%d დღე', - M: 'თვე', - MM: '%d თვე', - y: 'წელი', - yy: '%d წელი', - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal: function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; - } - if ( - number < 20 || - (number <= 100 && number % 20 === 0) || - number % 100 === 0 - ) { - return 'მე-' + number; - } - return number + '-ე'; - }, - week: { - dow: 1, - doy: 7, - }, - }); - - //! moment.js locale configuration - - var suffixes$1 = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші', - }; - - moment.defineLocale('kk', { - months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( - '_' - ), - monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( - '_' - ), - weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Бүгін сағат] LT', - nextDay: '[Ертең сағат] LT', - nextWeek: 'dddd [сағат] LT', - lastDay: '[Кеше сағат] LT', - lastWeek: '[Өткен аптаның] dddd [сағат] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ішінде', - past: '%s бұрын', - s: 'бірнеше секунд', - ss: '%d секунд', - m: 'бір минут', - mm: '%d минут', - h: 'бір сағат', - hh: '%d сағат', - d: 'бір күн', - dd: '%d күн', - M: 'бір ай', - MM: '%d ай', - y: 'бір жыл', - yy: '%d жыл', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$9 = { - 1: '១', - 2: '២', - 3: '៣', - 4: '៤', - 5: '៥', - 6: '៦', - 7: '៧', - 8: '៨', - 9: '៩', - 0: '០', - }, - numberMap$8 = { - '១': '1', - '២': '2', - '៣': '3', - '៤': '4', - '៥': '5', - '៦': '6', - '៧': '7', - '៨': '8', - '៩': '9', - '០': '0', - }; - - moment.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( - '_' - ), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( - '_' - ), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /ព្រឹក|ល្ងាច/, - isPM: function (input) { - return input === 'ល្ងាច'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ព្រឹក'; - } else { - return 'ល្ងាច'; - } - }, - calendar: { - sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', - nextDay: '[ស្អែក ម៉ោង] LT', - nextWeek: 'dddd [ម៉ោង] LT', - lastDay: '[ម្សិលមិញ ម៉ោង] LT', - lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sទៀត', - past: '%sមុន', - s: 'ប៉ុន្មានវិនាទី', - ss: '%d វិនាទី', - m: 'មួយនាទី', - mm: '%d នាទី', - h: 'មួយម៉ោង', - hh: '%d ម៉ោង', - d: 'មួយថ្ងៃ', - dd: '%d ថ្ងៃ', - M: 'មួយខែ', - MM: '%d ខែ', - y: 'មួយឆ្នាំ', - yy: '%d ឆ្នាំ', - }, - dayOfMonthOrdinalParse: /ទី\d{1,2}/, - ordinal: 'ទី%d', - preparse: function (string) { - return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { - return numberMap$8[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$9[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$a = { - 1: '೧', - 2: '೨', - 3: '೩', - 4: '೪', - 5: '೫', - 6: '೬', - 7: '೭', - 8: '೮', - 9: '೯', - 0: '೦', - }, - numberMap$9 = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0', - }; - - moment.defineLocale('kn', { - months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( - '_' - ), - monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( - '_' - ), - weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[ಇಂದು] LT', - nextDay: '[ನಾಳೆ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ನಿನ್ನೆ] LT', - lastWeek: '[ಕೊನೆಯ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ನಂತರ', - past: '%s ಹಿಂದೆ', - s: 'ಕೆಲವು ಕ್ಷಣಗಳು', - ss: '%d ಸೆಕೆಂಡುಗಳು', - m: 'ಒಂದು ನಿಮಿಷ', - mm: '%d ನಿಮಿಷ', - h: 'ಒಂದು ಗಂಟೆ', - hh: '%d ಗಂಟೆ', - d: 'ಒಂದು ದಿನ', - dd: '%d ದಿನ', - M: 'ಒಂದು ತಿಂಗಳು', - MM: '%d ತಿಂಗಳು', - y: 'ಒಂದು ವರ್ಷ', - yy: '%d ವರ್ಷ', - }, - preparse: function (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap$9[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$a[match]; - }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal: function (number) { - return number + 'ನೇ'; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ko', { - months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), - monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( - '_' - ), - weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), - weekdaysShort: '일_월_화_수_목_금_토'.split('_'), - weekdaysMin: '일_월_화_수_목_금_토'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY년 MMMM D일', - LLL: 'YYYY년 MMMM D일 A h:mm', - LLLL: 'YYYY년 MMMM D일 dddd A h:mm', - l: 'YYYY.MM.DD.', - ll: 'YYYY년 MMMM D일', - lll: 'YYYY년 MMMM D일 A h:mm', - llll: 'YYYY년 MMMM D일 dddd A h:mm', - }, - calendar: { - sameDay: '오늘 LT', - nextDay: '내일 LT', - nextWeek: 'dddd LT', - lastDay: '어제 LT', - lastWeek: '지난주 dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s 후', - past: '%s 전', - s: '몇 초', - ss: '%d초', - m: '1분', - mm: '%d분', - h: '한 시간', - hh: '%d시간', - d: '하루', - dd: '%d일', - M: '한 달', - MM: '%d달', - y: '일 년', - yy: '%d년', - }, - dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '일'; - case 'M': - return number + '월'; - case 'w': - case 'W': - return number + '주'; - default: - return number; - } - }, - meridiemParse: /오전|오후/, - isPM: function (token) { - return token === '오후'; - }, - meridiem: function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - }, - }); - - //! moment.js locale configuration - - var symbolMap$b = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap$a = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - months$7 = [ - 'کانونی دووەم', - 'شوبات', - 'ئازار', - 'نیسان', - 'ئایار', - 'حوزەیران', - 'تەمموز', - 'ئاب', - 'ئەیلوول', - 'تشرینی یەكەم', - 'تشرینی دووەم', - 'كانونی یەکەم', - ]; - - moment.defineLocale('ku', { - months: months$7, - monthsShort: months$7, - weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( - '_' - ), - weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split( - '_' - ), - weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /ئێواره‌|به‌یانی/, - isPM: function (input) { - return /ئێواره‌/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'به‌یانی'; - } else { - return 'ئێواره‌'; - } - }, - calendar: { - sameDay: '[ئه‌مرۆ كاتژمێر] LT', - nextDay: '[به‌یانی كاتژمێر] LT', - nextWeek: 'dddd [كاتژمێر] LT', - lastDay: '[دوێنێ كاتژمێر] LT', - lastWeek: 'dddd [كاتژمێر] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'له‌ %s', - past: '%s', - s: 'چه‌ند چركه‌یه‌ك', - ss: 'چركه‌ %d', - m: 'یه‌ك خوله‌ك', - mm: '%d خوله‌ك', - h: 'یه‌ك كاتژمێر', - hh: '%d كاتژمێر', - d: 'یه‌ك ڕۆژ', - dd: '%d ڕۆژ', - M: 'یه‌ك مانگ', - MM: '%d مانگ', - y: 'یه‌ك ساڵ', - yy: '%d ساڵ', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap$a[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$b[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes$2 = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү', - }; - - moment.defineLocale('ky', { - months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( - '_' - ), - weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( - '_' - ), - weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Бүгүн саат] LT', - nextDay: '[Эртең саат] LT', - nextWeek: 'dddd [саат] LT', - lastDay: '[Кечээ саат] LT', - lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ичинде', - past: '%s мурун', - s: 'бирнече секунд', - ss: '%d секунд', - m: 'бир мүнөт', - mm: '%d мүнөт', - h: 'бир саат', - hh: '%d саат', - d: 'бир күн', - dd: '%d күн', - M: 'бир ай', - MM: '%d ай', - y: 'бир жыл', - yy: '%d жыл', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$6(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eng Minutt', 'enger Minutt'], - h: ['eng Stonn', 'enger Stonn'], - d: ['een Dag', 'engem Dag'], - M: ['ee Mount', 'engem Mount'], - y: ['ee Joer', 'engem Joer'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; - } - function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; - } - /** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} - */ - function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, - firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; - } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); - } - } - - moment.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( - '_' - ), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', - }, - calendar: { - sameDay: '[Haut um] LT', - sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - }, - }, - relativeTime: { - future: processFutureTime, - past: processPastTime, - s: 'e puer Sekonnen', - ss: '%d Sekonnen', - m: processRelativeTime$6, - mm: '%d Minutten', - h: processRelativeTime$6, - hh: '%d Stonnen', - d: processRelativeTime$6, - dd: '%d Deeg', - M: processRelativeTime$6, - MM: '%d Méint', - y: processRelativeTime$6, - yy: '%d Joer', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('lo', { - months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( - '_' - ), - monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( - '_' - ), - weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'ວັນdddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - calendar: { - sameDay: '[ມື້ນີ້ເວລາ] LT', - nextDay: '[ມື້ອື່ນເວລາ] LT', - nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', - lastDay: '[ມື້ວານນີ້ເວລາ] LT', - lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ອີກ %s', - past: '%sຜ່ານມາ', - s: 'ບໍ່ເທົ່າໃດວິນາທີ', - ss: '%d ວິນາທີ', - m: '1 ນາທີ', - mm: '%d ນາທີ', - h: '1 ຊົ່ວໂມງ', - hh: '%d ຊົ່ວໂມງ', - d: '1 ມື້', - dd: '%d ມື້', - M: '1 ເດືອນ', - MM: '%d ເດືອນ', - y: '1 ປີ', - yy: '%d ປີ', - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal: function (number) { - return 'ທີ່' + number; - }, - }); - - //! moment.js locale configuration - - var units = { - ss: 'sekundė_sekundžių_sekundes', - m: 'minutė_minutės_minutę', - mm: 'minutės_minučių_minutes', - h: 'valanda_valandos_valandą', - hh: 'valandos_valandų_valandas', - d: 'diena_dienos_dieną', - dd: 'dienos_dienų_dienas', - M: 'mėnuo_mėnesio_mėnesį', - MM: 'mėnesiai_mėnesių_mėnesius', - y: 'metai_metų_metus', - yy: 'metai_metų_metus', - }; - function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } - } - function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix - ? forms(key)[0] - : isFuture - ? forms(key)[1] - : forms(key)[2]; - } - function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); - } - function forms(key) { - return units[key].split('_'); - } - function translate$6(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return ( - result + translateSingular(number, withoutSuffix, key[0], isFuture) - ); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } - } - moment.defineLocale('lt', { - months: { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( - '_' - ), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( - '_' - ), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, - }, - monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays: { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( - '_' - ), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( - '_' - ), - isFormat: /dddd HH:mm/, - }, - weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY [m.] MMMM D [d.]', - LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l: 'YYYY-MM-DD', - ll: 'YYYY [m.] MMMM D [d.]', - lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', - }, - calendar: { - sameDay: '[Šiandien] LT', - nextDay: '[Rytoj] LT', - nextWeek: 'dddd LT', - lastDay: '[Vakar] LT', - lastWeek: '[Praėjusį] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: 'po %s', - past: 'prieš %s', - s: translateSeconds, - ss: translate$6, - m: translateSingular, - mm: translate$6, - h: translateSingular, - hh: translate$6, - d: translateSingular, - dd: translate$6, - M: translateSingular, - MM: translate$6, - y: translateSingular, - yy: translate$6, - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal: function (number) { - return number + '-oji'; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var units$1 = { - ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), - m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - h: 'stundas_stundām_stunda_stundas'.split('_'), - hh: 'stundas_stundām_stunda_stundas'.split('_'), - d: 'dienas_dienām_diena_dienas'.split('_'), - dd: 'dienas_dienām_diena_dienas'.split('_'), - M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - y: 'gada_gadiem_gads_gadi'.split('_'), - yy: 'gada_gadiem_gads_gadi'.split('_'), - }; - /** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ - function format(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } - } - function relativeTimeWithPlural$1(number, withoutSuffix, key) { - return number + ' ' + format(units$1[key], number, withoutSuffix); - } - function relativeTimeWithSingular(number, withoutSuffix, key) { - return format(units$1[key], number, withoutSuffix); - } - function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; - } - - moment.defineLocale('lv', { - months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( - '_' - ), - weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY.', - LL: 'YYYY. [gada] D. MMMM', - LLL: 'YYYY. [gada] D. MMMM, HH:mm', - LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', - }, - calendar: { - sameDay: '[Šodien pulksten] LT', - nextDay: '[Rīt pulksten] LT', - nextWeek: 'dddd [pulksten] LT', - lastDay: '[Vakar pulksten] LT', - lastWeek: '[Pagājušā] dddd [pulksten] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'pēc %s', - past: 'pirms %s', - s: relativeSeconds, - ss: relativeTimeWithPlural$1, - m: relativeTimeWithSingular, - mm: relativeTimeWithPlural$1, - h: relativeTimeWithSingular, - hh: relativeTimeWithPlural$1, - d: relativeTimeWithSingular, - dd: relativeTimeWithPlural$1, - M: relativeTimeWithSingular, - MM: relativeTimeWithPlural$1, - y: relativeTimeWithSingular, - yy: relativeTimeWithPlural$1, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var translator = { - words: { - //Different grammatical cases - ss: ['sekund', 'sekunda', 'sekundi'], - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - moment.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra u] LT', - - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[juče u] LT', - lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'nekoliko sekundi', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'dan', - dd: translator.translate, - M: 'mjesec', - MM: translator.translate, - y: 'godinu', - yy: translator.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( - '_' - ), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( - '_' - ), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm', - }, - calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - ss: '%d hēkona', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('mk', { - months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( - '_' - ), - weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Денес во] LT', - nextDay: '[Утре во] LT', - nextWeek: '[Во] dddd [во] LT', - lastDay: '[Вчера во] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Изминатата] dddd [во] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Изминатиот] dddd [во] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: 'пред %s', - s: 'неколку секунди', - ss: '%d секунди', - m: 'една минута', - mm: '%d минути', - h: 'еден час', - hh: '%d часа', - d: 'еден ден', - dd: '%d дена', - M: 'еден месец', - MM: '%d месеци', - y: 'една година', - yy: '%d години', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ml', { - months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( - '_' - ), - monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( - '_' - ), - weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat: { - LT: 'A h:mm -നു', - LTS: 'A h:mm:ss -നു', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm -നു', - LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', - }, - calendar: { - sameDay: '[ഇന്ന്] LT', - nextDay: '[നാളെ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ഇന്നലെ] LT', - lastWeek: '[കഴിഞ്ഞ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s കഴിഞ്ഞ്', - past: '%s മുൻപ്', - s: 'അൽപ നിമിഷങ്ങൾ', - ss: '%d സെക്കൻഡ്', - m: 'ഒരു മിനിറ്റ്', - mm: '%d മിനിറ്റ്', - h: 'ഒരു മണിക്കൂർ', - hh: '%d മണിക്കൂർ', - d: 'ഒരു ദിവസം', - dd: '%d ദിവസം', - M: 'ഒരു മാസം', - MM: '%d മാസം', - y: 'ഒരു വർഷം', - yy: '%d വർഷം', - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - }, - }); - - //! moment.js locale configuration - - function translate$7(number, withoutSuffix, key, isFuture) { - switch (key) { - case 's': - return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; - case 'ss': - return number + (withoutSuffix ? ' секунд' : ' секундын'); - case 'm': - case 'mm': - return number + (withoutSuffix ? ' минут' : ' минутын'); - case 'h': - case 'hh': - return number + (withoutSuffix ? ' цаг' : ' цагийн'); - case 'd': - case 'dd': - return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); - case 'M': - case 'MM': - return number + (withoutSuffix ? ' сар' : ' сарын'); - case 'y': - case 'yy': - return number + (withoutSuffix ? ' жил' : ' жилийн'); - default: - return number; - } - } - - moment.defineLocale('mn', { - months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( - '_' - ), - monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), - weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), - weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY оны MMMMын D', - LLL: 'YYYY оны MMMMын D HH:mm', - LLLL: 'dddd, YYYY оны MMMMын D HH:mm', - }, - meridiemParse: /ҮӨ|ҮХ/i, - isPM: function (input) { - return input === 'ҮХ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ҮӨ'; - } else { - return 'ҮХ'; - } - }, - calendar: { - sameDay: '[Өнөөдөр] LT', - nextDay: '[Маргааш] LT', - nextWeek: '[Ирэх] dddd LT', - lastDay: '[Өчигдөр] LT', - lastWeek: '[Өнгөрсөн] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s дараа', - past: '%s өмнө', - s: translate$7, - ss: translate$7, - m: translate$7, - mm: translate$7, - h: translate$7, - hh: translate$7, - d: translate$7, - dd: translate$7, - M: translate$7, - MM: translate$7, - y: translate$7, - yy: translate$7, - }, - dayOfMonthOrdinalParse: /\d{1,2} өдөр/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + ' өдөр'; - default: - return number; - } - }, - }); - - //! moment.js locale configuration - - var symbolMap$c = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap$b = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; - - function relativeTimeMr(number, withoutSuffix, string, isFuture) { - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': - output = 'काही सेकंद'; - break; - case 'ss': - output = '%d सेकंद'; - break; - case 'm': - output = 'एक मिनिट'; - break; - case 'mm': - output = '%d मिनिटे'; - break; - case 'h': - output = 'एक तास'; - break; - case 'hh': - output = '%d तास'; - break; - case 'd': - output = 'एक दिवस'; - break; - case 'dd': - output = '%d दिवस'; - break; - case 'M': - output = 'एक महिना'; - break; - case 'MM': - output = '%d महिने'; - break; - case 'y': - output = 'एक वर्ष'; - break; - case 'yy': - output = '%d वर्षे'; - break; - } - } else { - switch (string) { - case 's': - output = 'काही सेकंदां'; - break; - case 'ss': - output = '%d सेकंदां'; - break; - case 'm': - output = 'एका मिनिटा'; - break; - case 'mm': - output = '%d मिनिटां'; - break; - case 'h': - output = 'एका तासा'; - break; - case 'hh': - output = '%d तासां'; - break; - case 'd': - output = 'एका दिवसा'; - break; - case 'dd': - output = '%d दिवसां'; - break; - case 'M': - output = 'एका महिन्या'; - break; - case 'MM': - output = '%d महिन्यां'; - break; - case 'y': - output = 'एका वर्षा'; - break; - case 'yy': - output = '%d वर्षां'; - break; - } - } - return output.replace(/%d/i, number); - } - - moment.defineLocale('mr', { - months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( - '_' - ), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat: { - LT: 'A h:mm वाजता', - LTS: 'A h:mm:ss वाजता', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm वाजता', - LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', - }, - calendar: { - sameDay: '[आज] LT', - nextDay: '[उद्या] LT', - nextWeek: 'dddd, LT', - lastDay: '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - ss: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr, - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$b[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$c[match]; - }); - }, - meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { - return hour; - } else if ( - meridiem === 'दुपारी' || - meridiem === 'सायंकाळी' || - meridiem === 'रात्री' - ) { - return hour >= 12 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour >= 0 && hour < 6) { - return 'पहाटे'; - } else if (hour < 12) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ms-my', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ms', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('mt', { - months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( - '_' - ), - monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), - weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( - '_' - ), - weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), - weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Illum fil-]LT', - nextDay: '[Għada fil-]LT', - nextWeek: 'dddd [fil-]LT', - lastDay: '[Il-bieraħ fil-]LT', - lastWeek: 'dddd [li għadda] [fil-]LT', - sameElse: 'L', - }, - relativeTime: { - future: 'f’ %s', - past: '%s ilu', - s: 'ftit sekondi', - ss: '%d sekondi', - m: 'minuta', - mm: '%d minuti', - h: 'siegħa', - hh: '%d siegħat', - d: 'ġurnata', - dd: '%d ġranet', - M: 'xahar', - MM: '%d xhur', - y: 'sena', - yy: '%d sni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$d = { - 1: '၁', - 2: '၂', - 3: '၃', - 4: '၄', - 5: '၅', - 6: '၆', - 7: '၇', - 8: '၈', - 9: '၉', - 0: '၀', - }, - numberMap$c = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0', - }; - - moment.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( - '_' - ), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( - '_' - ), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[ယနေ.] LT [မှာ]', - nextDay: '[မနက်ဖြန်] LT [မှာ]', - nextWeek: 'dddd LT [မှာ]', - lastDay: '[မနေ.က] LT [မှာ]', - lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', - sameElse: 'L', - }, - relativeTime: { - future: 'လာမည့် %s မှာ', - past: 'လွန်ခဲ့သော %s က', - s: 'စက္ကန်.အနည်းငယ်', - ss: '%d စက္ကန့်', - m: 'တစ်မိနစ်', - mm: '%d မိနစ်', - h: 'တစ်နာရီ', - hh: '%d နာရီ', - d: 'တစ်ရက်', - dd: '%d ရက်', - M: 'တစ်လ', - MM: '%d လ', - y: 'တစ်နှစ်', - yy: '%d နှစ်', - }, - preparse: function (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap$c[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$d[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('nb', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[forrige] dddd [kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'noen sekunder', - ss: '%d sekunder', - m: 'ett minutt', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dager', - w: 'en uke', - ww: '%d uker', - M: 'en måned', - MM: '%d måneder', - y: 'ett år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$e = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap$d = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; - - moment.defineLocale('ne', { - months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( - '_' - ), - monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( - '_' - ), - weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'Aको h:mm बजे', - LTS: 'Aको h:mm:ss बजे', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, Aको h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$d[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$e[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - calendar: { - sameDay: '[आज] LT', - nextDay: '[भोलि] LT', - nextWeek: '[आउँदो] dddd[,] LT', - lastDay: '[हिजो] LT', - lastWeek: '[गएको] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sमा', - past: '%s अगाडि', - s: 'केही क्षण', - ss: '%d सेकेण्ड', - m: 'एक मिनेट', - mm: '%d मिनेट', - h: 'एक घण्टा', - hh: '%d घण्टा', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महिना', - MM: '%d महिना', - y: 'एक बर्ष', - yy: '%d बर्ष', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse$8 = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex$7 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - moment.defineLocale('nl-be', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots$1; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$1[m.month()]; - } else { - return monthsShortWithDots$1[m.month()]; - } - }, - - monthsRegex: monthsRegex$7, - monthsShortRegex: monthsRegex$7, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse: monthsParse$8, - longMonthsParse: monthsParse$8, - shortMonthsParse: monthsParse$8, - - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( - '_' - ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse$9 = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex$8 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - moment.defineLocale('nl', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots$2; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$2[m.month()]; - } else { - return monthsShortWithDots$2[m.month()]; - } - }, - - monthsRegex: monthsRegex$8, - monthsShortRegex: monthsRegex$8, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse: monthsParse$9, - longMonthsParse: monthsParse$9, - shortMonthsParse: monthsParse$9, - - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( - '_' - ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - w: 'één week', - ww: '%d weken', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('nn', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), - weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), - weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s sidan', - s: 'nokre sekund', - ss: '%d sekund', - m: 'eit minutt', - mm: '%d minutt', - h: 'ein time', - hh: '%d timar', - d: 'ein dag', - dd: '%d dagar', - w: 'ei veke', - ww: '%d veker', - M: 'ein månad', - MM: '%d månader', - y: 'eit år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('oc-lnc', { - months: { - standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( - '_' - ), - format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( - '_' - ), - weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', - llll: 'ddd D MMM YYYY, H:mm', - }, - calendar: { - sameDay: '[uèi a] LT', - nextDay: '[deman a] LT', - nextWeek: 'dddd [a] LT', - lastDay: '[ièr a] LT', - lastWeek: 'dddd [passat a] LT', - sameElse: 'L', - }, - relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'unas segondas', - ss: '%d segondas', - m: 'una minuta', - mm: '%d minutas', - h: 'una ora', - hh: '%d oras', - d: 'un jorn', - dd: '%d jorns', - M: 'un mes', - MM: '%d meses', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, - }, - }); - - //! moment.js locale configuration - - var symbolMap$f = { - 1: '੧', - 2: '੨', - 3: '੩', - 4: '੪', - 5: '੫', - 6: '੬', - 7: '੭', - 8: '੮', - 9: '੯', - 0: '੦', - }, - numberMap$e = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0', - }; - - moment.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. - months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( - '_' - ), - weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat: { - LT: 'A h:mm ਵਜੇ', - LTS: 'A h:mm:ss ਵਜੇ', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', - }, - calendar: { - sameDay: '[ਅਜ] LT', - nextDay: '[ਕਲ] LT', - nextWeek: '[ਅਗਲਾ] dddd, LT', - lastDay: '[ਕਲ] LT', - lastWeek: '[ਪਿਛਲੇ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ਵਿੱਚ', - past: '%s ਪਿਛਲੇ', - s: 'ਕੁਝ ਸਕਿੰਟ', - ss: '%d ਸਕਿੰਟ', - m: 'ਇਕ ਮਿੰਟ', - mm: '%d ਮਿੰਟ', - h: 'ਇੱਕ ਘੰਟਾ', - hh: '%d ਘੰਟੇ', - d: 'ਇੱਕ ਦਿਨ', - dd: '%d ਦਿਨ', - M: 'ਇੱਕ ਮਹੀਨਾ', - MM: '%d ਮਹੀਨੇ', - y: 'ਇੱਕ ਸਾਲ', - yy: '%d ਸਾਲ', - }, - preparse: function (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap$e[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$f[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( - '_' - ), - monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( - '_' - ), - monthsParse$a = [ - /^sty/i, - /^lut/i, - /^mar/i, - /^kwi/i, - /^maj/i, - /^cze/i, - /^lip/i, - /^sie/i, - /^wrz/i, - /^paź/i, - /^lis/i, - /^gru/i, - ]; - function plural$3(n) { - return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; - } - function translate$8(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - return result + (plural$3(number) ? 'sekundy' : 'sekund'); - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural$3(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural$3(number) ? 'godziny' : 'godzin'); - case 'ww': - return result + (plural$3(number) ? 'tygodnie' : 'tygodni'); - case 'MM': - return result + (plural$3(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural$3(number) ? 'lata' : 'lat'); - } - } - - moment.defineLocale('pl', { - months: function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.month()]; - } - }, - monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), - monthsParse: monthsParse$a, - longMonthsParse: monthsParse$a, - shortMonthsParse: monthsParse$a, - weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split( - '_' - ), - weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Dziś o] LT', - nextDay: '[Jutro o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[W niedzielę o] LT'; - - case 2: - return '[We wtorek o] LT'; - - case 3: - return '[W środę o] LT'; - - case 6: - return '[W sobotę o] LT'; - - default: - return '[W] dddd [o] LT'; - } - }, - lastDay: '[Wczoraj o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[W zeszłą niedzielę o] LT'; - case 3: - return '[W zeszłą środę o] LT'; - case 6: - return '[W zeszłą sobotę o] LT'; - default: - return '[W zeszły] dddd [o] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: '%s temu', - s: 'kilka sekund', - ss: translate$8, - m: translate$8, - mm: translate$8, - h: translate$8, - hh: translate$8, - d: '1 dzień', - dd: '%d dni', - w: 'tydzień', - ww: translate$8, - M: 'miesiąc', - MM: translate$8, - y: 'rok', - yy: translate$8, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('pt-br', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( - '_' - ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( - '_' - ), - weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), - weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', - }, - calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L', - }, - relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'poucos segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - invalidDate: 'Data inválida', - }); - - //! moment.js locale configuration - - moment.defineLocale('pt', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( - '_' - ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( - '_' - ), - weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), - weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', - }, - calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L', - }, - relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - w: 'uma semana', - ww: '%d semanas', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function relativeTimeWithPlural$2(number, withoutSuffix, key) { - var format = { - ss: 'secunde', - mm: 'minute', - hh: 'ore', - dd: 'zile', - ww: 'săptămâni', - MM: 'luni', - yy: 'ani', - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; - } - - moment.defineLocale('ro', { - months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( - '_' - ), - monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), - weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), - weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[azi la] LT', - nextDay: '[mâine la] LT', - nextWeek: 'dddd [la] LT', - lastDay: '[ieri la] LT', - lastWeek: '[fosta] dddd [la] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'peste %s', - past: '%s în urmă', - s: 'câteva secunde', - ss: relativeTimeWithPlural$2, - m: 'un minut', - mm: relativeTimeWithPlural$2, - h: 'o oră', - hh: relativeTimeWithPlural$2, - d: 'o zi', - dd: relativeTimeWithPlural$2, - w: 'o săptămână', - ww: relativeTimeWithPlural$2, - M: 'o lună', - MM: relativeTimeWithPlural$2, - y: 'un an', - yy: relativeTimeWithPlural$2, - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural$4(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural$3(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - hh: 'час_часа_часов', - dd: 'день_дня_дней', - ww: 'неделя_недели_недель', - MM: 'месяц_месяца_месяцев', - yy: 'год_года_лет', - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } else { - return number + ' ' + plural$4(format[key], +number); - } - } - var monthsParse$b = [ - /^янв/i, - /^фев/i, - /^мар/i, - /^апр/i, - /^ма[йя]/i, - /^июн/i, - /^июл/i, - /^авг/i, - /^сен/i, - /^окт/i, - /^ноя/i, - /^дек/i, - ]; - - // http://new.gramota.ru/spravka/rules/139-prop : § 103 - // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 - // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 - moment.defineLocale('ru', { - months: { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( - '_' - ), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - }, - monthsShort: { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( - '_' - ), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( - '_' - ), - }, - weekdays: { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( - '_' - ), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( - '_' - ), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, - }, - weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse: monthsParse$b, - longMonthsParse: monthsParse$b, - shortMonthsParse: monthsParse$b, - - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - - // Выражение, которое соответствует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., H:mm', - LLLL: 'dddd, D MMMM YYYY г., H:mm', - }, - calendar: { - sameDay: '[Сегодня, в] LT', - nextDay: '[Завтра, в] LT', - lastDay: '[Вчера, в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В следующее] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В следующий] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В следующую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В прошлое] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В прошлый] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В прошлую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'через %s', - past: '%s назад', - s: 'несколько секунд', - ss: relativeTimeWithPlural$3, - m: relativeTimeWithPlural$3, - mm: relativeTimeWithPlural$3, - h: 'час', - hh: relativeTimeWithPlural$3, - d: 'день', - dd: relativeTimeWithPlural$3, - w: 'неделя', - ww: relativeTimeWithPlural$3, - M: 'месяц', - MM: relativeTimeWithPlural$3, - y: 'год', - yy: relativeTimeWithPlural$3, - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM: function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - return number + '-й'; - case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$8 = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر', - ], - days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; - - moment.defineLocale('sd', { - months: months$8, - monthsShort: months$8, - weekdays: days, - weekdaysShort: days, - weekdaysMin: days, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', - }, - meridiemParse: /صبح|شام/, - isPM: function (input) { - return 'شام' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar: { - sameDay: '[اڄ] LT', - nextDay: '[سڀاڻي] LT', - nextWeek: 'dddd [اڳين هفتي تي] LT', - lastDay: '[ڪالهه] LT', - lastWeek: '[گزريل هفتي] dddd [تي] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s پوء', - past: '%s اڳ', - s: 'چند سيڪنڊ', - ss: '%d سيڪنڊ', - m: 'هڪ منٽ', - mm: '%d منٽ', - h: 'هڪ ڪلاڪ', - hh: '%d ڪلاڪ', - d: 'هڪ ڏينهن', - dd: '%d ڏينهن', - M: 'هڪ مهينو', - MM: '%d مهينا', - y: 'هڪ سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('se', { - months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( - '_' - ), - monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split( - '_' - ), - weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( - '_' - ), - weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin: 's_v_m_g_d_b_L'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'MMMM D. [b.] YYYY', - LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', - }, - calendar: { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s geažes', - past: 'maŋit %s', - s: 'moadde sekunddat', - ss: '%d sekunddat', - m: 'okta minuhta', - mm: '%d minuhtat', - h: 'okta diimmu', - hh: '%d diimmut', - d: 'okta beaivi', - dd: '%d beaivvit', - M: 'okta mánnu', - MM: '%d mánut', - y: 'okta jahki', - yy: '%d jagit', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - /*jshint -W100*/ - moment.defineLocale('si', { - months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( - '_' - ), - monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( - '_' - ), - weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( - '_' - ), - weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'a h:mm', - LTS: 'a h:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY MMMM D', - LLL: 'YYYY MMMM D, a h:mm', - LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', - }, - calendar: { - sameDay: '[අද] LT[ට]', - nextDay: '[හෙට] LT[ට]', - nextWeek: 'dddd LT[ට]', - lastDay: '[ඊයේ] LT[ට]', - lastWeek: '[පසුගිය] dddd LT[ට]', - sameElse: 'L', - }, - relativeTime: { - future: '%sකින්', - past: '%sකට පෙර', - s: 'තත්පර කිහිපය', - ss: 'තත්පර %d', - m: 'මිනිත්තුව', - mm: 'මිනිත්තු %d', - h: 'පැය', - hh: 'පැය %d', - d: 'දිනය', - dd: 'දින %d', - M: 'මාසය', - MM: 'මාස %d', - y: 'වසර', - yy: 'වසර %d', - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal: function (number) { - return number + ' වැනි'; - }, - meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM: function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - }, - }); - - //! moment.js locale configuration - - var months$9 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( - '_' - ), - monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); - function plural$5(n) { - return n > 1 && n < 5; - } - function translate$9(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'sekundy' : 'sekúnd'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - } - } - - moment.defineLocale('sk', { - months: months$9, - monthsShort: monthsShort$7, - weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), - weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), - weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[dnes o] LT', - nextDay: '[zajtra o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v nedeľu o] LT'; - case 1: - case 2: - return '[v] dddd [o] LT'; - case 3: - return '[v stredu o] LT'; - case 4: - return '[vo štvrtok o] LT'; - case 5: - return '[v piatok o] LT'; - case 6: - return '[v sobotu o] LT'; - } - }, - lastDay: '[včera o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulú nedeľu o] LT'; - case 1: - case 2: - return '[minulý] dddd [o] LT'; - case 3: - return '[minulú stredu o] LT'; - case 4: - case 5: - return '[minulý] dddd [o] LT'; - case 6: - return '[minulú sobotu o] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'pred %s', - s: translate$9, - ss: translate$9, - m: translate$9, - mm: translate$9, - h: translate$9, - hh: translate$9, - d: translate$9, - dd: translate$9, - M: translate$9, - MM: translate$9, - y: translate$9, - yy: translate$9, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$7(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nekaj sekund' - : 'nekaj sekundami'; - case 'ss': - if (number === 1) { - result += withoutSuffix ? 'sekundo' : 'sekundi'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; - } else { - result += 'sekund'; - } - return result; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; - } - } - - moment.defineLocale('sl', { - months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), - weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), - weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD. MM. YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danes ob] LT', - nextDay: '[jutri ob] LT', - - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v] [nedeljo] [ob] LT'; - case 3: - return '[v] [sredo] [ob] LT'; - case 6: - return '[v] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[v] dddd [ob] LT'; - } - }, - lastDay: '[včeraj ob] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'čez %s', - past: 'pred %s', - s: processRelativeTime$7, - ss: processRelativeTime$7, - m: processRelativeTime$7, - mm: processRelativeTime$7, - h: processRelativeTime$7, - hh: processRelativeTime$7, - d: processRelativeTime$7, - dd: processRelativeTime$7, - M: processRelativeTime$7, - MM: processRelativeTime$7, - y: processRelativeTime$7, - yy: processRelativeTime$7, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('sq', { - months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( - '_' - ), - monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), - weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( - '_' - ), - weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), - weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), - weekdaysParseExact: true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem: function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Sot në] LT', - nextDay: '[Nesër në] LT', - nextWeek: 'dddd [në] LT', - lastDay: '[Dje në] LT', - lastWeek: 'dddd [e kaluar në] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'në %s', - past: '%s më parë', - s: 'disa sekonda', - ss: '%d sekonda', - m: 'një minutë', - mm: '%d minuta', - h: 'një orë', - hh: '%d orë', - d: 'një ditë', - dd: '%d ditë', - M: 'një muaj', - MM: '%d muaj', - y: 'një vit', - yy: '%d vite', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var translator$1 = { - words: { - //Different grammatical cases - ss: ['секунда', 'секунде', 'секунди'], - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$1.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator$1.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - moment.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( - '_' - ), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', - }, - calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay: '[јуче у] LT', - lastWeek: function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: 'пре %s', - s: 'неколико секунди', - ss: translator$1.translate, - m: translator$1.translate, - mm: translator$1.translate, - h: translator$1.translate, - hh: translator$1.translate, - d: 'дан', - dd: translator$1.translate, - M: 'месец', - MM: translator$1.translate, - y: 'годину', - yy: translator$1.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var translator$2 = { - words: { - //Different grammatical cases - ss: ['sekunda', 'sekunde', 'sekundi'], - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$2.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator$2.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - moment.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[juče u] LT', - lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'pre %s', - s: 'nekoliko sekundi', - ss: translator$2.translate, - m: translator$2.translate, - mm: translator$2.translate, - h: translator$2.translate, - hh: translator$2.translate, - d: 'dan', - dd: translator$2.translate, - M: 'mesec', - MM: translator$2.translate, - y: 'godinu', - yy: translator$2.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ss', { - months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( - '_' - ), - monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( - '_' - ), - weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Namuhla nga] LT', - nextDay: '[Kusasa nga] LT', - nextWeek: 'dddd [nga] LT', - lastDay: '[Itolo nga] LT', - lastWeek: 'dddd [leliphelile] [nga] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'nga %s', - past: 'wenteka nga %s', - s: 'emizuzwana lomcane', - ss: '%d mzuzwana', - m: 'umzuzu', - mm: '%d emizuzu', - h: 'lihora', - hh: '%d emahora', - d: 'lilanga', - dd: '%d emalanga', - M: 'inyanga', - MM: '%d tinyanga', - y: 'umnyaka', - yy: '%d iminyaka', - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: '%d', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('sv', { - months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), - weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), - weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: 'för %s sedan', - s: 'några sekunder', - ss: '%d sekunder', - m: 'en minut', - mm: '%d minuter', - h: 'en timme', - hh: '%d timmar', - d: 'en dag', - dd: '%d dagar', - M: 'en månad', - MM: '%d månader', - y: 'ett år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? ':e' - : b === 1 - ? ':a' - : b === 2 - ? ':a' - : b === 3 - ? ':e' - : ':e'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('sw', { - months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( - '_' - ), - weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'hh:mm A', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[leo saa] LT', - nextDay: '[kesho saa] LT', - nextWeek: '[wiki ijayo] dddd [saat] LT', - lastDay: '[jana] LT', - lastWeek: '[wiki iliyopita] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s baadaye', - past: 'tokea %s', - s: 'hivi punde', - ss: 'sekunde %d', - m: 'dakika moja', - mm: 'dakika %d', - h: 'saa limoja', - hh: 'masaa %d', - d: 'siku moja', - dd: 'siku %d', - M: 'mwezi mmoja', - MM: 'miezi %d', - y: 'mwaka mmoja', - yy: 'miaka %d', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$g = { - 1: '௧', - 2: '௨', - 3: '௩', - 4: '௪', - 5: '௫', - 6: '௬', - 7: '௭', - 8: '௮', - 9: '௯', - 0: '௦', - }, - numberMap$f = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0', - }; - - moment.defineLocale('ta', { - months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( - '_' - ), - weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( - '_' - ), - weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, HH:mm', - LLLL: 'dddd, D MMMM YYYY, HH:mm', - }, - calendar: { - sameDay: '[இன்று] LT', - nextDay: '[நாளை] LT', - nextWeek: 'dddd, LT', - lastDay: '[நேற்று] LT', - lastWeek: '[கடந்த வாரம்] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s இல்', - past: '%s முன்', - s: 'ஒரு சில விநாடிகள்', - ss: '%d விநாடிகள்', - m: 'ஒரு நிமிடம்', - mm: '%d நிமிடங்கள்', - h: 'ஒரு மணி நேரம்', - hh: '%d மணி நேரம்', - d: 'ஒரு நாள்', - dd: '%d நாட்கள்', - M: 'ஒரு மாதம்', - MM: '%d மாதங்கள்', - y: 'ஒரு வருடம்', - yy: '%d ஆண்டுகள்', - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal: function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap$f[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$g[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem: function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('te', { - months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( - '_' - ), - monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( - '_' - ), - weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[నేడు] LT', - nextDay: '[రేపు] LT', - nextWeek: 'dddd, LT', - lastDay: '[నిన్న] LT', - lastWeek: '[గత] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s లో', - past: '%s క్రితం', - s: 'కొన్ని క్షణాలు', - ss: '%d సెకన్లు', - m: 'ఒక నిమిషం', - mm: '%d నిమిషాలు', - h: 'ఒక గంట', - hh: '%d గంటలు', - d: 'ఒక రోజు', - dd: '%d రోజులు', - M: 'ఒక నెల', - MM: '%d నెలలు', - y: 'ఒక సంవత్సరం', - yy: '%d సంవత్సరాలు', - }, - dayOfMonthOrdinalParse: /\d{1,2}వ/, - ordinal: '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('tet', { - months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( - '_' - ), - monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), - weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), - weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), - weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'iha %s', - past: '%s liuba', - s: 'segundu balun', - ss: 'segundu %d', - m: 'minutu ida', - mm: 'minutu %d', - h: 'oras ida', - hh: 'oras %d', - d: 'loron ida', - dd: 'loron %d', - M: 'fulan ida', - MM: 'fulan %d', - y: 'tinan ida', - yy: 'tinan %d', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes$3 = { - 0: '-ум', - 1: '-ум', - 2: '-юм', - 3: '-юм', - 4: '-ум', - 5: '-ум', - 6: '-ум', - 7: '-ум', - 8: '-ум', - 9: '-ум', - 10: '-ум', - 12: '-ум', - 13: '-ум', - 20: '-ум', - 30: '-юм', - 40: '-ум', - 50: '-ум', - 60: '-ум', - 70: '-ум', - 80: '-ум', - 90: '-ум', - 100: '-ум', - }; - - moment.defineLocale('tg', { - months: { - format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( - '_' - ), - standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - }, - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( - '_' - ), - weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), - weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Имрӯз соати] LT', - nextDay: '[Фардо соати] LT', - lastDay: '[Дирӯз соати] LT', - nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', - lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'баъди %s', - past: '%s пеш', - s: 'якчанд сония', - m: 'як дақиқа', - mm: '%d дақиқа', - h: 'як соат', - hh: '%d соат', - d: 'як рӯз', - dd: '%d рӯз', - M: 'як моҳ', - MM: '%d моҳ', - y: 'як сол', - yy: '%d сол', - }, - meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'шаб') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'субҳ') { - return hour; - } else if (meridiem === 'рӯз') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'бегоҳ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'шаб'; - } else if (hour < 11) { - return 'субҳ'; - } else if (hour < 16) { - return 'рӯз'; - } else if (hour < 19) { - return 'бегоҳ'; - } else { - return 'шаб'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('th', { - months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( - '_' - ), - monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY เวลา H:mm', - LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - calendar: { - sameDay: '[วันนี้ เวลา] LT', - nextDay: '[พรุ่งนี้ เวลา] LT', - nextWeek: 'dddd[หน้า เวลา] LT', - lastDay: '[เมื่อวานนี้ เวลา] LT', - lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'อีก %s', - past: '%sที่แล้ว', - s: 'ไม่กี่วินาที', - ss: '%d วินาที', - m: '1 นาที', - mm: '%d นาที', - h: '1 ชั่วโมง', - hh: '%d ชั่วโมง', - d: '1 วัน', - dd: '%d วัน', - w: '1 สัปดาห์', - ww: '%d สัปดาห์', - M: '1 เดือน', - MM: '%d เดือน', - y: '1 ปี', - yy: '%d ปี', - }, - }); - - //! moment.js locale configuration - - var suffixes$4 = { - 1: "'inji", - 5: "'inji", - 8: "'inji", - 70: "'inji", - 80: "'inji", - 2: "'nji", - 7: "'nji", - 20: "'nji", - 50: "'nji", - 3: "'ünji", - 4: "'ünji", - 100: "'ünji", - 6: "'njy", - 9: "'unjy", - 10: "'unjy", - 30: "'unjy", - 60: "'ynjy", - 90: "'ynjy", - }; - - moment.defineLocale('tk', { - months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( - '_' - ), - monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), - weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( - '_' - ), - weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), - weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün sagat] LT', - nextDay: '[ertir sagat] LT', - nextWeek: '[indiki] dddd [sagat] LT', - lastDay: '[düýn] LT', - lastWeek: '[geçen] dddd [sagat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s soň', - past: '%s öň', - s: 'birnäçe sekunt', - m: 'bir minut', - mm: '%d minut', - h: 'bir sagat', - hh: '%d sagat', - d: 'bir gün', - dd: '%d gün', - M: 'bir aý', - MM: '%d aý', - y: 'bir ýyl', - yy: '%d ýyl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'unjy"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('tl-ph', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( - '_' - ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', - }, - calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L', - }, - relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); - - function translateFuture(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'leS' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'waQ' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'nem' - : time + ' pIq'; - return time; - } - - function translatePast(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'Hu’' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'wen' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'ben' - : time + ' ret'; - return time; - } - - function translate$a(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'ss': - return numberNoun + ' lup'; - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } - } - - function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[one]; - } - return word === '' ? 'pagh' : word; - } - - moment.defineLocale('tlh', { - months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( - '_' - ), - monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L', - }, - relativeTime: { - future: translateFuture, - past: translatePast, - s: 'puS lup', - ss: translate$a, - m: 'wa’ tup', - mm: translate$a, - h: 'wa’ rep', - hh: translate$a, - d: 'wa’ jaj', - dd: translate$a, - M: 'wa’ jar', - MM: translate$a, - y: 'wa’ DIS', - yy: translate$a, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes$5 = { - 1: "'inci", - 5: "'inci", - 8: "'inci", - 70: "'inci", - 80: "'inci", - 2: "'nci", - 7: "'nci", - 20: "'nci", - 50: "'nci", - 3: "'üncü", - 4: "'üncü", - 100: "'üncü", - 6: "'ncı", - 9: "'uncu", - 10: "'uncu", - 30: "'uncu", - 60: "'ıncı", - 90: "'ıncı", - }; - - moment.defineLocale('tr', { - months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( - '_' - ), - monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), - weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( - '_' - ), - weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'), - weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'öö' : 'ÖÖ'; - } else { - return isLower ? 'ös' : 'ÖS'; - } - }, - meridiemParse: /öö|ÖÖ|ös|ÖS/, - isPM: function (input) { - return input === 'ös' || input === 'ÖS'; - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[yarın saat] LT', - nextWeek: '[gelecek] dddd [saat] LT', - lastDay: '[dün] LT', - lastWeek: '[geçen] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s sonra', - past: '%s önce', - s: 'birkaç saniye', - ss: '%d saniye', - m: 'bir dakika', - mm: '%d dakika', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - w: 'bir hafta', - ww: '%d hafta', - M: 'bir ay', - MM: '%d ay', - y: 'bir yıl', - yy: '%d yıl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'ıncı"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. - // This is currently too difficult (maybe even impossible) to add. - moment.defineLocale('tzl', { - months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( - '_' - ), - monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM [dallas] YYYY', - LLL: 'D. MMMM [dallas] YYYY HH.mm', - LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', - }, - meridiemParse: /d\'o|d\'a/i, - isPM: function (input) { - return "d'o" === input.toLowerCase(); - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? "d'o" : "D'O"; - } else { - return isLower ? "d'a" : "D'A"; - } - }, - calendar: { - sameDay: '[oxhi à] LT', - nextDay: '[demà à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[ieiri à] LT', - lastWeek: '[sür el] dddd [lasteu à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'osprei %s', - past: 'ja%s', - s: processRelativeTime$8, - ss: processRelativeTime$8, - m: processRelativeTime$8, - mm: processRelativeTime$8, - h: processRelativeTime$8, - hh: processRelativeTime$8, - d: processRelativeTime$8, - dd: processRelativeTime$8, - M: processRelativeTime$8, - MM: processRelativeTime$8, - y: processRelativeTime$8, - yy: processRelativeTime$8, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - function processRelativeTime$8(number, withoutSuffix, key, isFuture) { - var format = { - s: ['viensas secunds', "'iensas secunds"], - ss: [number + ' secunds', '' + number + ' secunds'], - m: ["'n míut", "'iens míut"], - mm: [number + ' míuts', '' + number + ' míuts'], - h: ["'n þora", "'iensa þora"], - hh: [number + ' þoras', '' + number + ' þoras'], - d: ["'n ziua", "'iensa ziua"], - dd: [number + ' ziuas', '' + number + ' ziuas'], - M: ["'n mes", "'iens mes"], - MM: [number + ' mesen', '' + number + ' mesen'], - y: ["'n ar", "'iens ar"], - yy: [number + ' ars', '' + number + ' ars'], - }; - return isFuture - ? format[key][0] - : withoutSuffix - ? format[key][0] - : format[key][1]; - } - - //! moment.js locale configuration - - moment.defineLocale('tzm-latn', { - months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[asdkh g] LT', - nextDay: '[aska g] LT', - nextWeek: 'dddd [g] LT', - lastDay: '[assant g] LT', - lastWeek: 'dddd [g] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dadkh s yan %s', - past: 'yan %s', - s: 'imik', - ss: '%d imik', - m: 'minuḍ', - mm: '%d minuḍ', - h: 'saɛa', - hh: '%d tassaɛin', - d: 'ass', - dd: '%d ossan', - M: 'ayowr', - MM: '%d iyyirn', - y: 'asgas', - yy: '%d isgasn', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('tzm', { - months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', - nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', - nextWeek: 'dddd [ⴴ] LT', - lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', - lastWeek: 'dddd [ⴴ] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', - past: 'ⵢⴰⵏ %s', - s: 'ⵉⵎⵉⴽ', - ss: '%d ⵉⵎⵉⴽ', - m: 'ⵎⵉⵏⵓⴺ', - mm: '%d ⵎⵉⵏⵓⴺ', - h: 'ⵙⴰⵄⴰ', - hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', - d: 'ⴰⵙⵙ', - dd: '%d oⵙⵙⴰⵏ', - M: 'ⴰⵢoⵓⵔ', - MM: '%d ⵉⵢⵢⵉⵔⵏ', - y: 'ⴰⵙⴳⴰⵙ', - yy: '%d ⵉⵙⴳⴰⵙⵏ', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('ug-cn', { - months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( - '_' - ), - weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', - LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - }, - meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - meridiem === 'يېرىم كېچە' || - meridiem === 'سەھەر' || - meridiem === 'چۈشتىن بۇرۇن' - ) { - return hour; - } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { - return hour + 12; - } else { - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return 'يېرىم كېچە'; - } else if (hm < 900) { - return 'سەھەر'; - } else if (hm < 1130) { - return 'چۈشتىن بۇرۇن'; - } else if (hm < 1230) { - return 'چۈش'; - } else if (hm < 1800) { - return 'چۈشتىن كېيىن'; - } else { - return 'كەچ'; - } - }, - calendar: { - sameDay: '[بۈگۈن سائەت] LT', - nextDay: '[ئەتە سائەت] LT', - nextWeek: '[كېلەركى] dddd [سائەت] LT', - lastDay: '[تۆنۈگۈن] LT', - lastWeek: '[ئالدىنقى] dddd [سائەت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s كېيىن', - past: '%s بۇرۇن', - s: 'نەچچە سېكونت', - ss: '%d سېكونت', - m: 'بىر مىنۇت', - mm: '%d مىنۇت', - h: 'بىر سائەت', - hh: '%d سائەت', - d: 'بىر كۈن', - dd: '%d كۈن', - M: 'بىر ئاي', - MM: '%d ئاي', - y: 'بىر يىل', - yy: '%d يىل', - }, - - dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '-كۈنى'; - case 'w': - case 'W': - return number + '-ھەپتە'; - default: - return number; - } - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural$6(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural$4(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', - mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - dd: 'день_дні_днів', - MM: 'місяць_місяці_місяців', - yy: 'рік_роки_років', - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } else { - return number + ' ' + plural$6(format[key], +number); - } - } - function weekdaysCaseReplace(m, format) { - var weekdays = { - nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( - '_' - ), - accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( - '_' - ), - genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( - '_' - ), - }, - nounCase; - - if (m === true) { - return weekdays['nominative'] - .slice(1, 7) - .concat(weekdays['nominative'].slice(0, 1)); - } - if (!m) { - return weekdays['nominative']; - } - - nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) - ? 'accusative' - : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) - ? 'genitive' - : 'nominative'; - return weekdays[nounCase][m.day()]; - } - function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; - } - - moment.defineLocale('uk', { - months: { - format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( - '_' - ), - standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( - '_' - ), - }, - monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( - '_' - ), - weekdays: weekdaysCaseReplace, - weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY р.', - LLL: 'D MMMM YYYY р., HH:mm', - LLLL: 'dddd, D MMMM YYYY р., HH:mm', - }, - calendar: { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: '%s тому', - s: 'декілька секунд', - ss: relativeTimeWithPlural$4, - m: relativeTimeWithPlural$4, - mm: relativeTimeWithPlural$4, - h: 'годину', - hh: relativeTimeWithPlural$4, - d: 'день', - dd: relativeTimeWithPlural$4, - M: 'місяць', - MM: relativeTimeWithPlural$4, - y: 'рік', - yy: relativeTimeWithPlural$4, - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$a = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر', - ], - days$1 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; - - moment.defineLocale('ur', { - months: months$a, - monthsShort: months$a, - weekdays: days$1, - weekdaysShort: days$1, - weekdaysMin: days$1, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', - }, - meridiemParse: /صبح|شام/, - isPM: function (input) { - return 'شام' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar: { - sameDay: '[آج بوقت] LT', - nextDay: '[کل بوقت] LT', - nextWeek: 'dddd [بوقت] LT', - lastDay: '[گذشتہ روز بوقت] LT', - lastWeek: '[گذشتہ] dddd [بوقت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s بعد', - past: '%s قبل', - s: 'چند سیکنڈ', - ss: '%d سیکنڈ', - m: 'ایک منٹ', - mm: '%d منٹ', - h: 'ایک گھنٹہ', - hh: '%d گھنٹے', - d: 'ایک دن', - dd: '%d دن', - M: 'ایک ماہ', - MM: '%d ماہ', - y: 'ایک سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('uz-latn', { - months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( - '_' - ), - monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( - '_' - ), - weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Bugun soat] LT [da]', - nextDay: '[Ertaga] LT [da]', - nextWeek: 'dddd [kuni soat] LT [da]', - lastDay: '[Kecha soat] LT [da]', - lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", - sameElse: 'L', - }, - relativeTime: { - future: 'Yaqin %s ichida', - past: 'Bir necha %s oldin', - s: 'soniya', - ss: '%d soniya', - m: 'bir daqiqa', - mm: '%d daqiqa', - h: 'bir soat', - hh: '%d soat', - d: 'bir kun', - dd: '%d kun', - M: 'bir oy', - MM: '%d oy', - y: 'bir yil', - yy: '%d yil', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('uz', { - months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Бугун соат] LT [да]', - nextDay: '[Эртага] LT [да]', - nextWeek: 'dddd [куни соат] LT [да]', - lastDay: '[Кеча соат] LT [да]', - lastWeek: '[Утган] dddd [куни соат] LT [да]', - sameElse: 'L', - }, - relativeTime: { - future: 'Якин %s ичида', - past: 'Бир неча %s олдин', - s: 'фурсат', - ss: '%d фурсат', - m: 'бир дакика', - mm: '%d дакика', - h: 'бир соат', - hh: '%d соат', - d: 'бир кун', - dd: '%d кун', - M: 'бир ой', - MM: '%d ой', - y: 'бир йил', - yy: '%d йил', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('vi', { - months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( - '_' - ), - monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( - '_' - ), - weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact: true, - meridiemParse: /sa|ch/i, - isPM: function (input) { - return /^ch$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [năm] YYYY', - LLL: 'D MMMM [năm] YYYY HH:mm', - LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', - l: 'DD/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần trước lúc] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s tới', - past: '%s trước', - s: 'vài giây', - ss: '%d giây', - m: 'một phút', - mm: '%d phút', - h: 'một giờ', - hh: '%d giờ', - d: 'một ngày', - dd: '%d ngày', - w: 'một tuần', - ww: '%d tuần', - M: 'một tháng', - MM: '%d tháng', - y: 'một năm', - yy: '%d năm', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('x-pseudo', { - months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( - '_' - ), - monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( - '_' - ), - weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[T~ódá~ý át] LT', - nextDay: '[T~ómó~rró~w át] LT', - nextWeek: 'dddd [át] LT', - lastDay: '[Ý~ést~érdá~ý át] LT', - lastWeek: '[L~ást] dddd [át] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'í~ñ %s', - past: '%s á~gó', - s: 'á ~féw ~sécó~ñds', - ss: '%d s~écóñ~ds', - m: 'á ~míñ~úté', - mm: '%d m~íñú~tés', - h: 'á~ñ hó~úr', - hh: '%d h~óúrs', - d: 'á ~dáý', - dd: '%d d~áýs', - M: 'á ~móñ~th', - MM: '%d m~óñt~hs', - y: 'á ~ýéár', - yy: '%d ý~éárs', - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('yo', { - months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( - '_' - ), - monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Ònì ni] LT', - nextDay: '[Ọ̀la ni] LT', - nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", - lastDay: '[Àna ni] LT', - lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ní %s', - past: '%s kọjá', - s: 'ìsẹjú aayá die', - ss: 'aayá %d', - m: 'ìsẹjú kan', - mm: 'ìsẹjú %d', - h: 'wákati kan', - hh: 'wákati %d', - d: 'ọjọ́ kan', - dd: 'ọjọ́ %d', - M: 'osù kan', - MM: 'osù %d', - y: 'ọdún kan', - yy: 'ọdún %d', - }, - dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, - ordinal: 'ọjọ́ %d', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('zh-cn', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日Ah点mm分', - LLLL: 'YYYY年M月D日ddddAh点mm分', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[下]dddLT'; - } else { - return '[本]dddLT'; - } - }, - lastDay: '[昨天]LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[上]dddLT'; - } else { - return '[本]dddLT'; - } - }, - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - relativeTime: { - future: '%s后', - past: '%s前', - s: '几秒', - ss: '%d 秒', - m: '1 分钟', - mm: '%d 分钟', - h: '1 小时', - hh: '%d 小时', - d: '1 天', - dd: '%d 天', - w: '1 周', - ww: '%d 周', - M: '1 个月', - MM: '%d 个月', - y: '1 年', - yy: '%d 年', - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('zh-hk', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1200) { - return '上午'; - } else if (hm === 1200) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: '[下]ddddLT', - lastDay: '[昨天]LT', - lastWeek: '[上]ddddLT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('zh-mo', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'D/M/YYYY', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s內', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); - - //! moment.js locale configuration - - moment.defineLocale('zh-tw', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); - - moment.locale('en'); - - return moment; - -}))); diff --git a/plugins/moment/locales.min.js.map b/plugins/moment/locales.min.js.map deleted file mode 100644 index 4eb65c46..00000000 --- a/plugins/moment/locales.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"locales.min.js","sources":["locales.js"],"names":["global","factory","exports","module","require","define","amd","moment","this","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","input","test","meridiem","hours","minutes","isLower","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","dayOfMonthOrdinalParse","ordinal","number","week","dow","doy","pluralForm","n","pluralize","u","withoutSuffix","string","isFuture","f","str","plurals","replace","weekdaysParseExact","hour","minute","postformat","pluralForm$1","pluralize$1","plurals$1","symbolMap","1","2","3","4","5","6","7","8","9","0","months$1","preparse","match","symbolMap$1","numberMap","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","pluralForm$2","pluralize$2","plurals$2","symbolMap$2","numberMap$1","months$2","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","key","num","forms","a","format","standalone","isFormat","day","period","w","ww","lastDigit","last2Digits","symbolMap$3","numberMap$2","১","২","৩","৪","৫","৬","৭","৮","৯","০","meridiemHour","symbolMap$4","numberMap$3","symbolMap$5","numberMap$4","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","relativeTimeWithMutation","text","mutationTable","b","undefined","charAt","substring","softMutation","monthsShortRegex","monthsParseExact","monthsParse","monthsRegex","minWeekdaysParse","translate","result","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","token","ll","lll","llll","months$3","monthsParse$1","monthsRegex$1","plural$1","translate$1","processRelativeTime","processRelativeTime$1","processRelativeTime$2","l","output","exec","months$4","monthsNominativeEl","monthsGenitiveEl","momentToFormat","indexOf","_monthsGenitiveEl","month","_monthsNominativeEl","toLowerCase","calendarEl","mom","_calendarEl","Function","Object","prototype","toString","call","apply","monthsShortDot","monthsShort$1","monthsParse$2","monthsRegex$2","monthsShortDot$1","monthsShort$2","monthsParse$3","monthsRegex$3","invalidDate","monthsShortDot$2","monthsShort$3","monthsParse$4","monthsRegex$4","monthsShortDot$3","monthsShort$4","monthsParse$5","monthsRegex$5","processRelativeTime$3","symbolMap$6","numberMap$5","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","numbersPast","numbersFuture","translate$2","monthsRegex$6","monthsParse$6","monthsShortWithDots","monthsShortWithoutDots","processRelativeTime$4","processRelativeTime$5","symbolMap$7","numberMap$6","૧","૨","૩","૪","૫","૬","૭","૮","૯","૦","symbolMap$8","numberMap$7","१","२","३","४","५","६","७","८","९","०","monthsParse$7","translate$3","weekEndings","translate$4","plural$2","translate$5","eras","since","offset","name","narrow","abbr","until","Infinity","eraYearOrdinalRegex","eraYearOrdinalParse","parseInt","now","$0","$1","$2","suffixes$1","40","symbolMap$9","numberMap$8","១","២","៣","៤","៥","៦","៧","៨","៩","០","symbolMap$a","numberMap$9","೧","೨","೩","೪","೫","೬","೭","೮","೯","೦","isUpper","symbolMap$b","numberMap$a","months$7","suffixes$2","processRelativeTime$6","eifelerRegelAppliesToNumber","isNaN","substr","units","translateSingular","special","translate$6","units$1","relativeTimeWithPlural$1","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","length","translate$7","symbolMap$c","numberMap$b","relativeTimeMr","symbolMap$d","numberMap$c","၁","၂","၃","၄","၅","၆","၇","၈","၉","၀","symbolMap$e","numberMap$d","monthsShortWithDots$1","monthsShortWithoutDots$1","monthsParse$8","monthsRegex$7","monthsShortWithDots$2","monthsShortWithoutDots$2","monthsParse$9","monthsRegex$8","symbolMap$f","numberMap$e","੧","੨","੩","੪","੫","੬","੭","੮","੯","੦","monthsNominative","monthsSubjective","monthsParse$a","plural$3","translate$8","relativeTimeWithPlural$2","relativeTimeWithPlural$3","monthsParse$b","months$8","days","months$9","monthsShort$7","plural$5","translate$9","processRelativeTime$7","translator$1","translator$2","symbolMap$g","numberMap$f","௧","௨","௩","௪","௫","௬","௭","௮","௯","௦","suffixes$3","12","13","suffixes$4","numbersNouns","translate$a","numberNoun","hundred","Math","floor","ten","one","word","numberAsNoun","time","slice","suffixes$5","processRelativeTime$8","relativeTimeWithPlural$4","processHoursFunction","hm","nominative","accusative","genitive","concat","months$a","days$1","locale"],"mappings":"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"} \ No newline at end of file diff --git a/plugins/moment/moment-with-locales.js b/plugins/moment/moment-with-locales.js deleted file mode 100644 index 4e0b8d9c..00000000 --- a/plugins/moment/moment-with-locales.js +++ /dev/null @@ -1,18083 +0,0 @@ -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - global.moment = factory() -}(this, (function () { 'use strict'; - - var hookCallback; - - function hooks() { - return hookCallback.apply(null, arguments); - } - - // This is done to register the method called with moment() - // without creating circular dependencies. - function setHookCallback(callback) { - hookCallback = callback; - } - - function isArray(input) { - return ( - input instanceof Array || - Object.prototype.toString.call(input) === '[object Array]' - ); - } - - function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return ( - input != null && - Object.prototype.toString.call(input) === '[object Object]' - ); - } - - function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); - } - - function isObjectEmpty(obj) { - if (Object.getOwnPropertyNames) { - return Object.getOwnPropertyNames(obj).length === 0; - } else { - var k; - for (k in obj) { - if (hasOwnProp(obj, k)) { - return false; - } - } - return true; - } - } - - function isUndefined(input) { - return input === void 0; - } - - function isNumber(input) { - return ( - typeof input === 'number' || - Object.prototype.toString.call(input) === '[object Number]' - ); - } - - function isDate(input) { - return ( - input instanceof Date || - Object.prototype.toString.call(input) === '[object Date]' - ); - } - - function map(arr, fn) { - var res = [], - i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; - } - - function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - - return a; - } - - function createUTC(input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); - } - - function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty: false, - unusedTokens: [], - unusedInput: [], - overflow: -2, - charsLeftOver: 0, - nullInput: false, - invalidEra: null, - invalidMonth: null, - invalidFormat: false, - userInvalidated: false, - iso: false, - parsedDateParts: [], - era: null, - meridiem: null, - rfc2822: false, - weekdayMismatch: false, - }; - } - - function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; - } - - var some; - if (Array.prototype.some) { - some = Array.prototype.some; - } else { - some = function (fun) { - var t = Object(this), - len = t.length >>> 0, - i; - - for (i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; - } - } - - return false; - }; - } - - function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m), - parsedParts = some.call(flags.parsedDateParts, function (i) { - return i != null; - }), - isNowValid = - !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidEra && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.weekdayMismatch && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); - - if (m._strict) { - isNowValid = - isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } - - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; - } else { - return isNowValid; - } - } - return m._isValid; - } - - function createInvalid(flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } else { - getParsingFlags(m).userInvalidated = true; - } - - return m; - } - - // Plugins that add properties should also add the key here (null value), - // so we can properly clone ourselves. - var momentProperties = (hooks.momentProperties = []), - updateInProgress = false; - - function copyConfig(to, from) { - var i, prop, val; - - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; - } - } - } - - return to; - } - - // Moment prototype object - function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; - } - } - - function isMoment(obj) { - return ( - obj instanceof Moment || (obj != null && obj._isAMomentObject != null) - ); - } - - function warn(msg) { - if ( - hooks.suppressDeprecationWarnings === false && - typeof console !== 'undefined' && - console.warn - ) { - console.warn('Deprecation warning: ' + msg); - } - } - - function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = [], - arg, - i, - key; - for (i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (key in arguments[0]) { - if (hasOwnProp(arguments[0], key)) { - arg += key + ': ' + arguments[0][key] + ', '; - } - } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn( - msg + - '\nArguments: ' + - Array.prototype.slice.call(args).join('') + - '\n' + - new Error().stack - ); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); - } - - var deprecations = {}; - - function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } - } - - hooks.suppressDeprecationWarnings = false; - hooks.deprecationHandler = null; - - function isFunction(input) { - return ( - (typeof Function !== 'undefined' && input instanceof Function) || - Object.prototype.toString.call(input) === '[object Function]' - ); - } - - function set(config) { - var prop, i; - for (i in config) { - if (hasOwnProp(config, i)) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + - /\d{1,2}/.source - ); - } - - function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), - prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } - } - for (prop in parentConfig) { - if ( - hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop]) - ) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); - } - } - return res; - } - - function Locale(config) { - if (config != null) { - this.set(config); - } - } - - var keys; - - if (Object.keys) { - keys = Object.keys; - } else { - keys = function (obj) { - var i, - res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } - } - return res; - }; - } - - var defaultCalendar = { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }; - - function calendar(key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; - } - - function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return ( - (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + - absNumber - ); - } - - var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, - localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, - formatFunctions = {}, - formatTokenFunctions = {}; - - // token: 'M' - // padded: ['MM', 2] - // ordinal: 'Mo' - // callback: function () { this.month() + 1 } - function addFormatToken(token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal( - func.apply(this, arguments), - token - ); - }; - } - } - - function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); - } - - function makeFormatFunction(format) { - var array = format.match(formattingTokens), - i, - length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = '', - i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) - ? array[i].call(mom, format) - : array[i]; - } - return output; - }; - } - - // format date using native date object - function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = - formatFunctions[format] || makeFormatFunction(format); - - return formatFunctions[format](m); - } - - function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace( - localFormattingTokens, - replaceLongDateFormatTokens - ); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; - } - - var defaultLongDateFormat = { - LTS: 'h:mm:ss A', - LT: 'h:mm A', - L: 'MM/DD/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY h:mm A', - LLLL: 'dddd, MMMM D, YYYY h:mm A', - }; - - function longDateFormat(key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; - - if (format || !formatUpper) { - return format; - } - - this._longDateFormat[key] = formatUpper - .match(formattingTokens) - .map(function (tok) { - if ( - tok === 'MMMM' || - tok === 'MM' || - tok === 'DD' || - tok === 'dddd' - ) { - return tok.slice(1); - } - return tok; - }) - .join(''); - - return this._longDateFormat[key]; - } - - var defaultInvalidDate = 'Invalid date'; - - function invalidDate() { - return this._invalidDate; - } - - var defaultOrdinal = '%d', - defaultDayOfMonthOrdinalParse = /\d{1,2}/; - - function ordinal(number) { - return this._ordinal.replace('%d', number); - } - - var defaultRelativeTime = { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - w: 'a week', - ww: '%d weeks', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }; - - function relativeTime(number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return isFunction(output) - ? output(number, withoutSuffix, string, isFuture) - : output.replace(/%d/i, number); - } - - function pastFuture(diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); - } - - var aliases = {}; - - function addUnitAlias(unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; - } - - function normalizeUnits(units) { - return typeof units === 'string' - ? aliases[units] || aliases[units.toLowerCase()] - : undefined; - } - - function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; - } - - var priorities = {}; - - function addUnitPriority(unit, priority) { - priorities[unit] = priority; - } - - function getPrioritizedUnits(unitsObj) { - var units = [], - u; - for (u in unitsObj) { - if (hasOwnProp(unitsObj, u)) { - units.push({ unit: u, priority: priorities[u] }); - } - } - units.sort(function (a, b) { - return a.priority - b.priority; - }); - return units; - } - - function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - } - - function absFloor(number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); - } - } - - function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } - - return value; - } - - function makeGetSet(unit, keepTime) { - return function (value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); - } - }; - } - - function get(mom, unit) { - return mom.isValid() - ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() - : NaN; - } - - function set$1(mom, unit, value) { - if (mom.isValid() && !isNaN(value)) { - if ( - unit === 'FullYear' && - isLeapYear(mom.year()) && - mom.month() === 1 && - mom.date() === 29 - ) { - value = toInt(value); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( - value, - mom.month(), - daysInMonth(value, mom.month()) - ); - } else { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } - } - } - - // MOMENTS - - function stringGet(units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; - } - - function stringSet(units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units), - i; - for (i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } - } - return this; - } - - var match1 = /\d/, // 0 - 9 - match2 = /\d\d/, // 00 - 99 - match3 = /\d{3}/, // 000 - 999 - match4 = /\d{4}/, // 0000 - 9999 - match6 = /[+-]?\d{6}/, // -999999 - 999999 - match1to2 = /\d\d?/, // 0 - 99 - match3to4 = /\d\d\d\d?/, // 999 - 9999 - match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 - match1to3 = /\d{1,3}/, // 0 - 999 - match1to4 = /\d{1,4}/, // 0 - 9999 - match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 - matchUnsigned = /\d+/, // 0 - inf - matchSigned = /[+-]?\d+/, // -inf - inf - matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z - matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z - matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 - // any word (or two) characters or numbers including two/three word month in arabic. - // includes scottish gaelic two word and hyphenated months - matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, - regexes; - - regexes = {}; - - function addRegexToken(token, regex, strictRegex) { - regexes[token] = isFunction(regex) - ? regex - : function (isStrict, localeData) { - return isStrict && strictRegex ? strictRegex : regex; - }; - } - - function getParseRegexForToken(token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); - } - - return regexes[token](config._strict, config._locale); - } - - // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript - function unescapeFormat(s) { - return regexEscape( - s - .replace('\\', '') - .replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function ( - matched, - p1, - p2, - p3, - p4 - ) { - return p1 || p2 || p3 || p4; - }) - ); - } - - function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); - } - - var tokens = {}; - - function addParseToken(token, callback) { - var i, - func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; - } - } - - function addWeekParseToken(token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); - } - - function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); - } - } - - var YEAR = 0, - MONTH = 1, - DATE = 2, - HOUR = 3, - MINUTE = 4, - SECOND = 5, - MILLISECOND = 6, - WEEK = 7, - WEEKDAY = 8; - - function mod(n, x) { - return ((n % x) + x) % x; - } - - var indexOf; - - if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; - } else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; - } - - function daysInMonth(year, month) { - if (isNaN(year) || isNaN(month)) { - return NaN; - } - var modMonth = mod(month, 12); - year += (month - modMonth) / 12; - return modMonth === 1 - ? isLeapYear(year) - ? 29 - : 28 - : 31 - ((modMonth % 7) % 2); - } - - // FORMATTING - - addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; - }); - - addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); - }); - - addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); - }); - - // ALIASES - - addUnitAlias('month', 'M'); - - // PRIORITY - - addUnitPriority('month', 8); - - // PARSING - - addRegexToken('M', match1to2); - addRegexToken('MM', match1to2, match2); - addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); - }); - addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); - }); - - addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; - }); - - addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } - }); - - // LOCALES - - var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split( - '_' - ), - MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, - defaultMonthsShortRegex = matchWord, - defaultMonthsRegex = matchWord; - - function localeMonths(m, format) { - if (!m) { - return isArray(this._months) - ? this._months - : this._months['standalone']; - } - return isArray(this._months) - ? this._months[m.month()] - : this._months[ - (this._months.isFormat || MONTHS_IN_FORMAT).test(format) - ? 'format' - : 'standalone' - ][m.month()]; - } - - function localeMonthsShort(m, format) { - if (!m) { - return isArray(this._monthsShort) - ? this._monthsShort - : this._monthsShort['standalone']; - } - return isArray(this._monthsShort) - ? this._monthsShort[m.month()] - : this._monthsShort[ - MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' - ][m.month()]; - } - - function handleStrictParse(monthName, format, strict) { - var i, - ii, - mom, - llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort( - mom, - '' - ).toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } - } - - function localeMonthsParse(monthName, format, strict) { - var i, mom, regex; - - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } - - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } - - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp( - '^' + this.months(mom, '').replace('.', '') + '$', - 'i' - ); - this._shortMonthsParse[i] = new RegExp( - '^' + this.monthsShort(mom, '').replace('.', '') + '$', - 'i' - ); - } - if (!strict && !this._monthsParse[i]) { - regex = - '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if ( - strict && - format === 'MMMM' && - this._longMonthsParse[i].test(monthName) - ) { - return i; - } else if ( - strict && - format === 'MMM' && - this._shortMonthsParse[i].test(monthName) - ) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } - } - - // MOMENTS - - function setMonth(mom, value) { - var dayOfMonth; - - if (!mom.isValid()) { - // No op - return mom; - } - - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; - } - } - } - - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; - } - - function getSetMonth(value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); - } - } - - function getDaysInMonth() { - return daysInMonth(this.year(), this.month()); - } - - function monthsShortRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict - ? this._monthsShortStrictRegex - : this._monthsShortRegex; - } - } - - function monthsRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict - ? this._monthsStrictRegex - : this._monthsRegex; - } - } - - function computeMonthsParse() { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var shortPieces = [], - longPieces = [], - mixedPieces = [], - i, - mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp( - '^(' + longPieces.join('|') + ')', - 'i' - ); - this._monthsShortStrictRegex = new RegExp( - '^(' + shortPieces.join('|') + ')', - 'i' - ); - } - - // FORMATTING - - addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? zeroFill(y, 4) : '+' + y; - }); - - addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; - }); - - addFormatToken(0, ['YYYY', 4], 0, 'year'); - addFormatToken(0, ['YYYYY', 5], 0, 'year'); - addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); - - // ALIASES - - addUnitAlias('year', 'y'); - - // PRIORITIES - - addUnitPriority('year', 1); - - // PARSING - - addRegexToken('Y', matchSigned); - addRegexToken('YY', match1to2, match2); - addRegexToken('YYYY', match1to4, match4); - addRegexToken('YYYYY', match1to6, match6); - addRegexToken('YYYYYY', match1to6, match6); - - addParseToken(['YYYYY', 'YYYYYY'], YEAR); - addParseToken('YYYY', function (input, array) { - array[YEAR] = - input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); - }); - addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); - }); - addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); - }); - - // HELPERS - - function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; - } - - // HOOKS - - hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); - }; - - // MOMENTS - - var getSetYear = makeGetSet('FullYear', true); - - function getIsLeapYear() { - return isLeapYear(this.year()); - } - - function createDate(y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date; - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - date = new Date(y + 400, m, d, h, M, s, ms); - if (isFinite(date.getFullYear())) { - date.setFullYear(y); - } - } else { - date = new Date(y, m, d, h, M, s, ms); - } - - return date; - } - - function createUTCDate(y) { - var date, args; - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - args = Array.prototype.slice.call(arguments); - // preserve leap years using a full 400 year cycle, then reset - args[0] = y + 400; - date = new Date(Date.UTC.apply(null, args)); - if (isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); - } - } else { - date = new Date(Date.UTC.apply(null, arguments)); - } - - return date; - } - - // start-of-first-week - start-of-year - function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - - return -fwdlw + fwd - 1; - } - - // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday - function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, - resDayOfYear; - - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; - } - - return { - year: resYear, - dayOfYear: resDayOfYear, - }; - } - - function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, - resYear; - - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; - } - - return { - week: resWeek, - year: resYear, - }; - } - - function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; - } - - // FORMATTING - - addFormatToken('w', ['ww', 2], 'wo', 'week'); - addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - - // ALIASES - - addUnitAlias('week', 'w'); - addUnitAlias('isoWeek', 'W'); - - // PRIORITIES - - addUnitPriority('week', 5); - addUnitPriority('isoWeek', 5); - - // PARSING - - addRegexToken('w', match1to2); - addRegexToken('ww', match1to2, match2); - addRegexToken('W', match1to2); - addRegexToken('WW', match1to2, match2); - - addWeekParseToken(['w', 'ww', 'W', 'WW'], function ( - input, - week, - config, - token - ) { - week[token.substr(0, 1)] = toInt(input); - }); - - // HELPERS - - // LOCALES - - function localeWeek(mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - } - - var defaultLocaleWeek = { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }; - - function localeFirstDayOfWeek() { - return this._week.dow; - } - - function localeFirstDayOfYear() { - return this._week.doy; - } - - // MOMENTS - - function getSetWeek(input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); - } - - function getSetISOWeek(input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); - } - - // FORMATTING - - addFormatToken('d', 0, 'do', 'day'); - - addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); - }); - - addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); - }); - - addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); - }); - - addFormatToken('e', 0, 0, 'weekday'); - addFormatToken('E', 0, 0, 'isoWeekday'); - - // ALIASES - - addUnitAlias('day', 'd'); - addUnitAlias('weekday', 'e'); - addUnitAlias('isoWeekday', 'E'); - - // PRIORITY - addUnitPriority('day', 11); - addUnitPriority('weekday', 11); - addUnitPriority('isoWeekday', 11); - - // PARSING - - addRegexToken('d', match1to2); - addRegexToken('e', match1to2); - addRegexToken('E', match1to2); - addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); - }); - addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); - }); - addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); - }); - - addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } - }); - - addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); - }); - - // HELPERS - - function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } - - if (!isNaN(input)) { - return parseInt(input, 10); - } - - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - - return null; - } - - function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; - } - - // LOCALES - function shiftWeekdays(ws, n) { - return ws.slice(n, 7).concat(ws.slice(0, n)); - } - - var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - defaultWeekdaysRegex = matchWord, - defaultWeekdaysShortRegex = matchWord, - defaultWeekdaysMinRegex = matchWord; - - function localeWeekdays(m, format) { - var weekdays = isArray(this._weekdays) - ? this._weekdays - : this._weekdays[ - m && m !== true && this._weekdays.isFormat.test(format) - ? 'format' - : 'standalone' - ]; - return m === true - ? shiftWeekdays(weekdays, this._week.dow) - : m - ? weekdays[m.day()] - : weekdays; - } - - function localeWeekdaysShort(m) { - return m === true - ? shiftWeekdays(this._weekdaysShort, this._week.dow) - : m - ? this._weekdaysShort[m.day()] - : this._weekdaysShort; - } - - function localeWeekdaysMin(m) { - return m === true - ? shiftWeekdays(this._weekdaysMin, this._week.dow) - : m - ? this._weekdaysMin[m.day()] - : this._weekdaysMin; - } - - function handleStrictParse$1(weekdayName, format, strict) { - var i, - ii, - mom, - llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; - - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin( - mom, - '' - ).toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort( - mom, - '' - ).toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } - } - - function localeWeekdaysParse(weekdayName, format, strict) { - var i, mom, regex; - - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format, strict); - } - - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp( - '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - this._shortWeekdaysParse[i] = new RegExp( - '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - this._minWeekdaysParse[i] = new RegExp( - '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - } - if (!this._weekdaysParse[i]) { - regex = - '^' + - this.weekdays(mom, '') + - '|^' + - this.weekdaysShort(mom, '') + - '|^' + - this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if ( - strict && - format === 'dddd' && - this._fullWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if ( - strict && - format === 'ddd' && - this._shortWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if ( - strict && - format === 'dd' && - this._minWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } - } - - // MOMENTS - - function getSetDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } - } - - function getSetLocaleDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); - } - - function getSetISODayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; - } - } - - function weekdaysRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict - ? this._weekdaysStrictRegex - : this._weekdaysRegex; - } - } - - function weekdaysShortRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict - ? this._weekdaysShortStrictRegex - : this._weekdaysShortRegex; - } - } - - function weekdaysMinRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict - ? this._weekdaysMinStrictRegex - : this._weekdaysMinRegex; - } - } - - function computeWeekdaysParse() { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var minPieces = [], - shortPieces = [], - longPieces = [], - mixedPieces = [], - i, - mom, - minp, - shortp, - longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = regexEscape(this.weekdaysMin(mom, '')); - shortp = regexEscape(this.weekdaysShort(mom, '')); - longp = regexEscape(this.weekdays(mom, '')); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp( - '^(' + longPieces.join('|') + ')', - 'i' - ); - this._weekdaysShortStrictRegex = new RegExp( - '^(' + shortPieces.join('|') + ')', - 'i' - ); - this._weekdaysMinStrictRegex = new RegExp( - '^(' + minPieces.join('|') + ')', - 'i' - ); - } - - // FORMATTING - - function hFormat() { - return this.hours() % 12 || 12; - } - - function kFormat() { - return this.hours() || 24; - } - - addFormatToken('H', ['HH', 2], 0, 'hour'); - addFormatToken('h', ['hh', 2], 0, hFormat); - addFormatToken('k', ['kk', 2], 0, kFormat); - - addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); - }); - - addFormatToken('hmmss', 0, 0, function () { - return ( - '' + - hFormat.apply(this) + - zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2) - ); - }); - - addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); - }); - - addFormatToken('Hmmss', 0, 0, function () { - return ( - '' + - this.hours() + - zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2) - ); - }); - - function meridiem(token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem( - this.hours(), - this.minutes(), - lowercase - ); - }); - } - - meridiem('a', true); - meridiem('A', false); - - // ALIASES - - addUnitAlias('hour', 'h'); - - // PRIORITY - addUnitPriority('hour', 13); - - // PARSING - - function matchMeridiem(isStrict, locale) { - return locale._meridiemParse; - } - - addRegexToken('a', matchMeridiem); - addRegexToken('A', matchMeridiem); - addRegexToken('H', match1to2); - addRegexToken('h', match1to2); - addRegexToken('k', match1to2); - addRegexToken('HH', match1to2, match2); - addRegexToken('hh', match1to2, match2); - addRegexToken('kk', match1to2, match2); - - addRegexToken('hmm', match3to4); - addRegexToken('hmmss', match5to6); - addRegexToken('Hmm', match3to4); - addRegexToken('Hmmss', match5to6); - - addParseToken(['H', 'HH'], HOUR); - addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; - }); - addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; - }); - addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4, - pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - }); - addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4, - pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - }); - - // LOCALES - - function localeIsPM(input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return (input + '').toLowerCase().charAt(0) === 'p'; - } - - var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, - // Setting the hour should keep the time, because the user explicitly - // specified which hour they want. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - getSetHour = makeGetSet('Hours', true); - - function localeMeridiem(hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } - } - - var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, - - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, - - week: defaultLocaleWeek, - - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, - - meridiemParse: defaultLocaleMeridiemParse, - }; - - // internal storage for locale config files - var locales = {}, - localeFamilies = {}, - globalLocale; - - function commonPrefix(arr1, arr2) { - var i, - minl = Math.min(arr1.length, arr2.length); - for (i = 0; i < minl; i += 1) { - if (arr1[i] !== arr2[i]) { - return i; - } - } - return minl; - } - - function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; - } - - // pick the locale from the array - // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each - // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root - function chooseLocale(names) { - var i = 0, - j, - next, - locale, - split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if ( - next && - next.length >= j && - commonPrefix(split, next) >= j - 1 - ) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return globalLocale; - } - - function loadLocale(name) { - var oldLocale = null, - aliasedRequire; - // TODO: Find a better way to register and load all the locales in Node - if ( - locales[name] === undefined && - typeof module !== 'undefined' && - module && - module.exports - ) { - try { - oldLocale = globalLocale._abbr; - aliasedRequire = require; - aliasedRequire('./locale/' + name); - getSetGlobalLocale(oldLocale); - } catch (e) { - // mark as not found to avoid repeating expensive file require call causing high CPU - // when trying to find en-US, en_US, en-us for every format call - locales[name] = null; // null means not found - } - } - return locales[name]; - } - - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - function getSetGlobalLocale(key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } else { - data = defineLocale(key, values); - } - - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } else { - if (typeof console !== 'undefined' && console.warn) { - //warn user if arguments are passed but the locale could not be set - console.warn( - 'Locale ' + key + ' not found. Did you forget to load it?' - ); - } - } - } - - return globalLocale._abbr; - } - - function defineLocale(name, config) { - if (config !== null) { - var locale, - parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple( - 'defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' - ); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - locale = loadLocale(config.parentLocale); - if (locale != null) { - parentConfig = locale._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name: name, - config: config, - }); - return null; - } - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); - - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); - } - - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } - } - - function updateLocale(name, config) { - if (config != null) { - var locale, - tmpLocale, - parentConfig = baseConfig; - - if (locales[name] != null && locales[name].parentLocale != null) { - // Update existing child locale in-place to avoid memory-leaks - locales[name].set(mergeConfigs(locales[name]._config, config)); - } else { - // MERGE - tmpLocale = loadLocale(name); - if (tmpLocale != null) { - parentConfig = tmpLocale._config; - } - config = mergeConfigs(parentConfig, config); - if (tmpLocale == null) { - // updateLocale is called for creating a new locale - // Set abbr so it will have a name (getters return - // undefined otherwise). - config.abbr = name; - } - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; - } - - // backwards compat for now: also set the locale - getSetGlobalLocale(name); - } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - if (name === getSetGlobalLocale()) { - getSetGlobalLocale(name); - } - } else if (locales[name] != null) { - delete locales[name]; - } - } - } - return locales[name]; - } - - // returns locale data - function getLocale(key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); - } - - function listLocales() { - return keys(locales); - } - - function checkOverflow(m) { - var overflow, - a = m._a; - - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 - ? MONTH - : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) - ? DATE - : a[HOUR] < 0 || - a[HOUR] > 24 || - (a[HOUR] === 24 && - (a[MINUTE] !== 0 || - a[SECOND] !== 0 || - a[MILLISECOND] !== 0)) - ? HOUR - : a[MINUTE] < 0 || a[MINUTE] > 59 - ? MINUTE - : a[SECOND] < 0 || a[SECOND] > 59 - ? SECOND - : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 - ? MILLISECOND - : -1; - - if ( - getParsingFlags(m)._overflowDayOfYear && - (overflow < YEAR || overflow > DATE) - ) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } - - getParsingFlags(m).overflow = overflow; - } - - return m; - } - - // iso 8601 regex - // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) - var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, - isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/], - ['YYYYMM', /\d{6}/, false], - ['YYYY', /\d{4}/, false], - ], - // iso time formats and regexes - isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/], - ], - aspNetJsonRegex = /^\/?Date\((-?\d+)/i, - // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 - rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, - obsOffsets = { - UT: 0, - GMT: 0, - EDT: -4 * 60, - EST: -5 * 60, - CDT: -5 * 60, - CST: -6 * 60, - MDT: -6 * 60, - MST: -7 * 60, - PDT: -7 * 60, - PST: -8 * 60, - }; - - // date from iso format - function configFromISO(config) { - var i, - l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, - dateFormat, - timeFormat, - tzFormat; - - if (match) { - getParsingFlags(config).iso = true; - - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } - } - - function extractFromRFC2822Strings( - yearStr, - monthStr, - dayStr, - hourStr, - minuteStr, - secondStr - ) { - var result = [ - untruncateYear(yearStr), - defaultLocaleMonthsShort.indexOf(monthStr), - parseInt(dayStr, 10), - parseInt(hourStr, 10), - parseInt(minuteStr, 10), - ]; - - if (secondStr) { - result.push(parseInt(secondStr, 10)); - } - - return result; - } - - function untruncateYear(yearStr) { - var year = parseInt(yearStr, 10); - if (year <= 49) { - return 2000 + year; - } else if (year <= 999) { - return 1900 + year; - } - return year; - } - - function preprocessRFC2822(s) { - // Remove comments and folding whitespace and replace multiple-spaces with a single space - return s - .replace(/\([^)]*\)|[\n\t]/g, ' ') - .replace(/(\s\s+)/g, ' ') - .replace(/^\s\s*/, '') - .replace(/\s\s*$/, ''); - } - - function checkWeekday(weekdayStr, parsedInput, config) { - if (weekdayStr) { - // TODO: Replace the vanilla JS Date object with an independent day-of-week check. - var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), - weekdayActual = new Date( - parsedInput[0], - parsedInput[1], - parsedInput[2] - ).getDay(); - if (weekdayProvided !== weekdayActual) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return false; - } - } - return true; - } - - function calculateOffset(obsOffset, militaryOffset, numOffset) { - if (obsOffset) { - return obsOffsets[obsOffset]; - } else if (militaryOffset) { - // the only allowed military tz is Z - return 0; - } else { - var hm = parseInt(numOffset, 10), - m = hm % 100, - h = (hm - m) / 100; - return h * 60 + m; - } - } - - // date and time from ref 2822 format - function configFromRFC2822(config) { - var match = rfc2822.exec(preprocessRFC2822(config._i)), - parsedArray; - if (match) { - parsedArray = extractFromRFC2822Strings( - match[4], - match[3], - match[2], - match[5], - match[6], - match[7] - ); - if (!checkWeekday(match[1], parsedArray, config)) { - return; - } - - config._a = parsedArray; - config._tzm = calculateOffset(match[8], match[9], match[10]); - - config._d = createUTCDate.apply(null, config._a); - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; - } - } - - // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict - function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - if (config._strict) { - config._isValid = false; - } else { - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); - } - } - - hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } - ); - - // Pick the first defined of two or three arguments. - function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; - } - - function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [ - nowValue.getUTCFullYear(), - nowValue.getUTCMonth(), - nowValue.getUTCDate(), - ]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; - } - - // convert an array to a date. - // the array should mirror the parameters below - // note: all values past the year are optional and will default to the lowest possible value. - // [year, month, day , hour, minute, second, millisecond] - function configFromArray(config) { - var i, - date, - input = [], - currentDate, - expectedWeekday, - yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - - if ( - config._dayOfYear > daysInYear(yearToUse) || - config._dayOfYear === 0 - ) { - getParsingFlags(config)._overflowDayOfYear = true; - } - - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = - config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; - } - - // Check for 24:00:00.000 - if ( - config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0 - ) { - config._nextDay = true; - config._a[HOUR] = 0; - } - - config._d = (config._useUTC ? createUTCDate : createDate).apply( - null, - input - ); - expectedWeekday = config._useUTC - ? config._d.getUTCDay() - : config._d.getDay(); - - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } - - if (config._nextDay) { - config._a[HOUR] = 24; - } - - // check for mismatching day of week - if ( - config._w && - typeof config._w.d !== 'undefined' && - config._w.d !== expectedWeekday - ) { - getParsingFlags(config).weekdayMismatch = true; - } - } - - function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults( - w.GG, - config._a[YEAR], - weekOfYear(createLocal(), 1, 4).year - ); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - curWeek = weekOfYear(createLocal(), dow, doy); - - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); - - // Default to current week. - week = defaults(w.w, curWeek.week); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from beginning of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { - weekdayOverflow = true; - } - } else { - // default to beginning of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } - } - - // constant that refers to the ISO standard - hooks.ISO_8601 = function () {}; - - // constant that refers to the RFC 2822 form - hooks.RFC_2822 = function () {}; - - // date from string and format string - function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, - parsedInput, - tokens, - token, - skipped, - stringLength = string.length, - totalParsedInputLength = 0, - era; - - tokens = - expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || - [])[0]; - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice( - string.indexOf(parsedInput) + parsedInput.length - ); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = - stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } - - // clear _12h flag if hour is <= 12 - if ( - config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0 - ) { - getParsingFlags(config).bigHour = undefined; - } - - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap( - config._locale, - config._a[HOUR], - config._meridiem - ); - - // handle era - era = getParsingFlags(config).era; - if (era !== null) { - config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); - } - - configFromArray(config); - checkOverflow(config); - } - - function meridiemFixWrap(locale, hour, meridiem) { - var isPm; - - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } - } - - // date from string and array of format strings - function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - scoreToBeat, - i, - currentScore, - validFormatFound, - bestFormatIsValid = false; - - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - validFormatFound = false; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - - if (isValid(tempConfig)) { - validFormatFound = true; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; - - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - - getParsingFlags(tempConfig).score = currentScore; - - if (!bestFormatIsValid) { - if ( - scoreToBeat == null || - currentScore < scoreToBeat || - validFormatFound - ) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - if (validFormatFound) { - bestFormatIsValid = true; - } - } - } else { - if (currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - } - - extend(config, bestMoment || tempConfig); - } - - function configFromObject(config) { - if (config._d) { - return; - } - - var i = normalizeObjectUnits(config._i), - dayOrDate = i.day === undefined ? i.date : i.day; - config._a = map( - [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], - function (obj) { - return obj && parseInt(obj, 10); - } - ); - - configFromArray(config); - } - - function createFromConfig(config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } - - return res; - } - - function prepareConfig(config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || getLocale(config._l); - - if (input === null || (format === undefined && input === '')) { - return createInvalid({ nullInput: true }); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } - - if (!isValid(config)) { - config._d = null; - } - - return config; - } - - function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } - } - - function createLocalOrUTC(input, format, locale, strict, isUTC) { - var c = {}; - - if (format === true || format === false) { - strict = format; - format = undefined; - } - - if (locale === true || locale === false) { - strict = locale; - locale = undefined; - } - - if ( - (isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0) - ) { - input = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - - return createFromConfig(c); - } - - function createLocal(input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); - } - - var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } - } - ), - prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } - } - ); - - // Pick a moment m from moments so that m[fn](other) is true for all - // other. This relies on the function fn to be transitive. - // - // moments should either be an array of moment objects or an array, whose - // first element is an array of moment objects. - function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; - } - - // TODO: Use [].sort instead? - function min() { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); - } - - function max() { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); - } - - var now = function () { - return Date.now ? Date.now() : +new Date(); - }; - - var ordering = [ - 'year', - 'quarter', - 'month', - 'week', - 'day', - 'hour', - 'minute', - 'second', - 'millisecond', - ]; - - function isDurationValid(m) { - var key, - unitHasDecimal = false, - i; - for (key in m) { - if ( - hasOwnProp(m, key) && - !( - indexOf.call(ordering, key) !== -1 && - (m[key] == null || !isNaN(m[key])) - ) - ) { - return false; - } - } - - for (i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } - } - } - - return true; - } - - function isValid$1() { - return this._isValid; - } - - function createInvalid$1() { - return createDuration(NaN); - } - - function Duration(duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || normalizedInput.isoWeek || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - this._isValid = isDurationValid(normalizedInput); - - // representation for dateAddRemove - this._milliseconds = - +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + weeks * 7; - // It is impossible to translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + quarters * 3 + years * 12; - - this._data = {}; - - this._locale = getLocale(); - - this._bubble(); - } - - function isDuration(obj) { - return obj instanceof Duration; - } - - function absRound(number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } - } - - // compare two arrays, return the number of differences - function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ( - (dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) - ) { - diffs++; - } - } - return diffs + lengthDiff; - } - - // FORMATTING - - function offset(token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(), - sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return ( - sign + - zeroFill(~~(offset / 60), 2) + - separator + - zeroFill(~~offset % 60, 2) - ); - }); - } - - offset('Z', ':'); - offset('ZZ', ''); - - // PARSING - - addRegexToken('Z', matchShortOffset); - addRegexToken('ZZ', matchShortOffset); - addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); - }); - - // HELPERS - - // timezone chunker - // '+10:00' > ['10', '00'] - // '-1530' > ['-15', '30'] - var chunkOffset = /([\+\-]|\d\d)/gi; - - function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher), - chunk, - parts, - minutes; - - if (matches === null) { - return null; - } - - chunk = matches[matches.length - 1] || []; - parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - minutes = +(parts[1] * 60) + toInt(parts[2]); - - return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; - } - - // Return a moment from input, that is local/utc/zone equivalent to model. - function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = - (isMoment(input) || isDate(input) - ? input.valueOf() - : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); - } - } - - function getDateOffset(m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset()); - } - - // HOOKS - - // This function will be called whenever a moment is mutated. - // It is intended to keep the offset in sync with the timezone. - hooks.updateOffset = function () {}; - - // MOMENTS - - // keepLocalTime = true means only change the timezone, without - // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> - // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset - // +0200, so we adjust the time as needed, to be valid. - // - // Keeping the time actually adds/subtracts (one hour) - // from the actual represented time. That is why we call updateOffset - // a second time. In case it wants us to change the offset again - // _changeInProgress == true case, then we have to adjust, because - // there is no such time in the given timezone. - function getSetOffset(input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract( - this, - createDuration(input - offset, 'm'), - 1, - false - ); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); - } - } - - function getSetZone(input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } - - this.utcOffset(input, keepLocalTime); - - return this; - } else { - return -this.utcOffset(); - } - } - - function setOffsetToUTC(keepLocalTime) { - return this.utcOffset(0, keepLocalTime); - } - - function setOffsetToLocal(keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; - } - - function setOffsetToParsedOffset() { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } else { - this.utcOffset(0, true); - } - } - return this; - } - - function hasAlignedHourOffset(input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; - } - - function isDaylightSavingTime() { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); - } - - function isDaylightSavingTimeShifted() { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } - - var c = {}, - other; - - copyConfig(c, this); - c = prepareConfig(c); - - if (c._a) { - other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = - this.isValid() && compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - - return this._isDSTShifted; - } - - function isLocal() { - return this.isValid() ? !this._isUTC : false; - } - - function isUtcOffset() { - return this.isValid() ? this._isUTC : false; - } - - function isUtc() { - return this.isValid() ? this._isUTC && this._offset === 0 : false; - } - - // ASP.NET json date format regex - var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, - // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html - // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere - // and further modified to allow for strings containing both week and day - isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; - - function createDuration(input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; - - if (isDuration(input)) { - duration = { - ms: input._milliseconds, - d: input._days, - M: input._months, - }; - } else if (isNumber(input) || !isNaN(+input)) { - duration = {}; - if (key) { - duration[key] = +input; - } else { - duration.milliseconds = +input; - } - } else if ((match = aspNetRegex.exec(input))) { - sign = match[1] === '-' ? -1 : 1; - duration = { - y: 0, - d: toInt(match[DATE]) * sign, - h: toInt(match[HOUR]) * sign, - m: toInt(match[MINUTE]) * sign, - s: toInt(match[SECOND]) * sign, - ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match - }; - } else if ((match = isoRegex.exec(input))) { - sign = match[1] === '-' ? -1 : 1; - duration = { - y: parseIso(match[2], sign), - M: parseIso(match[3], sign), - w: parseIso(match[4], sign), - d: parseIso(match[5], sign), - h: parseIso(match[6], sign), - m: parseIso(match[7], sign), - s: parseIso(match[8], sign), - }; - } else if (duration == null) { - // checks for null or undefined - duration = {}; - } else if ( - typeof duration === 'object' && - ('from' in duration || 'to' in duration) - ) { - diffRes = momentsDifference( - createLocal(duration.from), - createLocal(duration.to) - ); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } - - if (isDuration(input) && hasOwnProp(input, '_isValid')) { - ret._isValid = input._isValid; - } - - return ret; - } - - createDuration.fn = Duration.prototype; - createDuration.invalid = createInvalid$1; - - function parseIso(inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; - } - - function positiveMomentsDifference(base, other) { - var res = {}; - - res.months = - other.month() - base.month() + (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +base.clone().add(res.months, 'M'); - - return res; - } - - function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return { milliseconds: 0, months: 0 }; - } - - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; - } - - // TODO: remove 'name' arg after deprecation is removed - function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple( - name, - 'moment().' + - name + - '(period, number) is deprecated. Please use moment().' + - name + - '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' - ); - tmp = val; - val = period; - period = tmp; - } - - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; - } - - function addSubtract(mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); - - if (!mom.isValid()) { - // No op - return; - } - - updateOffset = updateOffset == null ? true : updateOffset; - - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (days) { - set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); - } - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } - } - - var add = createAdder(1, 'add'), - subtract = createAdder(-1, 'subtract'); - - function isString(input) { - return typeof input === 'string' || input instanceof String; - } - - // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined - function isMomentInput(input) { - return ( - isMoment(input) || - isDate(input) || - isString(input) || - isNumber(input) || - isNumberOrStringArray(input) || - isMomentInputObject(input) || - input === null || - input === undefined - ); - } - - function isMomentInputObject(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), - propertyTest = false, - properties = [ - 'years', - 'year', - 'y', - 'months', - 'month', - 'M', - 'days', - 'day', - 'd', - 'dates', - 'date', - 'D', - 'hours', - 'hour', - 'h', - 'minutes', - 'minute', - 'm', - 'seconds', - 'second', - 's', - 'milliseconds', - 'millisecond', - 'ms', - ], - i, - property; - - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); - } - - return objectTest && propertyTest; - } - - function isNumberOrStringArray(input) { - var arrayTest = isArray(input), - dataTypeTest = false; - if (arrayTest) { - dataTypeTest = - input.filter(function (item) { - return !isNumber(item) && isString(input); - }).length === 0; - } - return arrayTest && dataTypeTest; - } - - function isCalendarSpec(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), - propertyTest = false, - properties = [ - 'sameDay', - 'nextDay', - 'lastDay', - 'nextWeek', - 'lastWeek', - 'sameElse', - ], - i, - property; - - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); - } - - return objectTest && propertyTest; - } - - function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 - ? 'sameElse' - : diff < -1 - ? 'lastWeek' - : diff < 0 - ? 'lastDay' - : diff < 1 - ? 'sameDay' - : diff < 2 - ? 'nextDay' - : diff < 7 - ? 'nextWeek' - : 'sameElse'; - } - - function calendar$1(time, formats) { - // Support for single parameter, formats only overload to the calendar function - if (arguments.length === 1) { - if (!arguments[0]) { - time = undefined; - formats = undefined; - } else if (isMomentInput(arguments[0])) { - time = arguments[0]; - formats = undefined; - } else if (isCalendarSpec(arguments[0])) { - formats = arguments[0]; - time = undefined; - } - } - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse', - output = - formats && - (isFunction(formats[format]) - ? formats[format].call(this, now) - : formats[format]); - - return this.format( - output || this.localeData().calendar(format, this, createLocal(now)) - ); - } - - function clone() { - return new Moment(this); - } - - function isAfter(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } - } - - function isBefore(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); - } - } - - function isBetween(from, to, units, inclusivity) { - var localFrom = isMoment(from) ? from : createLocal(from), - localTo = isMoment(to) ? to : createLocal(to); - if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { - return false; - } - inclusivity = inclusivity || '()'; - return ( - (inclusivity[0] === '(' - ? this.isAfter(localFrom, units) - : !this.isBefore(localFrom, units)) && - (inclusivity[1] === ')' - ? this.isBefore(localTo, units) - : !this.isAfter(localTo, units)) - ); - } - - function isSame(input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return ( - this.clone().startOf(units).valueOf() <= inputMs && - inputMs <= this.clone().endOf(units).valueOf() - ); - } - } - - function isSameOrAfter(input, units) { - return this.isSame(input, units) || this.isAfter(input, units); - } - - function isSameOrBefore(input, units) { - return this.isSame(input, units) || this.isBefore(input, units); - } - - function diff(input, units, asFloat) { - var that, zoneDelta, output; - - if (!this.isValid()) { - return NaN; - } - - that = cloneWithOffset(input, this); - - if (!that.isValid()) { - return NaN; - } - - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; - - units = normalizeUnits(units); - - switch (units) { - case 'year': - output = monthDiff(this, that) / 12; - break; - case 'month': - output = monthDiff(this, that); - break; - case 'quarter': - output = monthDiff(this, that) / 3; - break; - case 'second': - output = (this - that) / 1e3; - break; // 1000 - case 'minute': - output = (this - that) / 6e4; - break; // 1000 * 60 - case 'hour': - output = (this - that) / 36e5; - break; // 1000 * 60 * 60 - case 'day': - output = (this - that - zoneDelta) / 864e5; - break; // 1000 * 60 * 60 * 24, negate dst - case 'week': - output = (this - that - zoneDelta) / 6048e5; - break; // 1000 * 60 * 60 * 24 * 7, negate dst - default: - output = this - that; - } - - return asFloat ? output : absFloor(output); - } - - function monthDiff(a, b) { - if (a.date() < b.date()) { - // end-of-month calculations work correct when the start month has more - // days than the end month. - return -monthDiff(b, a); - } - // difference in months - var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, - adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } - - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; - } - - hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; - hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - - function toString() { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); - } - - function toISOString(keepOffset) { - if (!this.isValid()) { - return null; - } - var utc = keepOffset !== true, - m = utc ? this.clone().utc() : this; - if (m.year() < 0 || m.year() > 9999) { - return formatMoment( - m, - utc - ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' - : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' - ); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - if (utc) { - return this.toDate().toISOString(); - } else { - return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) - .toISOString() - .replace('Z', formatMoment(m, 'Z')); - } - } - return formatMoment( - m, - utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' - ); - } - - /** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ - function inspect() { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment', - zone = '', - prefix, - year, - datetime, - suffix; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; - } - prefix = '[' + func + '("]'; - year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; - datetime = '-MM-DD[T]HH:mm:ss.SSS'; - suffix = zone + '[")]'; - - return this.format(prefix + year + datetime + suffix); - } - - function format(inputString) { - if (!inputString) { - inputString = this.isUtc() - ? hooks.defaultFormatUtc - : hooks.defaultFormat; - } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); - } - - function from(time, withoutSuffix) { - if ( - this.isValid() && - ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) - ) { - return createDuration({ to: this, from: time }) - .locale(this.locale()) - .humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } - } - - function fromNow(withoutSuffix) { - return this.from(createLocal(), withoutSuffix); - } - - function to(time, withoutSuffix) { - if ( - this.isValid() && - ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) - ) { - return createDuration({ from: this, to: time }) - .locale(this.locale()) - .humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } - } - - function toNow(withoutSuffix) { - return this.to(createLocal(), withoutSuffix); - } - - // If passed a locale key, it will set the locale for this - // instance. Otherwise, it will return the locale configuration - // variables for this instance. - function locale(key) { - var newLocaleData; - - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } - } - - var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } - ); - - function localeData() { - return this._locale; - } - - var MS_PER_SECOND = 1000, - MS_PER_MINUTE = 60 * MS_PER_SECOND, - MS_PER_HOUR = 60 * MS_PER_MINUTE, - MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; - - // actual modulo - handles negative numbers (for dates before 1970): - function mod$1(dividend, divisor) { - return ((dividend % divisor) + divisor) % divisor; - } - - function localStartOfDate(y, m, d) { - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - return new Date(y + 400, m, d) - MS_PER_400_YEARS; - } else { - return new Date(y, m, d).valueOf(); - } - } - - function utcStartOfDate(y, m, d) { - // Date.UTC remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; - } else { - return Date.UTC(y, m, d); - } - } - - function startOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond' || !this.isValid()) { - return this; - } - - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; - - switch (units) { - case 'year': - time = startOfDate(this.year(), 0, 1); - break; - case 'quarter': - time = startOfDate( - this.year(), - this.month() - (this.month() % 3), - 1 - ); - break; - case 'month': - time = startOfDate(this.year(), this.month(), 1); - break; - case 'week': - time = startOfDate( - this.year(), - this.month(), - this.date() - this.weekday() - ); - break; - case 'isoWeek': - time = startOfDate( - this.year(), - this.month(), - this.date() - (this.isoWeekday() - 1) - ); - break; - case 'day': - case 'date': - time = startOfDate(this.year(), this.month(), this.date()); - break; - case 'hour': - time = this._d.valueOf(); - time -= mod$1( - time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), - MS_PER_HOUR - ); - break; - case 'minute': - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_MINUTE); - break; - case 'second': - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_SECOND); - break; - } - - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; - } - - function endOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond' || !this.isValid()) { - return this; - } - - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; - - switch (units) { - case 'year': - time = startOfDate(this.year() + 1, 0, 1) - 1; - break; - case 'quarter': - time = - startOfDate( - this.year(), - this.month() - (this.month() % 3) + 3, - 1 - ) - 1; - break; - case 'month': - time = startOfDate(this.year(), this.month() + 1, 1) - 1; - break; - case 'week': - time = - startOfDate( - this.year(), - this.month(), - this.date() - this.weekday() + 7 - ) - 1; - break; - case 'isoWeek': - time = - startOfDate( - this.year(), - this.month(), - this.date() - (this.isoWeekday() - 1) + 7 - ) - 1; - break; - case 'day': - case 'date': - time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; - break; - case 'hour': - time = this._d.valueOf(); - time += - MS_PER_HOUR - - mod$1( - time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), - MS_PER_HOUR - ) - - 1; - break; - case 'minute': - time = this._d.valueOf(); - time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; - break; - case 'second': - time = this._d.valueOf(); - time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; - break; - } - - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; - } - - function valueOf() { - return this._d.valueOf() - (this._offset || 0) * 60000; - } - - function unix() { - return Math.floor(this.valueOf() / 1000); - } - - function toDate() { - return new Date(this.valueOf()); - } - - function toArray() { - var m = this; - return [ - m.year(), - m.month(), - m.date(), - m.hour(), - m.minute(), - m.second(), - m.millisecond(), - ]; - } - - function toObject() { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds(), - }; - } - - function toJSON() { - // new Date(NaN).toJSON() === null - return this.isValid() ? this.toISOString() : null; - } - - function isValid$2() { - return isValid(this); - } - - function parsingFlags() { - return extend({}, getParsingFlags(this)); - } - - function invalidAt() { - return getParsingFlags(this).overflow; - } - - function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict, - }; - } - - addFormatToken('N', 0, 0, 'eraAbbr'); - addFormatToken('NN', 0, 0, 'eraAbbr'); - addFormatToken('NNN', 0, 0, 'eraAbbr'); - addFormatToken('NNNN', 0, 0, 'eraName'); - addFormatToken('NNNNN', 0, 0, 'eraNarrow'); - - addFormatToken('y', ['y', 1], 'yo', 'eraYear'); - addFormatToken('y', ['yy', 2], 0, 'eraYear'); - addFormatToken('y', ['yyy', 3], 0, 'eraYear'); - addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); - - addRegexToken('N', matchEraAbbr); - addRegexToken('NN', matchEraAbbr); - addRegexToken('NNN', matchEraAbbr); - addRegexToken('NNNN', matchEraName); - addRegexToken('NNNNN', matchEraNarrow); - - addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function ( - input, - array, - config, - token - ) { - var era = config._locale.erasParse(input, token, config._strict); - if (era) { - getParsingFlags(config).era = era; - } else { - getParsingFlags(config).invalidEra = input; - } - }); - - addRegexToken('y', matchUnsigned); - addRegexToken('yy', matchUnsigned); - addRegexToken('yyy', matchUnsigned); - addRegexToken('yyyy', matchUnsigned); - addRegexToken('yo', matchEraYearOrdinal); - - addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); - addParseToken(['yo'], function (input, array, config, token) { - var match; - if (config._locale._eraYearOrdinalRegex) { - match = input.match(config._locale._eraYearOrdinalRegex); - } - - if (config._locale.eraYearOrdinalParse) { - array[YEAR] = config._locale.eraYearOrdinalParse(input, match); - } else { - array[YEAR] = parseInt(input, 10); - } - }); - - function localeEras(m, format) { - var i, - l, - date, - eras = this._eras || getLocale('en')._eras; - for (i = 0, l = eras.length; i < l; ++i) { - switch (typeof eras[i].since) { - case 'string': - // truncate time - date = hooks(eras[i].since).startOf('day'); - eras[i].since = date.valueOf(); - break; - } - - switch (typeof eras[i].until) { - case 'undefined': - eras[i].until = +Infinity; - break; - case 'string': - // truncate time - date = hooks(eras[i].until).startOf('day').valueOf(); - eras[i].until = date.valueOf(); - break; - } - } - return eras; - } - - function localeErasParse(eraName, format, strict) { - var i, - l, - eras = this.eras(), - name, - abbr, - narrow; - eraName = eraName.toUpperCase(); - - for (i = 0, l = eras.length; i < l; ++i) { - name = eras[i].name.toUpperCase(); - abbr = eras[i].abbr.toUpperCase(); - narrow = eras[i].narrow.toUpperCase(); - - if (strict) { - switch (format) { - case 'N': - case 'NN': - case 'NNN': - if (abbr === eraName) { - return eras[i]; - } - break; - - case 'NNNN': - if (name === eraName) { - return eras[i]; - } - break; - - case 'NNNNN': - if (narrow === eraName) { - return eras[i]; - } - break; - } - } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { - return eras[i]; - } - } - } - - function localeErasConvertYear(era, year) { - var dir = era.since <= era.until ? +1 : -1; - if (year === undefined) { - return hooks(era.since).year(); - } else { - return hooks(era.since).year() + (year - era.offset) * dir; - } - } - - function getEraName() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); - - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].name; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].name; - } - } - - return ''; - } - - function getEraNarrow() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); - - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].narrow; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].narrow; - } - } - - return ''; - } - - function getEraAbbr() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); - - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].abbr; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].abbr; - } - } - - return ''; - } - - function getEraYear() { - var i, - l, - dir, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - dir = eras[i].since <= eras[i].until ? +1 : -1; - - // truncate time - val = this.clone().startOf('day').valueOf(); - - if ( - (eras[i].since <= val && val <= eras[i].until) || - (eras[i].until <= val && val <= eras[i].since) - ) { - return ( - (this.year() - hooks(eras[i].since).year()) * dir + - eras[i].offset - ); - } - } - - return this.year(); - } - - function erasNameRegex(isStrict) { - if (!hasOwnProp(this, '_erasNameRegex')) { - computeErasParse.call(this); - } - return isStrict ? this._erasNameRegex : this._erasRegex; - } - - function erasAbbrRegex(isStrict) { - if (!hasOwnProp(this, '_erasAbbrRegex')) { - computeErasParse.call(this); - } - return isStrict ? this._erasAbbrRegex : this._erasRegex; - } - - function erasNarrowRegex(isStrict) { - if (!hasOwnProp(this, '_erasNarrowRegex')) { - computeErasParse.call(this); - } - return isStrict ? this._erasNarrowRegex : this._erasRegex; - } - - function matchEraAbbr(isStrict, locale) { - return locale.erasAbbrRegex(isStrict); - } - - function matchEraName(isStrict, locale) { - return locale.erasNameRegex(isStrict); - } - - function matchEraNarrow(isStrict, locale) { - return locale.erasNarrowRegex(isStrict); - } - - function matchEraYearOrdinal(isStrict, locale) { - return locale._eraYearOrdinalRegex || matchUnsigned; - } - - function computeErasParse() { - var abbrPieces = [], - namePieces = [], - narrowPieces = [], - mixedPieces = [], - i, - l, - eras = this.eras(); - - for (i = 0, l = eras.length; i < l; ++i) { - namePieces.push(regexEscape(eras[i].name)); - abbrPieces.push(regexEscape(eras[i].abbr)); - narrowPieces.push(regexEscape(eras[i].narrow)); - - mixedPieces.push(regexEscape(eras[i].name)); - mixedPieces.push(regexEscape(eras[i].abbr)); - mixedPieces.push(regexEscape(eras[i].narrow)); - } - - this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); - this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); - this._erasNarrowRegex = new RegExp( - '^(' + narrowPieces.join('|') + ')', - 'i' - ); - } - - // FORMATTING - - addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; - }); - - addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; - }); - - function addWeekYearFormatToken(token, getter) { - addFormatToken(0, [token, token.length], 0, getter); - } - - addWeekYearFormatToken('gggg', 'weekYear'); - addWeekYearFormatToken('ggggg', 'weekYear'); - addWeekYearFormatToken('GGGG', 'isoWeekYear'); - addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - - // ALIASES - - addUnitAlias('weekYear', 'gg'); - addUnitAlias('isoWeekYear', 'GG'); - - // PRIORITY - - addUnitPriority('weekYear', 1); - addUnitPriority('isoWeekYear', 1); - - // PARSING - - addRegexToken('G', matchSigned); - addRegexToken('g', matchSigned); - addRegexToken('GG', match1to2, match2); - addRegexToken('gg', match1to2, match2); - addRegexToken('GGGG', match1to4, match4); - addRegexToken('gggg', match1to4, match4); - addRegexToken('GGGGG', match1to6, match6); - addRegexToken('ggggg', match1to6, match6); - - addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function ( - input, - week, - config, - token - ) { - week[token.substr(0, 2)] = toInt(input); - }); - - addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); - }); - - // MOMENTS - - function getSetWeekYear(input) { - return getSetWeekYearHelper.call( - this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy - ); - } - - function getSetISOWeekYear(input) { - return getSetWeekYearHelper.call( - this, - input, - this.isoWeek(), - this.isoWeekday(), - 1, - 4 - ); - } - - function getISOWeeksInYear() { - return weeksInYear(this.year(), 1, 4); - } - - function getISOWeeksInISOWeekYear() { - return weeksInYear(this.isoWeekYear(), 1, 4); - } - - function getWeeksInYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - } - - function getWeeksInWeekYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); - } - - function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); - } - } - - function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; - } - - // FORMATTING - - addFormatToken('Q', 0, 'Qo', 'quarter'); - - // ALIASES - - addUnitAlias('quarter', 'Q'); - - // PRIORITY - - addUnitPriority('quarter', 7); - - // PARSING - - addRegexToken('Q', match1); - addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; - }); - - // MOMENTS - - function getSetQuarter(input) { - return input == null - ? Math.ceil((this.month() + 1) / 3) - : this.month((input - 1) * 3 + (this.month() % 3)); - } - - // FORMATTING - - addFormatToken('D', ['DD', 2], 'Do', 'date'); - - // ALIASES - - addUnitAlias('date', 'D'); - - // PRIORITY - addUnitPriority('date', 9); - - // PARSING - - addRegexToken('D', match1to2); - addRegexToken('DD', match1to2, match2); - addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict - ? locale._dayOfMonthOrdinalParse || locale._ordinalParse - : locale._dayOfMonthOrdinalParseLenient; - }); - - addParseToken(['D', 'DD'], DATE); - addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0]); - }); - - // MOMENTS - - var getSetDayOfMonth = makeGetSet('Date', true); - - // FORMATTING - - addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - - // ALIASES - - addUnitAlias('dayOfYear', 'DDD'); - - // PRIORITY - addUnitPriority('dayOfYear', 4); - - // PARSING - - addRegexToken('DDD', match1to3); - addRegexToken('DDDD', match3); - addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); - }); - - // HELPERS - - // MOMENTS - - function getSetDayOfYear(input) { - var dayOfYear = - Math.round( - (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 - ) + 1; - return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); - } - - // FORMATTING - - addFormatToken('m', ['mm', 2], 0, 'minute'); - - // ALIASES - - addUnitAlias('minute', 'm'); - - // PRIORITY - - addUnitPriority('minute', 14); - - // PARSING - - addRegexToken('m', match1to2); - addRegexToken('mm', match1to2, match2); - addParseToken(['m', 'mm'], MINUTE); - - // MOMENTS - - var getSetMinute = makeGetSet('Minutes', false); - - // FORMATTING - - addFormatToken('s', ['ss', 2], 0, 'second'); - - // ALIASES - - addUnitAlias('second', 's'); - - // PRIORITY - - addUnitPriority('second', 15); - - // PARSING - - addRegexToken('s', match1to2); - addRegexToken('ss', match1to2, match2); - addParseToken(['s', 'ss'], SECOND); - - // MOMENTS - - var getSetSecond = makeGetSet('Seconds', false); - - // FORMATTING - - addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); - }); - - addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); - }); - - addFormatToken(0, ['SSS', 3], 0, 'millisecond'); - addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; - }); - addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; - }); - addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; - }); - addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; - }); - addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; - }); - addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; - }); - - // ALIASES - - addUnitAlias('millisecond', 'ms'); - - // PRIORITY - - addUnitPriority('millisecond', 16); - - // PARSING - - addRegexToken('S', match1to3, match1); - addRegexToken('SS', match1to3, match2); - addRegexToken('SSS', match1to3, match3); - - var token, getSetMillisecond; - for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); - } - - function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); - } - - for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); - } - - getSetMillisecond = makeGetSet('Milliseconds', false); - - // FORMATTING - - addFormatToken('z', 0, 0, 'zoneAbbr'); - addFormatToken('zz', 0, 0, 'zoneName'); - - // MOMENTS - - function getZoneAbbr() { - return this._isUTC ? 'UTC' : ''; - } - - function getZoneName() { - return this._isUTC ? 'Coordinated Universal Time' : ''; - } - - var proto = Moment.prototype; - - proto.add = add; - proto.calendar = calendar$1; - proto.clone = clone; - proto.diff = diff; - proto.endOf = endOf; - proto.format = format; - proto.from = from; - proto.fromNow = fromNow; - proto.to = to; - proto.toNow = toNow; - proto.get = stringGet; - proto.invalidAt = invalidAt; - proto.isAfter = isAfter; - proto.isBefore = isBefore; - proto.isBetween = isBetween; - proto.isSame = isSame; - proto.isSameOrAfter = isSameOrAfter; - proto.isSameOrBefore = isSameOrBefore; - proto.isValid = isValid$2; - proto.lang = lang; - proto.locale = locale; - proto.localeData = localeData; - proto.max = prototypeMax; - proto.min = prototypeMin; - proto.parsingFlags = parsingFlags; - proto.set = stringSet; - proto.startOf = startOf; - proto.subtract = subtract; - proto.toArray = toArray; - proto.toObject = toObject; - proto.toDate = toDate; - proto.toISOString = toISOString; - proto.inspect = inspect; - if (typeof Symbol !== 'undefined' && Symbol.for != null) { - proto[Symbol.for('nodejs.util.inspect.custom')] = function () { - return 'Moment<' + this.format() + '>'; - }; - } - proto.toJSON = toJSON; - proto.toString = toString; - proto.unix = unix; - proto.valueOf = valueOf; - proto.creationData = creationData; - proto.eraName = getEraName; - proto.eraNarrow = getEraNarrow; - proto.eraAbbr = getEraAbbr; - proto.eraYear = getEraYear; - proto.year = getSetYear; - proto.isLeapYear = getIsLeapYear; - proto.weekYear = getSetWeekYear; - proto.isoWeekYear = getSetISOWeekYear; - proto.quarter = proto.quarters = getSetQuarter; - proto.month = getSetMonth; - proto.daysInMonth = getDaysInMonth; - proto.week = proto.weeks = getSetWeek; - proto.isoWeek = proto.isoWeeks = getSetISOWeek; - proto.weeksInYear = getWeeksInYear; - proto.weeksInWeekYear = getWeeksInWeekYear; - proto.isoWeeksInYear = getISOWeeksInYear; - proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; - proto.date = getSetDayOfMonth; - proto.day = proto.days = getSetDayOfWeek; - proto.weekday = getSetLocaleDayOfWeek; - proto.isoWeekday = getSetISODayOfWeek; - proto.dayOfYear = getSetDayOfYear; - proto.hour = proto.hours = getSetHour; - proto.minute = proto.minutes = getSetMinute; - proto.second = proto.seconds = getSetSecond; - proto.millisecond = proto.milliseconds = getSetMillisecond; - proto.utcOffset = getSetOffset; - proto.utc = setOffsetToUTC; - proto.local = setOffsetToLocal; - proto.parseZone = setOffsetToParsedOffset; - proto.hasAlignedHourOffset = hasAlignedHourOffset; - proto.isDST = isDaylightSavingTime; - proto.isLocal = isLocal; - proto.isUtcOffset = isUtcOffset; - proto.isUtc = isUtc; - proto.isUTC = isUtc; - proto.zoneAbbr = getZoneAbbr; - proto.zoneName = getZoneName; - proto.dates = deprecate( - 'dates accessor is deprecated. Use date instead.', - getSetDayOfMonth - ); - proto.months = deprecate( - 'months accessor is deprecated. Use month instead', - getSetMonth - ); - proto.years = deprecate( - 'years accessor is deprecated. Use year instead', - getSetYear - ); - proto.zone = deprecate( - 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', - getSetZone - ); - proto.isDSTShifted = deprecate( - 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', - isDaylightSavingTimeShifted - ); - - function createUnix(input) { - return createLocal(input * 1000); - } - - function createInZone() { - return createLocal.apply(null, arguments).parseZone(); - } - - function preParsePostFormat(string) { - return string; - } - - var proto$1 = Locale.prototype; - - proto$1.calendar = calendar; - proto$1.longDateFormat = longDateFormat; - proto$1.invalidDate = invalidDate; - proto$1.ordinal = ordinal; - proto$1.preparse = preParsePostFormat; - proto$1.postformat = preParsePostFormat; - proto$1.relativeTime = relativeTime; - proto$1.pastFuture = pastFuture; - proto$1.set = set; - proto$1.eras = localeEras; - proto$1.erasParse = localeErasParse; - proto$1.erasConvertYear = localeErasConvertYear; - proto$1.erasAbbrRegex = erasAbbrRegex; - proto$1.erasNameRegex = erasNameRegex; - proto$1.erasNarrowRegex = erasNarrowRegex; - - proto$1.months = localeMonths; - proto$1.monthsShort = localeMonthsShort; - proto$1.monthsParse = localeMonthsParse; - proto$1.monthsRegex = monthsRegex; - proto$1.monthsShortRegex = monthsShortRegex; - proto$1.week = localeWeek; - proto$1.firstDayOfYear = localeFirstDayOfYear; - proto$1.firstDayOfWeek = localeFirstDayOfWeek; - - proto$1.weekdays = localeWeekdays; - proto$1.weekdaysMin = localeWeekdaysMin; - proto$1.weekdaysShort = localeWeekdaysShort; - proto$1.weekdaysParse = localeWeekdaysParse; - - proto$1.weekdaysRegex = weekdaysRegex; - proto$1.weekdaysShortRegex = weekdaysShortRegex; - proto$1.weekdaysMinRegex = weekdaysMinRegex; - - proto$1.isPM = localeIsPM; - proto$1.meridiem = localeMeridiem; - - function get$1(format, index, field, setter) { - var locale = getLocale(), - utc = createUTC().set(setter, index); - return locale[field](utc, format); - } - - function listMonthsImpl(format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - - if (index != null) { - return get$1(format, index, field, 'month'); - } - - var i, - out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1(format, i, field, 'month'); - } - return out; - } - - // () - // (5) - // (fmt, 5) - // (fmt) - // (true) - // (true, 5) - // (true, fmt, 5) - // (true, fmt) - function listWeekdaysImpl(localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; - - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } - - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0, - i, - out = []; - - if (index != null) { - return get$1(format, (index + shift) % 7, field, 'day'); - } - - for (i = 0; i < 7; i++) { - out[i] = get$1(format, (i + shift) % 7, field, 'day'); - } - return out; - } - - function listMonths(format, index) { - return listMonthsImpl(format, index, 'months'); - } - - function listMonthsShort(format, index) { - return listMonthsImpl(format, index, 'monthsShort'); - } - - function listWeekdays(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); - } - - function listWeekdaysShort(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); - } - - function listWeekdaysMin(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); - } - - getSetGlobalLocale('en', { - eras: [ - { - since: '0001-01-01', - until: +Infinity, - offset: 1, - name: 'Anno Domini', - narrow: 'AD', - abbr: 'AD', - }, - { - since: '0000-12-31', - until: -Infinity, - offset: 1, - name: 'Before Christ', - narrow: 'BC', - abbr: 'BC', - }, - ], - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (number) { - var b = number % 10, - output = - toInt((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); - - // Side effect imports - - hooks.lang = deprecate( - 'moment.lang is deprecated. Use moment.locale instead.', - getSetGlobalLocale - ); - hooks.langData = deprecate( - 'moment.langData is deprecated. Use moment.localeData instead.', - getLocale - ); - - var mathAbs = Math.abs; - - function abs() { - var data = this._data; - - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); - - return this; - } - - function addSubtract$1(duration, input, value, direction) { - var other = createDuration(input, value); - - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - - return duration._bubble(); - } - - // supports only 2.0-style add(1, 's') or add(duration) - function add$1(input, value) { - return addSubtract$1(this, input, value, 1); - } - - // supports only 2.0-style subtract(1, 's') or subtract(duration) - function subtract$1(input, value) { - return addSubtract$1(this, input, value, -1); - } - - function absCeil(number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); - } - } - - function bubble() { - var milliseconds = this._milliseconds, - days = this._days, - months = this._months, - data = this._data, - seconds, - minutes, - hours, - years, - monthsFromDays; - - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if ( - !( - (milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0) - ) - ) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; - } - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; - - hours = absFloor(minutes / 60); - data.hours = hours % 24; - - days += absFloor(hours / 24); - - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - - return this; - } - - function daysToMonths(days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return (days * 4800) / 146097; - } - - function monthsToDays(months) { - // the reverse of daysToMonths - return (months * 146097) / 4800; - } - - function as(units) { - if (!this.isValid()) { - return NaN; - } - var days, - months, - milliseconds = this._milliseconds; - - units = normalizeUnits(units); - - if (units === 'month' || units === 'quarter' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - switch (units) { - case 'month': - return months; - case 'quarter': - return months / 3; - case 'year': - return months / 12; - } - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week': - return days / 7 + milliseconds / 6048e5; - case 'day': - return days + milliseconds / 864e5; - case 'hour': - return days * 24 + milliseconds / 36e5; - case 'minute': - return days * 1440 + milliseconds / 6e4; - case 'second': - return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': - return Math.floor(days * 864e5) + milliseconds; - default: - throw new Error('Unknown unit ' + units); - } - } - } - - // TODO: Use this.as('ms')? - function valueOf$1() { - if (!this.isValid()) { - return NaN; - } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); - } - - function makeAs(alias) { - return function () { - return this.as(alias); - }; - } - - var asMilliseconds = makeAs('ms'), - asSeconds = makeAs('s'), - asMinutes = makeAs('m'), - asHours = makeAs('h'), - asDays = makeAs('d'), - asWeeks = makeAs('w'), - asMonths = makeAs('M'), - asQuarters = makeAs('Q'), - asYears = makeAs('y'); - - function clone$1() { - return createDuration(this); - } - - function get$2(units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; - } - - function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; - } - - var milliseconds = makeGetter('milliseconds'), - seconds = makeGetter('seconds'), - minutes = makeGetter('minutes'), - hours = makeGetter('hours'), - days = makeGetter('days'), - months = makeGetter('months'), - years = makeGetter('years'); - - function weeks() { - return absFloor(this.days() / 7); - } - - var round = Math.round, - thresholds = { - ss: 44, // a few seconds to seconds - s: 45, // seconds to minute - m: 45, // minutes to hour - h: 22, // hours to day - d: 26, // days to month/week - w: null, // weeks to month - M: 11, // months to year - }; - - // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize - function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); - } - - function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { - var duration = createDuration(posNegDuration).abs(), - seconds = round(duration.as('s')), - minutes = round(duration.as('m')), - hours = round(duration.as('h')), - days = round(duration.as('d')), - months = round(duration.as('M')), - weeks = round(duration.as('w')), - years = round(duration.as('y')), - a = - (seconds <= thresholds.ss && ['s', seconds]) || - (seconds < thresholds.s && ['ss', seconds]) || - (minutes <= 1 && ['m']) || - (minutes < thresholds.m && ['mm', minutes]) || - (hours <= 1 && ['h']) || - (hours < thresholds.h && ['hh', hours]) || - (days <= 1 && ['d']) || - (days < thresholds.d && ['dd', days]); - - if (thresholds.w != null) { - a = - a || - (weeks <= 1 && ['w']) || - (weeks < thresholds.w && ['ww', weeks]); - } - a = a || - (months <= 1 && ['M']) || - (months < thresholds.M && ['MM', months]) || - (years <= 1 && ['y']) || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); - } - - // This function allows you to set the rounding function for relative time strings - function getSetRelativeTimeRounding(roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof roundingFunction === 'function') { - round = roundingFunction; - return true; - } - return false; - } - - // This function allows you to set a threshold for relative time strings - function getSetRelativeTimeThreshold(threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; - } - return true; - } - - function humanize(argWithSuffix, argThresholds) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var withSuffix = false, - th = thresholds, - locale, - output; - - if (typeof argWithSuffix === 'object') { - argThresholds = argWithSuffix; - argWithSuffix = false; - } - if (typeof argWithSuffix === 'boolean') { - withSuffix = argWithSuffix; - } - if (typeof argThresholds === 'object') { - th = Object.assign({}, thresholds, argThresholds); - if (argThresholds.s != null && argThresholds.ss == null) { - th.ss = argThresholds.s - 1; - } - } - - locale = this.localeData(); - output = relativeTime$1(this, !withSuffix, th, locale); - - if (withSuffix) { - output = locale.pastFuture(+this, output); - } - - return locale.postformat(output); - } - - var abs$1 = Math.abs; - - function sign(x) { - return (x > 0) - (x < 0) || +x; - } - - function toISOString$1() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var seconds = abs$1(this._milliseconds) / 1000, - days = abs$1(this._days), - months = abs$1(this._months), - minutes, - hours, - years, - s, - total = this.asSeconds(), - totalSign, - ymSign, - daysSign, - hmsSign; - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; - - totalSign = total < 0 ? '-' : ''; - ymSign = sign(this._months) !== sign(total) ? '-' : ''; - daysSign = sign(this._days) !== sign(total) ? '-' : ''; - hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; - - return ( - totalSign + - 'P' + - (years ? ymSign + years + 'Y' : '') + - (months ? ymSign + months + 'M' : '') + - (days ? daysSign + days + 'D' : '') + - (hours || minutes || seconds ? 'T' : '') + - (hours ? hmsSign + hours + 'H' : '') + - (minutes ? hmsSign + minutes + 'M' : '') + - (seconds ? hmsSign + s + 'S' : '') - ); - } - - var proto$2 = Duration.prototype; - - proto$2.isValid = isValid$1; - proto$2.abs = abs; - proto$2.add = add$1; - proto$2.subtract = subtract$1; - proto$2.as = as; - proto$2.asMilliseconds = asMilliseconds; - proto$2.asSeconds = asSeconds; - proto$2.asMinutes = asMinutes; - proto$2.asHours = asHours; - proto$2.asDays = asDays; - proto$2.asWeeks = asWeeks; - proto$2.asMonths = asMonths; - proto$2.asQuarters = asQuarters; - proto$2.asYears = asYears; - proto$2.valueOf = valueOf$1; - proto$2._bubble = bubble; - proto$2.clone = clone$1; - proto$2.get = get$2; - proto$2.milliseconds = milliseconds; - proto$2.seconds = seconds; - proto$2.minutes = minutes; - proto$2.hours = hours; - proto$2.days = days; - proto$2.weeks = weeks; - proto$2.months = months; - proto$2.years = years; - proto$2.humanize = humanize; - proto$2.toISOString = toISOString$1; - proto$2.toString = toISOString$1; - proto$2.toJSON = toISOString$1; - proto$2.locale = locale; - proto$2.localeData = localeData; - - proto$2.toIsoString = deprecate( - 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', - toISOString$1 - ); - proto$2.lang = lang; - - // FORMATTING - - addFormatToken('X', 0, 0, 'unix'); - addFormatToken('x', 0, 0, 'valueOf'); - - // PARSING - - addRegexToken('x', matchSigned); - addRegexToken('X', matchTimestamp); - addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input) * 1000); - }); - addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); - }); - - //! moment.js - - hooks.version = '2.29.1'; - - setHookCallback(createLocal); - - hooks.fn = proto; - hooks.min = min; - hooks.max = max; - hooks.now = now; - hooks.utc = createUTC; - hooks.unix = createUnix; - hooks.months = listMonths; - hooks.isDate = isDate; - hooks.locale = getSetGlobalLocale; - hooks.invalid = createInvalid; - hooks.duration = createDuration; - hooks.isMoment = isMoment; - hooks.weekdays = listWeekdays; - hooks.parseZone = createInZone; - hooks.localeData = getLocale; - hooks.isDuration = isDuration; - hooks.monthsShort = listMonthsShort; - hooks.weekdaysMin = listWeekdaysMin; - hooks.defineLocale = defineLocale; - hooks.updateLocale = updateLocale; - hooks.locales = listLocales; - hooks.weekdaysShort = listWeekdaysShort; - hooks.normalizeUnits = normalizeUnits; - hooks.relativeTimeRounding = getSetRelativeTimeRounding; - hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; - hooks.calendarFormat = getCalendarFormat; - hooks.prototype = proto; - - // currently HTML5 input type only supports 24-hour formats - hooks.HTML5_FMT = { - DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // - DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // - DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // - DATE: 'YYYY-MM-DD', // - TIME: 'HH:mm', // - TIME_SECONDS: 'HH:mm:ss', // - TIME_MS: 'HH:mm:ss.SSS', // - WEEK: 'GGGG-[W]WW', // - MONTH: 'YYYY-MM', // - }; - - //! moment.js locale configuration - - hooks.defineLocale('af', { - months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( - '_' - ), - weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM: function (input) { - return /^nm$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Vandag om] LT', - nextDay: '[Môre om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[Gister om] LT', - lastWeek: '[Laas] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'oor %s', - past: '%s gelede', - s: "'n paar sekondes", - ss: '%d sekondes', - m: "'n minuut", - mm: '%d minute', - h: "'n uur", - hh: '%d ure', - d: "'n dag", - dd: '%d dae', - M: "'n maand", - MM: '%d maande', - y: "'n jaar", - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week: { - dow: 1, // Maandag is die eerste dag van die week. - doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - }); - - //! moment.js locale configuration - - var pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months$1 = [ - 'جانفي', - 'فيفري', - 'مارس', - 'أفريل', - 'ماي', - 'جوان', - 'جويلية', - 'أوت', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; - - hooks.defineLocale('ar-dz', { - months: months$1, - monthsShort: months$1, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ar-kw', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap = { - 1: '1', - 2: '2', - 3: '3', - 4: '4', - 5: '5', - 6: '6', - 7: '7', - 8: '8', - 9: '9', - 0: '0', - }, - pluralForm$1 = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals$1 = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize$1 = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm$1(number), - str = plurals$1[u][pluralForm$1(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months$2 = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; - - hooks.defineLocale('ar-ly', { - months: months$2, - monthsShort: months$2, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize$1('s'), - ss: pluralize$1('s'), - m: pluralize$1('m'), - mm: pluralize$1('m'), - h: pluralize$1('h'), - hh: pluralize$1('h'), - d: pluralize$1('d'), - dd: pluralize$1('d'), - M: pluralize$1('M'), - MM: pluralize$1('M'), - y: pluralize$1('y'), - yy: pluralize$1('y'), - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ar-ma', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$1 = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }; - - hooks.defineLocale('ar-sa', { - months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$1[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$2 = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap$1 = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - pluralForm$2 = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals$2 = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize$2 = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm$2(number), - str = plurals$2[u][pluralForm$2(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months$3 = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; - - hooks.defineLocale('ar', { - months: months$3, - monthsShort: months$3, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize$2('s'), - ss: pluralize$2('s'), - m: pluralize$2('m'), - mm: pluralize$2('m'), - h: pluralize$2('h'), - hh: pluralize$2('h'), - d: pluralize$2('d'), - dd: pluralize$2('d'), - M: pluralize$2('M'), - MM: pluralize$2('M'), - y: pluralize$2('y'), - yy: pluralize$2('y'), - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap$1[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$2[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes = { - 1: '-inci', - 5: '-inci', - 8: '-inci', - 70: '-inci', - 80: '-inci', - 2: '-nci', - 7: '-nci', - 20: '-nci', - 50: '-nci', - 3: '-üncü', - 4: '-üncü', - 100: '-üncü', - 6: '-ncı', - 9: '-uncu', - 10: '-uncu', - 30: '-uncu', - 60: '-ıncı', - 90: '-ıncı', - }; - - hooks.defineLocale('az', { - months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( - '_' - ), - monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( - '_' - ), - weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[sabah saat] LT', - nextWeek: '[gələn həftə] dddd [saat] LT', - lastDay: '[dünən] LT', - lastWeek: '[keçən həftə] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s sonra', - past: '%s əvvəl', - s: 'bir neçə saniyə', - ss: '%d saniyə', - m: 'bir dəqiqə', - mm: '%d dəqiqə', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - M: 'bir ay', - MM: '%d ay', - y: 'bir il', - yy: '%d il', - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM: function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal: function (number) { - if (number === 0) { - // special case for zero - return number + '-ıncı'; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - dd: 'дзень_дні_дзён', - MM: 'месяц_месяцы_месяцаў', - yy: 'год_гады_гадоў', - }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; - } else { - return number + ' ' + plural(format[key], +number); - } - } - - hooks.defineLocale('be', { - months: { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( - '_' - ), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( - '_' - ), - }, - monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split( - '_' - ), - weekdays: { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( - '_' - ), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( - '_' - ), - isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, - }, - weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., HH:mm', - LLLL: 'dddd, D MMMM YYYY г., HH:mm', - }, - calendar: { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'праз %s', - past: '%s таму', - s: 'некалькі секунд', - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: relativeTimeWithPlural, - hh: relativeTimeWithPlural, - d: 'дзень', - dd: relativeTimeWithPlural, - M: 'месяц', - MM: relativeTimeWithPlural, - y: 'год', - yy: relativeTimeWithPlural, - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM: function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечара'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && - number % 100 !== 12 && - number % 100 !== 13 - ? number + '-і' - : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('bg', { - months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( - '_' - ), - weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Днес в] LT', - nextDay: '[Утре в] LT', - nextWeek: 'dddd [в] LT', - lastDay: '[Вчера в] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Миналата] dddd [в] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Миналия] dddd [в] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'след %s', - past: 'преди %s', - s: 'няколко секунди', - ss: '%d секунди', - m: 'минута', - mm: '%d минути', - h: 'час', - hh: '%d часа', - d: 'ден', - dd: '%d дена', - w: 'седмица', - ww: '%d седмици', - M: 'месец', - MM: '%d месеца', - y: 'година', - yy: '%d години', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('bm', { - months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( - '_' - ), - monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), - weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), - weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), - weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'MMMM [tile] D [san] YYYY', - LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - }, - calendar: { - sameDay: '[Bi lɛrɛ] LT', - nextDay: '[Sini lɛrɛ] LT', - nextWeek: 'dddd [don lɛrɛ] LT', - lastDay: '[Kunu lɛrɛ] LT', - lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s kɔnɔ', - past: 'a bɛ %s bɔ', - s: 'sanga dama dama', - ss: 'sekondi %d', - m: 'miniti kelen', - mm: 'miniti %d', - h: 'lɛrɛ kelen', - hh: 'lɛrɛ %d', - d: 'tile kelen', - dd: 'tile %d', - M: 'kalo kelen', - MM: 'kalo %d', - y: 'san kelen', - yy: 'san %d', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$3 = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap$2 = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; - - hooks.defineLocale('bn-bd', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), - longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', - }, - calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap$2[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$3[match]; - }); - }, - - meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'রাত') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ভোর') { - return hour; - } else if (meridiem === 'সকাল') { - return hour; - } else if (meridiem === 'দুপুর') { - return hour >= 3 ? hour : hour + 12; - } else if (meridiem === 'বিকাল') { - return hour + 12; - } else if (meridiem === 'সন্ধ্যা') { - return hour + 12; - } - }, - - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 6) { - return 'ভোর'; - } else if (hour < 12) { - return 'সকাল'; - } else if (hour < 15) { - return 'দুপুর'; - } else if (hour < 18) { - return 'বিকাল'; - } else if (hour < 20) { - return 'সন্ধ্যা'; - } else { - return 'রাত'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$4 = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap$3 = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; - - hooks.defineLocale('bn', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), - longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', - }, - calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap$3[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$4[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$5 = { - 1: '༡', - 2: '༢', - 3: '༣', - 4: '༤', - 5: '༥', - 6: '༦', - 7: '༧', - 8: '༨', - 9: '༩', - 0: '༠', - }, - numberMap$4 = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0', - }; - - hooks.defineLocale('bo', { - months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( - '_' - ), - monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( - '_' - ), - monthsShortRegex: /^(ཟླ་\d{1,2})/, - monthsParseExact: true, - weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( - '_' - ), - weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( - '_' - ), - weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[དི་རིང] LT', - nextDay: '[སང་ཉིན] LT', - nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', - lastDay: '[ཁ་སང] LT', - lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ལ་', - past: '%s སྔན་ལ', - s: 'ལམ་སང', - ss: '%d སྐར་ཆ།', - m: 'སྐར་མ་གཅིག', - mm: '%d སྐར་མ', - h: 'ཆུ་ཚོད་གཅིག', - hh: '%d ཆུ་ཚོད', - d: 'ཉིན་གཅིག', - dd: '%d ཉིན་', - M: 'ཟླ་བ་གཅིག', - MM: '%d ཟླ་བ', - y: 'ལོ་གཅིག', - yy: '%d ལོ', - }, - preparse: function (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap$4[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$5[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - mm: 'munutenn', - MM: 'miz', - dd: 'devezh', - }; - return number + ' ' + mutation(format[key], number); - } - function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } - } - function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; - } - function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; - } - function softMutation(text) { - var mutationTable = { - m: 'v', - b: 'v', - d: 'z', - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); - } - - var monthsParse = [ - /^gen/i, - /^c[ʼ\']hwe/i, - /^meu/i, - /^ebr/i, - /^mae/i, - /^(mez|eve)/i, - /^gou/i, - /^eos/i, - /^gwe/i, - /^her/i, - /^du/i, - /^ker/i, - ], - monthsRegex$1 = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, - monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - fullWeekdaysParse = [ - /^sul/i, - /^lun/i, - /^meurzh/i, - /^merc[ʼ\']her/i, - /^yaou/i, - /^gwener/i, - /^sadorn/i, - ], - shortWeekdaysParse = [ - /^Sul/i, - /^Lun/i, - /^Meu/i, - /^Mer/i, - /^Yao/i, - /^Gwe/i, - /^Sad/i, - ], - minWeekdaysParse = [ - /^Su/i, - /^Lu/i, - /^Me([^r]|$)/i, - /^Mer/i, - /^Ya/i, - /^Gw/i, - /^Sa/i, - ]; - - hooks.defineLocale('br', { - months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( - '_' - ), - monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), - weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), - weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), - weekdaysParse: minWeekdaysParse, - fullWeekdaysParse: fullWeekdaysParse, - shortWeekdaysParse: shortWeekdaysParse, - minWeekdaysParse: minWeekdaysParse, - - monthsRegex: monthsRegex$1, - monthsShortRegex: monthsRegex$1, - monthsStrictRegex: monthsStrictRegex, - monthsShortStrictRegex: monthsShortStrictRegex, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [a viz] MMMM YYYY', - LLL: 'D [a viz] MMMM YYYY HH:mm', - LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Hiziv da] LT', - nextDay: '[Warcʼhoazh da] LT', - nextWeek: 'dddd [da] LT', - lastDay: '[Decʼh da] LT', - lastWeek: 'dddd [paset da] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'a-benn %s', - past: '%s ʼzo', - s: 'un nebeud segondennoù', - ss: '%d eilenn', - m: 'ur vunutenn', - mm: relativeTimeWithMutation, - h: 'un eur', - hh: '%d eur', - d: 'un devezh', - dd: relativeTimeWithMutation, - M: 'ur miz', - MM: relativeTimeWithMutation, - y: 'ur bloaz', - yy: specialMutationForYears, - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal: function (number) { - var output = number === 1 ? 'añ' : 'vet'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn - isPM: function (token) { - return token === 'g.m.'; - }, - meridiem: function (hour, minute, isLower) { - return hour < 12 ? 'a.m.' : 'g.m.'; - }, - }); - - //! moment.js locale configuration - - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } - } - - hooks.defineLocale('bs', { - months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - return '[prošlu] dddd [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prošli] dddd [u] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: 'dan', - dd: translate, - M: 'mjesec', - MM: translate, - y: 'godinu', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ca', { - months: { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( - '_' - ), - format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( - '_' - ), - weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a les] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', - llll: 'ddd D MMM YYYY, H:mm', - }, - calendar: { - sameDay: function () { - return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextDay: function () { - return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastDay: function () { - return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [passat a ' + - (this.hours() !== 1 ? 'les' : 'la') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'uns segons', - ss: '%d segons', - m: 'un minut', - mm: '%d minuts', - h: 'una hora', - hh: '%d hores', - d: 'un dia', - dd: '%d dies', - M: 'un mes', - MM: '%d mesos', - y: 'un any', - yy: '%d anys', - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$4 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( - '_' - ), - monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), - monthsParse$1 = [ - /^led/i, - /^úno/i, - /^bře/i, - /^dub/i, - /^kvě/i, - /^(čvn|červen$|června)/i, - /^(čvc|červenec|července)/i, - /^srp/i, - /^zář/i, - /^říj/i, - /^lis/i, - /^pro/i, - ], - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsRegex$2 = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; - - function plural$1(n) { - return n > 1 && n < 5 && ~~(n / 10) !== 1; - } - function translate$1(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'sekundy' : 'sekund'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - } - } - - hooks.defineLocale('cs', { - months: months$4, - monthsShort: monthsShort, - monthsRegex: monthsRegex$2, - monthsShortRegex: monthsRegex$2, - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, - monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, - monthsParse: monthsParse$1, - longMonthsParse: monthsParse$1, - shortMonthsParse: monthsParse$1, - weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), - weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), - weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', - l: 'D. M. YYYY', - }, - calendar: { - sameDay: '[dnes v] LT', - nextDay: '[zítra v] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v neděli v] LT'; - case 1: - case 2: - return '[v] dddd [v] LT'; - case 3: - return '[ve středu v] LT'; - case 4: - return '[ve čtvrtek v] LT'; - case 5: - return '[v pátek v] LT'; - case 6: - return '[v sobotu v] LT'; - } - }, - lastDay: '[včera v] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulou neděli v] LT'; - case 1: - case 2: - return '[minulé] dddd [v] LT'; - case 3: - return '[minulou středu v] LT'; - case 4: - case 5: - return '[minulý] dddd [v] LT'; - case 6: - return '[minulou sobotu v] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'před %s', - s: translate$1, - ss: translate$1, - m: translate$1, - mm: translate$1, - h: translate$1, - hh: translate$1, - d: translate$1, - dd: translate$1, - M: translate$1, - MM: translate$1, - y: translate$1, - yy: translate$1, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('cv', { - months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( - '_' - ), - monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( - '_' - ), - weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - }, - calendar: { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L', - }, - relativeTime: { - future: function (output) { - var affix = /сехет$/i.exec(output) - ? 'рен' - : /ҫул$/i.exec(output) - ? 'тан' - : 'ран'; - return output + affix; - }, - past: '%s каялла', - s: 'пӗр-ик ҫеккунт', - ss: '%d ҫеккунт', - m: 'пӗр минут', - mm: '%d минут', - h: 'пӗр сехет', - hh: '%d сехет', - d: 'пӗр кун', - dd: '%d кун', - M: 'пӗр уйӑх', - MM: '%d уйӑх', - y: 'пӗр ҫул', - yy: '%d ҫул', - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal: '%d-мӗш', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( - '_' - ), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( - '_' - ), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( - '_' - ), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact: true, - // time formats are the same as en-gb - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - ss: '%d eiliad', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd', - }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh - ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', - 'af', - 'il', - 'ydd', - 'ydd', - 'ed', - 'ed', - 'ed', - 'fed', - 'fed', - 'fed', // 1af to 10fed - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'fed', // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('da', { - months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'på dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[i] dddd[s kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'få sekunder', - ss: '%d sekunder', - m: 'et minut', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dage', - M: 'en måned', - MM: '%d måneder', - y: 'et år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - hooks.defineLocale('de-at', { - months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$1(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - hooks.defineLocale('de-ch', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime$1, - mm: '%d Minuten', - h: processRelativeTime$1, - hh: '%d Stunden', - d: processRelativeTime$1, - dd: processRelativeTime$1, - w: processRelativeTime$1, - ww: '%d Wochen', - M: processRelativeTime$1, - MM: processRelativeTime$1, - y: processRelativeTime$1, - yy: processRelativeTime$1, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$2(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - hooks.defineLocale('de', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime$2, - mm: '%d Minuten', - h: processRelativeTime$2, - hh: '%d Stunden', - d: processRelativeTime$2, - dd: processRelativeTime$2, - w: processRelativeTime$2, - ww: '%d Wochen', - M: processRelativeTime$2, - MM: processRelativeTime$2, - y: processRelativeTime$2, - yy: processRelativeTime$2, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$5 = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު', - ], - weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު', - ]; - - hooks.defineLocale('dv', { - months: months$5, - monthsShort: months$5, - weekdays: weekdays, - weekdaysShort: weekdays, - weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/M/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /މކ|މފ/, - isPM: function (input) { - return 'މފ' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - calendar: { - sameDay: '[މިއަދު] LT', - nextDay: '[މާދަމާ] LT', - nextWeek: 'dddd LT', - lastDay: '[އިއްޔެ] LT', - lastWeek: '[ފާއިތުވި] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ތެރޭގައި %s', - past: 'ކުރިން %s', - s: 'ސިކުންތުކޮޅެއް', - ss: 'd% ސިކުންތު', - m: 'މިނިޓެއް', - mm: 'މިނިޓު %d', - h: 'ގަޑިއިރެއް', - hh: 'ގަޑިއިރު %d', - d: 'ދުވަހެއް', - dd: 'ދުވަސް %d', - M: 'މަހެއް', - MM: 'މަސް %d', - y: 'އަހަރެއް', - yy: 'އަހަރު %d', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 7, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function isFunction$1(input) { - return ( - (typeof Function !== 'undefined' && input instanceof Function) || - Object.prototype.toString.call(input) === '[object Function]' - ); - } - - hooks.defineLocale('el', { - monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( - '_' - ), - monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( - '_' - ), - months: function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if ( - typeof format === 'string' && - /D/.test(format.substring(0, format.indexOf('MMMM'))) - ) { - // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( - '_' - ), - weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM: function (input) { - return (input + '').toLowerCase()[0] === 'μ'; - }, - meridiemParse: /[ΠΜ]\.?Μ?\.?/i, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendarEl: { - sameDay: '[Σήμερα {}] LT', - nextDay: '[Αύριο {}] LT', - nextWeek: 'dddd [{}] LT', - lastDay: '[Χθες {}] LT', - lastWeek: function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse: 'L', - }, - calendar: function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction$1(output)) { - output = output.apply(mom); - } - return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); - }, - relativeTime: { - future: 'σε %s', - past: '%s πριν', - s: 'λίγα δευτερόλεπτα', - ss: '%d δευτερόλεπτα', - m: 'ένα λεπτό', - mm: '%d λεπτά', - h: 'μία ώρα', - hh: '%d ώρες', - d: 'μία μέρα', - dd: '%d μέρες', - M: 'ένας μήνας', - MM: '%d μήνες', - y: 'ένας χρόνος', - yy: '%d χρόνια', - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-au', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-ca', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'YYYY-MM-DD', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY h:mm A', - LLLL: 'dddd, MMMM D, YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-gb', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-ie', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-il', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-in', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 1st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-nz', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('en-sg', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('eo', { - months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( - '_' - ), - monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), - weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), - weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), - weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: '[la] D[-an de] MMMM, YYYY', - LLL: '[la] D[-an de] MMMM, YYYY HH:mm', - LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', - llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? 'a.t.m.' : 'A.T.M.'; - } - }, - calendar: { - sameDay: '[Hodiaŭ je] LT', - nextDay: '[Morgaŭ je] LT', - nextWeek: 'dddd[n je] LT', - lastDay: '[Hieraŭ je] LT', - lastWeek: '[pasintan] dddd[n je] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'post %s', - past: 'antaŭ %s', - s: 'kelkaj sekundoj', - ss: '%d sekundoj', - m: 'unu minuto', - mm: '%d minutoj', - h: 'unu horo', - hh: '%d horoj', - d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo - dd: '%d tagoj', - M: 'unu monato', - MM: '%d monatoj', - y: 'unu jaro', - yy: '%d jaroj', - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal: '%da', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$2 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - hooks.defineLocale('es-do', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort$1[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex$3, - monthsShortRegex: monthsRegex$3, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$2, - longMonthsParse: monthsParse$2, - shortMonthsParse: monthsParse$2, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$3 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - hooks.defineLocale('es-mx', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot$1; - } else if (/-MMM-/.test(format)) { - return monthsShort$2[m.month()]; - } else { - return monthsShortDot$1[m.month()]; - } - }, - monthsRegex: monthsRegex$4, - monthsShortRegex: monthsRegex$4, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$3, - longMonthsParse: monthsParse$3, - shortMonthsParse: monthsParse$3, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - invalidDate: 'Fecha inválida', - }); - - //! moment.js locale configuration - - var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$4 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$5 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - hooks.defineLocale('es-us', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot$2; - } else if (/-MMM-/.test(format)) { - return monthsShort$3[m.month()]; - } else { - return monthsShortDot$2[m.month()]; - } - }, - monthsRegex: monthsRegex$5, - monthsShortRegex: monthsRegex$5, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$4, - longMonthsParse: monthsParse$4, - shortMonthsParse: monthsParse$4, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'MM/DD/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse$5 = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex$6 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - hooks.defineLocale('es', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot$3; - } else if (/-MMM-/.test(format)) { - return monthsShort$4[m.month()]; - } else { - return monthsShortDot$3[m.month()]; - } - }, - monthsRegex: monthsRegex$6, - monthsShortRegex: monthsRegex$6, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse$5, - longMonthsParse: monthsParse$5, - shortMonthsParse: monthsParse$5, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - invalidDate: 'Fecha inválida', - }); - - //! moment.js locale configuration - - function processRelativeTime$3(number, withoutSuffix, key, isFuture) { - var format = { - s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - ss: [number + 'sekundi', number + 'sekundit'], - m: ['ühe minuti', 'üks minut'], - mm: [number + ' minuti', number + ' minutit'], - h: ['ühe tunni', 'tund aega', 'üks tund'], - hh: [number + ' tunni', number + ' tundi'], - d: ['ühe päeva', 'üks päev'], - M: ['kuu aja', 'kuu aega', 'üks kuu'], - MM: [number + ' kuu', number + ' kuud'], - y: ['ühe aasta', 'aasta', 'üks aasta'], - yy: [number + ' aasta', number + ' aastat'], - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; - } - - hooks.defineLocale('et', { - months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( - '_' - ), - monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split( - '_' - ), - weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( - '_' - ), - weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Täna,] LT', - nextDay: '[Homme,] LT', - nextWeek: '[Järgmine] dddd LT', - lastDay: '[Eile,] LT', - lastWeek: '[Eelmine] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s pärast', - past: '%s tagasi', - s: processRelativeTime$3, - ss: processRelativeTime$3, - m: processRelativeTime$3, - mm: processRelativeTime$3, - h: processRelativeTime$3, - hh: processRelativeTime$3, - d: processRelativeTime$3, - dd: '%d päeva', - M: processRelativeTime$3, - MM: processRelativeTime$3, - y: processRelativeTime$3, - yy: processRelativeTime$3, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('eu', { - months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( - '_' - ), - monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( - '_' - ), - weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), - weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY[ko] MMMM[ren] D[a]', - LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l: 'YYYY-M-D', - ll: 'YYYY[ko] MMM D[a]', - lll: 'YYYY[ko] MMM D[a] HH:mm', - llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', - }, - calendar: { - sameDay: '[gaur] LT[etan]', - nextDay: '[bihar] LT[etan]', - nextWeek: 'dddd LT[etan]', - lastDay: '[atzo] LT[etan]', - lastWeek: '[aurreko] dddd LT[etan]', - sameElse: 'L', - }, - relativeTime: { - future: '%s barru', - past: 'duela %s', - s: 'segundo batzuk', - ss: '%d segundo', - m: 'minutu bat', - mm: '%d minutu', - h: 'ordu bat', - hh: '%d ordu', - d: 'egun bat', - dd: '%d egun', - M: 'hilabete bat', - MM: '%d hilabete', - y: 'urte bat', - yy: '%d urte', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$6 = { - 1: '۱', - 2: '۲', - 3: '۳', - 4: '۴', - 5: '۵', - 6: '۶', - 7: '۷', - 8: '۸', - 9: '۹', - 0: '۰', - }, - numberMap$5 = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0', - }; - - hooks.defineLocale('fa', { - months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - weekdays: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysShort: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - calendar: { - sameDay: '[امروز ساعت] LT', - nextDay: '[فردا ساعت] LT', - nextWeek: 'dddd [ساعت] LT', - lastDay: '[دیروز ساعت] LT', - lastWeek: 'dddd [پیش] [ساعت] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'در %s', - past: '%s پیش', - s: 'چند ثانیه', - ss: '%d ثانیه', - m: 'یک دقیقه', - mm: '%d دقیقه', - h: 'یک ساعت', - hh: '%d ساعت', - d: 'یک روز', - dd: '%d روز', - M: 'یک ماه', - MM: '%d ماه', - y: 'یک سال', - yy: '%d سال', - }, - preparse: function (string) { - return string - .replace(/[۰-۹]/g, function (match) { - return numberMap$5[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$6[match]; - }) - .replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal: '%dم', - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( - ' ' - ), - numbersFuture = [ - 'nolla', - 'yhden', - 'kahden', - 'kolmen', - 'neljän', - 'viiden', - 'kuuden', - numbersPast[7], - numbersPast[8], - numbersPast[9], - ]; - function translate$2(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'ss': - result = isFuture ? 'sekunnin' : 'sekuntia'; - break; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; - } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; - } - function verbalNumber(number, isFuture) { - return number < 10 - ? isFuture - ? numbersFuture[number] - : numbersPast[number] - : number; - } - - hooks.defineLocale('fi', { - months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( - '_' - ), - monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( - '_' - ), - weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( - '_' - ), - weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), - weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD.MM.YYYY', - LL: 'Do MMMM[ta] YYYY', - LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l: 'D.M.YYYY', - ll: 'Do MMM YYYY', - lll: 'Do MMM YYYY, [klo] HH.mm', - llll: 'ddd, Do MMM YYYY, [klo] HH.mm', - }, - calendar: { - sameDay: '[tänään] [klo] LT', - nextDay: '[huomenna] [klo] LT', - nextWeek: 'dddd [klo] LT', - lastDay: '[eilen] [klo] LT', - lastWeek: '[viime] dddd[na] [klo] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s päästä', - past: '%s sitten', - s: translate$2, - ss: translate$2, - m: translate$2, - mm: translate$2, - h: translate$2, - hh: translate$2, - d: translate$2, - dd: translate$2, - M: translate$2, - MM: translate$2, - y: translate$2, - yy: translate$2, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('fil', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( - '_' - ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', - }, - calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L', - }, - relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('fo', { - months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( - '_' - ), - weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D. MMMM, YYYY HH:mm', - }, - calendar: { - sameDay: '[Í dag kl.] LT', - nextDay: '[Í morgin kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[Í gjár kl.] LT', - lastWeek: '[síðstu] dddd [kl] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'um %s', - past: '%s síðani', - s: 'fá sekund', - ss: '%d sekundir', - m: 'ein minuttur', - mm: '%d minuttir', - h: 'ein tími', - hh: '%d tímar', - d: 'ein dagur', - dd: '%d dagar', - M: 'ein mánaður', - MM: '%d mánaðir', - y: 'eitt ár', - yy: '%d ár', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('fr-ca', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('fr-ch', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsStrictRegex$1 = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsShortStrictRegex$1 = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, - monthsRegex$7 = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsParse$6 = [ - /^janv/i, - /^févr/i, - /^mars/i, - /^avr/i, - /^mai/i, - /^juin/i, - /^juil/i, - /^août/i, - /^sept/i, - /^oct/i, - /^nov/i, - /^déc/i, - ]; - - hooks.defineLocale('fr', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsRegex: monthsRegex$7, - monthsShortRegex: monthsRegex$7, - monthsStrictRegex: monthsStrictRegex$1, - monthsShortStrictRegex: monthsShortStrictRegex$1, - monthsParse: monthsParse$6, - longMonthsParse: monthsParse$6, - shortMonthsParse: monthsParse$6, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - w: 'une semaine', - ww: '%d semaines', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal: function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split( - '_' - ); - - hooks.defineLocale('fy', { - months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact: true, - weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( - '_' - ), - weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'oer %s', - past: '%s lyn', - s: 'in pear sekonden', - ss: '%d sekonden', - m: 'ien minút', - mm: '%d minuten', - h: 'ien oere', - hh: '%d oeren', - d: 'ien dei', - dd: '%d dagen', - M: 'ien moanne', - MM: '%d moannen', - y: 'ien jier', - yy: '%d jierren', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$6 = [ - 'Eanáir', - 'Feabhra', - 'Márta', - 'Aibreán', - 'Bealtaine', - 'Meitheamh', - 'Iúil', - 'Lúnasa', - 'Meán Fómhair', - 'Deireadh Fómhair', - 'Samhain', - 'Nollaig', - ], - monthsShort$5 = [ - 'Ean', - 'Feabh', - 'Márt', - 'Aib', - 'Beal', - 'Meith', - 'Iúil', - 'Lún', - 'M.F.', - 'D.F.', - 'Samh', - 'Noll', - ], - weekdays$1 = [ - 'Dé Domhnaigh', - 'Dé Luain', - 'Dé Máirt', - 'Dé Céadaoin', - 'Déardaoin', - 'Dé hAoine', - 'Dé Sathairn', - ], - weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], - weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; - - hooks.defineLocale('ga', { - months: months$6, - monthsShort: monthsShort$5, - monthsParseExact: true, - weekdays: weekdays$1, - weekdaysShort: weekdaysShort, - weekdaysMin: weekdaysMin, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Inniu ag] LT', - nextDay: '[Amárach ag] LT', - nextWeek: 'dddd [ag] LT', - lastDay: '[Inné ag] LT', - lastWeek: 'dddd [seo caite] [ag] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'i %s', - past: '%s ó shin', - s: 'cúpla soicind', - ss: '%d soicind', - m: 'nóiméad', - mm: '%d nóiméad', - h: 'uair an chloig', - hh: '%d uair an chloig', - d: 'lá', - dd: '%d lá', - M: 'mí', - MM: '%d míonna', - y: 'bliain', - yy: '%d bliain', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$7 = [ - 'Am Faoilleach', - 'An Gearran', - 'Am Màrt', - 'An Giblean', - 'An Cèitean', - 'An t-Ògmhios', - 'An t-Iuchar', - 'An Lùnastal', - 'An t-Sultain', - 'An Dàmhair', - 'An t-Samhain', - 'An Dùbhlachd', - ], - monthsShort$6 = [ - 'Faoi', - 'Gear', - 'Màrt', - 'Gibl', - 'Cèit', - 'Ògmh', - 'Iuch', - 'Lùn', - 'Sult', - 'Dàmh', - 'Samh', - 'Dùbh', - ], - weekdays$2 = [ - 'Didòmhnaich', - 'Diluain', - 'Dimàirt', - 'Diciadain', - 'Diardaoin', - 'Dihaoine', - 'Disathairne', - ], - weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], - weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - - hooks.defineLocale('gd', { - months: months$7, - monthsShort: monthsShort$6, - monthsParseExact: true, - weekdays: weekdays$2, - weekdaysShort: weekdaysShort$1, - weekdaysMin: weekdaysMin$1, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[An-diugh aig] LT', - nextDay: '[A-màireach aig] LT', - nextWeek: 'dddd [aig] LT', - lastDay: '[An-dè aig] LT', - lastWeek: 'dddd [seo chaidh] [aig] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ann an %s', - past: 'bho chionn %s', - s: 'beagan diogan', - ss: '%d diogan', - m: 'mionaid', - mm: '%d mionaidean', - h: 'uair', - hh: '%d uairean', - d: 'latha', - dd: '%d latha', - M: 'mìos', - MM: '%d mìosan', - y: 'bliadhna', - yy: '%d bliadhna', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('gl', { - months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( - '_' - ), - monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextDay: function () { - return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextWeek: function () { - return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; - }, - lastDay: function () { - return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; - }, - lastWeek: function () { - return ( - '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - past: 'hai %s', - s: 'uns segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'unha hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - M: 'un mes', - MM: '%d meses', - y: 'un ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$4(number, withoutSuffix, key, isFuture) { - var format = { - s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], - ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], - m: ['एका मिणटान', 'एक मिनूट'], - mm: [number + ' मिणटांनी', number + ' मिणटां'], - h: ['एका वरान', 'एक वर'], - hh: [number + ' वरांनी', number + ' वरां'], - d: ['एका दिसान', 'एक दीस'], - dd: [number + ' दिसांनी', number + ' दीस'], - M: ['एका म्हयन्यान', 'एक म्हयनो'], - MM: [number + ' म्हयन्यानी', number + ' म्हयने'], - y: ['एका वर्सान', 'एक वर्स'], - yy: [number + ' वर्सांनी', number + ' वर्सां'], - }; - return isFuture ? format[key][0] : format[key][1]; - } - - hooks.defineLocale('gom-deva', { - months: { - standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( - '_' - ), - format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), - weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), - weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'A h:mm [वाजतां]', - LTS: 'A h:mm:ss [वाजतां]', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [वाजतां]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', - llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', - }, - calendar: { - sameDay: '[आयज] LT', - nextDay: '[फाल्यां] LT', - nextWeek: '[फुडलो] dddd[,] LT', - lastDay: '[काल] LT', - lastWeek: '[फाटलो] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s', - past: '%s आदीं', - s: processRelativeTime$4, - ss: processRelativeTime$4, - m: processRelativeTime$4, - mm: processRelativeTime$4, - h: processRelativeTime$4, - hh: processRelativeTime$4, - d: processRelativeTime$4, - dd: processRelativeTime$4, - M: processRelativeTime$4, - MM: processRelativeTime$4, - y: processRelativeTime$4, - yy: processRelativeTime$4, - }, - dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'वेर' only applies to day of the month - case 'D': - return number + 'वेर'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) - }, - meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राती') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळीं') { - return hour; - } else if (meridiem === 'दनपारां') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'सांजे') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'राती'; - } else if (hour < 12) { - return 'सकाळीं'; - } else if (hour < 16) { - return 'दनपारां'; - } else if (hour < 20) { - return 'सांजे'; - } else { - return 'राती'; - } - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$5(number, withoutSuffix, key, isFuture) { - var format = { - s: ['thoddea sekondamni', 'thodde sekond'], - ss: [number + ' sekondamni', number + ' sekond'], - m: ['eka mintan', 'ek minut'], - mm: [number + ' mintamni', number + ' mintam'], - h: ['eka voran', 'ek vor'], - hh: [number + ' voramni', number + ' voram'], - d: ['eka disan', 'ek dis'], - dd: [number + ' disamni', number + ' dis'], - M: ['eka mhoinean', 'ek mhoino'], - MM: [number + ' mhoineamni', number + ' mhoine'], - y: ['eka vorsan', 'ek voros'], - yy: [number + ' vorsamni', number + ' vorsam'], - }; - return isFuture ? format[key][0] : format[key][1]; - } - - hooks.defineLocale('gom-latn', { - months: { - standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( - '_' - ), - format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), - weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'A h:mm [vazta]', - LTS: 'A h:mm:ss [vazta]', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [vazta]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]', - }, - calendar: { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Fuddlo] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fattlo] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s', - past: '%s adim', - s: processRelativeTime$5, - ss: processRelativeTime$5, - m: processRelativeTime$5, - mm: processRelativeTime$5, - h: processRelativeTime$5, - hh: processRelativeTime$5, - d: processRelativeTime$5, - dd: processRelativeTime$5, - M: processRelativeTime$5, - MM: processRelativeTime$5, - y: processRelativeTime$5, - yy: processRelativeTime$5, - }, - dayOfMonthOrdinalParse: /\d{1,2}(er)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) - }, - meridiemParse: /rati|sokallim|donparam|sanje/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokallim') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokallim'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - }, - }); - - //! moment.js locale configuration - - var symbolMap$7 = { - 1: '૧', - 2: '૨', - 3: '૩', - 4: '૪', - 5: '૫', - 6: '૬', - 7: '૭', - 8: '૮', - 9: '૯', - 0: '૦', - }, - numberMap$6 = { - '૧': '1', - '૨': '2', - '૩': '3', - '૪': '4', - '૫': '5', - '૬': '6', - '૭': '7', - '૮': '8', - '૯': '9', - '૦': '0', - }; - - hooks.defineLocale('gu', { - months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( - '_' - ), - monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( - '_' - ), - weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), - weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), - longDateFormat: { - LT: 'A h:mm વાગ્યે', - LTS: 'A h:mm:ss વાગ્યે', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm વાગ્યે', - LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', - }, - calendar: { - sameDay: '[આજ] LT', - nextDay: '[કાલે] LT', - nextWeek: 'dddd, LT', - lastDay: '[ગઇકાલે] LT', - lastWeek: '[પાછલા] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s મા', - past: '%s પહેલા', - s: 'અમુક પળો', - ss: '%d સેકંડ', - m: 'એક મિનિટ', - mm: '%d મિનિટ', - h: 'એક કલાક', - hh: '%d કલાક', - d: 'એક દિવસ', - dd: '%d દિવસ', - M: 'એક મહિનો', - MM: '%d મહિનો', - y: 'એક વર્ષ', - yy: '%d વર્ષ', - }, - preparse: function (string) { - return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { - return numberMap$6[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$7[match]; - }); - }, - // Gujarati notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. - meridiemParse: /રાત|બપોર|સવાર|સાંજ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'રાત') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'સવાર') { - return hour; - } else if (meridiem === 'બપોર') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'સાંજ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'રાત'; - } else if (hour < 10) { - return 'સવાર'; - } else if (hour < 17) { - return 'બપોર'; - } else if (hour < 20) { - return 'સાંજ'; - } else { - return 'રાત'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('he', { - months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( - '_' - ), - monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split( - '_' - ), - weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [ב]MMMM YYYY', - LLL: 'D [ב]MMMM YYYY HH:mm', - LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', - l: 'D/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[היום ב־]LT', - nextDay: '[מחר ב־]LT', - nextWeek: 'dddd [בשעה] LT', - lastDay: '[אתמול ב־]LT', - lastWeek: '[ביום] dddd [האחרון בשעה] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'בעוד %s', - past: 'לפני %s', - s: 'מספר שניות', - ss: '%d שניות', - m: 'דקה', - mm: '%d דקות', - h: 'שעה', - hh: function (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d: 'יום', - dd: function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M: 'חודש', - MM: function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y: 'שנה', - yy: function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - }, - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM: function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - }, - }); - - //! moment.js locale configuration - - var symbolMap$8 = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap$7 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }, - monthsParse$7 = [ - /^जन/i, - /^फ़र|फर/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सितं|सित/i, - /^अक्टू/i, - /^नव|नवं/i, - /^दिसं|दिस/i, - ], - shortMonthsParse = [ - /^जन/i, - /^फ़र/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सित/i, - /^अक्टू/i, - /^नव/i, - /^दिस/i, - ]; - - hooks.defineLocale('hi', { - months: { - format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( - '_' - ), - standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( - '_' - ), - }, - monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split( - '_' - ), - weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat: { - LT: 'A h:mm बजे', - LTS: 'A h:mm:ss बजे', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', - }, - - monthsParse: monthsParse$7, - longMonthsParse: monthsParse$7, - shortMonthsParse: shortMonthsParse, - - monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - - monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - - monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, - - monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, - - calendar: { - sameDay: '[आज] LT', - nextDay: '[कल] LT', - nextWeek: 'dddd, LT', - lastDay: '[कल] LT', - lastWeek: '[पिछले] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s में', - past: '%s पहले', - s: 'कुछ ही क्षण', - ss: '%d सेकंड', - m: 'एक मिनट', - mm: '%d मिनट', - h: 'एक घंटा', - hh: '%d घंटे', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महीने', - MM: '%d महीने', - y: 'एक वर्ष', - yy: '%d वर्ष', - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$7[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$8[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function translate$3(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } - } - - hooks.defineLocale('hr', { - months: { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( - '_' - ), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( - '_' - ), - }, - monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'Do MMMM YYYY', - LLL: 'Do MMMM YYYY H:mm', - LLLL: 'dddd, Do MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[prošlu] [nedjelju] [u] LT'; - case 3: - return '[prošlu] [srijedu] [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prošli] dddd [u] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate$3, - m: translate$3, - mm: translate$3, - h: translate$3, - hh: translate$3, - d: 'dan', - dd: translate$3, - M: 'mjesec', - MM: translate$3, - y: 'godinu', - yy: translate$3, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split( - ' ' - ); - function translate$4(number, withoutSuffix, key, isFuture) { - var num = number; - switch (key) { - case 's': - return isFuture || withoutSuffix - ? 'néhány másodperc' - : 'néhány másodperce'; - case 'ss': - return num + (isFuture || withoutSuffix) - ? ' másodperc' - : ' másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; - } - function week(isFuture) { - return ( - (isFuture ? '' : '[múlt] ') + - '[' + - weekEndings[this.day()] + - '] LT[-kor]' - ); - } - - hooks.defineLocale('hu', { - months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), - weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY. MMMM D.', - LLL: 'YYYY. MMMM D. H:mm', - LLLL: 'YYYY. MMMM D., dddd H:mm', - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar: { - sameDay: '[ma] LT[-kor]', - nextDay: '[holnap] LT[-kor]', - nextWeek: function () { - return week.call(this, true); - }, - lastDay: '[tegnap] LT[-kor]', - lastWeek: function () { - return week.call(this, false); - }, - sameElse: 'L', - }, - relativeTime: { - future: '%s múlva', - past: '%s', - s: translate$4, - ss: translate$4, - m: translate$4, - mm: translate$4, - h: translate$4, - hh: translate$4, - d: translate$4, - dd: translate$4, - M: translate$4, - MM: translate$4, - y: translate$4, - yy: translate$4, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('hy-am', { - months: { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( - '_' - ), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( - '_' - ), - }, - monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( - '_' - ), - weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY թ.', - LLL: 'D MMMM YYYY թ., HH:mm', - LLLL: 'dddd, D MMMM YYYY թ., HH:mm', - }, - calendar: { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - return '[անցած] dddd [օրը ժամը] LT'; - }, - sameElse: 'L', - }, - relativeTime: { - future: '%s հետո', - past: '%s առաջ', - s: 'մի քանի վայրկյան', - ss: '%d վայրկյան', - m: 'րոպե', - mm: '%d րոպե', - h: 'ժամ', - hh: '%d ժամ', - d: 'օր', - dd: '%d օր', - M: 'ամիս', - MM: '%d ամիս', - y: 'տարի', - yy: '%d տարի', - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem: function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('id', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Besok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kemarin pukul] LT', - lastWeek: 'dddd [lalu pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lalu', - s: 'beberapa detik', - ss: '%d detik', - m: 'semenit', - mm: '%d menit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural$2(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; - } - return true; - } - function translate$5(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nokkrar sekúndur' - : 'nokkrum sekúndum'; - case 'ss': - if (plural$2(number)) { - return ( - result + - (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') - ); - } - return result + 'sekúnda'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural$2(number)) { - return ( - result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') - ); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural$2(number)) { - return ( - result + - (withoutSuffix || isFuture - ? 'klukkustundir' - : 'klukkustundum') - ); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); - } - } - - hooks.defineLocale('is', { - months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), - weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( - '_' - ), - weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), - weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', - }, - calendar: { - sameDay: '[í dag kl.] LT', - nextDay: '[á morgun kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[í gær kl.] LT', - lastWeek: '[síðasta] dddd [kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'eftir %s', - past: 'fyrir %s síðan', - s: translate$5, - ss: translate$5, - m: translate$5, - mm: translate$5, - h: 'klukkustund', - hh: translate$5, - d: translate$5, - dd: translate$5, - M: translate$5, - MM: translate$5, - y: translate$5, - yy: translate$5, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('it-ch', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( - '_' - ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( - '_' - ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: function (s) { - return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; - }, - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('it', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( - '_' - ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( - '_' - ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: function () { - return ( - '[Oggi a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextDay: function () { - return ( - '[Domani a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextWeek: function () { - return ( - 'dddd [a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastDay: function () { - return ( - '[Ieri a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastWeek: function () { - switch (this.day()) { - case 0: - return ( - '[La scorsa] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); - default: - return ( - '[Lo scorso] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'tra %s', - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - w: 'una settimana', - ww: '%d settimane', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ja', { - eras: [ - { - since: '2019-05-01', - offset: 1, - name: '令和', - narrow: '㋿', - abbr: 'R', - }, - { - since: '1989-01-08', - until: '2019-04-30', - offset: 1, - name: '平成', - narrow: '㍻', - abbr: 'H', - }, - { - since: '1926-12-25', - until: '1989-01-07', - offset: 1, - name: '昭和', - narrow: '㍼', - abbr: 'S', - }, - { - since: '1912-07-30', - until: '1926-12-24', - offset: 1, - name: '大正', - narrow: '㍽', - abbr: 'T', - }, - { - since: '1873-01-01', - until: '1912-07-29', - offset: 6, - name: '明治', - narrow: '㍾', - abbr: 'M', - }, - { - since: '0001-01-01', - until: '1873-12-31', - offset: 1, - name: '西暦', - narrow: 'AD', - abbr: 'AD', - }, - { - since: '0000-12-31', - until: -Infinity, - offset: 1, - name: '紀元前', - narrow: 'BC', - abbr: 'BC', - }, - ], - eraYearOrdinalRegex: /(元|\d+)年/, - eraYearOrdinalParse: function (input, match) { - return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); - }, - months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), - weekdaysShort: '日_月_火_水_木_金_土'.split('_'), - weekdaysMin: '日_月_火_水_木_金_土'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日 dddd HH:mm', - l: 'YYYY/MM/DD', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日(ddd) HH:mm', - }, - meridiemParse: /午前|午後/i, - isPM: function (input) { - return input === '午後'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } - }, - calendar: { - sameDay: '[今日] LT', - nextDay: '[明日] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[来週]dddd LT'; - } else { - return 'dddd LT'; - } - }, - lastDay: '[昨日] LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[先週]dddd LT'; - } else { - return 'dddd LT'; - } - }, - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}日/, - ordinal: function (number, period) { - switch (period) { - case 'y': - return number === 1 ? '元年' : number + '年'; - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '数秒', - ss: '%d秒', - m: '1分', - mm: '%d分', - h: '1時間', - hh: '%d時間', - d: '1日', - dd: '%d日', - M: '1ヶ月', - MM: '%dヶ月', - y: '1年', - yy: '%d年', - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('jv', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; - } - }, - calendar: { - sameDay: '[Dinten puniko pukul] LT', - nextDay: '[Mbenjang pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kala wingi pukul] LT', - lastWeek: 'dddd [kepengker pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'wonten ing %s', - past: '%s ingkang kepengker', - s: 'sawetawis detik', - ss: '%d detik', - m: 'setunggal menit', - mm: '%d menit', - h: 'setunggal jam', - hh: '%d jam', - d: 'sedinten', - dd: '%d dinten', - M: 'sewulan', - MM: '%d wulan', - y: 'setaun', - yy: '%d taun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ka', { - months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( - '_' - ), - monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays: { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( - '_' - ), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( - '_' - ), - isFormat: /(წინა|შემდეგ)/, - }, - weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[დღეს] LT[-ზე]', - nextDay: '[ხვალ] LT[-ზე]', - lastDay: '[გუშინ] LT[-ზე]', - nextWeek: '[შემდეგ] dddd LT[-ზე]', - lastWeek: '[წინა] dddd LT-ზე', - sameElse: 'L', - }, - relativeTime: { - future: function (s) { - return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ( - $0, - $1, - $2 - ) { - return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; - }); - }, - past: function (s) { - if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { - return s.replace(/(ი|ე)$/, 'ის წინ'); - } - if (/წელი/.test(s)) { - return s.replace(/წელი$/, 'წლის წინ'); - } - return s; - }, - s: 'რამდენიმე წამი', - ss: '%d წამი', - m: 'წუთი', - mm: '%d წუთი', - h: 'საათი', - hh: '%d საათი', - d: 'დღე', - dd: '%d დღე', - M: 'თვე', - MM: '%d თვე', - y: 'წელი', - yy: '%d წელი', - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal: function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; - } - if ( - number < 20 || - (number <= 100 && number % 20 === 0) || - number % 100 === 0 - ) { - return 'მე-' + number; - } - return number + '-ე'; - }, - week: { - dow: 1, - doy: 7, - }, - }); - - //! moment.js locale configuration - - var suffixes$1 = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші', - }; - - hooks.defineLocale('kk', { - months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( - '_' - ), - monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( - '_' - ), - weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Бүгін сағат] LT', - nextDay: '[Ертең сағат] LT', - nextWeek: 'dddd [сағат] LT', - lastDay: '[Кеше сағат] LT', - lastWeek: '[Өткен аптаның] dddd [сағат] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ішінде', - past: '%s бұрын', - s: 'бірнеше секунд', - ss: '%d секунд', - m: 'бір минут', - mm: '%d минут', - h: 'бір сағат', - hh: '%d сағат', - d: 'бір күн', - dd: '%d күн', - M: 'бір ай', - MM: '%d ай', - y: 'бір жыл', - yy: '%d жыл', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$9 = { - 1: '១', - 2: '២', - 3: '៣', - 4: '៤', - 5: '៥', - 6: '៦', - 7: '៧', - 8: '៨', - 9: '៩', - 0: '០', - }, - numberMap$8 = { - '១': '1', - '២': '2', - '៣': '3', - '៤': '4', - '៥': '5', - '៦': '6', - '៧': '7', - '៨': '8', - '៩': '9', - '០': '0', - }; - - hooks.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( - '_' - ), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( - '_' - ), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /ព្រឹក|ល្ងាច/, - isPM: function (input) { - return input === 'ល្ងាច'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ព្រឹក'; - } else { - return 'ល្ងាច'; - } - }, - calendar: { - sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', - nextDay: '[ស្អែក ម៉ោង] LT', - nextWeek: 'dddd [ម៉ោង] LT', - lastDay: '[ម្សិលមិញ ម៉ោង] LT', - lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sទៀត', - past: '%sមុន', - s: 'ប៉ុន្មានវិនាទី', - ss: '%d វិនាទី', - m: 'មួយនាទី', - mm: '%d នាទី', - h: 'មួយម៉ោង', - hh: '%d ម៉ោង', - d: 'មួយថ្ងៃ', - dd: '%d ថ្ងៃ', - M: 'មួយខែ', - MM: '%d ខែ', - y: 'មួយឆ្នាំ', - yy: '%d ឆ្នាំ', - }, - dayOfMonthOrdinalParse: /ទី\d{1,2}/, - ordinal: 'ទី%d', - preparse: function (string) { - return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { - return numberMap$8[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$9[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$a = { - 1: '೧', - 2: '೨', - 3: '೩', - 4: '೪', - 5: '೫', - 6: '೬', - 7: '೭', - 8: '೮', - 9: '೯', - 0: '೦', - }, - numberMap$9 = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0', - }; - - hooks.defineLocale('kn', { - months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( - '_' - ), - monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( - '_' - ), - weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[ಇಂದು] LT', - nextDay: '[ನಾಳೆ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ನಿನ್ನೆ] LT', - lastWeek: '[ಕೊನೆಯ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ನಂತರ', - past: '%s ಹಿಂದೆ', - s: 'ಕೆಲವು ಕ್ಷಣಗಳು', - ss: '%d ಸೆಕೆಂಡುಗಳು', - m: 'ಒಂದು ನಿಮಿಷ', - mm: '%d ನಿಮಿಷ', - h: 'ಒಂದು ಗಂಟೆ', - hh: '%d ಗಂಟೆ', - d: 'ಒಂದು ದಿನ', - dd: '%d ದಿನ', - M: 'ಒಂದು ತಿಂಗಳು', - MM: '%d ತಿಂಗಳು', - y: 'ಒಂದು ವರ್ಷ', - yy: '%d ವರ್ಷ', - }, - preparse: function (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap$9[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$a[match]; - }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal: function (number) { - return number + 'ನೇ'; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ko', { - months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), - monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( - '_' - ), - weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), - weekdaysShort: '일_월_화_수_목_금_토'.split('_'), - weekdaysMin: '일_월_화_수_목_금_토'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY년 MMMM D일', - LLL: 'YYYY년 MMMM D일 A h:mm', - LLLL: 'YYYY년 MMMM D일 dddd A h:mm', - l: 'YYYY.MM.DD.', - ll: 'YYYY년 MMMM D일', - lll: 'YYYY년 MMMM D일 A h:mm', - llll: 'YYYY년 MMMM D일 dddd A h:mm', - }, - calendar: { - sameDay: '오늘 LT', - nextDay: '내일 LT', - nextWeek: 'dddd LT', - lastDay: '어제 LT', - lastWeek: '지난주 dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s 후', - past: '%s 전', - s: '몇 초', - ss: '%d초', - m: '1분', - mm: '%d분', - h: '한 시간', - hh: '%d시간', - d: '하루', - dd: '%d일', - M: '한 달', - MM: '%d달', - y: '일 년', - yy: '%d년', - }, - dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '일'; - case 'M': - return number + '월'; - case 'w': - case 'W': - return number + '주'; - default: - return number; - } - }, - meridiemParse: /오전|오후/, - isPM: function (token) { - return token === '오후'; - }, - meridiem: function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - }, - }); - - //! moment.js locale configuration - - var symbolMap$b = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap$a = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - months$8 = [ - 'کانونی دووەم', - 'شوبات', - 'ئازار', - 'نیسان', - 'ئایار', - 'حوزەیران', - 'تەمموز', - 'ئاب', - 'ئەیلوول', - 'تشرینی یەكەم', - 'تشرینی دووەم', - 'كانونی یەکەم', - ]; - - hooks.defineLocale('ku', { - months: months$8, - monthsShort: months$8, - weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( - '_' - ), - weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split( - '_' - ), - weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /ئێواره‌|به‌یانی/, - isPM: function (input) { - return /ئێواره‌/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'به‌یانی'; - } else { - return 'ئێواره‌'; - } - }, - calendar: { - sameDay: '[ئه‌مرۆ كاتژمێر] LT', - nextDay: '[به‌یانی كاتژمێر] LT', - nextWeek: 'dddd [كاتژمێر] LT', - lastDay: '[دوێنێ كاتژمێر] LT', - lastWeek: 'dddd [كاتژمێر] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'له‌ %s', - past: '%s', - s: 'چه‌ند چركه‌یه‌ك', - ss: 'چركه‌ %d', - m: 'یه‌ك خوله‌ك', - mm: '%d خوله‌ك', - h: 'یه‌ك كاتژمێر', - hh: '%d كاتژمێر', - d: 'یه‌ك ڕۆژ', - dd: '%d ڕۆژ', - M: 'یه‌ك مانگ', - MM: '%d مانگ', - y: 'یه‌ك ساڵ', - yy: '%d ساڵ', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap$a[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap$b[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes$2 = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү', - }; - - hooks.defineLocale('ky', { - months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( - '_' - ), - weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( - '_' - ), - weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Бүгүн саат] LT', - nextDay: '[Эртең саат] LT', - nextWeek: 'dddd [саат] LT', - lastDay: '[Кечээ саат] LT', - lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ичинде', - past: '%s мурун', - s: 'бирнече секунд', - ss: '%d секунд', - m: 'бир мүнөт', - mm: '%d мүнөт', - h: 'бир саат', - hh: '%d саат', - d: 'бир күн', - dd: '%d күн', - M: 'бир ай', - MM: '%d ай', - y: 'бир жыл', - yy: '%d жыл', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$6(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eng Minutt', 'enger Minutt'], - h: ['eng Stonn', 'enger Stonn'], - d: ['een Dag', 'engem Dag'], - M: ['ee Mount', 'engem Mount'], - y: ['ee Joer', 'engem Joer'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; - } - function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; - } - /** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} - */ - function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, - firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; - } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); - } - } - - hooks.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( - '_' - ), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', - }, - calendar: { - sameDay: '[Haut um] LT', - sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - }, - }, - relativeTime: { - future: processFutureTime, - past: processPastTime, - s: 'e puer Sekonnen', - ss: '%d Sekonnen', - m: processRelativeTime$6, - mm: '%d Minutten', - h: processRelativeTime$6, - hh: '%d Stonnen', - d: processRelativeTime$6, - dd: '%d Deeg', - M: processRelativeTime$6, - MM: '%d Méint', - y: processRelativeTime$6, - yy: '%d Joer', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('lo', { - months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( - '_' - ), - monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( - '_' - ), - weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'ວັນdddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - calendar: { - sameDay: '[ມື້ນີ້ເວລາ] LT', - nextDay: '[ມື້ອື່ນເວລາ] LT', - nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', - lastDay: '[ມື້ວານນີ້ເວລາ] LT', - lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ອີກ %s', - past: '%sຜ່ານມາ', - s: 'ບໍ່ເທົ່າໃດວິນາທີ', - ss: '%d ວິນາທີ', - m: '1 ນາທີ', - mm: '%d ນາທີ', - h: '1 ຊົ່ວໂມງ', - hh: '%d ຊົ່ວໂມງ', - d: '1 ມື້', - dd: '%d ມື້', - M: '1 ເດືອນ', - MM: '%d ເດືອນ', - y: '1 ປີ', - yy: '%d ປີ', - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal: function (number) { - return 'ທີ່' + number; - }, - }); - - //! moment.js locale configuration - - var units = { - ss: 'sekundė_sekundžių_sekundes', - m: 'minutė_minutės_minutę', - mm: 'minutės_minučių_minutes', - h: 'valanda_valandos_valandą', - hh: 'valandos_valandų_valandas', - d: 'diena_dienos_dieną', - dd: 'dienos_dienų_dienas', - M: 'mėnuo_mėnesio_mėnesį', - MM: 'mėnesiai_mėnesių_mėnesius', - y: 'metai_metų_metus', - yy: 'metai_metų_metus', - }; - function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } - } - function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix - ? forms(key)[0] - : isFuture - ? forms(key)[1] - : forms(key)[2]; - } - function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); - } - function forms(key) { - return units[key].split('_'); - } - function translate$6(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return ( - result + translateSingular(number, withoutSuffix, key[0], isFuture) - ); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } - } - hooks.defineLocale('lt', { - months: { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( - '_' - ), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( - '_' - ), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, - }, - monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays: { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( - '_' - ), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( - '_' - ), - isFormat: /dddd HH:mm/, - }, - weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY [m.] MMMM D [d.]', - LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l: 'YYYY-MM-DD', - ll: 'YYYY [m.] MMMM D [d.]', - lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', - }, - calendar: { - sameDay: '[Šiandien] LT', - nextDay: '[Rytoj] LT', - nextWeek: 'dddd LT', - lastDay: '[Vakar] LT', - lastWeek: '[Praėjusį] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: 'po %s', - past: 'prieš %s', - s: translateSeconds, - ss: translate$6, - m: translateSingular, - mm: translate$6, - h: translateSingular, - hh: translate$6, - d: translateSingular, - dd: translate$6, - M: translateSingular, - MM: translate$6, - y: translateSingular, - yy: translate$6, - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal: function (number) { - return number + '-oji'; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var units$1 = { - ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), - m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - h: 'stundas_stundām_stunda_stundas'.split('_'), - hh: 'stundas_stundām_stunda_stundas'.split('_'), - d: 'dienas_dienām_diena_dienas'.split('_'), - dd: 'dienas_dienām_diena_dienas'.split('_'), - M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - y: 'gada_gadiem_gads_gadi'.split('_'), - yy: 'gada_gadiem_gads_gadi'.split('_'), - }; - /** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ - function format$1(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } - } - function relativeTimeWithPlural$1(number, withoutSuffix, key) { - return number + ' ' + format$1(units$1[key], number, withoutSuffix); - } - function relativeTimeWithSingular(number, withoutSuffix, key) { - return format$1(units$1[key], number, withoutSuffix); - } - function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; - } - - hooks.defineLocale('lv', { - months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( - '_' - ), - weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY.', - LL: 'YYYY. [gada] D. MMMM', - LLL: 'YYYY. [gada] D. MMMM, HH:mm', - LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', - }, - calendar: { - sameDay: '[Šodien pulksten] LT', - nextDay: '[Rīt pulksten] LT', - nextWeek: 'dddd [pulksten] LT', - lastDay: '[Vakar pulksten] LT', - lastWeek: '[Pagājušā] dddd [pulksten] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'pēc %s', - past: 'pirms %s', - s: relativeSeconds, - ss: relativeTimeWithPlural$1, - m: relativeTimeWithSingular, - mm: relativeTimeWithPlural$1, - h: relativeTimeWithSingular, - hh: relativeTimeWithPlural$1, - d: relativeTimeWithSingular, - dd: relativeTimeWithPlural$1, - M: relativeTimeWithSingular, - MM: relativeTimeWithPlural$1, - y: relativeTimeWithSingular, - yy: relativeTimeWithPlural$1, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var translator = { - words: { - //Different grammatical cases - ss: ['sekund', 'sekunda', 'sekundi'], - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - hooks.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra u] LT', - - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[juče u] LT', - lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'nekoliko sekundi', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'dan', - dd: translator.translate, - M: 'mjesec', - MM: translator.translate, - y: 'godinu', - yy: translator.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( - '_' - ), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( - '_' - ), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm', - }, - calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - ss: '%d hēkona', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('mk', { - months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( - '_' - ), - weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Денес во] LT', - nextDay: '[Утре во] LT', - nextWeek: '[Во] dddd [во] LT', - lastDay: '[Вчера во] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Изминатата] dddd [во] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Изминатиот] dddd [во] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: 'пред %s', - s: 'неколку секунди', - ss: '%d секунди', - m: 'една минута', - mm: '%d минути', - h: 'еден час', - hh: '%d часа', - d: 'еден ден', - dd: '%d дена', - M: 'еден месец', - MM: '%d месеци', - y: 'една година', - yy: '%d години', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ml', { - months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( - '_' - ), - monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( - '_' - ), - weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat: { - LT: 'A h:mm -നു', - LTS: 'A h:mm:ss -നു', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm -നു', - LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', - }, - calendar: { - sameDay: '[ഇന്ന്] LT', - nextDay: '[നാളെ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ഇന്നലെ] LT', - lastWeek: '[കഴിഞ്ഞ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s കഴിഞ്ഞ്', - past: '%s മുൻപ്', - s: 'അൽപ നിമിഷങ്ങൾ', - ss: '%d സെക്കൻഡ്', - m: 'ഒരു മിനിറ്റ്', - mm: '%d മിനിറ്റ്', - h: 'ഒരു മണിക്കൂർ', - hh: '%d മണിക്കൂർ', - d: 'ഒരു ദിവസം', - dd: '%d ദിവസം', - M: 'ഒരു മാസം', - MM: '%d മാസം', - y: 'ഒരു വർഷം', - yy: '%d വർഷം', - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - }, - }); - - //! moment.js locale configuration - - function translate$7(number, withoutSuffix, key, isFuture) { - switch (key) { - case 's': - return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; - case 'ss': - return number + (withoutSuffix ? ' секунд' : ' секундын'); - case 'm': - case 'mm': - return number + (withoutSuffix ? ' минут' : ' минутын'); - case 'h': - case 'hh': - return number + (withoutSuffix ? ' цаг' : ' цагийн'); - case 'd': - case 'dd': - return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); - case 'M': - case 'MM': - return number + (withoutSuffix ? ' сар' : ' сарын'); - case 'y': - case 'yy': - return number + (withoutSuffix ? ' жил' : ' жилийн'); - default: - return number; - } - } - - hooks.defineLocale('mn', { - months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( - '_' - ), - monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), - weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), - weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY оны MMMMын D', - LLL: 'YYYY оны MMMMын D HH:mm', - LLLL: 'dddd, YYYY оны MMMMын D HH:mm', - }, - meridiemParse: /ҮӨ|ҮХ/i, - isPM: function (input) { - return input === 'ҮХ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ҮӨ'; - } else { - return 'ҮХ'; - } - }, - calendar: { - sameDay: '[Өнөөдөр] LT', - nextDay: '[Маргааш] LT', - nextWeek: '[Ирэх] dddd LT', - lastDay: '[Өчигдөр] LT', - lastWeek: '[Өнгөрсөн] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s дараа', - past: '%s өмнө', - s: translate$7, - ss: translate$7, - m: translate$7, - mm: translate$7, - h: translate$7, - hh: translate$7, - d: translate$7, - dd: translate$7, - M: translate$7, - MM: translate$7, - y: translate$7, - yy: translate$7, - }, - dayOfMonthOrdinalParse: /\d{1,2} өдөр/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + ' өдөр'; - default: - return number; - } - }, - }); - - //! moment.js locale configuration - - var symbolMap$c = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap$b = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; - - function relativeTimeMr(number, withoutSuffix, string, isFuture) { - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': - output = 'काही सेकंद'; - break; - case 'ss': - output = '%d सेकंद'; - break; - case 'm': - output = 'एक मिनिट'; - break; - case 'mm': - output = '%d मिनिटे'; - break; - case 'h': - output = 'एक तास'; - break; - case 'hh': - output = '%d तास'; - break; - case 'd': - output = 'एक दिवस'; - break; - case 'dd': - output = '%d दिवस'; - break; - case 'M': - output = 'एक महिना'; - break; - case 'MM': - output = '%d महिने'; - break; - case 'y': - output = 'एक वर्ष'; - break; - case 'yy': - output = '%d वर्षे'; - break; - } - } else { - switch (string) { - case 's': - output = 'काही सेकंदां'; - break; - case 'ss': - output = '%d सेकंदां'; - break; - case 'm': - output = 'एका मिनिटा'; - break; - case 'mm': - output = '%d मिनिटां'; - break; - case 'h': - output = 'एका तासा'; - break; - case 'hh': - output = '%d तासां'; - break; - case 'd': - output = 'एका दिवसा'; - break; - case 'dd': - output = '%d दिवसां'; - break; - case 'M': - output = 'एका महिन्या'; - break; - case 'MM': - output = '%d महिन्यां'; - break; - case 'y': - output = 'एका वर्षा'; - break; - case 'yy': - output = '%d वर्षां'; - break; - } - } - return output.replace(/%d/i, number); - } - - hooks.defineLocale('mr', { - months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( - '_' - ), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat: { - LT: 'A h:mm वाजता', - LTS: 'A h:mm:ss वाजता', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm वाजता', - LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', - }, - calendar: { - sameDay: '[आज] LT', - nextDay: '[उद्या] LT', - nextWeek: 'dddd, LT', - lastDay: '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - ss: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr, - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$b[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$c[match]; - }); - }, - meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { - return hour; - } else if ( - meridiem === 'दुपारी' || - meridiem === 'सायंकाळी' || - meridiem === 'रात्री' - ) { - return hour >= 12 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour >= 0 && hour < 6) { - return 'पहाटे'; - } else if (hour < 12) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ms-my', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ms', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('mt', { - months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( - '_' - ), - monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), - weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( - '_' - ), - weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), - weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Illum fil-]LT', - nextDay: '[Għada fil-]LT', - nextWeek: 'dddd [fil-]LT', - lastDay: '[Il-bieraħ fil-]LT', - lastWeek: 'dddd [li għadda] [fil-]LT', - sameElse: 'L', - }, - relativeTime: { - future: 'f’ %s', - past: '%s ilu', - s: 'ftit sekondi', - ss: '%d sekondi', - m: 'minuta', - mm: '%d minuti', - h: 'siegħa', - hh: '%d siegħat', - d: 'ġurnata', - dd: '%d ġranet', - M: 'xahar', - MM: '%d xhur', - y: 'sena', - yy: '%d sni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$d = { - 1: '၁', - 2: '၂', - 3: '၃', - 4: '၄', - 5: '၅', - 6: '၆', - 7: '၇', - 8: '၈', - 9: '၉', - 0: '၀', - }, - numberMap$c = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0', - }; - - hooks.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( - '_' - ), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( - '_' - ), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[ယနေ.] LT [မှာ]', - nextDay: '[မနက်ဖြန်] LT [မှာ]', - nextWeek: 'dddd LT [မှာ]', - lastDay: '[မနေ.က] LT [မှာ]', - lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', - sameElse: 'L', - }, - relativeTime: { - future: 'လာမည့် %s မှာ', - past: 'လွန်ခဲ့သော %s က', - s: 'စက္ကန်.အနည်းငယ်', - ss: '%d စက္ကန့်', - m: 'တစ်မိနစ်', - mm: '%d မိနစ်', - h: 'တစ်နာရီ', - hh: '%d နာရီ', - d: 'တစ်ရက်', - dd: '%d ရက်', - M: 'တစ်လ', - MM: '%d လ', - y: 'တစ်နှစ်', - yy: '%d နှစ်', - }, - preparse: function (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap$c[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$d[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('nb', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[forrige] dddd [kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'noen sekunder', - ss: '%d sekunder', - m: 'ett minutt', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dager', - w: 'en uke', - ww: '%d uker', - M: 'en måned', - MM: '%d måneder', - y: 'ett år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$e = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap$d = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; - - hooks.defineLocale('ne', { - months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( - '_' - ), - monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( - '_' - ), - weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'Aको h:mm बजे', - LTS: 'Aको h:mm:ss बजे', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, Aको h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$d[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$e[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - calendar: { - sameDay: '[आज] LT', - nextDay: '[भोलि] LT', - nextWeek: '[आउँदो] dddd[,] LT', - lastDay: '[हिजो] LT', - lastWeek: '[गएको] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sमा', - past: '%s अगाडि', - s: 'केही क्षण', - ss: '%d सेकेण्ड', - m: 'एक मिनेट', - mm: '%d मिनेट', - h: 'एक घण्टा', - hh: '%d घण्टा', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महिना', - MM: '%d महिना', - y: 'एक बर्ष', - yy: '%d बर्ष', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse$8 = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex$8 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - hooks.defineLocale('nl-be', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots$1; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$1[m.month()]; - } else { - return monthsShortWithDots$1[m.month()]; - } - }, - - monthsRegex: monthsRegex$8, - monthsShortRegex: monthsRegex$8, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse: monthsParse$8, - longMonthsParse: monthsParse$8, - shortMonthsParse: monthsParse$8, - - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( - '_' - ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse$9 = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex$9 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - hooks.defineLocale('nl', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots$2; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$2[m.month()]; - } else { - return monthsShortWithDots$2[m.month()]; - } - }, - - monthsRegex: monthsRegex$9, - monthsShortRegex: monthsRegex$9, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse: monthsParse$9, - longMonthsParse: monthsParse$9, - shortMonthsParse: monthsParse$9, - - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( - '_' - ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - w: 'één week', - ww: '%d weken', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('nn', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), - weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), - weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s sidan', - s: 'nokre sekund', - ss: '%d sekund', - m: 'eit minutt', - mm: '%d minutt', - h: 'ein time', - hh: '%d timar', - d: 'ein dag', - dd: '%d dagar', - w: 'ei veke', - ww: '%d veker', - M: 'ein månad', - MM: '%d månader', - y: 'eit år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('oc-lnc', { - months: { - standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( - '_' - ), - format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( - '_' - ), - weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', - llll: 'ddd D MMM YYYY, H:mm', - }, - calendar: { - sameDay: '[uèi a] LT', - nextDay: '[deman a] LT', - nextWeek: 'dddd [a] LT', - lastDay: '[ièr a] LT', - lastWeek: 'dddd [passat a] LT', - sameElse: 'L', - }, - relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'unas segondas', - ss: '%d segondas', - m: 'una minuta', - mm: '%d minutas', - h: 'una ora', - hh: '%d oras', - d: 'un jorn', - dd: '%d jorns', - M: 'un mes', - MM: '%d meses', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, - }, - }); - - //! moment.js locale configuration - - var symbolMap$f = { - 1: '੧', - 2: '੨', - 3: '੩', - 4: '੪', - 5: '੫', - 6: '੬', - 7: '੭', - 8: '੮', - 9: '੯', - 0: '੦', - }, - numberMap$e = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0', - }; - - hooks.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. - months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( - '_' - ), - weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat: { - LT: 'A h:mm ਵਜੇ', - LTS: 'A h:mm:ss ਵਜੇ', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', - }, - calendar: { - sameDay: '[ਅਜ] LT', - nextDay: '[ਕਲ] LT', - nextWeek: '[ਅਗਲਾ] dddd, LT', - lastDay: '[ਕਲ] LT', - lastWeek: '[ਪਿਛਲੇ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ਵਿੱਚ', - past: '%s ਪਿਛਲੇ', - s: 'ਕੁਝ ਸਕਿੰਟ', - ss: '%d ਸਕਿੰਟ', - m: 'ਇਕ ਮਿੰਟ', - mm: '%d ਮਿੰਟ', - h: 'ਇੱਕ ਘੰਟਾ', - hh: '%d ਘੰਟੇ', - d: 'ਇੱਕ ਦਿਨ', - dd: '%d ਦਿਨ', - M: 'ਇੱਕ ਮਹੀਨਾ', - MM: '%d ਮਹੀਨੇ', - y: 'ਇੱਕ ਸਾਲ', - yy: '%d ਸਾਲ', - }, - preparse: function (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap$e[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$f[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( - '_' - ), - monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( - '_' - ), - monthsParse$a = [ - /^sty/i, - /^lut/i, - /^mar/i, - /^kwi/i, - /^maj/i, - /^cze/i, - /^lip/i, - /^sie/i, - /^wrz/i, - /^paź/i, - /^lis/i, - /^gru/i, - ]; - function plural$3(n) { - return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; - } - function translate$8(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - return result + (plural$3(number) ? 'sekundy' : 'sekund'); - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural$3(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural$3(number) ? 'godziny' : 'godzin'); - case 'ww': - return result + (plural$3(number) ? 'tygodnie' : 'tygodni'); - case 'MM': - return result + (plural$3(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural$3(number) ? 'lata' : 'lat'); - } - } - - hooks.defineLocale('pl', { - months: function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.month()]; - } - }, - monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), - monthsParse: monthsParse$a, - longMonthsParse: monthsParse$a, - shortMonthsParse: monthsParse$a, - weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split( - '_' - ), - weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Dziś o] LT', - nextDay: '[Jutro o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[W niedzielę o] LT'; - - case 2: - return '[We wtorek o] LT'; - - case 3: - return '[W środę o] LT'; - - case 6: - return '[W sobotę o] LT'; - - default: - return '[W] dddd [o] LT'; - } - }, - lastDay: '[Wczoraj o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[W zeszłą niedzielę o] LT'; - case 3: - return '[W zeszłą środę o] LT'; - case 6: - return '[W zeszłą sobotę o] LT'; - default: - return '[W zeszły] dddd [o] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: '%s temu', - s: 'kilka sekund', - ss: translate$8, - m: translate$8, - mm: translate$8, - h: translate$8, - hh: translate$8, - d: '1 dzień', - dd: '%d dni', - w: 'tydzień', - ww: translate$8, - M: 'miesiąc', - MM: translate$8, - y: 'rok', - yy: translate$8, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('pt-br', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( - '_' - ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( - '_' - ), - weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), - weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', - }, - calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L', - }, - relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'poucos segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - invalidDate: 'Data inválida', - }); - - //! moment.js locale configuration - - hooks.defineLocale('pt', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( - '_' - ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( - '_' - ), - weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), - weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', - }, - calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L', - }, - relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - w: 'uma semana', - ww: '%d semanas', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function relativeTimeWithPlural$2(number, withoutSuffix, key) { - var format = { - ss: 'secunde', - mm: 'minute', - hh: 'ore', - dd: 'zile', - ww: 'săptămâni', - MM: 'luni', - yy: 'ani', - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; - } - - hooks.defineLocale('ro', { - months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( - '_' - ), - monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), - weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), - weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[azi la] LT', - nextDay: '[mâine la] LT', - nextWeek: 'dddd [la] LT', - lastDay: '[ieri la] LT', - lastWeek: '[fosta] dddd [la] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'peste %s', - past: '%s în urmă', - s: 'câteva secunde', - ss: relativeTimeWithPlural$2, - m: 'un minut', - mm: relativeTimeWithPlural$2, - h: 'o oră', - hh: relativeTimeWithPlural$2, - d: 'o zi', - dd: relativeTimeWithPlural$2, - w: 'o săptămână', - ww: relativeTimeWithPlural$2, - M: 'o lună', - MM: relativeTimeWithPlural$2, - y: 'un an', - yy: relativeTimeWithPlural$2, - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural$4(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural$3(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - hh: 'час_часа_часов', - dd: 'день_дня_дней', - ww: 'неделя_недели_недель', - MM: 'месяц_месяца_месяцев', - yy: 'год_года_лет', - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } else { - return number + ' ' + plural$4(format[key], +number); - } - } - var monthsParse$b = [ - /^янв/i, - /^фев/i, - /^мар/i, - /^апр/i, - /^ма[йя]/i, - /^июн/i, - /^июл/i, - /^авг/i, - /^сен/i, - /^окт/i, - /^ноя/i, - /^дек/i, - ]; - - // http://new.gramota.ru/spravka/rules/139-prop : § 103 - // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 - // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 - hooks.defineLocale('ru', { - months: { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( - '_' - ), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - }, - monthsShort: { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( - '_' - ), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( - '_' - ), - }, - weekdays: { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( - '_' - ), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( - '_' - ), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, - }, - weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse: monthsParse$b, - longMonthsParse: monthsParse$b, - shortMonthsParse: monthsParse$b, - - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - - // Выражение, которое соответствует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., H:mm', - LLLL: 'dddd, D MMMM YYYY г., H:mm', - }, - calendar: { - sameDay: '[Сегодня, в] LT', - nextDay: '[Завтра, в] LT', - lastDay: '[Вчера, в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В следующее] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В следующий] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В следующую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В прошлое] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В прошлый] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В прошлую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'через %s', - past: '%s назад', - s: 'несколько секунд', - ss: relativeTimeWithPlural$3, - m: relativeTimeWithPlural$3, - mm: relativeTimeWithPlural$3, - h: 'час', - hh: relativeTimeWithPlural$3, - d: 'день', - dd: relativeTimeWithPlural$3, - w: 'неделя', - ww: relativeTimeWithPlural$3, - M: 'месяц', - MM: relativeTimeWithPlural$3, - y: 'год', - yy: relativeTimeWithPlural$3, - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM: function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - return number + '-й'; - case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$9 = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر', - ], - days$1 = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; - - hooks.defineLocale('sd', { - months: months$9, - monthsShort: months$9, - weekdays: days$1, - weekdaysShort: days$1, - weekdaysMin: days$1, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', - }, - meridiemParse: /صبح|شام/, - isPM: function (input) { - return 'شام' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar: { - sameDay: '[اڄ] LT', - nextDay: '[سڀاڻي] LT', - nextWeek: 'dddd [اڳين هفتي تي] LT', - lastDay: '[ڪالهه] LT', - lastWeek: '[گزريل هفتي] dddd [تي] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s پوء', - past: '%s اڳ', - s: 'چند سيڪنڊ', - ss: '%d سيڪنڊ', - m: 'هڪ منٽ', - mm: '%d منٽ', - h: 'هڪ ڪلاڪ', - hh: '%d ڪلاڪ', - d: 'هڪ ڏينهن', - dd: '%d ڏينهن', - M: 'هڪ مهينو', - MM: '%d مهينا', - y: 'هڪ سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('se', { - months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( - '_' - ), - monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split( - '_' - ), - weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( - '_' - ), - weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin: 's_v_m_g_d_b_L'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'MMMM D. [b.] YYYY', - LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', - }, - calendar: { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s geažes', - past: 'maŋit %s', - s: 'moadde sekunddat', - ss: '%d sekunddat', - m: 'okta minuhta', - mm: '%d minuhtat', - h: 'okta diimmu', - hh: '%d diimmut', - d: 'okta beaivi', - dd: '%d beaivvit', - M: 'okta mánnu', - MM: '%d mánut', - y: 'okta jahki', - yy: '%d jagit', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - /*jshint -W100*/ - hooks.defineLocale('si', { - months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( - '_' - ), - monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( - '_' - ), - weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( - '_' - ), - weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'a h:mm', - LTS: 'a h:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY MMMM D', - LLL: 'YYYY MMMM D, a h:mm', - LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', - }, - calendar: { - sameDay: '[අද] LT[ට]', - nextDay: '[හෙට] LT[ට]', - nextWeek: 'dddd LT[ට]', - lastDay: '[ඊයේ] LT[ට]', - lastWeek: '[පසුගිය] dddd LT[ට]', - sameElse: 'L', - }, - relativeTime: { - future: '%sකින්', - past: '%sකට පෙර', - s: 'තත්පර කිහිපය', - ss: 'තත්පර %d', - m: 'මිනිත්තුව', - mm: 'මිනිත්තු %d', - h: 'පැය', - hh: 'පැය %d', - d: 'දිනය', - dd: 'දින %d', - M: 'මාසය', - MM: 'මාස %d', - y: 'වසර', - yy: 'වසර %d', - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal: function (number) { - return number + ' වැනි'; - }, - meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM: function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - }, - }); - - //! moment.js locale configuration - - var months$a = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( - '_' - ), - monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); - function plural$5(n) { - return n > 1 && n < 5; - } - function translate$9(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'sekundy' : 'sekúnd'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - } - } - - hooks.defineLocale('sk', { - months: months$a, - monthsShort: monthsShort$7, - weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), - weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), - weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[dnes o] LT', - nextDay: '[zajtra o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v nedeľu o] LT'; - case 1: - case 2: - return '[v] dddd [o] LT'; - case 3: - return '[v stredu o] LT'; - case 4: - return '[vo štvrtok o] LT'; - case 5: - return '[v piatok o] LT'; - case 6: - return '[v sobotu o] LT'; - } - }, - lastDay: '[včera o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulú nedeľu o] LT'; - case 1: - case 2: - return '[minulý] dddd [o] LT'; - case 3: - return '[minulú stredu o] LT'; - case 4: - case 5: - return '[minulý] dddd [o] LT'; - case 6: - return '[minulú sobotu o] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'pred %s', - s: translate$9, - ss: translate$9, - m: translate$9, - mm: translate$9, - h: translate$9, - hh: translate$9, - d: translate$9, - dd: translate$9, - M: translate$9, - MM: translate$9, - y: translate$9, - yy: translate$9, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function processRelativeTime$7(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nekaj sekund' - : 'nekaj sekundami'; - case 'ss': - if (number === 1) { - result += withoutSuffix ? 'sekundo' : 'sekundi'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; - } else { - result += 'sekund'; - } - return result; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; - } - } - - hooks.defineLocale('sl', { - months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), - weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), - weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD. MM. YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danes ob] LT', - nextDay: '[jutri ob] LT', - - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v] [nedeljo] [ob] LT'; - case 3: - return '[v] [sredo] [ob] LT'; - case 6: - return '[v] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[v] dddd [ob] LT'; - } - }, - lastDay: '[včeraj ob] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'čez %s', - past: 'pred %s', - s: processRelativeTime$7, - ss: processRelativeTime$7, - m: processRelativeTime$7, - mm: processRelativeTime$7, - h: processRelativeTime$7, - hh: processRelativeTime$7, - d: processRelativeTime$7, - dd: processRelativeTime$7, - M: processRelativeTime$7, - MM: processRelativeTime$7, - y: processRelativeTime$7, - yy: processRelativeTime$7, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('sq', { - months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( - '_' - ), - monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), - weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( - '_' - ), - weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), - weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), - weekdaysParseExact: true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem: function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Sot në] LT', - nextDay: '[Nesër në] LT', - nextWeek: 'dddd [në] LT', - lastDay: '[Dje në] LT', - lastWeek: 'dddd [e kaluar në] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'në %s', - past: '%s më parë', - s: 'disa sekonda', - ss: '%d sekonda', - m: 'një minutë', - mm: '%d minuta', - h: 'një orë', - hh: '%d orë', - d: 'një ditë', - dd: '%d ditë', - M: 'një muaj', - MM: '%d muaj', - y: 'një vit', - yy: '%d vite', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var translator$1 = { - words: { - //Different grammatical cases - ss: ['секунда', 'секунде', 'секунди'], - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$1.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator$1.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - hooks.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( - '_' - ), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', - }, - calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay: '[јуче у] LT', - lastWeek: function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: 'пре %s', - s: 'неколико секунди', - ss: translator$1.translate, - m: translator$1.translate, - mm: translator$1.translate, - h: translator$1.translate, - hh: translator$1.translate, - d: 'дан', - dd: translator$1.translate, - M: 'месец', - MM: translator$1.translate, - y: 'годину', - yy: translator$1.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var translator$2 = { - words: { - //Different grammatical cases - ss: ['sekunda', 'sekunde', 'sekundi'], - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$2.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator$2.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - hooks.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[juče u] LT', - lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'pre %s', - s: 'nekoliko sekundi', - ss: translator$2.translate, - m: translator$2.translate, - mm: translator$2.translate, - h: translator$2.translate, - hh: translator$2.translate, - d: 'dan', - dd: translator$2.translate, - M: 'mesec', - MM: translator$2.translate, - y: 'godinu', - yy: translator$2.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ss', { - months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( - '_' - ), - monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( - '_' - ), - weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Namuhla nga] LT', - nextDay: '[Kusasa nga] LT', - nextWeek: 'dddd [nga] LT', - lastDay: '[Itolo nga] LT', - lastWeek: 'dddd [leliphelile] [nga] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'nga %s', - past: 'wenteka nga %s', - s: 'emizuzwana lomcane', - ss: '%d mzuzwana', - m: 'umzuzu', - mm: '%d emizuzu', - h: 'lihora', - hh: '%d emahora', - d: 'lilanga', - dd: '%d emalanga', - M: 'inyanga', - MM: '%d tinyanga', - y: 'umnyaka', - yy: '%d iminyaka', - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: '%d', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('sv', { - months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), - weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), - weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: 'för %s sedan', - s: 'några sekunder', - ss: '%d sekunder', - m: 'en minut', - mm: '%d minuter', - h: 'en timme', - hh: '%d timmar', - d: 'en dag', - dd: '%d dagar', - M: 'en månad', - MM: '%d månader', - y: 'ett år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? ':e' - : b === 1 - ? ':a' - : b === 2 - ? ':a' - : b === 3 - ? ':e' - : ':e'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('sw', { - months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( - '_' - ), - weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'hh:mm A', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[leo saa] LT', - nextDay: '[kesho saa] LT', - nextWeek: '[wiki ijayo] dddd [saat] LT', - lastDay: '[jana] LT', - lastWeek: '[wiki iliyopita] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s baadaye', - past: 'tokea %s', - s: 'hivi punde', - ss: 'sekunde %d', - m: 'dakika moja', - mm: 'dakika %d', - h: 'saa limoja', - hh: 'masaa %d', - d: 'siku moja', - dd: 'siku %d', - M: 'mwezi mmoja', - MM: 'miezi %d', - y: 'mwaka mmoja', - yy: 'miaka %d', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var symbolMap$g = { - 1: '௧', - 2: '௨', - 3: '௩', - 4: '௪', - 5: '௫', - 6: '௬', - 7: '௭', - 8: '௮', - 9: '௯', - 0: '௦', - }, - numberMap$f = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0', - }; - - hooks.defineLocale('ta', { - months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( - '_' - ), - weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( - '_' - ), - weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, HH:mm', - LLLL: 'dddd, D MMMM YYYY, HH:mm', - }, - calendar: { - sameDay: '[இன்று] LT', - nextDay: '[நாளை] LT', - nextWeek: 'dddd, LT', - lastDay: '[நேற்று] LT', - lastWeek: '[கடந்த வாரம்] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s இல்', - past: '%s முன்', - s: 'ஒரு சில விநாடிகள்', - ss: '%d விநாடிகள்', - m: 'ஒரு நிமிடம்', - mm: '%d நிமிடங்கள்', - h: 'ஒரு மணி நேரம்', - hh: '%d மணி நேரம்', - d: 'ஒரு நாள்', - dd: '%d நாட்கள்', - M: 'ஒரு மாதம்', - MM: '%d மாதங்கள்', - y: 'ஒரு வருடம்', - yy: '%d ஆண்டுகள்', - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal: function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap$f[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$g[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem: function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('te', { - months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( - '_' - ), - monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( - '_' - ), - weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[నేడు] LT', - nextDay: '[రేపు] LT', - nextWeek: 'dddd, LT', - lastDay: '[నిన్న] LT', - lastWeek: '[గత] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s లో', - past: '%s క్రితం', - s: 'కొన్ని క్షణాలు', - ss: '%d సెకన్లు', - m: 'ఒక నిమిషం', - mm: '%d నిమిషాలు', - h: 'ఒక గంట', - hh: '%d గంటలు', - d: 'ఒక రోజు', - dd: '%d రోజులు', - M: 'ఒక నెల', - MM: '%d నెలలు', - y: 'ఒక సంవత్సరం', - yy: '%d సంవత్సరాలు', - }, - dayOfMonthOrdinalParse: /\d{1,2}వ/, - ordinal: '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('tet', { - months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( - '_' - ), - monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), - weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), - weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), - weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'iha %s', - past: '%s liuba', - s: 'segundu balun', - ss: 'segundu %d', - m: 'minutu ida', - mm: 'minutu %d', - h: 'oras ida', - hh: 'oras %d', - d: 'loron ida', - dd: 'loron %d', - M: 'fulan ida', - MM: 'fulan %d', - y: 'tinan ida', - yy: 'tinan %d', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes$3 = { - 0: '-ум', - 1: '-ум', - 2: '-юм', - 3: '-юм', - 4: '-ум', - 5: '-ум', - 6: '-ум', - 7: '-ум', - 8: '-ум', - 9: '-ум', - 10: '-ум', - 12: '-ум', - 13: '-ум', - 20: '-ум', - 30: '-юм', - 40: '-ум', - 50: '-ум', - 60: '-ум', - 70: '-ум', - 80: '-ум', - 90: '-ум', - 100: '-ум', - }; - - hooks.defineLocale('tg', { - months: { - format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( - '_' - ), - standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - }, - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( - '_' - ), - weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), - weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Имрӯз соати] LT', - nextDay: '[Фардо соати] LT', - lastDay: '[Дирӯз соати] LT', - nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', - lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'баъди %s', - past: '%s пеш', - s: 'якчанд сония', - m: 'як дақиқа', - mm: '%d дақиқа', - h: 'як соат', - hh: '%d соат', - d: 'як рӯз', - dd: '%d рӯз', - M: 'як моҳ', - MM: '%d моҳ', - y: 'як сол', - yy: '%d сол', - }, - meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'шаб') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'субҳ') { - return hour; - } else if (meridiem === 'рӯз') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'бегоҳ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'шаб'; - } else if (hour < 11) { - return 'субҳ'; - } else if (hour < 16) { - return 'рӯз'; - } else if (hour < 19) { - return 'бегоҳ'; - } else { - return 'шаб'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('th', { - months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( - '_' - ), - monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY เวลา H:mm', - LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - calendar: { - sameDay: '[วันนี้ เวลา] LT', - nextDay: '[พรุ่งนี้ เวลา] LT', - nextWeek: 'dddd[หน้า เวลา] LT', - lastDay: '[เมื่อวานนี้ เวลา] LT', - lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'อีก %s', - past: '%sที่แล้ว', - s: 'ไม่กี่วินาที', - ss: '%d วินาที', - m: '1 นาที', - mm: '%d นาที', - h: '1 ชั่วโมง', - hh: '%d ชั่วโมง', - d: '1 วัน', - dd: '%d วัน', - w: '1 สัปดาห์', - ww: '%d สัปดาห์', - M: '1 เดือน', - MM: '%d เดือน', - y: '1 ปี', - yy: '%d ปี', - }, - }); - - //! moment.js locale configuration - - var suffixes$4 = { - 1: "'inji", - 5: "'inji", - 8: "'inji", - 70: "'inji", - 80: "'inji", - 2: "'nji", - 7: "'nji", - 20: "'nji", - 50: "'nji", - 3: "'ünji", - 4: "'ünji", - 100: "'ünji", - 6: "'njy", - 9: "'unjy", - 10: "'unjy", - 30: "'unjy", - 60: "'ynjy", - 90: "'ynjy", - }; - - hooks.defineLocale('tk', { - months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( - '_' - ), - monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), - weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( - '_' - ), - weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), - weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün sagat] LT', - nextDay: '[ertir sagat] LT', - nextWeek: '[indiki] dddd [sagat] LT', - lastDay: '[düýn] LT', - lastWeek: '[geçen] dddd [sagat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s soň', - past: '%s öň', - s: 'birnäçe sekunt', - m: 'bir minut', - mm: '%d minut', - h: 'bir sagat', - hh: '%d sagat', - d: 'bir gün', - dd: '%d gün', - M: 'bir aý', - MM: '%d aý', - y: 'bir ýyl', - yy: '%d ýyl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'unjy"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('tl-ph', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( - '_' - ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', - }, - calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L', - }, - relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); - - function translateFuture(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'leS' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'waQ' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'nem' - : time + ' pIq'; - return time; - } - - function translatePast(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'Hu’' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'wen' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'ben' - : time + ' ret'; - return time; - } - - function translate$a(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'ss': - return numberNoun + ' lup'; - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } - } - - function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[one]; - } - return word === '' ? 'pagh' : word; - } - - hooks.defineLocale('tlh', { - months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( - '_' - ), - monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L', - }, - relativeTime: { - future: translateFuture, - past: translatePast, - s: 'puS lup', - ss: translate$a, - m: 'wa’ tup', - mm: translate$a, - h: 'wa’ rep', - hh: translate$a, - d: 'wa’ jaj', - dd: translate$a, - M: 'wa’ jar', - MM: translate$a, - y: 'wa’ DIS', - yy: translate$a, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var suffixes$5 = { - 1: "'inci", - 5: "'inci", - 8: "'inci", - 70: "'inci", - 80: "'inci", - 2: "'nci", - 7: "'nci", - 20: "'nci", - 50: "'nci", - 3: "'üncü", - 4: "'üncü", - 100: "'üncü", - 6: "'ncı", - 9: "'uncu", - 10: "'uncu", - 30: "'uncu", - 60: "'ıncı", - 90: "'ıncı", - }; - - hooks.defineLocale('tr', { - months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( - '_' - ), - monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), - weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( - '_' - ), - weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'), - weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'öö' : 'ÖÖ'; - } else { - return isLower ? 'ös' : 'ÖS'; - } - }, - meridiemParse: /öö|ÖÖ|ös|ÖS/, - isPM: function (input) { - return input === 'ös' || input === 'ÖS'; - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[yarın saat] LT', - nextWeek: '[gelecek] dddd [saat] LT', - lastDay: '[dün] LT', - lastWeek: '[geçen] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s sonra', - past: '%s önce', - s: 'birkaç saniye', - ss: '%d saniye', - m: 'bir dakika', - mm: '%d dakika', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - w: 'bir hafta', - ww: '%d hafta', - M: 'bir ay', - MM: '%d ay', - y: 'bir yıl', - yy: '%d yıl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'ıncı"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. - // This is currently too difficult (maybe even impossible) to add. - hooks.defineLocale('tzl', { - months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( - '_' - ), - monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM [dallas] YYYY', - LLL: 'D. MMMM [dallas] YYYY HH.mm', - LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', - }, - meridiemParse: /d\'o|d\'a/i, - isPM: function (input) { - return "d'o" === input.toLowerCase(); - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? "d'o" : "D'O"; - } else { - return isLower ? "d'a" : "D'A"; - } - }, - calendar: { - sameDay: '[oxhi à] LT', - nextDay: '[demà à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[ieiri à] LT', - lastWeek: '[sür el] dddd [lasteu à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'osprei %s', - past: 'ja%s', - s: processRelativeTime$8, - ss: processRelativeTime$8, - m: processRelativeTime$8, - mm: processRelativeTime$8, - h: processRelativeTime$8, - hh: processRelativeTime$8, - d: processRelativeTime$8, - dd: processRelativeTime$8, - M: processRelativeTime$8, - MM: processRelativeTime$8, - y: processRelativeTime$8, - yy: processRelativeTime$8, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - function processRelativeTime$8(number, withoutSuffix, key, isFuture) { - var format = { - s: ['viensas secunds', "'iensas secunds"], - ss: [number + ' secunds', '' + number + ' secunds'], - m: ["'n míut", "'iens míut"], - mm: [number + ' míuts', '' + number + ' míuts'], - h: ["'n þora", "'iensa þora"], - hh: [number + ' þoras', '' + number + ' þoras'], - d: ["'n ziua", "'iensa ziua"], - dd: [number + ' ziuas', '' + number + ' ziuas'], - M: ["'n mes", "'iens mes"], - MM: [number + ' mesen', '' + number + ' mesen'], - y: ["'n ar", "'iens ar"], - yy: [number + ' ars', '' + number + ' ars'], - }; - return isFuture - ? format[key][0] - : withoutSuffix - ? format[key][0] - : format[key][1]; - } - - //! moment.js locale configuration - - hooks.defineLocale('tzm-latn', { - months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[asdkh g] LT', - nextDay: '[aska g] LT', - nextWeek: 'dddd [g] LT', - lastDay: '[assant g] LT', - lastWeek: 'dddd [g] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dadkh s yan %s', - past: 'yan %s', - s: 'imik', - ss: '%d imik', - m: 'minuḍ', - mm: '%d minuḍ', - h: 'saɛa', - hh: '%d tassaɛin', - d: 'ass', - dd: '%d ossan', - M: 'ayowr', - MM: '%d iyyirn', - y: 'asgas', - yy: '%d isgasn', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('tzm', { - months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', - nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', - nextWeek: 'dddd [ⴴ] LT', - lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', - lastWeek: 'dddd [ⴴ] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', - past: 'ⵢⴰⵏ %s', - s: 'ⵉⵎⵉⴽ', - ss: '%d ⵉⵎⵉⴽ', - m: 'ⵎⵉⵏⵓⴺ', - mm: '%d ⵎⵉⵏⵓⴺ', - h: 'ⵙⴰⵄⴰ', - hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', - d: 'ⴰⵙⵙ', - dd: '%d oⵙⵙⴰⵏ', - M: 'ⴰⵢoⵓⵔ', - MM: '%d ⵉⵢⵢⵉⵔⵏ', - y: 'ⴰⵙⴳⴰⵙ', - yy: '%d ⵉⵙⴳⴰⵙⵏ', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('ug-cn', { - months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( - '_' - ), - weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', - LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - }, - meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - meridiem === 'يېرىم كېچە' || - meridiem === 'سەھەر' || - meridiem === 'چۈشتىن بۇرۇن' - ) { - return hour; - } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { - return hour + 12; - } else { - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return 'يېرىم كېچە'; - } else if (hm < 900) { - return 'سەھەر'; - } else if (hm < 1130) { - return 'چۈشتىن بۇرۇن'; - } else if (hm < 1230) { - return 'چۈش'; - } else if (hm < 1800) { - return 'چۈشتىن كېيىن'; - } else { - return 'كەچ'; - } - }, - calendar: { - sameDay: '[بۈگۈن سائەت] LT', - nextDay: '[ئەتە سائەت] LT', - nextWeek: '[كېلەركى] dddd [سائەت] LT', - lastDay: '[تۆنۈگۈن] LT', - lastWeek: '[ئالدىنقى] dddd [سائەت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s كېيىن', - past: '%s بۇرۇن', - s: 'نەچچە سېكونت', - ss: '%d سېكونت', - m: 'بىر مىنۇت', - mm: '%d مىنۇت', - h: 'بىر سائەت', - hh: '%d سائەت', - d: 'بىر كۈن', - dd: '%d كۈن', - M: 'بىر ئاي', - MM: '%d ئاي', - y: 'بىر يىل', - yy: '%d يىل', - }, - - dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '-كۈنى'; - case 'w': - case 'W': - return number + '-ھەپتە'; - default: - return number; - } - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. - }, - }); - - //! moment.js locale configuration - - function plural$6(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural$4(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', - mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - dd: 'день_дні_днів', - MM: 'місяць_місяці_місяців', - yy: 'рік_роки_років', - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } else { - return number + ' ' + plural$6(format[key], +number); - } - } - function weekdaysCaseReplace(m, format) { - var weekdays = { - nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( - '_' - ), - accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( - '_' - ), - genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( - '_' - ), - }, - nounCase; - - if (m === true) { - return weekdays['nominative'] - .slice(1, 7) - .concat(weekdays['nominative'].slice(0, 1)); - } - if (!m) { - return weekdays['nominative']; - } - - nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) - ? 'accusative' - : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) - ? 'genitive' - : 'nominative'; - return weekdays[nounCase][m.day()]; - } - function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; - } - - hooks.defineLocale('uk', { - months: { - format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( - '_' - ), - standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( - '_' - ), - }, - monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( - '_' - ), - weekdays: weekdaysCaseReplace, - weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY р.', - LLL: 'D MMMM YYYY р., HH:mm', - LLLL: 'dddd, D MMMM YYYY р., HH:mm', - }, - calendar: { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: '%s тому', - s: 'декілька секунд', - ss: relativeTimeWithPlural$4, - m: relativeTimeWithPlural$4, - mm: relativeTimeWithPlural$4, - h: 'годину', - hh: relativeTimeWithPlural$4, - d: 'день', - dd: relativeTimeWithPlural$4, - M: 'місяць', - MM: relativeTimeWithPlural$4, - y: 'рік', - yy: relativeTimeWithPlural$4, - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - var months$b = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر', - ], - days$2 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; - - hooks.defineLocale('ur', { - months: months$b, - monthsShort: months$b, - weekdays: days$2, - weekdaysShort: days$2, - weekdaysMin: days$2, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', - }, - meridiemParse: /صبح|شام/, - isPM: function (input) { - return 'شام' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar: { - sameDay: '[آج بوقت] LT', - nextDay: '[کل بوقت] LT', - nextWeek: 'dddd [بوقت] LT', - lastDay: '[گذشتہ روز بوقت] LT', - lastWeek: '[گذشتہ] dddd [بوقت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s بعد', - past: '%s قبل', - s: 'چند سیکنڈ', - ss: '%d سیکنڈ', - m: 'ایک منٹ', - mm: '%d منٹ', - h: 'ایک گھنٹہ', - hh: '%d گھنٹے', - d: 'ایک دن', - dd: '%d دن', - M: 'ایک ماہ', - MM: '%d ماہ', - y: 'ایک سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('uz-latn', { - months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( - '_' - ), - monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( - '_' - ), - weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Bugun soat] LT [da]', - nextDay: '[Ertaga] LT [da]', - nextWeek: 'dddd [kuni soat] LT [da]', - lastDay: '[Kecha soat] LT [da]', - lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", - sameElse: 'L', - }, - relativeTime: { - future: 'Yaqin %s ichida', - past: 'Bir necha %s oldin', - s: 'soniya', - ss: '%d soniya', - m: 'bir daqiqa', - mm: '%d daqiqa', - h: 'bir soat', - hh: '%d soat', - d: 'bir kun', - dd: '%d kun', - M: 'bir oy', - MM: '%d oy', - y: 'bir yil', - yy: '%d yil', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('uz', { - months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Бугун соат] LT [да]', - nextDay: '[Эртага] LT [да]', - nextWeek: 'dddd [куни соат] LT [да]', - lastDay: '[Кеча соат] LT [да]', - lastWeek: '[Утган] dddd [куни соат] LT [да]', - sameElse: 'L', - }, - relativeTime: { - future: 'Якин %s ичида', - past: 'Бир неча %s олдин', - s: 'фурсат', - ss: '%d фурсат', - m: 'бир дакика', - mm: '%d дакика', - h: 'бир соат', - hh: '%d соат', - d: 'бир кун', - dd: '%d кун', - M: 'бир ой', - MM: '%d ой', - y: 'бир йил', - yy: '%d йил', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('vi', { - months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( - '_' - ), - monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( - '_' - ), - weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact: true, - meridiemParse: /sa|ch/i, - isPM: function (input) { - return /^ch$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [năm] YYYY', - LLL: 'D MMMM [năm] YYYY HH:mm', - LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', - l: 'DD/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần trước lúc] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s tới', - past: '%s trước', - s: 'vài giây', - ss: '%d giây', - m: 'một phút', - mm: '%d phút', - h: 'một giờ', - hh: '%d giờ', - d: 'một ngày', - dd: '%d ngày', - w: 'một tuần', - ww: '%d tuần', - M: 'một tháng', - MM: '%d tháng', - y: 'một năm', - yy: '%d năm', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('x-pseudo', { - months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( - '_' - ), - monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( - '_' - ), - weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[T~ódá~ý át] LT', - nextDay: '[T~ómó~rró~w át] LT', - nextWeek: 'dddd [át] LT', - lastDay: '[Ý~ést~érdá~ý át] LT', - lastWeek: '[L~ást] dddd [át] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'í~ñ %s', - past: '%s á~gó', - s: 'á ~féw ~sécó~ñds', - ss: '%d s~écóñ~ds', - m: 'á ~míñ~úté', - mm: '%d m~íñú~tés', - h: 'á~ñ hó~úr', - hh: '%d h~óúrs', - d: 'á ~dáý', - dd: '%d d~áýs', - M: 'á ~móñ~th', - MM: '%d m~óñt~hs', - y: 'á ~ýéár', - yy: '%d ý~éárs', - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('yo', { - months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( - '_' - ), - monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Ònì ni] LT', - nextDay: '[Ọ̀la ni] LT', - nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", - lastDay: '[Àna ni] LT', - lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ní %s', - past: '%s kọjá', - s: 'ìsẹjú aayá die', - ss: 'aayá %d', - m: 'ìsẹjú kan', - mm: 'ìsẹjú %d', - h: 'wákati kan', - hh: 'wákati %d', - d: 'ọjọ́ kan', - dd: 'ọjọ́ %d', - M: 'osù kan', - MM: 'osù %d', - y: 'ọdún kan', - yy: 'ọdún %d', - }, - dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, - ordinal: 'ọjọ́ %d', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('zh-cn', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日Ah点mm分', - LLLL: 'YYYY年M月D日ddddAh点mm分', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[下]dddLT'; - } else { - return '[本]dddLT'; - } - }, - lastDay: '[昨天]LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[上]dddLT'; - } else { - return '[本]dddLT'; - } - }, - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - relativeTime: { - future: '%s后', - past: '%s前', - s: '几秒', - ss: '%d 秒', - m: '1 分钟', - mm: '%d 分钟', - h: '1 小时', - hh: '%d 小时', - d: '1 天', - dd: '%d 天', - w: '1 周', - ww: '%d 周', - M: '1 个月', - MM: '%d 个月', - y: '1 年', - yy: '%d 年', - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('zh-hk', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1200) { - return '上午'; - } else if (hm === 1200) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: '[下]ddddLT', - lastDay: '[昨天]LT', - lastWeek: '[上]ddddLT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('zh-mo', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'D/M/YYYY', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s內', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); - - //! moment.js locale configuration - - hooks.defineLocale('zh-tw', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); - - hooks.locale('en'); - - return hooks; - -}))); diff --git a/plugins/moment/moment-with-locales.min.js.map b/plugins/moment/moment-with-locales.min.js.map deleted file mode 100644 index 60839512..00000000 --- a/plugins/moment/moment-with-locales.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"moment-with-locales.min.js","sources":["moment-with-locales.js"],"names":["global","factory","exports","module","define","amd","moment","this","hookCallback","some","hooks","apply","arguments","isArray","input","Array","Object","prototype","toString","call","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","i","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","m","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","key","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","s","tokens","addParseToken","addWeekParseToken","_w","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","dayOfYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","n","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","d","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","day","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","getSetHour","globalLocale","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","h","hh","dd","w","ww","M","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","chooseLocale","names","j","next","loadLocale","arr1","arr2","minl","commonPrefix","oldLocale","_abbr","require","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","checkOverflow","_a","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","configFromRFC2822","parsedArray","weekdayStr","parsedInput","getDay","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ms","setFullYear","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","isUTC","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","base","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","filter","item","isNumberOrStringArray","property","objectTest","propertyTest","properties","isMomentInputObject","monthDiff","wholeMonthDiff","anchor","adjust","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","time","formats","isCalendarSpec","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","Symbol","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","Infinity","isFormat","_monthsShort","monthName","_monthsParseExact","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParseExact","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","relativeTime$1","posNegDuration","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","pluralForm","pluralize","f","str","plurals","months$1","weekdaysParseExact","pluralForm$1","pluralize$1","plurals$1","symbolMap","1","2","3","4","5","6","7","8","9","0","months$2","symbolMap$1","numberMap","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","pluralForm$2","pluralize$2","plurals$2","symbolMap$2","numberMap$1","months$3","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","num","forms","standalone","lastDigit","last2Digits","symbolMap$3","numberMap$2","১","২","৩","৪","৫","৬","৭","৮","৯","০","symbolMap$4","numberMap$3","symbolMap$5","numberMap$4","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","relativeTimeWithMutation","text","mutationTable","substring","softMutation","monthsParseExact","monthsRegex$1","minWeekdaysParse","translate","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","ll","lll","llll","months$4","monthsParse$1","monthsRegex$2","plural$1","translate$1","processRelativeTime","processRelativeTime$1","processRelativeTime$2","months$5","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","monthsShort$1","monthsParse$2","monthsRegex$3","monthsShortDot$1","monthsShort$2","monthsParse$3","monthsRegex$4","monthsShortDot$2","monthsShort$3","monthsParse$4","monthsRegex$5","monthsShortDot$3","monthsShort$4","monthsParse$5","monthsRegex$6","processRelativeTime$3","symbolMap$6","numberMap$5","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","numbersPast","numbersFuture","translate$2","monthsRegex$7","monthsParse$6","monthsShortWithDots","monthsShortWithoutDots","processRelativeTime$4","processRelativeTime$5","symbolMap$7","numberMap$6","૧","૨","૩","૪","૫","૬","૭","૮","૯","૦","symbolMap$8","numberMap$7","१","२","३","४","५","६","७","८","९","०","monthsParse$7","translate$3","weekEndings","translate$4","plural$2","translate$5","eraYearOrdinalRegex","$0","$1","$2","suffixes$1","40","symbolMap$9","numberMap$8","១","២","៣","៤","៥","៦","៧","៨","៩","០","symbolMap$a","numberMap$9","೧","೨","೩","೪","೫","೬","೭","೮","೯","೦","isUpper","symbolMap$b","numberMap$a","months$8","suffixes$2","processRelativeTime$6","eifelerRegelAppliesToNumber","translateSingular","special","translate$6","units$1","format$1","relativeTimeWithPlural$1","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","translate$7","symbolMap$c","numberMap$b","relativeTimeMr","symbolMap$d","numberMap$c","၁","၂","၃","၄","၅","၆","၇","၈","၉","၀","symbolMap$e","numberMap$d","monthsShortWithDots$1","monthsShortWithoutDots$1","monthsParse$8","monthsRegex$8","monthsShortWithDots$2","monthsShortWithoutDots$2","monthsParse$9","monthsRegex$9","symbolMap$f","numberMap$e","੧","੨","੩","੪","੫","੬","੭","੮","੯","੦","monthsNominative","monthsSubjective","monthsParse$a","plural$3","translate$8","relativeTimeWithPlural$2","relativeTimeWithPlural$3","monthsParse$b","months$9","days$1","months$a","monthsShort$7","plural$5","translate$9","processRelativeTime$7","translator$1","translator$2","symbolMap$g","numberMap$f","௧","௨","௩","௪","௫","௬","௭","௮","௯","௦","suffixes$3","12","13","suffixes$4","numbersNouns","translate$a","numberNoun","hundred","ten","one","word","numberAsNoun","suffixes$5","processRelativeTime$8","relativeTimeWithPlural$4","processHoursFunction","nominative","accusative","genitive","months$b","days$2"],"mappings":"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"} \ No newline at end of file diff --git a/plugins/moment/moment.min.js.map b/plugins/moment/moment.min.js.map deleted file mode 100644 index 63a72d8f..00000000 --- a/plugins/moment/moment.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"moment.min.js","sources":["../moment.js"],"names":["global","factory","exports","module","define","amd","moment","this","hookCallback","some","hooks","apply","arguments","isArray","input","Array","Object","prototype","toString","call","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","i","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","m","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","key","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","s","tokens","addParseToken","addWeekParseToken","_w","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","dayOfYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","n","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","d","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","day","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","getSetHour","globalLocale","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","h","hh","dd","w","ww","M","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","chooseLocale","names","j","next","loadLocale","arr1","arr2","minl","commonPrefix","oldLocale","_abbr","require","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","checkOverflow","_a","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","configFromRFC2822","parsedArray","weekdayStr","parsedInput","getDay","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ms","setFullYear","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","isUTC","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","base","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","filter","item","isNumberOrStringArray","property","objectTest","propertyTest","properties","isMomentInputObject","monthDiff","wholeMonthDiff","anchor","adjust","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","time","formats","isCalendarSpec","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","Symbol","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","Infinity","isFormat","_monthsShort","monthName","_monthsParseExact","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParseExact","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","relativeTime$1","posNegDuration","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS"],"mappings":"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"} \ No newline at end of file diff --git a/plugins/summernote/summernote-bs4.css b/plugins/summernote/summernote-bs4.css deleted file mode 100644 index 5ccc7e7b..00000000 --- a/plugins/summernote/summernote-bs4.css +++ /dev/null @@ -1,822 +0,0 @@ -/*! - * - * Super simple WYSIWYG editor v0.8.20 - * https://summernote.org - * - * - * Copyright 2013- Alan Hong and contributors - * Summernote may be freely distributed under the MIT license. - * - * Date: 2021-10-14T21:15Z - * - */ -@font-face { - font-family: "summernote"; - font-style: normal; - font-weight: 400; - font-display: auto; - src: url("./font/summernote.eot?#iefix") format("embedded-opentype"), url("./font/summernote.woff2") format("woff2"), url("./font/summernote.woff") format("woff"), url("./font/summernote.ttf") format("truetype"); -} -[class^=note-icon]:before, -[class*=" note-icon"]:before { - display: inline-block; - font-family: "summernote"; - font-style: normal; - font-size: inherit; - text-decoration: inherit; - text-rendering: auto; - text-transform: none; - vertical-align: middle; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - speak: none; -} - -.note-icon-fw { - text-align: center; - width: 1.25em; -} - -.note-icon-border { - border: solid 0.08em #eee; - border-radius: 0.1em; - padding: 0.2em 0.25em 0.15em; -} - -.note-icon-pull-left { - float: left; -} - -.note-icon-pull-right { - float: right; -} - -.note-icon.note-icon-pull-left { - margin-right: 0.3em; -} -.note-icon.note-icon-pull-right { - margin-left: 0.3em; -} - -.note-icon-align::before { - content: "\ea01"; -} - -.note-icon-align-center::before { - content: "\ea02"; -} - -.note-icon-align-indent::before { - content: "\ea03"; -} - -.note-icon-align-justify::before { - content: "\ea04"; -} - -.note-icon-align-left::before { - content: "\ea05"; -} - -.note-icon-align-outdent::before { - content: "\ea06"; -} - -.note-icon-align-right::before { - content: "\ea07"; -} - -.note-icon-arrow-circle-down::before { - content: "\ea08"; -} - -.note-icon-arrow-circle-left::before { - content: "\ea09"; -} - -.note-icon-arrow-circle-right::before { - content: "\ea0a"; -} - -.note-icon-arrow-circle-up::before { - content: "\ea0b"; -} - -.note-icon-arrows-alt::before { - content: "\ea0c"; -} - -.note-icon-arrows-h::before { - content: "\ea0d"; -} - -.note-icon-arrows-v::before { - content: "\ea0e"; -} - -.note-icon-bold::before { - content: "\ea0f"; -} - -.note-icon-caret::before { - content: "\ea10"; -} - -.note-icon-chain-broken::before { - content: "\ea11"; -} - -.note-icon-circle::before { - content: "\ea12"; -} - -.note-icon-close::before { - content: "\ea13"; -} - -.note-icon-code::before { - content: "\ea14"; -} - -.note-icon-col-after::before { - content: "\ea15"; -} - -.note-icon-col-before::before { - content: "\ea16"; -} - -.note-icon-col-remove::before { - content: "\ea17"; -} - -.note-icon-eraser::before { - content: "\ea18"; -} - -.note-icon-float-left::before { - content: "\ea19"; -} - -.note-icon-float-none::before { - content: "\ea1a"; -} - -.note-icon-float-right::before { - content: "\ea1b"; -} - -.note-icon-font::before { - content: "\ea1c"; -} - -.note-icon-frame::before { - content: "\ea1d"; -} - -.note-icon-italic::before { - content: "\ea1e"; -} - -.note-icon-link::before { - content: "\ea1f"; -} - -.note-icon-magic::before { - content: "\ea20"; -} - -.note-icon-menu-check::before { - content: "\ea21"; -} - -.note-icon-minus::before { - content: "\ea22"; -} - -.note-icon-orderedlist::before { - content: "\ea23"; -} - -.note-icon-pencil::before { - content: "\ea24"; -} - -.note-icon-picture::before { - content: "\ea25"; -} - -.note-icon-question::before { - content: "\ea26"; -} - -.note-icon-redo::before { - content: "\ea27"; -} - -.note-icon-rollback::before { - content: "\ea28"; -} - -.note-icon-row-above::before { - content: "\ea29"; -} - -.note-icon-row-below::before { - content: "\ea2a"; -} - -.note-icon-row-remove::before { - content: "\ea2b"; -} - -.note-icon-special-character::before { - content: "\ea2c"; -} - -.note-icon-square::before { - content: "\ea2d"; -} - -.note-icon-strikethrough::before { - content: "\ea2e"; -} - -.note-icon-subscript::before { - content: "\ea2f"; -} - -.note-icon-summernote::before { - content: "\ea30"; -} - -.note-icon-superscript::before { - content: "\ea31"; -} - -.note-icon-table::before { - content: "\ea32"; -} - -.note-icon-text-height::before { - content: "\ea33"; -} - -.note-icon-trash::before { - content: "\ea34"; -} - -.note-icon-underline::before { - content: "\ea35"; -} - -.note-icon-undo::before { - content: "\ea36"; -} - -.note-icon-unorderedlist::before { - content: "\ea37"; -} - -.note-icon-video::before { - content: "\ea38"; -} - -/* Theme Variables - ------------------------------------------ */ -/* Layout - ------------------------------------------ */ -.note-editor { - position: relative; -} -.note-editor .note-dropzone { - position: absolute; - display: none; - z-index: 100; - color: lightskyblue; - background-color: #fff; - opacity: 0.95; -} -.note-editor .note-dropzone .note-dropzone-message { - display: table-cell; - vertical-align: middle; - text-align: center; - font-size: 28px; - font-weight: 700; -} -.note-editor .note-dropzone.hover { - color: #098ddf; -} -.note-editor.dragover .note-dropzone { - display: table; -} -.note-editor .note-editing-area { - position: relative; -} -.note-editor .note-editing-area .note-editable { - outline: none; -} -.note-editor .note-editing-area .note-editable sup { - vertical-align: super; -} -.note-editor .note-editing-area .note-editable sub { - vertical-align: sub; -} -.note-editor .note-editing-area .note-editable img.note-float-left { - margin-right: 10px; -} -.note-editor .note-editing-area .note-editable img.note-float-right { - margin-left: 10px; -} - -/* Frame mode layout - ------------------------------------------ */ -.note-editor.note-frame, -.note-editor.note-airframe { - border: 1px solid #00000032; -} -.note-editor.note-frame.codeview .note-editing-area .note-editable, -.note-editor.note-airframe.codeview .note-editing-area .note-editable { - display: none; -} -.note-editor.note-frame.codeview .note-editing-area .note-codable, -.note-editor.note-airframe.codeview .note-editing-area .note-codable { - display: block; -} -.note-editor.note-frame .note-editing-area, -.note-editor.note-airframe .note-editing-area { - overflow: hidden; -} -.note-editor.note-frame .note-editing-area .note-editable, -.note-editor.note-airframe .note-editing-area .note-editable { - padding: 10px; - overflow: auto; - word-wrap: break-word; -} -.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false], -.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false] { - background-color: #8080801d; -} -.note-editor.note-frame .note-editing-area .note-codable, -.note-editor.note-airframe .note-editing-area .note-codable { - display: none; - width: 100%; - padding: 10px; - border: none; - box-shadow: none; - font-family: Menlo, Monaco, monospace, sans-serif; - font-size: 14px; - color: #ccc; - background-color: #222; - resize: none; - outline: none; - -ms-box-sizing: border-box; - box-sizing: border-box; - border-radius: 0; - margin-bottom: 0; -} -.note-editor.note-frame.fullscreen, -.note-editor.note-airframe.fullscreen { - position: fixed; - top: 0; - left: 0; - width: 100% !important; - z-index: 1050; -} -.note-editor.note-frame.fullscreen .note-resizebar, -.note-editor.note-airframe.fullscreen .note-resizebar { - display: none; -} -.note-editor.note-frame .note-status-output, -.note-editor.note-airframe .note-status-output { - display: block; - width: 100%; - font-size: 14px; - line-height: 1.42857143; - height: 20px; - margin-bottom: 0; - color: #000; - border: 0; - border-top: 1px solid #e2e2e2; -} -.note-editor.note-frame .note-status-output:empty, -.note-editor.note-airframe .note-status-output:empty { - height: 0; - border-top: 0 solid transparent; -} -.note-editor.note-frame .note-status-output .pull-right, -.note-editor.note-airframe .note-status-output .pull-right { - float: right !important; -} -.note-editor.note-frame .note-status-output .text-muted, -.note-editor.note-airframe .note-status-output .text-muted { - color: #777; -} -.note-editor.note-frame .note-status-output .text-primary, -.note-editor.note-airframe .note-status-output .text-primary { - color: #286090; -} -.note-editor.note-frame .note-status-output .text-success, -.note-editor.note-airframe .note-status-output .text-success { - color: #3c763d; -} -.note-editor.note-frame .note-status-output .text-info, -.note-editor.note-airframe .note-status-output .text-info { - color: #31708f; -} -.note-editor.note-frame .note-status-output .text-warning, -.note-editor.note-airframe .note-status-output .text-warning { - color: #8a6d3b; -} -.note-editor.note-frame .note-status-output .text-danger, -.note-editor.note-airframe .note-status-output .text-danger { - color: #a94442; -} -.note-editor.note-frame .note-status-output .alert, -.note-editor.note-airframe .note-status-output .alert { - margin: -7px 0 0 0; - padding: 7px 10px 2px 10px; - border-radius: 0; - color: #000; - background-color: #f5f5f5; -} -.note-editor.note-frame .note-status-output .alert .note-icon, -.note-editor.note-airframe .note-status-output .alert .note-icon { - margin-right: 5px; -} -.note-editor.note-frame .note-status-output .alert-success, -.note-editor.note-airframe .note-status-output .alert-success { - color: #3c763d !important; - background-color: #dff0d8 !important; -} -.note-editor.note-frame .note-status-output .alert-info, -.note-editor.note-airframe .note-status-output .alert-info { - color: #31708f !important; - background-color: #d9edf7 !important; -} -.note-editor.note-frame .note-status-output .alert-warning, -.note-editor.note-airframe .note-status-output .alert-warning { - color: #8a6d3b !important; - background-color: #fcf8e3 !important; -} -.note-editor.note-frame .note-status-output .alert-danger, -.note-editor.note-airframe .note-status-output .alert-danger { - color: #a94442 !important; - background-color: #f2dede !important; -} -.note-editor.note-frame .note-statusbar, -.note-editor.note-airframe .note-statusbar { - background-color: #8080801d; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-top: 1px solid #00000032; -} -.note-editor.note-frame .note-statusbar .note-resizebar, -.note-editor.note-airframe .note-statusbar .note-resizebar { - padding-top: 1px; - height: 9px; - width: 100%; - cursor: ns-resize; -} -.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar, -.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar { - width: 20px; - margin: 1px auto; - border-top: 1px solid #00000032; -} -.note-editor.note-frame .note-statusbar.locked .note-resizebar, -.note-editor.note-airframe .note-statusbar.locked .note-resizebar { - cursor: default; -} -.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar, -.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar { - display: none; -} -.note-editor.note-frame .note-placeholder, -.note-editor.note-airframe .note-placeholder { - padding: 10px; -} - -.note-editor.note-airframe { - border: 0; -} -.note-editor.note-airframe .note-editing-area .note-editable { - padding: 0; -} - -/* Popover - ------------------------------------------ */ -.note-popover.popover { - display: none; - max-width: none; -} -.note-popover.popover .popover-content a { - display: inline-block; - max-width: 200px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - vertical-align: middle; -} -.note-popover.popover .arrow { - left: 20px !important; -} - -/* Popover and Toolbar (Button container) - ------------------------------------------ */ -.note-toolbar { - position: relative; -} - -.note-popover .popover-content, .note-editor .note-toolbar { - margin: 0; - padding: 0 0 5px 5px; -} -.note-popover .popover-content > .note-btn-group, .note-editor .note-toolbar > .note-btn-group { - margin-top: 5px; - margin-left: 0; - margin-right: 5px; -} -.note-popover .popover-content .note-btn-group .note-table, .note-editor .note-toolbar .note-btn-group .note-table { - min-width: 0; - padding: 5px; -} -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker { - font-size: 18px; -} -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher { - position: absolute !important; - z-index: 3; - width: 10em; - height: 10em; - cursor: pointer; -} -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted { - position: relative !important; - z-index: 1; - width: 5em; - height: 5em; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; -} -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted { - position: absolute !important; - z-index: 2; - width: 1em; - height: 1em; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; -} -.note-popover .popover-content .note-style .dropdown-style blockquote, .note-popover .popover-content .note-style .dropdown-style pre, .note-editor .note-toolbar .note-style .dropdown-style blockquote, .note-editor .note-toolbar .note-style .dropdown-style pre { - margin: 0; - padding: 5px 10px; -} -.note-popover .popover-content .note-style .dropdown-style h1, .note-popover .popover-content .note-style .dropdown-style h2, .note-popover .popover-content .note-style .dropdown-style h3, .note-popover .popover-content .note-style .dropdown-style h4, .note-popover .popover-content .note-style .dropdown-style h5, .note-popover .popover-content .note-style .dropdown-style h6, .note-popover .popover-content .note-style .dropdown-style p, .note-editor .note-toolbar .note-style .dropdown-style h1, .note-editor .note-toolbar .note-style .dropdown-style h2, .note-editor .note-toolbar .note-style .dropdown-style h3, .note-editor .note-toolbar .note-style .dropdown-style h4, .note-editor .note-toolbar .note-style .dropdown-style h5, .note-editor .note-toolbar .note-style .dropdown-style h6, .note-editor .note-toolbar .note-style .dropdown-style p { - margin: 0; - padding: 0; -} -.note-popover .popover-content .note-color-all .note-dropdown-menu, .note-editor .note-toolbar .note-color-all .note-dropdown-menu { - min-width: 337px; -} -.note-popover .popover-content .note-color .dropdown-toggle, .note-editor .note-toolbar .note-color .dropdown-toggle { - width: 20px; - padding-left: 5px; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette { - display: inline-block; - margin: 0; - width: 160px; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child { - margin: 0 5px; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title { - font-size: 12px; - margin: 2px 7px; - text-align: center; - border-bottom: 1px solid #eee; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset, -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset, -.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select { - font-size: 11px; - margin: 3px; - padding: 0 3px; - cursor: pointer; - width: 100%; - border-radius: 5px; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover, -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover, -.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover { - background: #eee; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row { - height: 20px; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn { - display: none; -} -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn { - border: 1px solid #eee; -} -.note-popover .popover-content .note-para .note-dropdown-menu, .note-editor .note-toolbar .note-para .note-dropdown-menu { - min-width: 228px; - padding: 5px; -} -.note-popover .popover-content .note-para .note-dropdown-menu > div + div, .note-editor .note-toolbar .note-para .note-dropdown-menu > div + div { - margin-left: 5px; -} -.note-popover .popover-content .note-dropdown-menu, .note-editor .note-toolbar .note-dropdown-menu { - min-width: 160px; -} -.note-popover .popover-content .note-dropdown-menu.right, .note-editor .note-toolbar .note-dropdown-menu.right { - right: 0; - left: auto; -} -.note-popover .popover-content .note-dropdown-menu.right::before, .note-editor .note-toolbar .note-dropdown-menu.right::before { - right: 9px; - left: auto !important; -} -.note-popover .popover-content .note-dropdown-menu.right::after, .note-editor .note-toolbar .note-dropdown-menu.right::after { - right: 10px; - left: auto !important; -} -.note-popover .popover-content .note-dropdown-menu.note-check a i, .note-editor .note-toolbar .note-dropdown-menu.note-check a i { - color: deepskyblue; - visibility: hidden; -} -.note-popover .popover-content .note-dropdown-menu.note-check a.checked i, .note-editor .note-toolbar .note-dropdown-menu.note-check a.checked i { - visibility: visible; -} -.note-popover .popover-content .note-fontsize-10, .note-editor .note-toolbar .note-fontsize-10 { - font-size: 10px; -} -.note-popover .popover-content .note-color-palette, .note-editor .note-toolbar .note-color-palette { - line-height: 1; -} -.note-popover .popover-content .note-color-palette div .note-color-btn, .note-editor .note-toolbar .note-color-palette div .note-color-btn { - width: 20px; - height: 20px; - padding: 0; - margin: 0; - border: 0; - border-radius: 0; -} -.note-popover .popover-content .note-color-palette div .note-color-btn:hover, .note-editor .note-toolbar .note-color-palette div .note-color-btn:hover { - transform: scale(1.2); - transition: all 0.2s; -} - -/* Dialog - ------------------------------------------ */ -.note-modal .modal-dialog { - outline: 0; - border-radius: 5px; - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); -} -.note-modal .form-group { - margin-left: 0; - margin-right: 0; -} -.note-modal .note-modal-form { - margin: 0; -} -.note-modal .note-image-dialog .note-dropzone { - min-height: 100px; - font-size: 30px; - line-height: 4; - color: lightgray; - text-align: center; - border: 4px dashed lightgray; - margin-bottom: 10px; -} -@-moz-document url-prefix() { - .note-modal .note-image-input { - height: auto; - } -} - -/* Placeholder - ------------------------------------------ */ -.note-placeholder { - position: absolute; - display: none; - color: gray; -} - -/* Handle - ------------------------------------------ */ -.note-handle .note-control-selection { - position: absolute; - display: none; - border: 1px solid #000; -} -.note-handle .note-control-selection > div { - position: absolute; -} -.note-handle .note-control-selection .note-control-selection-bg { - width: 100%; - height: 100%; - background-color: #000; - -webkit-opacity: 0.3; - -khtml-opacity: 0.3; - -moz-opacity: 0.3; - opacity: 0.3; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); - filter: alpha(opacity=30); -} -.note-handle .note-control-selection .note-control-handle, .note-handle .note-control-selection .note-control-sizing, .note-handle .note-control-selection .note-control-holder { - width: 7px; - height: 7px; - border: 1px solid #000; -} -.note-handle .note-control-selection .note-control-sizing { - background-color: #000; -} -.note-handle .note-control-selection .note-control-nw { - top: -5px; - left: -5px; - border-right: none; - border-bottom: none; -} -.note-handle .note-control-selection .note-control-ne { - top: -5px; - right: -5px; - border-bottom: none; - border-left: none; -} -.note-handle .note-control-selection .note-control-sw { - bottom: -5px; - left: -5px; - border-top: none; - border-right: none; -} -.note-handle .note-control-selection .note-control-se { - right: -5px; - bottom: -5px; - cursor: se-resize; -} -.note-handle .note-control-selection .note-control-se.note-control-holder { - cursor: default; - border-top: none; - border-left: none; -} -.note-handle .note-control-selection .note-control-selection-info { - right: 0; - bottom: 0; - padding: 5px; - margin: 5px; - color: #fff; - background-color: #000; - font-size: 12px; - border-radius: 5px; - -webkit-opacity: 0.7; - -khtml-opacity: 0.7; - -moz-opacity: 0.7; - opacity: 0.7; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70); - filter: alpha(opacity=70); -} - -.note-hint-popover { - min-width: 100px; - padding: 2px; -} -.note-hint-popover .popover-content { - padding: 3px; - max-height: 150px; - overflow: auto; -} -.note-hint-popover .popover-content .note-hint-group .note-hint-item { - display: block !important; - padding: 3px; -} -.note-hint-popover .popover-content .note-hint-group .note-hint-item.active, .note-hint-popover .popover-content .note-hint-group .note-hint-item:hover { - display: block; - clear: both; - font-weight: 400; - line-height: 1.4; - color: white; - white-space: nowrap; - text-decoration: none; - background-color: #428bca; - outline: 0; - cursor: pointer; -} - -/* Handle - ------------------------------------------ */ -html .note-fullscreen-body, body .note-fullscreen-body { - overflow: hidden !important; -} - -.note-toolbar { - background: #8080801d; -} - -.note-btn-group .note-btn { - border-color: #00000032; - padding: 0.28rem 0.65rem; - font-size: 13px; -} - -/*# sourceMappingURL=summernote-bs4.css.map*/ \ No newline at end of file diff --git a/plugins/summernote/summernote-bs4.css.map b/plugins/summernote/summernote-bs4.css.map deleted file mode 100644 index ef317552..00000000 --- a/plugins/summernote/summernote-bs4.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"summernote-bs4.css","mappings":";;;;;;;;;;;;AAMA;IACE;IACA;IACA;IACA;IACA;ACLF;ADSA;;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;ACPF;;ADYA;IACE;IACA;ACTF;;ADYA;IACE;IACA;IACA;ACTF;;ADYA;IACE;ACTF;;ADYA;IACE;ACTF;;ADaE;IACE;ACVJ;ADYE;IACE;ACVJ;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgCA;IACE;AC7BF;;ADgC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","sources":["webpack:///./src/styles/summernote/font.scss","webpack:///./src/styles/bs4/summernote-bs4.scss","webpack:///./src/styles/summernote/common.scss","webpack:///./src/styles/summernote/elements.scss"],"sourcesContent":["// Variables\n\n$sni-css-prefix: note-icon !default;\n\n// Path\n\n@font-face {\n font-family: \"summernote\";\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: url(\"./font/summernote.eot?#iefix\") format(\"embedded-opentype\"), url(\"./font/summernote.woff2\") format(\"woff2\"), url(\"./font/summernote.woff\") format(\"woff\"), url(\"./font/summernote.ttf\") format(\"truetype\");}\n\n// Core\n\n[class^=\"#{$sni-css-prefix}\"]:before,\n[class*=\" #{$sni-css-prefix}\"]:before {\n display: inline-block;\n font-family: \"summernote\";\n font-style: normal;\n font-size: inherit;\n text-decoration: inherit;\n text-rendering: auto;\n text-transform: none;\n vertical-align: middle;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n speak: none;\n}\n\n// Extras\n\n.#{$sni-css-prefix}-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.#{$sni-css-prefix}-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.#{$sni-css-prefix}-pull-left {\n float: left;\n}\n\n.#{$sni-css-prefix}-pull-right {\n float: right;\n}\n\n.#{$sni-css-prefix} {\n &.#{$sni-css-prefix}-pull-left {\n margin-right: 0.3em;\n }\n &.#{$sni-css-prefix}-pull-right {\n margin-left: 0.3em;\n }\n}\n\n// Functions\n\n@function char($character-code) {\n @if function-exists(\"selector-append\") {\n @return unquote(\"\\\"\\\\#{$character-code}\\\"\");\n }\n\n @if \"\\\\#{'x'}\" == \"\\\\x\" {\n @return str-slice(\"\\x\", 1, 1) + $character-code;\n }\n @else {\n @return #{\"\\\"\\\\\"}#{$character-code + \"\\\"\"};\n }\n}\n\n// Icons\n\n\n.note-icon-align::before {\n content: \"\\ea01\";\n}\n\n.note-icon-align-center::before {\n content: \"\\ea02\";\n}\n\n.note-icon-align-indent::before {\n content: \"\\ea03\";\n}\n\n.note-icon-align-justify::before {\n content: \"\\ea04\";\n}\n\n.note-icon-align-left::before {\n content: \"\\ea05\";\n}\n\n.note-icon-align-outdent::before {\n content: \"\\ea06\";\n}\n\n.note-icon-align-right::before {\n content: \"\\ea07\";\n}\n\n.note-icon-arrow-circle-down::before {\n content: \"\\ea08\";\n}\n\n.note-icon-arrow-circle-left::before {\n content: \"\\ea09\";\n}\n\n.note-icon-arrow-circle-right::before {\n content: \"\\ea0a\";\n}\n\n.note-icon-arrow-circle-up::before {\n content: \"\\ea0b\";\n}\n\n.note-icon-arrows-alt::before {\n content: \"\\ea0c\";\n}\n\n.note-icon-arrows-h::before {\n content: \"\\ea0d\";\n}\n\n.note-icon-arrows-v::before {\n content: \"\\ea0e\";\n}\n\n.note-icon-bold::before {\n content: \"\\ea0f\";\n}\n\n.note-icon-caret::before {\n content: \"\\ea10\";\n}\n\n.note-icon-chain-broken::before {\n content: \"\\ea11\";\n}\n\n.note-icon-circle::before {\n content: \"\\ea12\";\n}\n\n.note-icon-close::before {\n content: \"\\ea13\";\n}\n\n.note-icon-code::before {\n content: \"\\ea14\";\n}\n\n.note-icon-col-after::before {\n content: \"\\ea15\";\n}\n\n.note-icon-col-before::before {\n content: \"\\ea16\";\n}\n\n.note-icon-col-remove::before {\n content: \"\\ea17\";\n}\n\n.note-icon-eraser::before {\n content: \"\\ea18\";\n}\n\n.note-icon-float-left::before {\n content: \"\\ea19\";\n}\n\n.note-icon-float-none::before {\n content: \"\\ea1a\";\n}\n\n.note-icon-float-right::before {\n content: \"\\ea1b\";\n}\n\n.note-icon-font::before {\n content: \"\\ea1c\";\n}\n\n.note-icon-frame::before {\n content: \"\\ea1d\";\n}\n\n.note-icon-italic::before {\n content: \"\\ea1e\";\n}\n\n.note-icon-link::before {\n content: \"\\ea1f\";\n}\n\n.note-icon-magic::before {\n content: \"\\ea20\";\n}\n\n.note-icon-menu-check::before {\n content: \"\\ea21\";\n}\n\n.note-icon-minus::before {\n content: \"\\ea22\";\n}\n\n.note-icon-orderedlist::before {\n content: \"\\ea23\";\n}\n\n.note-icon-pencil::before {\n content: \"\\ea24\";\n}\n\n.note-icon-picture::before {\n content: \"\\ea25\";\n}\n\n.note-icon-question::before {\n content: \"\\ea26\";\n}\n\n.note-icon-redo::before {\n content: \"\\ea27\";\n}\n\n.note-icon-rollback::before {\n content: \"\\ea28\";\n}\n\n.note-icon-row-above::before {\n content: \"\\ea29\";\n}\n\n.note-icon-row-below::before {\n content: \"\\ea2a\";\n}\n\n.note-icon-row-remove::before {\n content: \"\\ea2b\";\n}\n\n.note-icon-special-character::before {\n content: \"\\ea2c\";\n}\n\n.note-icon-square::before {\n content: \"\\ea2d\";\n}\n\n.note-icon-strikethrough::before {\n content: \"\\ea2e\";\n}\n\n.note-icon-subscript::before {\n content: \"\\ea2f\";\n}\n\n.note-icon-summernote::before {\n content: \"\\ea30\";\n}\n\n.note-icon-superscript::before {\n content: \"\\ea31\";\n}\n\n.note-icon-table::before {\n content: \"\\ea32\";\n}\n\n.note-icon-text-height::before {\n content: \"\\ea33\";\n}\n\n.note-icon-trash::before {\n content: \"\\ea34\";\n}\n\n.note-icon-underline::before {\n content: \"\\ea35\";\n}\n\n.note-icon-undo::before {\n content: \"\\ea36\";\n}\n\n.note-icon-unorderedlist::before {\n content: \"\\ea37\";\n}\n\n.note-icon-video::before {\n content: \"\\ea38\";\n}\n\n","@import '../summernote/font.scss';\n@import '../summernote/common.scss';\n\n.note-toolbar {\n background: $background-color;\n}\n\n.note-btn-group .note-btn {\n border-color: $border-color;\n padding: 0.28rem 0.65rem;\n font-size: 13px;\n}\n","@import \"elements.scss\";\n\n/* Theme Variables\n ------------------------------------------ */\n$border-color: #00000032;\n$background-color: #8080801d;\n\n$img-margin-left: 10px;\n$img-margin-right: 10px;\n\n/* Layout\n ------------------------------------------ */\n.note-editor {\n position: relative;\n\n // dropzone\n $dropzone-color: lightskyblue;\n $dropzone-active-color: darken($dropzone-color, 30);\n .note-dropzone {\n position: absolute;\n display: none;\n z-index: 100;\n color: $dropzone-color;\n background-color: #fff;\n opacity: 0.95;\n\n .note-dropzone-message {\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n font-size: 28px;\n font-weight: 700;\n }\n\n &.hover {\n color: $dropzone-active-color;\n }\n }\n\n &.dragover .note-dropzone {\n display: table;\n }\n\n .note-editing-area {\n position: relative;\n\n .note-editable {\n outline: none;\n\n sup {\n vertical-align: super;\n }\n\n sub {\n vertical-align: sub;\n }\n\n img.note-float-left {\n margin-right: $img-margin-right;\n }\n\n img.note-float-right {\n margin-left: $img-margin-left;\n }\n }\n }\n}\n\n/* Frame mode layout\n ------------------------------------------ */\n.note-editor.note-frame,\n.note-editor.note-airframe {\n border: 1px solid $border-color;\n\n // codeview mode\n &.codeview {\n .note-editing-area {\n .note-editable {\n display: none;\n }\n .note-codable {\n display: block;\n }\n }\n }\n\n .note-editing-area {\n overflow: hidden;\n\n // editable\n .note-editable {\n padding: 10px;\n overflow: auto;\n word-wrap: break-word;\n\n &[contenteditable=\"false\"] {\n background-color: $background-color;\n }\n }\n\n // codeable\n .note-codable {\n display: none;\n width: 100%;\n padding: 10px;\n border: none;\n box-shadow: none;\n font-family: Menlo, Monaco, monospace, sans-serif;\n font-size: 14px;\n color: #ccc;\n background-color: #222;\n resize: none;\n outline: none;\n\n // override BS2 default style\n @include box-sizing(border-box);\n @include rounded(0);\n margin-bottom: 0;\n }\n }\n\n // fullscreen mode\n &.fullscreen {\n position: fixed;\n top: 0;\n left: 0;\n width: 100% !important;\n z-index: 1050; // bs3 modal-backdrop: 1030, bs2: 1040\n .note-resizebar {\n display: none;\n }\n }\n\n // Notifications\n .note-status-output {\n display: block;\n width: 100%;\n font-size: 14px;\n line-height: 1.42857143;\n height: 20px;\n margin-bottom: 0;\n color: #000;\n border: 0;\n border-top: 1px solid #e2e2e2;\n }\n\n .note-status-output:empty {\n height: 0;\n border-top: 0 solid transparent;\n }\n\n .note-status-output .pull-right {\n float: right !important;\n }\n\n .note-status-output .text-muted {\n color: #777;\n }\n\n .note-status-output .text-primary {\n color: #286090;\n }\n\n .note-status-output .text-success {\n color: #3c763d;\n }\n\n .note-status-output .text-info {\n color: #31708f;\n }\n\n .note-status-output .text-warning {\n color: #8a6d3b;\n }\n\n .note-status-output .text-danger {\n color: #a94442;\n }\n\n .note-status-output .alert {\n margin: -7px 0 0 0;\n padding: 7px 10px 2px 10px;\n border-radius: 0;\n color: #000;\n background-color: #f5f5f5;\n }\n\n .note-status-output .alert .note-icon {\n margin-right: 5px;\n }\n\n .note-status-output .alert-success {\n color: #3c763d !important;\n background-color: #dff0d8 !important;\n }\n\n .note-status-output .alert-info {\n color: #31708f !important;\n background-color: #d9edf7 !important;\n }\n\n .note-status-output .alert-warning {\n color: #8a6d3b !important;\n background-color: #fcf8e3 !important;\n }\n\n .note-status-output .alert-danger {\n color: #a94442 !important;\n background-color: #f2dede !important;\n }\n\n // statusbar\n .note-statusbar {\n background-color: $background-color;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n border-top: 1px solid $border-color;\n .note-resizebar {\n padding-top: 1px;\n height: 9px;\n width: 100%;\n cursor: ns-resize;\n .note-icon-bar {\n width: 20px;\n margin: 1px auto;\n border-top: 1px solid $border-color;\n }\n }\n\n &.locked {\n .note-resizebar {\n cursor: default;\n .note-icon-bar {\n display: none;\n }\n }\n }\n }\n .note-placeholder {\n padding: 10px;\n }\n}\n\n.note-editor.note-airframe {\n border: 0;\n\n .note-editing-area {\n .note-editable {\n padding: 0;\n }\n }\n}\n\n\n/* Popover\n ------------------------------------------ */\n.note-popover.popover {\n display: none;\n max-width: none;\n\n .popover-content {\n a {\n display: inline-block;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; // for FF\n vertical-align: middle; // for FF\n }\n }\n .arrow {\n left: 20px !important;\n }\n}\n\n/* Popover and Toolbar (Button container)\n ------------------------------------------ */\n.note-toolbar {\n position: relative;\n}\n\n.note-popover .popover-content, .note-editor .note-toolbar {\n margin: 0;\n padding: 0 0 5px 5px;\n\n & > .note-btn-group {\n margin-top: 5px;\n margin-left: 0;\n margin-right: 5px;\n }\n\n .note-btn-group {\n .note-table {\n min-width: 0;\n padding: 5px;\n .note-dimension-picker {\n font-size: 18px;\n .note-dimension-picker-mousecatcher {\n position: absolute !important;\n z-index: 3;\n width: 10em;\n height: 10em;\n cursor: pointer;\n }\n .note-dimension-picker-unhighlighted {\n position: relative !important;\n z-index: 1;\n width: 5em;\n height: 5em;\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat;\n }\n .note-dimension-picker-highlighted {\n position: absolute !important;\n z-index: 2;\n width: 1em;\n height: 1em;\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat;\n }\n }\n }\n }\n\n .note-style {\n .dropdown-style {\n blockquote, pre {\n margin: 0;\n padding: 5px 10px;\n }\n h1, h2, h3, h4, h5, h6, p {\n margin: 0;\n padding: 0;\n }\n }\n }\n\n .note-color-all {\n .note-dropdown-menu {\n min-width: 337px;\n }\n }\n\n .note-color {\n .dropdown-toggle {\n width: 20px;\n padding-left: 5px;\n }\n .note-dropdown-menu {\n .note-palette {\n display: inline-block;\n margin: 0;\n width: 160px;\n &:first-child {\n margin: 0 5px;\n }\n\n .note-palette-title {\n font-size: 12px;\n margin: 2px 7px;\n text-align: center;\n border-bottom: 1px solid #eee;\n }\n\n .note-color-reset,\n .note-color-select {\n font-size: 11px;\n margin: 3px;\n padding: 0 3px;\n cursor: pointer;\n width: 100%;\n @include rounded(5px);\n\n &:hover {\n background: #eee;\n }\n }\n\n .note-color-row {\n height: 20px;\n }\n\n .note-color-select-btn {\n display: none;\n }\n\n .note-holder-custom {\n .note-color-btn {\n border: 1px solid #eee;\n }\n }\n }\n }\n }\n\n .note-para {\n .note-dropdown-menu {\n min-width: 228px;\n padding: 5px;\n & > div + div {\n margin-left: 5px;\n }\n }\n }\n\n // dropdown-menu for toolbar and popover\n .note-dropdown-menu {\n min-width: 160px;\n\n // dropdown-menu right position\n // http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB\n &.right {\n right: 0;\n left: auto;\n &::before {\n right: 9px;\n left: auto !important;\n }\n &::after {\n right: 10px;\n left: auto !important;\n }\n }\n // dropdown-menu for selectbox\n &.note-check {\n a i {\n color: deepskyblue;\n visibility: hidden;\n }\n a.checked i {\n visibility: visible;\n }\n }\n }\n\n .note-fontsize-10 {\n font-size: 10px;\n }\n\n // color palette for toolbar and popover\n .note-color-palette {\n line-height: 1;\n div {\n .note-color-btn {\n width: 20px;\n height: 20px;\n padding: 0;\n margin: 0;\n border: 0;\n border-radius: 0;\n }\n .note-color-btn:hover {\n transform: scale(1.2);\n transition: all 0.2s;\n }\n }\n }\n}\n\n/* Dialog\n ------------------------------------------ */\n.note-modal {\n .modal-dialog {\n outline: 0;\n border-radius: 5px;\n @include box-shadow(0 3px 9px rgba(0,0,0,.5));\n }\n .form-group { // overwrite BS's form-horizontal minus margins\n margin-left: 0;\n margin-right: 0;\n }\n .note-modal-form {\n margin: 0; // overwrite BS2's form margin bottom\n }\n .note-image-dialog {\n .note-dropzone {\n min-height: 100px;\n font-size: 30px;\n line-height: 4; // vertical-align\n color: lightgray;\n text-align: center;\n border: 4px dashed lightgray;\n margin-bottom: 10px;\n }\n }\n\n // [workaround] firefox fileinput\n @-moz-document url-prefix() {\n .note-image-input {\n height: auto;\n }\n }\n}\n\n/* Placeholder\n ------------------------------------------ */\n.note-placeholder {\n position: absolute;\n display: none;\n color: gray;\n}\n\n/* Handle\n ------------------------------------------ */\n.note-handle {\n // control selection\n .note-control-selection {\n position: absolute;\n display: none;\n border: 1px solid #000;\n & > div {\n position: absolute;\n }\n\n .note-control-selection-bg {\n width: 100%;\n height: 100%;\n background-color: #000;\n @include opacity(0.3);\n }\n\n .note-control-handle {\n width: 7px;\n height: 7px;\n border: 1px solid #000;\n }\n\n .note-control-holder {\n @extend .note-control-handle;\n }\n\n .note-control-sizing {\n @extend .note-control-handle;\n background-color: #000;\n }\n\n .note-control-nw {\n top: -5px;\n left: -5px;\n border-right: none;\n border-bottom: none;\n }\n\n .note-control-ne {\n top: -5px;\n right: -5px;\n border-bottom: none;\n border-left: none;\n }\n\n .note-control-sw {\n bottom: -5px;\n left: -5px;\n border-top: none;\n border-right: none;\n }\n\n .note-control-se {\n right: -5px;\n bottom: -5px;\n cursor: se-resize;\n }\n\n .note-control-se.note-control-holder {\n cursor: default;\n border-top: none;\n border-left: none;\n }\n\n .note-control-selection-info {\n right: 0;\n bottom: 0;\n padding: 5px;\n margin: 5px;\n color: #fff;\n background-color: #000;\n font-size: 12px;\n @include rounded(5px);\n @include opacity(0.7);\n }\n }\n}\n\n.note-hint-popover {\n min-width: 100px;\n padding: 2px;\n\n .popover-content {\n padding: 3px;\n max-height: 150px;\n overflow: auto;\n\n .note-hint-group {\n .note-hint-item {\n display: block !important;\n padding: 3px;\n\n &.active, &:hover {\n display: block;\n clear: both;\n font-weight: 400;\n line-height: 1.4;\n color: white;\n white-space: nowrap;\n text-decoration: none;\n background-color: #428bca;\n outline: 0;\n cursor: pointer;\n }\n }\n }\n }\n}\n\n/* Handle\n ------------------------------------------ */\nhtml, body {\n .note-fullscreen-body {\n overflow: hidden !important;\n }\n}\n","@mixin gradient($color: #F5F5F5, $start: #EEE, $stop: #FFF) {\n background: $color;\n background: -webkit-gradient(linear,\n left bottom,\n left top,\n color-stop(0, $start),\n color-stop(1, $stop));\n background: -ms-linear-gradient(bottom,\n $start,\n $stop);\n background: -moz-linear-gradient(center bottom,\n $start 0%,\n $stop 100%);\n background: -o-linear-gradient($stop,\n $start);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($stop)}', endColorstr='#{ie-hex-str($start)}', GradientType=0);\n}\n@mixin bw-gradient($color: #F5F5F5, $start: 0, $stop: 255) {\n background: $color;\n background: -webkit-gradient(linear,\n left bottom,\n left top,\n color-stop(0, rgb($start,$start,$start)),\n color-stop(1, rgb($stop,$stop,$stop)));\n background: -ms-linear-gradient(bottom,\n rgb($start,$start,$start) 0%,\n rgb($stop,$stop,$stop) 100%);\n background: -moz-linear-gradient(center bottom,\n rgb($start,$start,$start) 0%,\n rgb($stop,$stop,$stop) 100%);\n background: -o-linear-gradient(rgb($stop,$stop,$stop),\n rgb($start,$start,$start));\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str(rgb($stop,$stop,$stop))}', endColorstr='#{ie-hex-str(rgb($start,$start,$start))}', GradientType=0);\n}\n@mixin bordered($top-color: #EEE, $right-color: #EEE, $bottom-color: #EEE, $left-color: #EEE) {\n border-top: solid 1px $top-color;\n border-left: solid 1px $left-color;\n border-right: solid 1px $right-color;\n border-bottom: solid 1px $bottom-color;\n}\n@mixin drop-shadow($x-axis: 0, $y-axis: 1px, $blur: 2px, $alpha: 0.1) {\n -webkit-box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n -moz-box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n}\n@mixin rounded($radius: 2px) {\n -webkit-border-radius: $radius;\n -moz-border-radius: $radius;\n border-radius: $radius;\n}\n@mixin border-radius($topright: 0, $bottomright: 0, $bottomleft: 0, $topleft: 0) {\n -webkit-border-top-right-radius: $topright;\n -webkit-border-bottom-right-radius: $bottomright;\n -webkit-border-bottom-left-radius: $bottomleft;\n -webkit-border-top-left-radius: $topleft;\n -moz-border-radius-topright: $topright;\n -moz-border-radius-bottomright: $bottomright;\n -moz-border-radius-bottomleft: $bottomleft;\n -moz-border-radius-topleft: $topleft;\n border-top-right-radius: $topright;\n border-bottom-right-radius: $bottomright;\n border-bottom-left-radius: $bottomleft;\n border-top-left-radius: $topleft;\n @include background-clip(padding-box);\n}\n@mixin opacity($opacity: 0.5) {\n -webkit-opacity: $opacity;\n -khtml-opacity: $opacity;\n -moz-opacity: $opacity;\n opacity: $opacity;\n $opperc: $opacity * 100;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=#{$opperc});\n filter: alpha(opacity=$opperc);\n}\n@mixin transition-duration($duration: 0.2s) {\n -moz-transition-duration: $duration;\n -webkit-transition-duration: $duration;\n -o-transition-duration: $duration;\n transition-duration: $duration;\n}\n@mixin transform($arguments...) {\n -webkit-transform: $arguments;\n -moz-transform: $arguments;\n -o-transform: $arguments;\n -ms-transform: $arguments;\n transform: $arguments;\n}\n@mixin rotation($deg:5deg) {\n @include transform(rotate($deg));\n}\n@mixin scale($ratio:1.5) {\n @include transform(scale($ratio));\n}\n@mixin transition($duration:0.2s, $ease:ease-out) {\n -webkit-transition: all $duration $ease;\n -moz-transition: all $duration $ease;\n -o-transition: all $duration $ease;\n transition: all $duration $ease;\n}\n@mixin inner-shadow($horizontal:0, $vertical:1px, $blur:2px, $alpha: 0.4) {\n -webkit-box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n -moz-box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n}\n@mixin box-shadow($arguments) {\n -webkit-box-shadow: $arguments;\n -moz-box-shadow: $arguments;\n box-shadow: $arguments;\n}\n@mixin box-sizing($sizing: border-box) {\n -ms-box-sizing: $sizing;\n -moz-box-sizing: $sizing;\n -webkit-box-sizing: $sizing;\n box-sizing: $sizing;\n}\n@mixin user-select($argument: none) {\n -webkit-user-select: $argument;\n -moz-user-select: $argument;\n -ms-user-select: $argument;\n user-select: $argument;\n}\n@mixin columns($colwidth: 250px, $colcount: 0, $colgap: 50px, $columnRuleColor: #EEE, $columnRuleStyle: solid, $columnRuleWidth: 1px) {\n -moz-column-width: $colwidth;\n -moz-column-count: $colcount;\n -moz-column-gap: $colgap;\n -moz-column-rule-color: $columnRuleColor;\n -moz-column-rule-style: $columnRuleStyle;\n -moz-column-rule-width: $columnRuleWidth;\n -webkit-column-width: $colwidth;\n -webkit-column-count: $colcount;\n -webkit-column-gap: $colgap;\n -webkit-column-rule-color: $columnRuleColor;\n -webkit-column-rule-style: $columnRuleStyle;\n -webkit-column-rule-width: $columnRuleWidth;\n column-width: $colwidth;\n column-count: $colcount;\n column-gap: $colgap;\n column-rule-color: $columnRuleColor;\n column-rule-style: $columnRuleStyle;\n column-rule-width: $columnRuleWidth;\n}\n@mixin translate($x:0, $y:0) {\n @include transform(translate($x, $y));\n}\n@mixin background-clip($argument: padding-box) {\n -moz-background-clip: $argument;\n -webkit-background-clip: $argument;\n background-clip: $argument;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/summernote/summernote-bs4.js b/plugins/summernote/summernote-bs4.js deleted file mode 100644 index d342fdc7..00000000 --- a/plugins/summernote/summernote-bs4.js +++ /dev/null @@ -1,10235 +0,0 @@ -/*! - * - * Super simple WYSIWYG editor v0.8.20 - * https://summernote.org - * - * - * Copyright 2013- Alan Hong and contributors - * Summernote may be freely distributed under the MIT license. - * - * Date: 2021-10-14T21:15Z - * - */ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("jQuery")); - else if(typeof define === 'function' && define.amd) - define(["jQuery"], factory); - else { - var a = typeof exports === 'object' ? factory(require("jQuery")) : factory(root["jQuery"]); - for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; - } -})(self, function(__WEBPACK_EXTERNAL_MODULE__1145__) { -return /******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ 9770: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { - -/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1145); -/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); - -(jquery__WEBPACK_IMPORTED_MODULE_0___default().summernote) = (jquery__WEBPACK_IMPORTED_MODULE_0___default().summernote) || { - lang: {} -}; -jquery__WEBPACK_IMPORTED_MODULE_0___default().extend((jquery__WEBPACK_IMPORTED_MODULE_0___default().summernote.lang), { - 'en-US': { - font: { - bold: 'Bold', - italic: 'Italic', - underline: 'Underline', - clear: 'Remove Font Style', - height: 'Line Height', - name: 'Font Family', - strikethrough: 'Strikethrough', - subscript: 'Subscript', - superscript: 'Superscript', - size: 'Font Size', - sizeunit: 'Font Size Unit' - }, - image: { - image: 'Picture', - insert: 'Insert Image', - resizeFull: 'Resize full', - resizeHalf: 'Resize half', - resizeQuarter: 'Resize quarter', - resizeNone: 'Original size', - floatLeft: 'Float Left', - floatRight: 'Float Right', - floatNone: 'Remove float', - shapeRounded: 'Shape: Rounded', - shapeCircle: 'Shape: Circle', - shapeThumbnail: 'Shape: Thumbnail', - shapeNone: 'Shape: None', - dragImageHere: 'Drag image or text here', - dropImage: 'Drop image or Text', - selectFromFiles: 'Select from files', - maximumFileSize: 'Maximum file size', - maximumFileSizeError: 'Maximum file size exceeded.', - url: 'Image URL', - remove: 'Remove Image', - original: 'Original' - }, - video: { - video: 'Video', - videoLink: 'Video Link', - insert: 'Insert Video', - url: 'Video URL', - providers: '(YouTube, Google Drive, Vimeo, Vine, Instagram, DailyMotion, Youku, Peertube)' - }, - link: { - link: 'Link', - insert: 'Insert Link', - unlink: 'Unlink', - edit: 'Edit', - textToDisplay: 'Text to display', - url: 'To what URL should this link go?', - openInNewWindow: 'Open in new window', - useProtocol: 'Use default protocol' - }, - table: { - table: 'Table', - addRowAbove: 'Add row above', - addRowBelow: 'Add row below', - addColLeft: 'Add column left', - addColRight: 'Add column right', - delRow: 'Delete row', - delCol: 'Delete column', - delTable: 'Delete table' - }, - hr: { - insert: 'Insert Horizontal Rule' - }, - style: { - style: 'Style', - p: 'Normal', - blockquote: 'Quote', - pre: 'Code', - h1: 'Header 1', - h2: 'Header 2', - h3: 'Header 3', - h4: 'Header 4', - h5: 'Header 5', - h6: 'Header 6' - }, - lists: { - unordered: 'Unordered list', - ordered: 'Ordered list' - }, - options: { - help: 'Help', - fullscreen: 'Full Screen', - codeview: 'Code View' - }, - paragraph: { - paragraph: 'Paragraph', - outdent: 'Outdent', - indent: 'Indent', - left: 'Align left', - center: 'Align center', - right: 'Align right', - justify: 'Justify full' - }, - color: { - recent: 'Recent Color', - more: 'More Color', - background: 'Background Color', - foreground: 'Text Color', - transparent: 'Transparent', - setTransparent: 'Set transparent', - reset: 'Reset', - resetToDefault: 'Reset to default', - cpSelect: 'Select' - }, - shortcut: { - shortcuts: 'Keyboard shortcuts', - close: 'Close', - textFormatting: 'Text formatting', - action: 'Action', - paragraphFormatting: 'Paragraph formatting', - documentStyle: 'Document Style', - extraKeys: 'Extra keys' - }, - help: { - 'escape': 'Escape', - 'insertParagraph': 'Insert Paragraph', - 'undo': 'Undo the last command', - 'redo': 'Redo the last command', - 'tab': 'Tab', - 'untab': 'Untab', - 'bold': 'Set a bold style', - 'italic': 'Set a italic style', - 'underline': 'Set a underline style', - 'strikethrough': 'Set a strikethrough style', - 'removeFormat': 'Clean a style', - 'justifyLeft': 'Set left align', - 'justifyCenter': 'Set center align', - 'justifyRight': 'Set right align', - 'justifyFull': 'Set full align', - 'insertUnorderedList': 'Toggle unordered list', - 'insertOrderedList': 'Toggle ordered list', - 'outdent': 'Outdent on current paragraph', - 'indent': 'Indent on current paragraph', - 'formatPara': 'Change current block\'s format as a paragraph(P tag)', - 'formatH1': 'Change current block\'s format as H1', - 'formatH2': 'Change current block\'s format as H2', - 'formatH3': 'Change current block\'s format as H3', - 'formatH4': 'Change current block\'s format as H4', - 'formatH5': 'Change current block\'s format as H5', - 'formatH6': 'Change current block\'s format as H6', - 'insertHorizontalRule': 'Insert horizontal rule', - 'linkDialog.show': 'Show Link Dialog' - }, - history: { - undo: 'Undo', - redo: 'Redo' - }, - specialChar: { - specialChar: 'SPECIAL CHARACTERS', - select: 'Select Special characters' - }, - output: { - noSelection: 'No Selection Made!' - } - } -}); - -/***/ }), - -/***/ 1145: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_MODULE__1145__; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// EXTERNAL MODULE: external "jQuery" -var external_jQuery_ = __webpack_require__(1145); -var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery_); -// EXTERNAL MODULE: ./src/lang/summernote-en-US.js -var summernote_en_US = __webpack_require__(9770); -;// CONCATENATED MODULE: ./src/js/core/env.js - -/** - * returns whether font is installed or not. - * - * @param {String} fontName - * @return {Boolean} - */ - -var genericFontFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy']; - -function validFontName(fontName) { - return external_jQuery_default().inArray(fontName.toLowerCase(), genericFontFamilies) === -1 ? "'".concat(fontName, "'") : fontName; -} - -function isFontInstalled(fontName) { - var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS'; - var testText = 'mmmmmmmmmmwwwww'; - var testSize = '200px'; - var canvas = document.createElement('canvas'); - var context = canvas.getContext('2d'); - context.font = testSize + " '" + testFontName + "'"; - var originalWidth = context.measureText(testText).width; - context.font = testSize + ' ' + validFontName(fontName) + ', "' + testFontName + '"'; - var width = context.measureText(testText).width; - return originalWidth !== width; -} - -var userAgent = navigator.userAgent; -var isMSIE = /MSIE|Trident/i.test(userAgent); -var browserVersion; - -if (isMSIE) { - var matches = /MSIE (\d+[.]\d+)/.exec(userAgent); - - if (matches) { - browserVersion = parseFloat(matches[1]); - } - - matches = /Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent); - - if (matches) { - browserVersion = parseFloat(matches[1]); - } -} - -var isEdge = /Edge\/\d+/.test(userAgent); -var isSupportTouch = 'ontouchstart' in window || navigator.MaxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; // [workaround] IE doesn't have input events for contentEditable -// - see: https://goo.gl/4bfIvA - -var inputEventName = isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input'; -/** - * @class core.env - * - * Object which check platform and agent - * - * @singleton - * @alternateClassName env - */ - -/* harmony default export */ const env = ({ - isMac: navigator.appVersion.indexOf('Mac') > -1, - isMSIE: isMSIE, - isEdge: isEdge, - isFF: !isEdge && /firefox/i.test(userAgent), - isPhantom: /PhantomJS/i.test(userAgent), - isWebkit: !isEdge && /webkit/i.test(userAgent), - isChrome: !isEdge && /chrome/i.test(userAgent), - isSafari: !isEdge && /safari/i.test(userAgent) && !/chrome/i.test(userAgent), - browserVersion: browserVersion, - isSupportTouch: isSupportTouch, - isFontInstalled: isFontInstalled, - isW3CRangeSupport: !!document.createRange, - inputEventName: inputEventName, - genericFontFamilies: genericFontFamilies, - validFontName: validFontName -}); -;// CONCATENATED MODULE: ./src/js/core/func.js - -/** - * @class core.func - * - * func utils (for high-order func's arg) - * - * @singleton - * @alternateClassName func - */ - -function eq(itemA) { - return function (itemB) { - return itemA === itemB; - }; -} - -function eq2(itemA, itemB) { - return itemA === itemB; -} - -function peq2(propName) { - return function (itemA, itemB) { - return itemA[propName] === itemB[propName]; - }; -} - -function ok() { - return true; -} - -function fail() { - return false; -} - -function not(f) { - return function () { - return !f.apply(f, arguments); - }; -} - -function and(fA, fB) { - return function (item) { - return fA(item) && fB(item); - }; -} - -function func_self(a) { - return a; -} - -function invoke(obj, method) { - return function () { - return obj[method].apply(obj, arguments); - }; -} - -var idCounter = 0; -/** - * reset globally-unique id - * - */ - -function resetUniqueId() { - idCounter = 0; -} -/** - * generate a globally-unique id - * - * @param {String} [prefix] - */ - - -function uniqueId(prefix) { - var id = ++idCounter + ''; - return prefix ? prefix + id : id; -} -/** - * returns bnd (bounds) from rect - * - * - IE Compatibility Issue: http://goo.gl/sRLOAo - * - Scroll Issue: http://goo.gl/sNjUc - * - * @param {Rect} rect - * @return {Object} bounds - * @return {Number} bounds.top - * @return {Number} bounds.left - * @return {Number} bounds.width - * @return {Number} bounds.height - */ - - -function rect2bnd(rect) { - var $document = external_jQuery_default()(document); - return { - top: rect.top + $document.scrollTop(), - left: rect.left + $document.scrollLeft(), - width: rect.right - rect.left, - height: rect.bottom - rect.top - }; -} -/** - * returns a copy of the object where the keys have become the values and the values the keys. - * @param {Object} obj - * @return {Object} - */ - - -function invertObject(obj) { - var inverted = {}; - - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - inverted[obj[key]] = key; - } - } - - return inverted; -} -/** - * @param {String} namespace - * @param {String} [prefix] - * @return {String} - */ - - -function namespaceToCamel(namespace, prefix) { - prefix = prefix || ''; - return prefix + namespace.split('.').map(function (name) { - return name.substring(0, 1).toUpperCase() + name.substring(1); - }).join(''); -} -/** - * Returns a function, that, as long as it continues to be invoked, will not - * be triggered. The function will be called after it stops being called for - * N milliseconds. If `immediate` is passed, trigger the function on the - * leading edge, instead of the trailing. - * @param {Function} func - * @param {Number} wait - * @param {Boolean} immediate - * @return {Function} - */ - - -function debounce(func, wait, immediate) { - var timeout; - return function () { - var context = this; - var args = arguments; - - var later = function later() { - timeout = null; - - if (!immediate) { - func.apply(context, args); - } - }; - - var callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - - if (callNow) { - func.apply(context, args); - } - }; -} -/** - * - * @param {String} url - * @return {Boolean} - */ - - -function isValidUrl(url) { - var expression = /[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi; - return expression.test(url); -} - -/* harmony default export */ const func = ({ - eq: eq, - eq2: eq2, - peq2: peq2, - ok: ok, - fail: fail, - self: func_self, - not: not, - and: and, - invoke: invoke, - resetUniqueId: resetUniqueId, - uniqueId: uniqueId, - rect2bnd: rect2bnd, - invertObject: invertObject, - namespaceToCamel: namespaceToCamel, - debounce: debounce, - isValidUrl: isValidUrl -}); -;// CONCATENATED MODULE: ./src/js/core/lists.js - -/** - * returns the first item of an array. - * - * @param {Array} array - */ - -function head(array) { - return array[0]; -} -/** - * returns the last item of an array. - * - * @param {Array} array - */ - - -function last(array) { - return array[array.length - 1]; -} -/** - * returns everything but the last entry of the array. - * - * @param {Array} array - */ - - -function initial(array) { - return array.slice(0, array.length - 1); -} -/** - * returns the rest of the items in an array. - * - * @param {Array} array - */ - - -function tail(array) { - return array.slice(1); -} -/** - * returns item of array - */ - - -function find(array, pred) { - for (var idx = 0, len = array.length; idx < len; idx++) { - var item = array[idx]; - - if (pred(item)) { - return item; - } - } -} -/** - * returns true if all of the values in the array pass the predicate truth test. - */ - - -function lists_all(array, pred) { - for (var idx = 0, len = array.length; idx < len; idx++) { - if (!pred(array[idx])) { - return false; - } - } - - return true; -} -/** - * returns true if the value is present in the list. - */ - - -function contains(array, item) { - if (array && array.length && item) { - if (array.indexOf) { - return array.indexOf(item) !== -1; - } else if (array.contains) { - // `DOMTokenList` doesn't implement `.indexOf`, but it implements `.contains` - return array.contains(item); - } - } - - return false; -} -/** - * get sum from a list - * - * @param {Array} array - array - * @param {Function} fn - iterator - */ - - -function sum(array, fn) { - fn = fn || func.self; - return array.reduce(function (memo, v) { - return memo + fn(v); - }, 0); -} -/** - * returns a copy of the collection with array type. - * @param {Collection} collection - collection eg) node.childNodes, ... - */ - - -function from(collection) { - var result = []; - var length = collection.length; - var idx = -1; - - while (++idx < length) { - result[idx] = collection[idx]; - } - - return result; -} -/** - * returns whether list is empty or not - */ - - -function isEmpty(array) { - return !array || !array.length; -} -/** - * cluster elements by predicate function. - * - * @param {Array} array - array - * @param {Function} fn - predicate function for cluster rule - * @param {Array[]} - */ - - -function clusterBy(array, fn) { - if (!array.length) { - return []; - } - - var aTail = tail(array); - return aTail.reduce(function (memo, v) { - var aLast = last(memo); - - if (fn(last(aLast), v)) { - aLast[aLast.length] = v; - } else { - memo[memo.length] = [v]; - } - - return memo; - }, [[head(array)]]); -} -/** - * returns a copy of the array with all false values removed - * - * @param {Array} array - array - * @param {Function} fn - predicate function for cluster rule - */ - - -function compact(array) { - var aResult = []; - - for (var idx = 0, len = array.length; idx < len; idx++) { - if (array[idx]) { - aResult.push(array[idx]); - } - } - - return aResult; -} -/** - * produces a duplicate-free version of the array - * - * @param {Array} array - */ - - -function unique(array) { - var results = []; - - for (var idx = 0, len = array.length; idx < len; idx++) { - if (!contains(results, array[idx])) { - results.push(array[idx]); - } - } - - return results; -} -/** - * returns next item. - * @param {Array} array - */ - - -function next(array, item) { - if (array && array.length && item) { - var idx = array.indexOf(item); - return idx === -1 ? null : array[idx + 1]; - } - - return null; -} -/** - * returns prev item. - * @param {Array} array - */ - - -function prev(array, item) { - if (array && array.length && item) { - var idx = array.indexOf(item); - return idx === -1 ? null : array[idx - 1]; - } - - return null; -} -/** - * @class core.list - * - * list utils - * - * @singleton - * @alternateClassName list - */ - - -/* harmony default export */ const lists = ({ - head: head, - last: last, - initial: initial, - tail: tail, - prev: prev, - next: next, - find: find, - contains: contains, - all: lists_all, - sum: sum, - from: from, - isEmpty: isEmpty, - clusterBy: clusterBy, - compact: compact, - unique: unique -}); -;// CONCATENATED MODULE: ./src/js/core/dom.js - - - - -var NBSP_CHAR = String.fromCharCode(160); -var ZERO_WIDTH_NBSP_CHAR = "\uFEFF"; -/** - * @method isEditable - * - * returns whether node is `note-editable` or not. - * - * @param {Node} node - * @return {Boolean} - */ - -function isEditable(node) { - return node && external_jQuery_default()(node).hasClass('note-editable'); -} -/** - * @method isControlSizing - * - * returns whether node is `note-control-sizing` or not. - * - * @param {Node} node - * @return {Boolean} - */ - - -function isControlSizing(node) { - return node && external_jQuery_default()(node).hasClass('note-control-sizing'); -} -/** - * @method makePredByNodeName - * - * returns predicate which judge whether nodeName is same - * - * @param {String} nodeName - * @return {Function} - */ - - -function makePredByNodeName(nodeName) { - nodeName = nodeName.toUpperCase(); - return function (node) { - return node && node.nodeName.toUpperCase() === nodeName; - }; -} -/** - * @method isText - * - * - * - * @param {Node} node - * @return {Boolean} true if node's type is text(3) - */ - - -function isText(node) { - return node && node.nodeType === 3; -} -/** - * @method isElement - * - * - * - * @param {Node} node - * @return {Boolean} true if node's type is element(1) - */ - - -function isElement(node) { - return node && node.nodeType === 1; -} -/** - * ex) br, col, embed, hr, img, input, ... - * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements - */ - - -function isVoid(node) { - return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test(node.nodeName.toUpperCase()); -} - -function isPara(node) { - if (isEditable(node)) { - return false; - } // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph - - - return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase()); -} - -function isHeading(node) { - return node && /^H[1-7]/.test(node.nodeName.toUpperCase()); -} - -var isPre = makePredByNodeName('PRE'); -var isLi = makePredByNodeName('LI'); - -function isPurePara(node) { - return isPara(node) && !isLi(node); -} - -var isTable = makePredByNodeName('TABLE'); -var isData = makePredByNodeName('DATA'); - -function isInline(node) { - return !isBodyContainer(node) && !isList(node) && !isHr(node) && !isPara(node) && !isTable(node) && !isBlockquote(node) && !isData(node); -} - -function isList(node) { - return node && /^UL|^OL/.test(node.nodeName.toUpperCase()); -} - -var isHr = makePredByNodeName('HR'); - -function isCell(node) { - return node && /^TD|^TH/.test(node.nodeName.toUpperCase()); -} - -var isBlockquote = makePredByNodeName('BLOCKQUOTE'); - -function isBodyContainer(node) { - return isCell(node) || isBlockquote(node) || isEditable(node); -} - -var isAnchor = makePredByNodeName('A'); - -function isParaInline(node) { - return isInline(node) && !!ancestor(node, isPara); -} - -function isBodyInline(node) { - return isInline(node) && !ancestor(node, isPara); -} - -var isBody = makePredByNodeName('BODY'); -/** - * returns whether nodeB is closest sibling of nodeA - * - * @param {Node} nodeA - * @param {Node} nodeB - * @return {Boolean} - */ - -function isClosestSibling(nodeA, nodeB) { - return nodeA.nextSibling === nodeB || nodeA.previousSibling === nodeB; -} -/** - * returns array of closest siblings with node - * - * @param {Node} node - * @param {function} [pred] - predicate function - * @return {Node[]} - */ - - -function withClosestSiblings(node, pred) { - pred = pred || func.ok; - var siblings = []; - - if (node.previousSibling && pred(node.previousSibling)) { - siblings.push(node.previousSibling); - } - - siblings.push(node); - - if (node.nextSibling && pred(node.nextSibling)) { - siblings.push(node.nextSibling); - } - - return siblings; -} -/** - * blank HTML for cursor position - * - [workaround] old IE only works with   - * - [workaround] IE11 and other browser works with bogus br - */ - - -var blankHTML = env.isMSIE && env.browserVersion < 11 ? ' ' : '
'; -/** - * @method nodeLength - * - * returns #text's text size or element's childNodes size - * - * @param {Node} node - */ - -function nodeLength(node) { - if (isText(node)) { - return node.nodeValue.length; - } - - if (node) { - return node.childNodes.length; - } - - return 0; -} -/** - * returns whether deepest child node is empty or not. - * - * @param {Node} node - * @return {Boolean} - */ - - -function deepestChildIsEmpty(node) { - do { - if (node.firstElementChild === null || node.firstElementChild.innerHTML === '') break; - } while (node = node.firstElementChild); - - return dom_isEmpty(node); -} -/** - * returns whether node is empty or not. - * - * @param {Node} node - * @return {Boolean} - */ - - -function dom_isEmpty(node) { - var len = nodeLength(node); - - if (len === 0) { - return true; - } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) { - // ex)


,
- return true; - } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') { - // ex)

, - return true; - } - - return false; -} -/** - * padding blankHTML if node is empty (for cursor position) - */ - - -function paddingBlankHTML(node) { - if (!isVoid(node) && !nodeLength(node)) { - node.innerHTML = blankHTML; - } -} -/** - * find nearest ancestor predicate hit - * - * @param {Node} node - * @param {Function} pred - predicate function - */ - - -function ancestor(node, pred) { - while (node) { - if (pred(node)) { - return node; - } - - if (isEditable(node)) { - break; - } - - node = node.parentNode; - } - - return null; -} -/** - * find nearest ancestor only single child blood line and predicate hit - * - * @param {Node} node - * @param {Function} pred - predicate function - */ - - -function singleChildAncestor(node, pred) { - node = node.parentNode; - - while (node) { - if (nodeLength(node) !== 1) { - break; - } - - if (pred(node)) { - return node; - } - - if (isEditable(node)) { - break; - } - - node = node.parentNode; - } - - return null; -} -/** - * returns new array of ancestor nodes (until predicate hit). - * - * @param {Node} node - * @param {Function} [optional] pred - predicate function - */ - - -function listAncestor(node, pred) { - pred = pred || func.fail; - var ancestors = []; - ancestor(node, function (el) { - if (!isEditable(el)) { - ancestors.push(el); - } - - return pred(el); - }); - return ancestors; -} -/** - * find farthest ancestor predicate hit - */ - - -function lastAncestor(node, pred) { - var ancestors = listAncestor(node); - return lists.last(ancestors.filter(pred)); -} -/** - * returns common ancestor node between two nodes. - * - * @param {Node} nodeA - * @param {Node} nodeB - */ - - -function commonAncestor(nodeA, nodeB) { - var ancestors = listAncestor(nodeA); - - for (var n = nodeB; n; n = n.parentNode) { - if (ancestors.indexOf(n) > -1) return n; - } - - return null; // difference document area -} -/** - * listing all previous siblings (until predicate hit). - * - * @param {Node} node - * @param {Function} [optional] pred - predicate function - */ - - -function listPrev(node, pred) { - pred = pred || func.fail; - var nodes = []; - - while (node) { - if (pred(node)) { - break; - } - - nodes.push(node); - node = node.previousSibling; - } - - return nodes; -} -/** - * listing next siblings (until predicate hit). - * - * @param {Node} node - * @param {Function} [pred] - predicate function - */ - - -function listNext(node, pred) { - pred = pred || func.fail; - var nodes = []; - - while (node) { - if (pred(node)) { - break; - } - - nodes.push(node); - node = node.nextSibling; - } - - return nodes; -} -/** - * listing descendant nodes - * - * @param {Node} node - * @param {Function} [pred] - predicate function - */ - - -function listDescendant(node, pred) { - var descendants = []; - pred = pred || func.ok; // start DFS(depth first search) with node - - (function fnWalk(current) { - if (node !== current && pred(current)) { - descendants.push(current); - } - - for (var idx = 0, len = current.childNodes.length; idx < len; idx++) { - fnWalk(current.childNodes[idx]); - } - })(node); - - return descendants; -} -/** - * wrap node with new tag. - * - * @param {Node} node - * @param {Node} tagName of wrapper - * @return {Node} - wrapper - */ - - -function wrap(node, wrapperName) { - var parent = node.parentNode; - var wrapper = external_jQuery_default()('<' + wrapperName + '>')[0]; - parent.insertBefore(wrapper, node); - wrapper.appendChild(node); - return wrapper; -} -/** - * insert node after preceding - * - * @param {Node} node - * @param {Node} preceding - predicate function - */ - - -function insertAfter(node, preceding) { - var next = preceding.nextSibling; - var parent = preceding.parentNode; - - if (next) { - parent.insertBefore(node, next); - } else { - parent.appendChild(node); - } - - return node; -} -/** - * append elements. - * - * @param {Node} node - * @param {Collection} aChild - */ - - -function appendChildNodes(node, aChild) { - external_jQuery_default().each(aChild, function (idx, child) { - node.appendChild(child); - }); - return node; -} -/** - * returns whether boundaryPoint is left edge or not. - * - * @param {BoundaryPoint} point - * @return {Boolean} - */ - - -function isLeftEdgePoint(point) { - return point.offset === 0; -} -/** - * returns whether boundaryPoint is right edge or not. - * - * @param {BoundaryPoint} point - * @return {Boolean} - */ - - -function isRightEdgePoint(point) { - return point.offset === nodeLength(point.node); -} -/** - * returns whether boundaryPoint is edge or not. - * - * @param {BoundaryPoint} point - * @return {Boolean} - */ - - -function isEdgePoint(point) { - return isLeftEdgePoint(point) || isRightEdgePoint(point); -} -/** - * returns whether node is left edge of ancestor or not. - * - * @param {Node} node - * @param {Node} ancestor - * @return {Boolean} - */ - - -function isLeftEdgeOf(node, ancestor) { - while (node && node !== ancestor) { - if (position(node) !== 0) { - return false; - } - - node = node.parentNode; - } - - return true; -} -/** - * returns whether node is right edge of ancestor or not. - * - * @param {Node} node - * @param {Node} ancestor - * @return {Boolean} - */ - - -function isRightEdgeOf(node, ancestor) { - if (!ancestor) { - return false; - } - - while (node && node !== ancestor) { - if (position(node) !== nodeLength(node.parentNode) - 1) { - return false; - } - - node = node.parentNode; - } - - return true; -} -/** - * returns whether point is left edge of ancestor or not. - * @param {BoundaryPoint} point - * @param {Node} ancestor - * @return {Boolean} - */ - - -function isLeftEdgePointOf(point, ancestor) { - return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor); -} -/** - * returns whether point is right edge of ancestor or not. - * @param {BoundaryPoint} point - * @param {Node} ancestor - * @return {Boolean} - */ - - -function isRightEdgePointOf(point, ancestor) { - return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor); -} -/** - * returns offset from parent. - * - * @param {Node} node - */ - - -function position(node) { - var offset = 0; - - while (node = node.previousSibling) { - offset += 1; - } - - return offset; -} - -function hasChildren(node) { - return !!(node && node.childNodes && node.childNodes.length); -} -/** - * returns previous boundaryPoint - * - * @param {BoundaryPoint} point - * @param {Boolean} isSkipInnerOffset - * @return {BoundaryPoint} - */ - - -function prevPoint(point, isSkipInnerOffset) { - var node; - var offset; - - if (point.offset === 0) { - if (isEditable(point.node)) { - return null; - } - - node = point.node.parentNode; - offset = position(point.node); - } else if (hasChildren(point.node)) { - node = point.node.childNodes[point.offset - 1]; - offset = nodeLength(node); - } else { - node = point.node; - offset = isSkipInnerOffset ? 0 : point.offset - 1; - } - - return { - node: node, - offset: offset - }; -} -/** - * returns next boundaryPoint - * - * @param {BoundaryPoint} point - * @param {Boolean} isSkipInnerOffset - * @return {BoundaryPoint} - */ - - -function nextPoint(point, isSkipInnerOffset) { - var node, offset; - - if (nodeLength(point.node) === point.offset) { - if (isEditable(point.node)) { - return null; - } - - var nextTextNode = getNextTextNode(point.node); - - if (nextTextNode) { - node = nextTextNode; - offset = 0; - } else { - node = point.node.parentNode; - offset = position(point.node) + 1; - } - } else if (hasChildren(point.node)) { - node = point.node.childNodes[point.offset]; - offset = 0; - } else { - node = point.node; - offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1; - } - - return { - node: node, - offset: offset - }; -} -/** - * returns next boundaryPoint with empty node - * - * @param {BoundaryPoint} point - * @param {Boolean} isSkipInnerOffset - * @return {BoundaryPoint} - */ - - -function nextPointWithEmptyNode(point, isSkipInnerOffset) { - var node, - offset = 0; // if node is empty string node, return current node's sibling. - - if (dom_isEmpty(point.node)) { - if (point.node === null) { - return null; - } - - node = point.node.nextSibling; - offset = 0; - return { - node: node, - offset: offset - }; - } - - if (nodeLength(point.node) === point.offset) { - if (isEditable(point.node)) { - return null; - } - - node = point.node.parentNode; - offset = position(point.node) + 1; // if next node is editable , return current node's sibling node. - - if (isEditable(node)) { - node = point.node.nextSibling; - offset = 0; - } - } else if (hasChildren(point.node)) { - node = point.node.childNodes[point.offset]; - offset = 0; - - if (dom_isEmpty(node)) { - if (!dom_isEmpty(point.node.nextSibling)) { - return { - node: point.node.nextSibling, - offset: offset - }; - } - - return null; - } - } else { - node = point.node; - offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1; - - if (dom_isEmpty(node)) { - return null; - } - } - - return { - node: node, - offset: offset - }; -} -/* -* returns the next Text node index or 0 if not found. -*/ - - -function getNextTextNode(actual) { - if (!actual.nextSibling) return undefined; - if (actual.parent !== actual.nextSibling.parent) return undefined; - if (isText(actual.nextSibling)) return actual.nextSibling;else return getNextTextNode(actual.nextSibling); -} -/** - * returns whether pointA and pointB is same or not. - * - * @param {BoundaryPoint} pointA - * @param {BoundaryPoint} pointB - * @return {Boolean} - */ - - -function isSamePoint(pointA, pointB) { - return pointA.node === pointB.node && pointA.offset === pointB.offset; -} -/** - * returns whether point is visible (can set cursor) or not. - * - * @param {BoundaryPoint} point - * @return {Boolean} - */ - - -function isVisiblePoint(point) { - if (isText(point.node) || !hasChildren(point.node) || dom_isEmpty(point.node)) { - return true; - } - - var leftNode = point.node.childNodes[point.offset - 1]; - var rightNode = point.node.childNodes[point.offset]; - - if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode)) || isTable(rightNode)) { - return true; - } - - return false; -} -/** - * @method prevPointUtil - * - * @param {BoundaryPoint} point - * @param {Function} pred - * @return {BoundaryPoint} - */ - - -function prevPointUntil(point, pred) { - while (point) { - if (pred(point)) { - return point; - } - - point = prevPoint(point); - } - - return null; -} -/** - * @method nextPointUntil - * - * @param {BoundaryPoint} point - * @param {Function} pred - * @return {BoundaryPoint} - */ - - -function nextPointUntil(point, pred) { - while (point) { - if (pred(point)) { - return point; - } - - point = nextPoint(point); - } - - return null; -} -/** - * returns whether point has character or not. - * - * @param {Point} point - * @return {Boolean} - */ - - -function isCharPoint(point) { - if (!isText(point.node)) { - return false; - } - - var ch = point.node.nodeValue.charAt(point.offset - 1); - return ch && ch !== ' ' && ch !== NBSP_CHAR; -} -/** - * returns whether point has space or not. - * - * @param {Point} point - * @return {Boolean} - */ - - -function isSpacePoint(point) { - if (!isText(point.node)) { - return false; - } - - var ch = point.node.nodeValue.charAt(point.offset - 1); - return ch === ' ' || ch === NBSP_CHAR; -} -/** - * @method walkPoint - * - * @param {BoundaryPoint} startPoint - * @param {BoundaryPoint} endPoint - * @param {Function} handler - * @param {Boolean} isSkipInnerOffset - */ - - -function walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) { - var point = startPoint; - - while (point) { - handler(point); - - if (isSamePoint(point, endPoint)) { - break; - } - - var isSkipOffset = isSkipInnerOffset && startPoint.node !== point.node && endPoint.node !== point.node; - point = nextPointWithEmptyNode(point, isSkipOffset); - } -} -/** - * @method makeOffsetPath - * - * return offsetPath(array of offset) from ancestor - * - * @param {Node} ancestor - ancestor node - * @param {Node} node - */ - - -function makeOffsetPath(ancestor, node) { - var ancestors = listAncestor(node, func.eq(ancestor)); - return ancestors.map(position).reverse(); -} -/** - * @method fromOffsetPath - * - * return element from offsetPath(array of offset) - * - * @param {Node} ancestor - ancestor node - * @param {array} offsets - offsetPath - */ - - -function fromOffsetPath(ancestor, offsets) { - var current = ancestor; - - for (var i = 0, len = offsets.length; i < len; i++) { - if (current.childNodes.length <= offsets[i]) { - current = current.childNodes[current.childNodes.length - 1]; - } else { - current = current.childNodes[offsets[i]]; - } - } - - return current; -} -/** - * @method splitNode - * - * split element or #text - * - * @param {BoundaryPoint} point - * @param {Object} [options] - * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false - * @param {Boolean} [options.isNotSplitEdgePoint] - default: false - * @param {Boolean} [options.isDiscardEmptySplits] - default: false - * @return {Node} right node of boundaryPoint - */ - - -function splitNode(point, options) { - var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML; - var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint; - var isDiscardEmptySplits = options && options.isDiscardEmptySplits; - - if (isDiscardEmptySplits) { - isSkipPaddingBlankHTML = true; - } // edge case - - - if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) { - if (isLeftEdgePoint(point)) { - return point.node; - } else if (isRightEdgePoint(point)) { - return point.node.nextSibling; - } - } // split #text - - - if (isText(point.node)) { - return point.node.splitText(point.offset); - } else { - var childNode = point.node.childNodes[point.offset]; - var clone = insertAfter(point.node.cloneNode(false), point.node); - appendChildNodes(clone, listNext(childNode)); - - if (!isSkipPaddingBlankHTML) { - paddingBlankHTML(point.node); - paddingBlankHTML(clone); - } - - if (isDiscardEmptySplits) { - if (dom_isEmpty(point.node)) { - remove(point.node); - } - - if (dom_isEmpty(clone)) { - remove(clone); - return point.node.nextSibling; - } - } - - return clone; - } -} -/** - * @method splitTree - * - * split tree by point - * - * @param {Node} root - split root - * @param {BoundaryPoint} point - * @param {Object} [options] - * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false - * @param {Boolean} [options.isNotSplitEdgePoint] - default: false - * @return {Node} right node of boundaryPoint - */ - - -function splitTree(root, point, options) { - // ex) [#text, ,

] - var ancestors = listAncestor(point.node, func.eq(root)); - - if (!ancestors.length) { - return null; - } else if (ancestors.length === 1) { - return splitNode(point, options); - } - - return ancestors.reduce(function (node, parent) { - if (node === point.node) { - node = splitNode(point, options); - } - - return splitNode({ - node: parent, - offset: node ? position(node) : nodeLength(parent) - }, options); - }); -} -/** - * split point - * - * @param {Point} point - * @param {Boolean} isInline - * @return {Object} - */ - - -function splitPoint(point, isInline) { - // find splitRoot, container - // - inline: splitRoot is a child of paragraph - // - block: splitRoot is a child of bodyContainer - var pred = isInline ? isPara : isBodyContainer; - var ancestors = listAncestor(point.node, pred); - var topAncestor = lists.last(ancestors) || point.node; - var splitRoot, container; - - if (pred(topAncestor)) { - splitRoot = ancestors[ancestors.length - 2]; - container = topAncestor; - } else { - splitRoot = topAncestor; - container = splitRoot.parentNode; - } // if splitRoot is exists, split with splitTree - - - var pivot = splitRoot && splitTree(splitRoot, point, { - isSkipPaddingBlankHTML: isInline, - isNotSplitEdgePoint: isInline - }); // if container is point.node, find pivot with point.offset - - if (!pivot && container === point.node) { - pivot = point.node.childNodes[point.offset]; - } - - return { - rightNode: pivot, - container: container - }; -} - -function create(nodeName) { - return document.createElement(nodeName); -} - -function createText(text) { - return document.createTextNode(text); -} -/** - * @method remove - * - * remove node, (isRemoveChild: remove child or not) - * - * @param {Node} node - * @param {Boolean} isRemoveChild - */ - - -function remove(node, isRemoveChild) { - if (!node || !node.parentNode) { - return; - } - - if (node.removeNode) { - return node.removeNode(isRemoveChild); - } - - var parent = node.parentNode; - - if (!isRemoveChild) { - var nodes = []; - - for (var i = 0, len = node.childNodes.length; i < len; i++) { - nodes.push(node.childNodes[i]); - } - - for (var _i = 0, _len = nodes.length; _i < _len; _i++) { - parent.insertBefore(nodes[_i], node); - } - } - - parent.removeChild(node); -} -/** - * @method removeWhile - * - * @param {Node} node - * @param {Function} pred - */ - - -function removeWhile(node, pred) { - while (node) { - if (isEditable(node) || !pred(node)) { - break; - } - - var parent = node.parentNode; - remove(node); - node = parent; - } -} -/** - * @method replace - * - * replace node with provided nodeName - * - * @param {Node} node - * @param {String} nodeName - * @return {Node} - new node - */ - - -function replace(node, nodeName) { - if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) { - return node; - } - - var newNode = create(nodeName); - - if (node.style.cssText) { - newNode.style.cssText = node.style.cssText; - } - - appendChildNodes(newNode, lists.from(node.childNodes)); - insertAfter(newNode, node); - remove(node); - return newNode; -} - -var isTextarea = makePredByNodeName('TEXTAREA'); -/** - * @param {jQuery} $node - * @param {Boolean} [stripLinebreaks] - default: false - */ - -function value($node, stripLinebreaks) { - var val = isTextarea($node[0]) ? $node.val() : $node.html(); - - if (stripLinebreaks) { - return val.replace(/[\n\r]/g, ''); - } - - return val; -} -/** - * @method html - * - * get the HTML contents of node - * - * @param {jQuery} $node - * @param {Boolean} [isNewlineOnBlock] - */ - - -function html($node, isNewlineOnBlock) { - var markup = value($node); - - if (isNewlineOnBlock) { - var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g; - markup = markup.replace(regexTag, function (match, endSlash, name) { - name = name.toUpperCase(); - var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) && !!endSlash; - var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name); - return match + (isEndOfInlineContainer || isBlockNode ? '\n' : ''); - }); - markup = markup.trim(); - } - - return markup; -} - -function posFromPlaceholder(placeholder) { - var $placeholder = external_jQuery_default()(placeholder); - var pos = $placeholder.offset(); - var height = $placeholder.outerHeight(true); // include margin - - return { - left: pos.left, - top: pos.top + height - }; -} - -function attachEvents($node, events) { - Object.keys(events).forEach(function (key) { - $node.on(key, events[key]); - }); -} - -function detachEvents($node, events) { - Object.keys(events).forEach(function (key) { - $node.off(key, events[key]); - }); -} -/** - * @method isCustomStyleTag - * - * assert if a node contains a "note-styletag" class, - * which implies that's a custom-made style tag node - * - * @param {Node} an HTML DOM node - */ - - -function isCustomStyleTag(node) { - return node && !isText(node) && lists.contains(node.classList, 'note-styletag'); -} - -/* harmony default export */ const dom = ({ - /** @property {String} NBSP_CHAR */ - NBSP_CHAR: NBSP_CHAR, - - /** @property {String} ZERO_WIDTH_NBSP_CHAR */ - ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR, - - /** @property {String} blank */ - blank: blankHTML, - - /** @property {String} emptyPara */ - emptyPara: "

".concat(blankHTML, "

"), - makePredByNodeName: makePredByNodeName, - isEditable: isEditable, - isControlSizing: isControlSizing, - isText: isText, - isElement: isElement, - isVoid: isVoid, - isPara: isPara, - isPurePara: isPurePara, - isHeading: isHeading, - isInline: isInline, - isBlock: func.not(isInline), - isBodyInline: isBodyInline, - isBody: isBody, - isParaInline: isParaInline, - isPre: isPre, - isList: isList, - isTable: isTable, - isData: isData, - isCell: isCell, - isBlockquote: isBlockquote, - isBodyContainer: isBodyContainer, - isAnchor: isAnchor, - isDiv: makePredByNodeName('DIV'), - isLi: isLi, - isBR: makePredByNodeName('BR'), - isSpan: makePredByNodeName('SPAN'), - isB: makePredByNodeName('B'), - isU: makePredByNodeName('U'), - isS: makePredByNodeName('S'), - isI: makePredByNodeName('I'), - isImg: makePredByNodeName('IMG'), - isTextarea: isTextarea, - deepestChildIsEmpty: deepestChildIsEmpty, - isEmpty: dom_isEmpty, - isEmptyAnchor: func.and(isAnchor, dom_isEmpty), - isClosestSibling: isClosestSibling, - withClosestSiblings: withClosestSiblings, - nodeLength: nodeLength, - isLeftEdgePoint: isLeftEdgePoint, - isRightEdgePoint: isRightEdgePoint, - isEdgePoint: isEdgePoint, - isLeftEdgeOf: isLeftEdgeOf, - isRightEdgeOf: isRightEdgeOf, - isLeftEdgePointOf: isLeftEdgePointOf, - isRightEdgePointOf: isRightEdgePointOf, - prevPoint: prevPoint, - nextPoint: nextPoint, - nextPointWithEmptyNode: nextPointWithEmptyNode, - isSamePoint: isSamePoint, - isVisiblePoint: isVisiblePoint, - prevPointUntil: prevPointUntil, - nextPointUntil: nextPointUntil, - isCharPoint: isCharPoint, - isSpacePoint: isSpacePoint, - walkPoint: walkPoint, - ancestor: ancestor, - singleChildAncestor: singleChildAncestor, - listAncestor: listAncestor, - lastAncestor: lastAncestor, - listNext: listNext, - listPrev: listPrev, - listDescendant: listDescendant, - commonAncestor: commonAncestor, - wrap: wrap, - insertAfter: insertAfter, - appendChildNodes: appendChildNodes, - position: position, - hasChildren: hasChildren, - makeOffsetPath: makeOffsetPath, - fromOffsetPath: fromOffsetPath, - splitTree: splitTree, - splitPoint: splitPoint, - create: create, - createText: createText, - remove: remove, - removeWhile: removeWhile, - replace: replace, - html: html, - value: value, - posFromPlaceholder: posFromPlaceholder, - attachEvents: attachEvents, - detachEvents: detachEvents, - isCustomStyleTag: isCustomStyleTag -}); -;// CONCATENATED MODULE: ./src/js/Context.js -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - - - - - - -var Context = /*#__PURE__*/function () { - /** - * @param {jQuery} $note - * @param {Object} options - */ - function Context($note, options) { - _classCallCheck(this, Context); - - this.$note = $note; - this.memos = {}; - this.modules = {}; - this.layoutInfo = {}; - this.options = external_jQuery_default().extend(true, {}, options); // init ui with options - - (external_jQuery_default()).summernote.ui = external_jQuery_default().summernote.ui_template(this.options); - this.ui = (external_jQuery_default()).summernote.ui; - this.initialize(); - } - /** - * create layout and initialize modules and other resources - */ - - - _createClass(Context, [{ - key: "initialize", - value: function initialize() { - this.layoutInfo = this.ui.createLayout(this.$note); - - this._initialize(); - - this.$note.hide(); - return this; - } - /** - * destroy modules and other resources and remove layout - */ - - }, { - key: "destroy", - value: function destroy() { - this._destroy(); - - this.$note.removeData('summernote'); - this.ui.removeLayout(this.$note, this.layoutInfo); - } - /** - * destory modules and other resources and initialize it again - */ - - }, { - key: "reset", - value: function reset() { - var disabled = this.isDisabled(); - this.code(dom.emptyPara); - - this._destroy(); - - this._initialize(); - - if (disabled) { - this.disable(); - } - } - }, { - key: "_initialize", - value: function _initialize() { - var _this = this; - - // set own id - this.options.id = func.uniqueId(external_jQuery_default().now()); // set default container for tooltips, popovers, and dialogs - - this.options.container = this.options.container || this.layoutInfo.editor; // add optional buttons - - var buttons = external_jQuery_default().extend({}, this.options.buttons); - Object.keys(buttons).forEach(function (key) { - _this.memo('button.' + key, buttons[key]); - }); - var modules = external_jQuery_default().extend({}, this.options.modules, (external_jQuery_default()).summernote.plugins || {}); // add and initialize modules - - Object.keys(modules).forEach(function (key) { - _this.module(key, modules[key], true); - }); - Object.keys(this.modules).forEach(function (key) { - _this.initializeModule(key); - }); - } - }, { - key: "_destroy", - value: function _destroy() { - var _this2 = this; - - // destroy modules with reversed order - Object.keys(this.modules).reverse().forEach(function (key) { - _this2.removeModule(key); - }); - Object.keys(this.memos).forEach(function (key) { - _this2.removeMemo(key); - }); // trigger custom onDestroy callback - - this.triggerEvent('destroy', this); - } - }, { - key: "code", - value: function code(html) { - var isActivated = this.invoke('codeview.isActivated'); - - if (html === undefined) { - this.invoke('codeview.sync'); - return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html(); - } else { - if (isActivated) { - this.invoke('codeview.sync', html); - } else { - this.layoutInfo.editable.html(html); - } - - this.$note.val(html); - this.triggerEvent('change', html, this.layoutInfo.editable); - } - } - }, { - key: "isDisabled", - value: function isDisabled() { - return this.layoutInfo.editable.attr('contenteditable') === 'false'; - } - }, { - key: "enable", - value: function enable() { - this.layoutInfo.editable.attr('contenteditable', true); - this.invoke('toolbar.activate', true); - this.triggerEvent('disable', false); - this.options.editing = true; - } - }, { - key: "disable", - value: function disable() { - // close codeview if codeview is opend - if (this.invoke('codeview.isActivated')) { - this.invoke('codeview.deactivate'); - } - - this.layoutInfo.editable.attr('contenteditable', false); - this.options.editing = false; - this.invoke('toolbar.deactivate', true); - this.triggerEvent('disable', true); - } - }, { - key: "triggerEvent", - value: function triggerEvent() { - var namespace = lists.head(arguments); - var args = lists.tail(lists.from(arguments)); - var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')]; - - if (callback) { - callback.apply(this.$note[0], args); - } - - this.$note.trigger('summernote.' + namespace, args); - } - }, { - key: "initializeModule", - value: function initializeModule(key) { - var module = this.modules[key]; - module.shouldInitialize = module.shouldInitialize || func.ok; - - if (!module.shouldInitialize()) { - return; - } // initialize module - - - if (module.initialize) { - module.initialize(); - } // attach events - - - if (module.events) { - dom.attachEvents(this.$note, module.events); - } - } - }, { - key: "module", - value: function module(key, ModuleClass, withoutIntialize) { - if (arguments.length === 1) { - return this.modules[key]; - } - - this.modules[key] = new ModuleClass(this); - - if (!withoutIntialize) { - this.initializeModule(key); - } - } - }, { - key: "removeModule", - value: function removeModule(key) { - var module = this.modules[key]; - - if (module.shouldInitialize()) { - if (module.events) { - dom.detachEvents(this.$note, module.events); - } - - if (module.destroy) { - module.destroy(); - } - } - - delete this.modules[key]; - } - }, { - key: "memo", - value: function memo(key, obj) { - if (arguments.length === 1) { - return this.memos[key]; - } - - this.memos[key] = obj; - } - }, { - key: "removeMemo", - value: function removeMemo(key) { - if (this.memos[key] && this.memos[key].destroy) { - this.memos[key].destroy(); - } - - delete this.memos[key]; - } - /** - * Some buttons need to change their visual style immediately once they get pressed - */ - - }, { - key: "createInvokeHandlerAndUpdateState", - value: function createInvokeHandlerAndUpdateState(namespace, value) { - var _this3 = this; - - return function (event) { - _this3.createInvokeHandler(namespace, value)(event); - - _this3.invoke('buttons.updateCurrentStyle'); - }; - } - }, { - key: "createInvokeHandler", - value: function createInvokeHandler(namespace, value) { - var _this4 = this; - - return function (event) { - event.preventDefault(); - var $target = external_jQuery_default()(event.target); - - _this4.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target); - }; - } - }, { - key: "invoke", - value: function invoke() { - var namespace = lists.head(arguments); - var args = lists.tail(lists.from(arguments)); - var splits = namespace.split('.'); - var hasSeparator = splits.length > 1; - var moduleName = hasSeparator && lists.head(splits); - var methodName = hasSeparator ? lists.last(splits) : lists.head(splits); - var module = this.modules[moduleName || 'editor']; - - if (!moduleName && this[methodName]) { - return this[methodName].apply(this, args); - } else if (module && module[methodName] && module.shouldInitialize()) { - return module[methodName].apply(module, args); - } - } - }]); - - return Context; -}(); - - -;// CONCATENATED MODULE: ./src/js/summernote.js - - - - -external_jQuery_default().fn.extend({ - /** - * Summernote API - * - * @param {Object|String} - * @return {this} - */ - summernote: function summernote() { - var type = external_jQuery_default().type(lists.head(arguments)); - var isExternalAPICalled = type === 'string'; - var hasInitOptions = type === 'object'; - var options = external_jQuery_default().extend({}, (external_jQuery_default()).summernote.options, hasInitOptions ? lists.head(arguments) : {}); // Update options - - options.langInfo = external_jQuery_default().extend(true, {}, (external_jQuery_default()).summernote.lang["en-US"], (external_jQuery_default()).summernote.lang[options.lang]); - options.icons = external_jQuery_default().extend(true, {}, (external_jQuery_default()).summernote.options.icons, options.icons); - options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip; - this.each(function (idx, note) { - var $note = external_jQuery_default()(note); - - if (!$note.data('summernote')) { - var context = new Context($note, options); - $note.data('summernote', context); - $note.data('summernote').triggerEvent('init', context.layoutInfo); - } - }); - var $note = this.first(); - - if ($note.length) { - var context = $note.data('summernote'); - - if (isExternalAPICalled) { - return context.invoke.apply(context, lists.from(arguments)); - } else if (options.focus) { - context.invoke('editor.focus'); - } - } - - return this; - } -}); -;// CONCATENATED MODULE: ./src/js/core/range.js -function range_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function range_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); } } - -function range_createClass(Constructor, protoProps, staticProps) { if (protoProps) range_defineProperties(Constructor.prototype, protoProps); if (staticProps) range_defineProperties(Constructor, staticProps); return Constructor; } - - - - - - -/** - * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js - * - * @param {TextRange} textRange - * @param {Boolean} isStart - * @return {BoundaryPoint} - * - * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx - */ - -function textRangeToPoint(textRange, isStart) { - var container = textRange.parentElement(); - var offset; - var tester = document.body.createTextRange(); - var prevContainer; - var childNodes = lists.from(container.childNodes); - - for (offset = 0; offset < childNodes.length; offset++) { - if (dom.isText(childNodes[offset])) { - continue; - } - - tester.moveToElementText(childNodes[offset]); - - if (tester.compareEndPoints('StartToStart', textRange) >= 0) { - break; - } - - prevContainer = childNodes[offset]; - } - - if (offset !== 0 && dom.isText(childNodes[offset - 1])) { - var textRangeStart = document.body.createTextRange(); - var curTextNode = null; - textRangeStart.moveToElementText(prevContainer || container); - textRangeStart.collapse(!prevContainer); - curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild; - var pointTester = textRange.duplicate(); - pointTester.setEndPoint('StartToStart', textRangeStart); - var textCount = pointTester.text.replace(/[\r\n]/g, '').length; - - while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) { - textCount -= curTextNode.nodeValue.length; - curTextNode = curTextNode.nextSibling; - } // [workaround] enforce IE to re-reference curTextNode, hack - - - var dummy = curTextNode.nodeValue; // eslint-disable-line - - if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) && textCount === curTextNode.nodeValue.length) { - textCount -= curTextNode.nodeValue.length; - curTextNode = curTextNode.nextSibling; - } - - container = curTextNode; - offset = textCount; - } - - return { - cont: container, - offset: offset - }; -} -/** - * return TextRange from boundary point (inspired by google closure-library) - * @param {BoundaryPoint} point - * @return {TextRange} - */ - - -function pointToTextRange(point) { - var textRangeInfo = function textRangeInfo(container, offset) { - var node, isCollapseToStart; - - if (dom.isText(container)) { - var prevTextNodes = dom.listPrev(container, func.not(dom.isText)); - var prevContainer = lists.last(prevTextNodes).previousSibling; - node = prevContainer || container.parentNode; - offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength); - isCollapseToStart = !prevContainer; - } else { - node = container.childNodes[offset] || container; - - if (dom.isText(node)) { - return textRangeInfo(node, 0); - } - - offset = 0; - isCollapseToStart = false; - } - - return { - node: node, - collapseToStart: isCollapseToStart, - offset: offset - }; - }; - - var textRange = document.body.createTextRange(); - var info = textRangeInfo(point.node, point.offset); - textRange.moveToElementText(info.node); - textRange.collapse(info.collapseToStart); - textRange.moveStart('character', info.offset); - return textRange; -} -/** - * Wrapped Range - * - * @constructor - * @param {Node} sc - start container - * @param {Number} so - start offset - * @param {Node} ec - end container - * @param {Number} eo - end offset - */ - - -var WrappedRange = /*#__PURE__*/function () { - function WrappedRange(sc, so, ec, eo) { - range_classCallCheck(this, WrappedRange); - - this.sc = sc; - this.so = so; - this.ec = ec; - this.eo = eo; // isOnEditable: judge whether range is on editable or not - - this.isOnEditable = this.makeIsOn(dom.isEditable); // isOnList: judge whether range is on list node or not - - this.isOnList = this.makeIsOn(dom.isList); // isOnAnchor: judge whether range is on anchor node or not - - this.isOnAnchor = this.makeIsOn(dom.isAnchor); // isOnCell: judge whether range is on cell node or not - - this.isOnCell = this.makeIsOn(dom.isCell); // isOnData: judge whether range is on data node or not - - this.isOnData = this.makeIsOn(dom.isData); - } // nativeRange: get nativeRange from sc, so, ec, eo - - - range_createClass(WrappedRange, [{ - key: "nativeRange", - value: function nativeRange() { - if (env.isW3CRangeSupport) { - var w3cRange = document.createRange(); - w3cRange.setStart(this.sc, this.so); - w3cRange.setEnd(this.ec, this.eo); - return w3cRange; - } else { - var textRange = pointToTextRange({ - node: this.sc, - offset: this.so - }); - textRange.setEndPoint('EndToEnd', pointToTextRange({ - node: this.ec, - offset: this.eo - })); - return textRange; - } - } - }, { - key: "getPoints", - value: function getPoints() { - return { - sc: this.sc, - so: this.so, - ec: this.ec, - eo: this.eo - }; - } - }, { - key: "getStartPoint", - value: function getStartPoint() { - return { - node: this.sc, - offset: this.so - }; - } - }, { - key: "getEndPoint", - value: function getEndPoint() { - return { - node: this.ec, - offset: this.eo - }; - } - /** - * select update visible range - */ - - }, { - key: "select", - value: function select() { - var nativeRng = this.nativeRange(); - - if (env.isW3CRangeSupport) { - var selection = document.getSelection(); - - if (selection.rangeCount > 0) { - selection.removeAllRanges(); - } - - selection.addRange(nativeRng); - } else { - nativeRng.select(); - } - - return this; - } - /** - * Moves the scrollbar to start container(sc) of current range - * - * @return {WrappedRange} - */ - - }, { - key: "scrollIntoView", - value: function scrollIntoView(container) { - var height = external_jQuery_default()(container).height(); - - if (container.scrollTop + height < this.sc.offsetTop) { - container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop); - } - - return this; - } - /** - * @return {WrappedRange} - */ - - }, { - key: "normalize", - value: function normalize() { - /** - * @param {BoundaryPoint} point - * @param {Boolean} isLeftToRight - true: prefer to choose right node - * - false: prefer to choose left node - * @return {BoundaryPoint} - */ - var getVisiblePoint = function getVisiblePoint(point, isLeftToRight) { - if (!point) { - return point; - } // Just use the given point [XXX:Adhoc] - // - case 01. if the point is on the middle of the node - // - case 02. if the point is on the right edge and prefer to choose left node - // - case 03. if the point is on the left edge and prefer to choose right node - // - case 04. if the point is on the right edge and prefer to choose right node but the node is void - // - case 05. if the point is on the left edge and prefer to choose left node but the node is void - // - case 06. if the point is on the block node and there is no children - - - if (dom.isVisiblePoint(point)) { - if (!dom.isEdgePoint(point) || dom.isRightEdgePoint(point) && !isLeftToRight || dom.isLeftEdgePoint(point) && isLeftToRight || dom.isRightEdgePoint(point) && isLeftToRight && dom.isVoid(point.node.nextSibling) || dom.isLeftEdgePoint(point) && !isLeftToRight && dom.isVoid(point.node.previousSibling) || dom.isBlock(point.node) && dom.isEmpty(point.node)) { - return point; - } - } // point on block's edge - - - var block = dom.ancestor(point.node, dom.isBlock); - var hasRightNode = false; - - if (!hasRightNode) { - var prevPoint = dom.prevPoint(point) || { - node: null - }; - hasRightNode = (dom.isLeftEdgePointOf(point, block) || dom.isVoid(prevPoint.node)) && !isLeftToRight; - } - - var hasLeftNode = false; - - if (!hasLeftNode) { - var _nextPoint = dom.nextPoint(point) || { - node: null - }; - - hasLeftNode = (dom.isRightEdgePointOf(point, block) || dom.isVoid(_nextPoint.node)) && isLeftToRight; - } - - if (hasRightNode || hasLeftNode) { - // returns point already on visible point - if (dom.isVisiblePoint(point)) { - return point; - } // reverse direction - - - isLeftToRight = !isLeftToRight; - } - - var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint); - return nextPoint || point; - }; - - var endPoint = getVisiblePoint(this.getEndPoint(), false); - var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true); - return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); - } - /** - * returns matched nodes on range - * - * @param {Function} [pred] - predicate function - * @param {Object} [options] - * @param {Boolean} [options.includeAncestor] - * @param {Boolean} [options.fullyContains] - * @return {Node[]} - */ - - }, { - key: "nodes", - value: function nodes(pred, options) { - pred = pred || func.ok; - var includeAncestor = options && options.includeAncestor; - var fullyContains = options && options.fullyContains; // TODO compare points and sort - - var startPoint = this.getStartPoint(); - var endPoint = this.getEndPoint(); - var nodes = []; - var leftEdgeNodes = []; - dom.walkPoint(startPoint, endPoint, function (point) { - if (dom.isEditable(point.node)) { - return; - } - - var node; - - if (fullyContains) { - if (dom.isLeftEdgePoint(point)) { - leftEdgeNodes.push(point.node); - } - - if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) { - node = point.node; - } - } else if (includeAncestor) { - node = dom.ancestor(point.node, pred); - } else { - node = point.node; - } - - if (node && pred(node)) { - nodes.push(node); - } - }, true); - return lists.unique(nodes); - } - /** - * returns commonAncestor of range - * @return {Element} - commonAncestor - */ - - }, { - key: "commonAncestor", - value: function commonAncestor() { - return dom.commonAncestor(this.sc, this.ec); - } - /** - * returns expanded range by pred - * - * @param {Function} pred - predicate function - * @return {WrappedRange} - */ - - }, { - key: "expand", - value: function expand(pred) { - var startAncestor = dom.ancestor(this.sc, pred); - var endAncestor = dom.ancestor(this.ec, pred); - - if (!startAncestor && !endAncestor) { - return new WrappedRange(this.sc, this.so, this.ec, this.eo); - } - - var boundaryPoints = this.getPoints(); - - if (startAncestor) { - boundaryPoints.sc = startAncestor; - boundaryPoints.so = 0; - } - - if (endAncestor) { - boundaryPoints.ec = endAncestor; - boundaryPoints.eo = dom.nodeLength(endAncestor); - } - - return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo); - } - /** - * @param {Boolean} isCollapseToStart - * @return {WrappedRange} - */ - - }, { - key: "collapse", - value: function collapse(isCollapseToStart) { - if (isCollapseToStart) { - return new WrappedRange(this.sc, this.so, this.sc, this.so); - } else { - return new WrappedRange(this.ec, this.eo, this.ec, this.eo); - } - } - /** - * splitText on range - */ - - }, { - key: "splitText", - value: function splitText() { - var isSameContainer = this.sc === this.ec; - var boundaryPoints = this.getPoints(); - - if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) { - this.ec.splitText(this.eo); - } - - if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) { - boundaryPoints.sc = this.sc.splitText(this.so); - boundaryPoints.so = 0; - - if (isSameContainer) { - boundaryPoints.ec = boundaryPoints.sc; - boundaryPoints.eo = this.eo - this.so; - } - } - - return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo); - } - /** - * delete contents on range - * @return {WrappedRange} - */ - - }, { - key: "deleteContents", - value: function deleteContents() { - if (this.isCollapsed()) { - return this; - } - - var rng = this.splitText(); - var nodes = rng.nodes(null, { - fullyContains: true - }); // find new cursor point - - var point = dom.prevPointUntil(rng.getStartPoint(), function (point) { - return !lists.contains(nodes, point.node); - }); - var emptyParents = []; - external_jQuery_default().each(nodes, function (idx, node) { - // find empty parents - var parent = node.parentNode; - - if (point.node !== parent && dom.nodeLength(parent) === 1) { - emptyParents.push(parent); - } - - dom.remove(node, false); - }); // remove empty parents - - external_jQuery_default().each(emptyParents, function (idx, node) { - dom.remove(node, false); - }); - return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize(); - } - /** - * makeIsOn: return isOn(pred) function - */ - - }, { - key: "makeIsOn", - value: function makeIsOn(pred) { - return function () { - var ancestor = dom.ancestor(this.sc, pred); - return !!ancestor && ancestor === dom.ancestor(this.ec, pred); - }; - } - /** - * @param {Function} pred - * @return {Boolean} - */ - - }, { - key: "isLeftEdgeOf", - value: function isLeftEdgeOf(pred) { - if (!dom.isLeftEdgePoint(this.getStartPoint())) { - return false; - } - - var node = dom.ancestor(this.sc, pred); - return node && dom.isLeftEdgeOf(this.sc, node); - } - /** - * returns whether range was collapsed or not - */ - - }, { - key: "isCollapsed", - value: function isCollapsed() { - return this.sc === this.ec && this.so === this.eo; - } - /** - * wrap inline nodes which children of body with paragraph - * - * @return {WrappedRange} - */ - - }, { - key: "wrapBodyInlineWithPara", - value: function wrapBodyInlineWithPara() { - if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) { - this.sc.innerHTML = dom.emptyPara; - return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0); - } - /** - * [workaround] firefox often create range on not visible point. so normalize here. - * - firefox: |

text

| - * - chrome:

|text|

- */ - - - var rng = this.normalize(); - - if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) { - return rng; - } // find inline top ancestor - - - var topAncestor; - - if (dom.isInline(rng.sc)) { - var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline)); - topAncestor = lists.last(ancestors); - - if (!dom.isInline(topAncestor)) { - topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so]; - } - } else { - topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0]; - } - - if (topAncestor) { - // siblings not in paragraph - var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse(); - inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline)); // wrap with paragraph - - if (inlineSiblings.length) { - var para = dom.wrap(lists.head(inlineSiblings), 'p'); - dom.appendChildNodes(para, lists.tail(inlineSiblings)); - } - } - - return this.normalize(); - } - /** - * insert node at current cursor - * - * @param {Node} node - * @return {Node} - */ - - }, { - key: "insertNode", - value: function insertNode(node) { - var rng = this; - - if (dom.isText(node) || dom.isInline(node)) { - rng = this.wrapBodyInlineWithPara().deleteContents(); - } - - var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node)); - - if (info.rightNode) { - info.rightNode.parentNode.insertBefore(node, info.rightNode); - - if (dom.isEmpty(info.rightNode) && dom.isPara(node)) { - info.rightNode.parentNode.removeChild(info.rightNode); - } - } else { - info.container.appendChild(node); - } - - return node; - } - /** - * insert html at current cursor - */ - - }, { - key: "pasteHTML", - value: function pasteHTML(markup) { - markup = external_jQuery_default().trim(markup); - var contentsContainer = external_jQuery_default()('
').html(markup)[0]; - var childNodes = lists.from(contentsContainer.childNodes); // const rng = this.wrapBodyInlineWithPara().deleteContents(); - - var rng = this; - var reversed = false; - - if (rng.so >= 0) { - childNodes = childNodes.reverse(); - reversed = true; - } - - childNodes = childNodes.map(function (childNode) { - return rng.insertNode(childNode); - }); - - if (reversed) { - childNodes = childNodes.reverse(); - } - - return childNodes; - } - /** - * returns text in range - * - * @return {String} - */ - - }, { - key: "toString", - value: function toString() { - var nativeRng = this.nativeRange(); - return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text; - } - /** - * returns range for word before cursor - * - * @param {Boolean} [findAfter] - find after cursor, default: false - * @return {WrappedRange} - */ - - }, { - key: "getWordRange", - value: function getWordRange(findAfter) { - var endPoint = this.getEndPoint(); - - if (!dom.isCharPoint(endPoint)) { - return this; - } - - var startPoint = dom.prevPointUntil(endPoint, function (point) { - return !dom.isCharPoint(point); - }); - - if (findAfter) { - endPoint = dom.nextPointUntil(endPoint, function (point) { - return !dom.isCharPoint(point); - }); - } - - return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); - } - /** - * returns range for words before cursor - * - * @param {Boolean} [findAfter] - find after cursor, default: false - * @return {WrappedRange} - */ - - }, { - key: "getWordsRange", - value: function getWordsRange(findAfter) { - var endPoint = this.getEndPoint(); - - var isNotTextPoint = function isNotTextPoint(point) { - return !dom.isCharPoint(point) && !dom.isSpacePoint(point); - }; - - if (isNotTextPoint(endPoint)) { - return this; - } - - var startPoint = dom.prevPointUntil(endPoint, isNotTextPoint); - - if (findAfter) { - endPoint = dom.nextPointUntil(endPoint, isNotTextPoint); - } - - return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); - } - /** - * returns range for words before cursor that match with a Regex - * - * example: - * range: 'hi @Peter Pan' - * regex: '/@[a-z ]+/i' - * return range: '@Peter Pan' - * - * @param {RegExp} [regex] - * @return {WrappedRange|null} - */ - - }, { - key: "getWordsMatchRange", - value: function getWordsMatchRange(regex) { - var endPoint = this.getEndPoint(); - var startPoint = dom.prevPointUntil(endPoint, function (point) { - if (!dom.isCharPoint(point) && !dom.isSpacePoint(point)) { - return true; - } - - var rng = new WrappedRange(point.node, point.offset, endPoint.node, endPoint.offset); - var result = regex.exec(rng.toString()); - return result && result.index === 0; - }); - var rng = new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); - var text = rng.toString(); - var result = regex.exec(text); - - if (result && result[0].length === text.length) { - return rng; - } else { - return null; - } - } - /** - * create offsetPath bookmark - * - * @param {Node} editable - */ - - }, { - key: "bookmark", - value: function bookmark(editable) { - return { - s: { - path: dom.makeOffsetPath(editable, this.sc), - offset: this.so - }, - e: { - path: dom.makeOffsetPath(editable, this.ec), - offset: this.eo - } - }; - } - /** - * create offsetPath bookmark base on paragraph - * - * @param {Node[]} paras - */ - - }, { - key: "paraBookmark", - value: function paraBookmark(paras) { - return { - s: { - path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)), - offset: this.so - }, - e: { - path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)), - offset: this.eo - } - }; - } - /** - * getClientRects - * @return {Rect[]} - */ - - }, { - key: "getClientRects", - value: function getClientRects() { - var nativeRng = this.nativeRange(); - return nativeRng.getClientRects(); - } - }]); - - return WrappedRange; -}(); -/** - * Data structure - * * BoundaryPoint: a point of dom tree - * * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range - * - * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position - */ - - -/* harmony default export */ const range = ({ - /** - * create Range Object From arguments or Browser Selection - * - * @param {Node} sc - start container - * @param {Number} so - start offset - * @param {Node} ec - end container - * @param {Number} eo - end offset - * @return {WrappedRange} - */ - create: function create(sc, so, ec, eo) { - if (arguments.length === 4) { - return new WrappedRange(sc, so, ec, eo); - } else if (arguments.length === 2) { - // collapsed - ec = sc; - eo = so; - return new WrappedRange(sc, so, ec, eo); - } else { - var wrappedRange = this.createFromSelection(); - - if (!wrappedRange && arguments.length === 1) { - var bodyElement = arguments[0]; - - if (dom.isEditable(bodyElement)) { - bodyElement = bodyElement.lastChild; - } - - return this.createFromBodyElement(bodyElement, dom.emptyPara === arguments[0].innerHTML); - } - - return wrappedRange; - } - }, - createFromBodyElement: function createFromBodyElement(bodyElement) { - var isCollapseToStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var wrappedRange = this.createFromNode(bodyElement); - return wrappedRange.collapse(isCollapseToStart); - }, - createFromSelection: function createFromSelection() { - var sc, so, ec, eo; - - if (env.isW3CRangeSupport) { - var selection = document.getSelection(); - - if (!selection || selection.rangeCount === 0) { - return null; - } else if (dom.isBody(selection.anchorNode)) { - // Firefox: returns entire body as range on initialization. - // We won't never need it. - return null; - } - - var nativeRng = selection.getRangeAt(0); - sc = nativeRng.startContainer; - so = nativeRng.startOffset; - ec = nativeRng.endContainer; - eo = nativeRng.endOffset; - } else { - // IE8: TextRange - var textRange = document.selection.createRange(); - var textRangeEnd = textRange.duplicate(); - textRangeEnd.collapse(false); - var textRangeStart = textRange; - textRangeStart.collapse(true); - var startPoint = textRangeToPoint(textRangeStart, true); - var endPoint = textRangeToPoint(textRangeEnd, false); // same visible point case: range was collapsed. - - if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) && dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) && endPoint.node.nextSibling === startPoint.node) { - startPoint = endPoint; - } - - sc = startPoint.cont; - so = startPoint.offset; - ec = endPoint.cont; - eo = endPoint.offset; - } - - return new WrappedRange(sc, so, ec, eo); - }, - - /** - * @method - * - * create WrappedRange from node - * - * @param {Node} node - * @return {WrappedRange} - */ - createFromNode: function createFromNode(node) { - var sc = node; - var so = 0; - var ec = node; - var eo = dom.nodeLength(ec); // browsers can't target a picture or void node - - if (dom.isVoid(sc)) { - so = dom.listPrev(sc).length - 1; - sc = sc.parentNode; - } - - if (dom.isBR(ec)) { - eo = dom.listPrev(ec).length - 1; - ec = ec.parentNode; - } else if (dom.isVoid(ec)) { - eo = dom.listPrev(ec).length; - ec = ec.parentNode; - } - - return this.create(sc, so, ec, eo); - }, - - /** - * create WrappedRange from node after position - * - * @param {Node} node - * @return {WrappedRange} - */ - createFromNodeBefore: function createFromNodeBefore(node) { - return this.createFromNode(node).collapse(true); - }, - - /** - * create WrappedRange from node after position - * - * @param {Node} node - * @return {WrappedRange} - */ - createFromNodeAfter: function createFromNodeAfter(node) { - return this.createFromNode(node).collapse(); - }, - - /** - * @method - * - * create WrappedRange from bookmark - * - * @param {Node} editable - * @param {Object} bookmark - * @return {WrappedRange} - */ - createFromBookmark: function createFromBookmark(editable, bookmark) { - var sc = dom.fromOffsetPath(editable, bookmark.s.path); - var so = bookmark.s.offset; - var ec = dom.fromOffsetPath(editable, bookmark.e.path); - var eo = bookmark.e.offset; - return new WrappedRange(sc, so, ec, eo); - }, - - /** - * @method - * - * create WrappedRange from paraBookmark - * - * @param {Object} bookmark - * @param {Node[]} paras - * @return {WrappedRange} - */ - createFromParaBookmark: function createFromParaBookmark(bookmark, paras) { - var so = bookmark.s.offset; - var eo = bookmark.e.offset; - var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path); - var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path); - return new WrappedRange(sc, so, ec, eo); - } -}); -;// CONCATENATED MODULE: ./src/js/core/key.js - - -var KEY_MAP = { - 'BACKSPACE': 8, - 'TAB': 9, - 'ENTER': 13, - 'ESCAPE': 27, - 'SPACE': 32, - 'DELETE': 46, - // Arrow - 'LEFT': 37, - 'UP': 38, - 'RIGHT': 39, - 'DOWN': 40, - // Number: 0-9 - 'NUM0': 48, - 'NUM1': 49, - 'NUM2': 50, - 'NUM3': 51, - 'NUM4': 52, - 'NUM5': 53, - 'NUM6': 54, - 'NUM7': 55, - 'NUM8': 56, - // Alphabet: a-z - 'B': 66, - 'E': 69, - 'I': 73, - 'J': 74, - 'K': 75, - 'L': 76, - 'R': 82, - 'S': 83, - 'U': 85, - 'V': 86, - 'Y': 89, - 'Z': 90, - 'SLASH': 191, - 'LEFTBRACKET': 219, - 'BACKSLASH': 220, - 'RIGHTBRACKET': 221, - // Navigation - 'HOME': 36, - 'END': 35, - 'PAGEUP': 33, - 'PAGEDOWN': 34 -}; -/** - * @class core.key - * - * Object for keycodes. - * - * @singleton - * @alternateClassName key - */ - -/* harmony default export */ const key = ({ - /** - * @method isEdit - * - * @param {Number} keyCode - * @return {Boolean} - */ - isEdit: function isEdit(keyCode) { - return lists.contains([KEY_MAP.BACKSPACE, KEY_MAP.TAB, KEY_MAP.ENTER, KEY_MAP.SPACE, KEY_MAP.DELETE], keyCode); - }, - - /** - * @method isMove - * - * @param {Number} keyCode - * @return {Boolean} - */ - isMove: function isMove(keyCode) { - return lists.contains([KEY_MAP.LEFT, KEY_MAP.UP, KEY_MAP.RIGHT, KEY_MAP.DOWN], keyCode); - }, - - /** - * @method isNavigation - * - * @param {Number} keyCode - * @return {Boolean} - */ - isNavigation: function isNavigation(keyCode) { - return lists.contains([KEY_MAP.HOME, KEY_MAP.END, KEY_MAP.PAGEUP, KEY_MAP.PAGEDOWN], keyCode); - }, - - /** - * @property {Object} nameFromCode - * @property {String} nameFromCode.8 "BACKSPACE" - */ - nameFromCode: func.invertObject(KEY_MAP), - code: KEY_MAP -}); -;// CONCATENATED MODULE: ./src/js/core/async.js - -/** - * @method readFileAsDataURL - * - * read contents of file as representing URL - * - * @param {File} file - * @return {Promise} - then: dataUrl - */ - -function readFileAsDataURL(file) { - return external_jQuery_default().Deferred(function (deferred) { - external_jQuery_default().extend(new FileReader(), { - onload: function onload(e) { - var dataURL = e.target.result; - deferred.resolve(dataURL); - }, - onerror: function onerror(err) { - deferred.reject(err); - } - }).readAsDataURL(file); - }).promise(); -} -/** - * @method createImage - * - * create `` from url string - * - * @param {String} url - * @return {Promise} - then: $image - */ - -function createImage(url) { - return external_jQuery_default().Deferred(function (deferred) { - var $img = external_jQuery_default()(''); - $img.one('load', function () { - $img.off('error abort'); - deferred.resolve($img); - }).one('error abort', function () { - $img.off('load').detach(); - deferred.reject($img); - }).css({ - display: 'none' - }).appendTo(document.body).attr('src', url); - }).promise(); -} -;// CONCATENATED MODULE: ./src/js/editing/History.js -function History_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function History_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); } } - -function History_createClass(Constructor, protoProps, staticProps) { if (protoProps) History_defineProperties(Constructor.prototype, protoProps); if (staticProps) History_defineProperties(Constructor, staticProps); return Constructor; } - - - -var History = /*#__PURE__*/function () { - function History(context) { - History_classCallCheck(this, History); - - this.stack = []; - this.stackOffset = -1; - this.context = context; - this.$editable = context.layoutInfo.editable; - this.editable = this.$editable[0]; - } - - History_createClass(History, [{ - key: "makeSnapshot", - value: function makeSnapshot() { - var rng = range.create(this.editable); - var emptyBookmark = { - s: { - path: [], - offset: 0 - }, - e: { - path: [], - offset: 0 - } - }; - return { - contents: this.$editable.html(), - bookmark: rng && rng.isOnEditable() ? rng.bookmark(this.editable) : emptyBookmark - }; - } - }, { - key: "applySnapshot", - value: function applySnapshot(snapshot) { - if (snapshot.contents !== null) { - this.$editable.html(snapshot.contents); - } - - if (snapshot.bookmark !== null) { - range.createFromBookmark(this.editable, snapshot.bookmark).select(); - } - } - /** - * @method rewind - * Rewinds the history stack back to the first snapshot taken. - * Leaves the stack intact, so that "Redo" can still be used. - */ - - }, { - key: "rewind", - value: function rewind() { - // Create snap shot if not yet recorded - if (this.$editable.html() !== this.stack[this.stackOffset].contents) { - this.recordUndo(); - } // Return to the first available snapshot. - - - this.stackOffset = 0; // Apply that snapshot. - - this.applySnapshot(this.stack[this.stackOffset]); - } - /** - * @method commit - * Resets history stack, but keeps current editor's content. - */ - - }, { - key: "commit", - value: function commit() { - // Clear the stack. - this.stack = []; // Restore stackOffset to its original value. - - this.stackOffset = -1; // Record our first snapshot (of nothing). - - this.recordUndo(); - } - /** - * @method reset - * Resets the history stack completely; reverting to an empty editor. - */ - - }, { - key: "reset", - value: function reset() { - // Clear the stack. - this.stack = []; // Restore stackOffset to its original value. - - this.stackOffset = -1; // Clear the editable area. - - this.$editable.html(''); // Record our first snapshot (of nothing). - - this.recordUndo(); - } - /** - * undo - */ - - }, { - key: "undo", - value: function undo() { - // Create snap shot if not yet recorded - if (this.$editable.html() !== this.stack[this.stackOffset].contents) { - this.recordUndo(); - } - - if (this.stackOffset > 0) { - this.stackOffset--; - this.applySnapshot(this.stack[this.stackOffset]); - } - } - /** - * redo - */ - - }, { - key: "redo", - value: function redo() { - if (this.stack.length - 1 > this.stackOffset) { - this.stackOffset++; - this.applySnapshot(this.stack[this.stackOffset]); - } - } - /** - * recorded undo - */ - - }, { - key: "recordUndo", - value: function recordUndo() { - this.stackOffset++; // Wash out stack after stackOffset - - if (this.stack.length > this.stackOffset) { - this.stack = this.stack.slice(0, this.stackOffset); - } // Create new snapshot and push it to the end - - - this.stack.push(this.makeSnapshot()); // If the stack size reachs to the limit, then slice it - - if (this.stack.length > this.context.options.historyLimit) { - this.stack.shift(); - this.stackOffset -= 1; - } - } - }]); - - return History; -}(); - - -;// CONCATENATED MODULE: ./src/js/editing/Style.js -function Style_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Style_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); } } - -function Style_createClass(Constructor, protoProps, staticProps) { if (protoProps) Style_defineProperties(Constructor.prototype, protoProps); if (staticProps) Style_defineProperties(Constructor, staticProps); return Constructor; } - - - - - - -var Style = /*#__PURE__*/function () { - function Style() { - Style_classCallCheck(this, Style); - } - - Style_createClass(Style, [{ - key: "jQueryCSS", - value: - /** - * @method jQueryCSS - * - * [workaround] for old jQuery - * passing an array of style properties to .css() - * will result in an object of property-value pairs. - * (compability with version < 1.9) - * - * @private - * @param {jQuery} $obj - * @param {Array} propertyNames - An array of one or more CSS properties. - * @return {Object} - */ - function jQueryCSS($obj, propertyNames) { - var result = {}; - external_jQuery_default().each(propertyNames, function (idx, propertyName) { - result[propertyName] = $obj.css(propertyName); - }); - return result; - } - /** - * returns style object from node - * - * @param {jQuery} $node - * @return {Object} - */ - - }, { - key: "fromNode", - value: function fromNode($node) { - var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height']; - var styleInfo = this.jQueryCSS($node, properties) || {}; - var fontSize = $node[0].style.fontSize || styleInfo['font-size']; - styleInfo['font-size'] = parseInt(fontSize, 10); - styleInfo['font-size-unit'] = fontSize.match(/[a-z%]+$/); - return styleInfo; - } - /** - * paragraph level style - * - * @param {WrappedRange} rng - * @param {Object} styleInfo - */ - - }, { - key: "stylePara", - value: function stylePara(rng, styleInfo) { - external_jQuery_default().each(rng.nodes(dom.isPara, { - includeAncestor: true - }), function (idx, para) { - external_jQuery_default()(para).css(styleInfo); - }); - } - /** - * insert and returns styleNodes on range. - * - * @param {WrappedRange} rng - * @param {Object} [options] - options for styleNodes - * @param {String} [options.nodeName] - default: `SPAN` - * @param {Boolean} [options.expandClosestSibling] - default: `false` - * @param {Boolean} [options.onlyPartialContains] - default: `false` - * @return {Node[]} - */ - - }, { - key: "styleNodes", - value: function styleNodes(rng, options) { - rng = rng.splitText(); - var nodeName = options && options.nodeName || 'SPAN'; - var expandClosestSibling = !!(options && options.expandClosestSibling); - var onlyPartialContains = !!(options && options.onlyPartialContains); - - if (rng.isCollapsed()) { - return [rng.insertNode(dom.create(nodeName))]; - } - - var pred = dom.makePredByNodeName(nodeName); - var nodes = rng.nodes(dom.isText, { - fullyContains: true - }).map(function (text) { - return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName); - }); - - if (expandClosestSibling) { - if (onlyPartialContains) { - var nodesInRange = rng.nodes(); // compose with partial contains predication - - pred = func.and(pred, function (node) { - return lists.contains(nodesInRange, node); - }); - } - - return nodes.map(function (node) { - var siblings = dom.withClosestSiblings(node, pred); - var head = lists.head(siblings); - var tails = lists.tail(siblings); - external_jQuery_default().each(tails, function (idx, elem) { - dom.appendChildNodes(head, elem.childNodes); - dom.remove(elem); - }); - return lists.head(siblings); - }); - } else { - return nodes; - } - } - /** - * get current style on cursor - * - * @param {WrappedRange} rng - * @return {Object} - object contains style properties. - */ - - }, { - key: "current", - value: function current(rng) { - var $cont = external_jQuery_default()(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc); - var styleInfo = this.fromNode($cont); // document.queryCommandState for toggle state - // [workaround] prevent Firefox nsresult: "0x80004005 (NS_ERROR_FAILURE)" - - try { - styleInfo = external_jQuery_default().extend(styleInfo, { - 'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal', - 'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal', - 'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal', - 'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal', - 'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal', - 'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal', - 'font-family': document.queryCommandValue('fontname') || styleInfo['font-family'] - }); - } catch (e) {// eslint-disable-next-line - } // list-style-type to list-style(unordered, ordered) - - - if (!rng.isOnList()) { - styleInfo['list-style'] = 'none'; - } else { - var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square']; - var isUnordered = orderedTypes.indexOf(styleInfo['list-style-type']) > -1; - styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered'; - } - - var para = dom.ancestor(rng.sc, dom.isPara); - - if (para && para.style['line-height']) { - styleInfo['line-height'] = para.style.lineHeight; - } else { - var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10); - styleInfo['line-height'] = lineHeight.toFixed(1); - } - - styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor); - styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable); - styleInfo.range = rng; - return styleInfo; - } - }]); - - return Style; -}(); - - -;// CONCATENATED MODULE: ./src/js/editing/Bullet.js -function Bullet_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Bullet_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); } } - -function Bullet_createClass(Constructor, protoProps, staticProps) { if (protoProps) Bullet_defineProperties(Constructor.prototype, protoProps); if (staticProps) Bullet_defineProperties(Constructor, staticProps); return Constructor; } - - - - - - - -var Bullet = /*#__PURE__*/function () { - function Bullet() { - Bullet_classCallCheck(this, Bullet); - } - - Bullet_createClass(Bullet, [{ - key: "insertOrderedList", - value: - /** - * toggle ordered list - */ - function insertOrderedList(editable) { - this.toggleList('OL', editable); - } - /** - * toggle unordered list - */ - - }, { - key: "insertUnorderedList", - value: function insertUnorderedList(editable) { - this.toggleList('UL', editable); - } - /** - * indent - */ - - }, { - key: "indent", - value: function indent(editable) { - var _this = this; - - var rng = range.create(editable).wrapBodyInlineWithPara(); - var paras = rng.nodes(dom.isPara, { - includeAncestor: true - }); - var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); - external_jQuery_default().each(clustereds, function (idx, paras) { - var head = lists.head(paras); - - if (dom.isLi(head)) { - var previousList = _this.findList(head.previousSibling); - - if (previousList) { - paras.map(function (para) { - return previousList.appendChild(para); - }); - } else { - _this.wrapList(paras, head.parentNode.nodeName); - - paras.map(function (para) { - return para.parentNode; - }).map(function (para) { - return _this.appendToPrevious(para); - }); - } - } else { - external_jQuery_default().each(paras, function (idx, para) { - external_jQuery_default()(para).css('marginLeft', function (idx, val) { - return (parseInt(val, 10) || 0) + 25; - }); - }); - } - }); - rng.select(); - } - /** - * outdent - */ - - }, { - key: "outdent", - value: function outdent(editable) { - var _this2 = this; - - var rng = range.create(editable).wrapBodyInlineWithPara(); - var paras = rng.nodes(dom.isPara, { - includeAncestor: true - }); - var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); - external_jQuery_default().each(clustereds, function (idx, paras) { - var head = lists.head(paras); - - if (dom.isLi(head)) { - _this2.releaseList([paras]); - } else { - external_jQuery_default().each(paras, function (idx, para) { - external_jQuery_default()(para).css('marginLeft', function (idx, val) { - val = parseInt(val, 10) || 0; - return val > 25 ? val - 25 : ''; - }); - }); - } - }); - rng.select(); - } - /** - * toggle list - * - * @param {String} listName - OL or UL - */ - - }, { - key: "toggleList", - value: function toggleList(listName, editable) { - var _this3 = this; - - var rng = range.create(editable).wrapBodyInlineWithPara(); - var paras = rng.nodes(dom.isPara, { - includeAncestor: true - }); - var bookmark = rng.paraBookmark(paras); - var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); // paragraph to list - - if (lists.find(paras, dom.isPurePara)) { - var wrappedParas = []; - external_jQuery_default().each(clustereds, function (idx, paras) { - wrappedParas = wrappedParas.concat(_this3.wrapList(paras, listName)); - }); - paras = wrappedParas; // list to paragraph or change list style - } else { - var diffLists = rng.nodes(dom.isList, { - includeAncestor: true - }).filter(function (listNode) { - return !external_jQuery_default().nodeName(listNode, listName); - }); - - if (diffLists.length) { - external_jQuery_default().each(diffLists, function (idx, listNode) { - dom.replace(listNode, listName); - }); - } else { - paras = this.releaseList(clustereds, true); - } - } - - range.createFromParaBookmark(bookmark, paras).select(); - } - /** - * @param {Node[]} paras - * @param {String} listName - * @return {Node[]} - */ - - }, { - key: "wrapList", - value: function wrapList(paras, listName) { - var head = lists.head(paras); - var last = lists.last(paras); - var prevList = dom.isList(head.previousSibling) && head.previousSibling; - var nextList = dom.isList(last.nextSibling) && last.nextSibling; - var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last); // P to LI - - paras = paras.map(function (para) { - return dom.isPurePara(para) ? dom.replace(para, 'LI') : para; - }); // append to list(
    ,
      ) - - dom.appendChildNodes(listNode, paras); - - if (nextList) { - dom.appendChildNodes(listNode, lists.from(nextList.childNodes)); - dom.remove(nextList); - } - - return paras; - } - /** - * @method releaseList - * - * @param {Array[]} clustereds - * @param {Boolean} isEscapseToBody - * @return {Node[]} - */ - - }, { - key: "releaseList", - value: function releaseList(clustereds, isEscapseToBody) { - var _this4 = this; - - var releasedParas = []; - external_jQuery_default().each(clustereds, function (idx, paras) { - var head = lists.head(paras); - var last = lists.last(paras); - var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode; - var parentItem = headList.parentNode; - - if (headList.parentNode.nodeName === 'LI') { - paras.map(function (para) { - var newList = _this4.findNextSiblings(para); - - if (parentItem.nextSibling) { - parentItem.parentNode.insertBefore(para, parentItem.nextSibling); - } else { - parentItem.parentNode.appendChild(para); - } - - if (newList.length) { - _this4.wrapList(newList, headList.nodeName); - - para.appendChild(newList[0].parentNode); - } - }); - - if (headList.children.length === 0) { - parentItem.removeChild(headList); - } - - if (parentItem.childNodes.length === 0) { - parentItem.parentNode.removeChild(parentItem); - } - } else { - var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, { - node: last.parentNode, - offset: dom.position(last) + 1 - }, { - isSkipPaddingBlankHTML: true - }) : null; - var middleList = dom.splitTree(headList, { - node: head.parentNode, - offset: dom.position(head) - }, { - isSkipPaddingBlankHTML: true - }); - paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) : lists.from(middleList.childNodes).filter(dom.isLi); // LI to P - - if (isEscapseToBody || !dom.isList(headList.parentNode)) { - paras = paras.map(function (para) { - return dom.replace(para, 'P'); - }); - } - - external_jQuery_default().each(lists.from(paras).reverse(), function (idx, para) { - dom.insertAfter(para, headList); - }); // remove empty lists - - var rootLists = lists.compact([headList, middleList, lastList]); - external_jQuery_default().each(rootLists, function (idx, rootList) { - var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList)); - external_jQuery_default().each(listNodes.reverse(), function (idx, listNode) { - if (!dom.nodeLength(listNode)) { - dom.remove(listNode, true); - } - }); - }); - } - - releasedParas = releasedParas.concat(paras); - }); - return releasedParas; - } - /** - * @method appendToPrevious - * - * Appends list to previous list item, if - * none exist it wraps the list in a new list item. - * - * @param {HTMLNode} ListItem - * @return {HTMLNode} - */ - - }, { - key: "appendToPrevious", - value: function appendToPrevious(node) { - return node.previousSibling ? dom.appendChildNodes(node.previousSibling, [node]) : this.wrapList([node], 'LI'); - } - /** - * @method findList - * - * Finds an existing list in list item - * - * @param {HTMLNode} ListItem - * @return {Array[]} - */ - - }, { - key: "findList", - value: function findList(node) { - return node ? lists.find(node.children, function (child) { - return ['OL', 'UL'].indexOf(child.nodeName) > -1; - }) : null; - } - /** - * @method findNextSiblings - * - * Finds all list item siblings that follow it - * - * @param {HTMLNode} ListItem - * @return {HTMLNode} - */ - - }, { - key: "findNextSiblings", - value: function findNextSiblings(node) { - var siblings = []; - - while (node.nextSibling) { - siblings.push(node.nextSibling); - node = node.nextSibling; - } - - return siblings; - } - }]); - - return Bullet; -}(); - - -;// CONCATENATED MODULE: ./src/js/editing/Typing.js -function Typing_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Typing_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); } } - -function Typing_createClass(Constructor, protoProps, staticProps) { if (protoProps) Typing_defineProperties(Constructor.prototype, protoProps); if (staticProps) Typing_defineProperties(Constructor, staticProps); return Constructor; } - - - - - -/** - * @class editing.Typing - * - * Typing - * - */ - -var Typing = /*#__PURE__*/function () { - function Typing(context) { - Typing_classCallCheck(this, Typing); - - // a Bullet instance to toggle lists off - this.bullet = new Bullet(); - this.options = context.options; - } - /** - * insert tab - * - * @param {WrappedRange} rng - * @param {Number} tabsize - */ - - - Typing_createClass(Typing, [{ - key: "insertTab", - value: function insertTab(rng, tabsize) { - var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR)); - rng = rng.deleteContents(); - rng.insertNode(tab, true); - rng = range.create(tab, tabsize); - rng.select(); - } - /** - * insert paragraph - * - * @param {jQuery} $editable - * @param {WrappedRange} rng Can be used in unit tests to "mock" the range - * - * blockquoteBreakingLevel - * 0 - No break, the new paragraph remains inside the quote - * 1 - Break the first blockquote in the ancestors list - * 2 - Break all blockquotes, so that the new paragraph is not quoted (this is the default) - */ - - }, { - key: "insertParagraph", - value: function insertParagraph(editable, rng) { - rng = rng || range.create(editable); // deleteContents on range. - - rng = rng.deleteContents(); // Wrap range if it needs to be wrapped by paragraph - - rng = rng.wrapBodyInlineWithPara(); // finding paragraph - - var splitRoot = dom.ancestor(rng.sc, dom.isPara); - var nextPara; // on paragraph: split paragraph - - if (splitRoot) { - // if it is an empty line with li - if (dom.isLi(splitRoot) && (dom.isEmpty(splitRoot) || dom.deepestChildIsEmpty(splitRoot))) { - // toggle UL/OL and escape - this.bullet.toggleList(splitRoot.parentNode.nodeName); - return; - } else { - var blockquote = null; - - if (this.options.blockquoteBreakingLevel === 1) { - blockquote = dom.ancestor(splitRoot, dom.isBlockquote); - } else if (this.options.blockquoteBreakingLevel === 2) { - blockquote = dom.lastAncestor(splitRoot, dom.isBlockquote); - } - - if (blockquote) { - // We're inside a blockquote and options ask us to break it - nextPara = external_jQuery_default()(dom.emptyPara)[0]; // If the split is right before a
      , remove it so that there's no "empty line" - // after the split in the new blockquote created - - if (dom.isRightEdgePoint(rng.getStartPoint()) && dom.isBR(rng.sc.nextSibling)) { - external_jQuery_default()(rng.sc.nextSibling).remove(); - } - - var split = dom.splitTree(blockquote, rng.getStartPoint(), { - isDiscardEmptySplits: true - }); - - if (split) { - split.parentNode.insertBefore(nextPara, split); - } else { - dom.insertAfter(nextPara, blockquote); // There's no split if we were at the end of the blockquote - } - } else { - nextPara = dom.splitTree(splitRoot, rng.getStartPoint()); // not a blockquote, just insert the paragraph - - var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor); - emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor)); - external_jQuery_default().each(emptyAnchors, function (idx, anchor) { - dom.remove(anchor); - }); // replace empty heading, pre or custom-made styleTag with P tag - - if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) { - nextPara = dom.replace(nextPara, 'p'); - } - } - } // no paragraph: insert empty paragraph - - } else { - var next = rng.sc.childNodes[rng.so]; - nextPara = external_jQuery_default()(dom.emptyPara)[0]; - - if (next) { - rng.sc.insertBefore(nextPara, next); - } else { - rng.sc.appendChild(nextPara); - } - } - - range.create(nextPara, 0).normalize().select().scrollIntoView(editable); - } - }]); - - return Typing; -}(); - - -;// CONCATENATED MODULE: ./src/js/editing/Table.js -function Table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Table_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); } } - -function Table_createClass(Constructor, protoProps, staticProps) { if (protoProps) Table_defineProperties(Constructor.prototype, protoProps); if (staticProps) Table_defineProperties(Constructor, staticProps); return Constructor; } - - - - - -/** - * @class Create a virtual table to create what actions to do in change. - * @param {object} startPoint Cell selected to apply change. - * @param {enum} where Where change will be applied Row or Col. Use enum: TableResultAction.where - * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction - * @param {object} domTable Dom element of table to make changes. - */ - -var TableResultAction = function TableResultAction(startPoint, where, action, domTable) { - var _startPoint = { - 'colPos': 0, - 'rowPos': 0 - }; - var _virtualTable = []; - var _actionCellList = []; /// /////////////////////////////////////////// - // Private functions - /// /////////////////////////////////////////// - - /** - * Set the startPoint of action. - */ - - function setStartPoint() { - if (!startPoint || !startPoint.tagName || startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th') { - // Impossible to identify start Cell point - return; - } - - _startPoint.colPos = startPoint.cellIndex; - - if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') { - // Impossible to identify start Row point - return; - } - - _startPoint.rowPos = startPoint.parentElement.rowIndex; - } - /** - * Define virtual table position info object. - * - * @param {int} rowIndex Index position in line of virtual table. - * @param {int} cellIndex Index position in column of virtual table. - * @param {object} baseRow Row affected by this position. - * @param {object} baseCell Cell affected by this position. - * @param {bool} isSpan Inform if it is an span cell/row. - */ - - - function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) { - var objPosition = { - 'baseRow': baseRow, - 'baseCell': baseCell, - 'isRowSpan': isRowSpan, - 'isColSpan': isColSpan, - 'isVirtual': isVirtualCell - }; - - if (!_virtualTable[rowIndex]) { - _virtualTable[rowIndex] = []; - } - - _virtualTable[rowIndex][cellIndex] = objPosition; - } - /** - * Create action cell object. - * - * @param {object} virtualTableCellObj Object of specific position on virtual table. - * @param {enum} resultAction Action to be applied in that item. - */ - - - function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) { - return { - 'baseCell': virtualTableCellObj.baseCell, - 'action': resultAction, - 'virtualTable': { - 'rowIndex': virtualRowPosition, - 'cellIndex': virtualColPosition - } - }; - } - /** - * Recover free index of row to append Cell. - * - * @param {int} rowIndex Index of row to find free space. - * @param {int} cellIndex Index of cell to find free space in table. - */ - - - function recoverCellIndex(rowIndex, cellIndex) { - if (!_virtualTable[rowIndex]) { - return cellIndex; - } - - if (!_virtualTable[rowIndex][cellIndex]) { - return cellIndex; - } - - var newCellIndex = cellIndex; - - while (_virtualTable[rowIndex][newCellIndex]) { - newCellIndex++; - - if (!_virtualTable[rowIndex][newCellIndex]) { - return newCellIndex; - } - } - } - /** - * Recover info about row and cell and add information to virtual table. - * - * @param {object} row Row to recover information. - * @param {object} cell Cell to recover information. - */ - - - function addCellInfoToVirtual(row, cell) { - var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex); - var cellHasColspan = cell.colSpan > 1; - var cellHasRowspan = cell.rowSpan > 1; - var isThisSelectedCell = row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos; - setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false); // Add span rows to virtual Table. - - var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0; - - if (rowspanNumber > 1) { - for (var rp = 1; rp < rowspanNumber; rp++) { - var rowspanIndex = row.rowIndex + rp; - adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell); - setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true); - } - } // Add span cols to virtual table. - - - var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0; - - if (colspanNumber > 1) { - for (var cp = 1; cp < colspanNumber; cp++) { - var cellspanIndex = recoverCellIndex(row.rowIndex, cellIndex + cp); - adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell); - setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true); - } - } - } - /** - * Process validation and adjust of start point if needed - * - * @param {int} rowIndex - * @param {int} cellIndex - * @param {object} cell - * @param {bool} isSelectedCell - */ - - - function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) { - if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) { - _startPoint.colPos++; - } - } - /** - * Create virtual table of cells with all cells, including span cells. - */ - - - function createVirtualTable() { - var rows = domTable.rows; - - for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) { - var cells = rows[rowIndex].cells; - - for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) { - addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]); - } - } - } - /** - * Get action to be applied on the cell. - * - * @param {object} cell virtual table cell to apply action - */ - - - function getDeleteResultActionToCell(cell) { - switch (where) { - case TableResultAction.where.Column: - if (cell.isColSpan) { - return TableResultAction.resultAction.SubtractSpanCount; - } - - break; - - case TableResultAction.where.Row: - if (!cell.isVirtual && cell.isRowSpan) { - return TableResultAction.resultAction.AddCell; - } else if (cell.isRowSpan) { - return TableResultAction.resultAction.SubtractSpanCount; - } - - break; - } - - return TableResultAction.resultAction.RemoveCell; - } - /** - * Get action to be applied on the cell. - * - * @param {object} cell virtual table cell to apply action - */ - - - function getAddResultActionToCell(cell) { - switch (where) { - case TableResultAction.where.Column: - if (cell.isColSpan) { - return TableResultAction.resultAction.SumSpanCount; - } else if (cell.isRowSpan && cell.isVirtual) { - return TableResultAction.resultAction.Ignore; - } - - break; - - case TableResultAction.where.Row: - if (cell.isRowSpan) { - return TableResultAction.resultAction.SumSpanCount; - } else if (cell.isColSpan && cell.isVirtual) { - return TableResultAction.resultAction.Ignore; - } - - break; - } - - return TableResultAction.resultAction.AddCell; - } - - function init() { - setStartPoint(); - createVirtualTable(); - } /// /////////////////////////////////////////// - // Public functions - /// /////////////////////////////////////////// - - /** - * Recover array os what to do in table. - */ - - - this.getActionList = function () { - var fixedRow = where === TableResultAction.where.Row ? _startPoint.rowPos : -1; - var fixedCol = where === TableResultAction.where.Column ? _startPoint.colPos : -1; - var actualPosition = 0; - var canContinue = true; - - while (canContinue) { - var rowPosition = fixedRow >= 0 ? fixedRow : actualPosition; - var colPosition = fixedCol >= 0 ? fixedCol : actualPosition; - var row = _virtualTable[rowPosition]; - - if (!row) { - canContinue = false; - return _actionCellList; - } - - var cell = row[colPosition]; - - if (!cell) { - canContinue = false; - return _actionCellList; - } // Define action to be applied in this cell - - - var resultAction = TableResultAction.resultAction.Ignore; - - switch (action) { - case TableResultAction.requestAction.Add: - resultAction = getAddResultActionToCell(cell); - break; - - case TableResultAction.requestAction.Delete: - resultAction = getDeleteResultActionToCell(cell); - break; - } - - _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition)); - - actualPosition++; - } - - return _actionCellList; - }; - - init(); -}; -/** -* -* Where action occours enum. -*/ - - -TableResultAction.where = { - 'Row': 0, - 'Column': 1 -}; -/** -* -* Requested action to apply enum. -*/ - -TableResultAction.requestAction = { - 'Add': 0, - 'Delete': 1 -}; -/** -* -* Result action to be executed enum. -*/ - -TableResultAction.resultAction = { - 'Ignore': 0, - 'SubtractSpanCount': 1, - 'RemoveCell': 2, - 'AddCell': 3, - 'SumSpanCount': 4 -}; -/** - * - * @class editing.Table - * - * Table - * - */ - -var Table = /*#__PURE__*/function () { - function Table() { - Table_classCallCheck(this, Table); - } - - Table_createClass(Table, [{ - key: "tab", - value: - /** - * handle tab key - * - * @param {WrappedRange} rng - * @param {Boolean} isShift - */ - function tab(rng, isShift) { - var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); - var table = dom.ancestor(cell, dom.isTable); - var cells = dom.listDescendant(table, dom.isCell); - var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell); - - if (nextCell) { - range.create(nextCell, 0).select(); - } - } - /** - * Add a new row - * - * @param {WrappedRange} rng - * @param {String} position (top/bottom) - * @return {Node} - */ - - }, { - key: "addRow", - value: function addRow(rng, position) { - var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); - var currentTr = external_jQuery_default()(cell).closest('tr'); - var trAttributes = this.recoverAttributes(currentTr); - var html = external_jQuery_default()(''); - var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, external_jQuery_default()(currentTr).closest('table')[0]); - var actions = vTable.getActionList(); - - for (var idCell = 0; idCell < actions.length; idCell++) { - var currentCell = actions[idCell]; - var tdAttributes = this.recoverAttributes(currentCell.baseCell); - - switch (currentCell.action) { - case TableResultAction.resultAction.AddCell: - html.append('' + dom.blank + ''); - break; - - case TableResultAction.resultAction.SumSpanCount: - { - if (position === 'top') { - var baseCellTr = currentCell.baseCell.parent; - var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex; - - if (isTopFromRowSpan) { - var newTd = external_jQuery_default()('
      ').append(external_jQuery_default()('' + dom.blank + '').removeAttr('rowspan')).html(); - html.append(newTd); - break; - } - } - - var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10); - rowspanNumber++; - currentCell.baseCell.setAttribute('rowSpan', rowspanNumber); - } - break; - } - } - - if (position === 'top') { - currentTr.before(html); - } else { - var cellHasRowspan = cell.rowSpan > 1; - - if (cellHasRowspan) { - var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2); - external_jQuery_default()(external_jQuery_default()(currentTr).parent().find('tr')[lastTrIndex]).after(external_jQuery_default()(html)); - return; - } - - currentTr.after(html); - } - } - /** - * Add a new col - * - * @param {WrappedRange} rng - * @param {String} position (left/right) - * @return {Node} - */ - - }, { - key: "addCol", - value: function addCol(rng, position) { - var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); - var row = external_jQuery_default()(cell).closest('tr'); - var rowsGroup = external_jQuery_default()(row).siblings(); - rowsGroup.push(row); - var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, external_jQuery_default()(row).closest('table')[0]); - var actions = vTable.getActionList(); - - for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) { - var currentCell = actions[actionIndex]; - var tdAttributes = this.recoverAttributes(currentCell.baseCell); - - switch (currentCell.action) { - case TableResultAction.resultAction.AddCell: - if (position === 'right') { - external_jQuery_default()(currentCell.baseCell).after('' + dom.blank + ''); - } else { - external_jQuery_default()(currentCell.baseCell).before('' + dom.blank + ''); - } - - break; - - case TableResultAction.resultAction.SumSpanCount: - if (position === 'right') { - var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10); - colspanNumber++; - currentCell.baseCell.setAttribute('colSpan', colspanNumber); - } else { - external_jQuery_default()(currentCell.baseCell).before('' + dom.blank + ''); - } - - break; - } - } - } - /* - * Copy attributes from element. - * - * @param {object} Element to recover attributes. - * @return {string} Copied string elements. - */ - - }, { - key: "recoverAttributes", - value: function recoverAttributes(el) { - var resultStr = ''; - - if (!el) { - return resultStr; - } - - var attrList = el.attributes || []; - - for (var i = 0; i < attrList.length; i++) { - if (attrList[i].name.toLowerCase() === 'id') { - continue; - } - - if (attrList[i].specified) { - resultStr += ' ' + attrList[i].name + '=\'' + attrList[i].value + '\''; - } - } - - return resultStr; - } - /** - * Delete current row - * - * @param {WrappedRange} rng - * @return {Node} - */ - - }, { - key: "deleteRow", - value: function deleteRow(rng) { - var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); - var row = external_jQuery_default()(cell).closest('tr'); - var cellPos = row.children('td, th').index(external_jQuery_default()(cell)); - var rowPos = row[0].rowIndex; - var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, external_jQuery_default()(row).closest('table')[0]); - var actions = vTable.getActionList(); - - for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) { - if (!actions[actionIndex]) { - continue; - } - - var baseCell = actions[actionIndex].baseCell; - var virtualPosition = actions[actionIndex].virtualTable; - var hasRowspan = baseCell.rowSpan && baseCell.rowSpan > 1; - var rowspanNumber = hasRowspan ? parseInt(baseCell.rowSpan, 10) : 0; - - switch (actions[actionIndex].action) { - case TableResultAction.resultAction.Ignore: - continue; - - case TableResultAction.resultAction.AddCell: - { - var nextRow = row.next('tr')[0]; - - if (!nextRow) { - continue; - } - - var cloneRow = row[0].cells[cellPos]; - - if (hasRowspan) { - if (rowspanNumber > 2) { - rowspanNumber--; - nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]); - nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber); - nextRow.cells[cellPos].innerHTML = ''; - } else if (rowspanNumber === 2) { - nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]); - nextRow.cells[cellPos].removeAttribute('rowSpan'); - nextRow.cells[cellPos].innerHTML = ''; - } - } - } - continue; - - case TableResultAction.resultAction.SubtractSpanCount: - if (hasRowspan) { - if (rowspanNumber > 2) { - rowspanNumber--; - baseCell.setAttribute('rowSpan', rowspanNumber); - - if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { - baseCell.innerHTML = ''; - } - } else if (rowspanNumber === 2) { - baseCell.removeAttribute('rowSpan'); - - if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { - baseCell.innerHTML = ''; - } - } - } - - continue; - - case TableResultAction.resultAction.RemoveCell: - // Do not need remove cell because row will be deleted. - continue; - } - } - - row.remove(); - } - /** - * Delete current col - * - * @param {WrappedRange} rng - * @return {Node} - */ - - }, { - key: "deleteCol", - value: function deleteCol(rng) { - var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); - var row = external_jQuery_default()(cell).closest('tr'); - var cellPos = row.children('td, th').index(external_jQuery_default()(cell)); - var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, external_jQuery_default()(row).closest('table')[0]); - var actions = vTable.getActionList(); - - for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) { - if (!actions[actionIndex]) { - continue; - } - - switch (actions[actionIndex].action) { - case TableResultAction.resultAction.Ignore: - continue; - - case TableResultAction.resultAction.SubtractSpanCount: - { - var baseCell = actions[actionIndex].baseCell; - var hasColspan = baseCell.colSpan && baseCell.colSpan > 1; - - if (hasColspan) { - var colspanNumber = baseCell.colSpan ? parseInt(baseCell.colSpan, 10) : 0; - - if (colspanNumber > 2) { - colspanNumber--; - baseCell.setAttribute('colSpan', colspanNumber); - - if (baseCell.cellIndex === cellPos) { - baseCell.innerHTML = ''; - } - } else if (colspanNumber === 2) { - baseCell.removeAttribute('colSpan'); - - if (baseCell.cellIndex === cellPos) { - baseCell.innerHTML = ''; - } - } - } - } - continue; - - case TableResultAction.resultAction.RemoveCell: - dom.remove(actions[actionIndex].baseCell, true); - continue; - } - } - } - /** - * create empty table element - * - * @param {Number} rowCount - * @param {Number} colCount - * @return {Node} - */ - - }, { - key: "createTable", - value: function createTable(colCount, rowCount, options) { - var tds = []; - var tdHTML; - - for (var idxCol = 0; idxCol < colCount; idxCol++) { - tds.push('' + dom.blank + ''); - } - - tdHTML = tds.join(''); - var trs = []; - var trHTML; - - for (var idxRow = 0; idxRow < rowCount; idxRow++) { - trs.push('' + tdHTML + ''); - } - - trHTML = trs.join(''); - var $table = external_jQuery_default()('' + trHTML + '
      '); - - if (options && options.tableClassName) { - $table.addClass(options.tableClassName); - } - - return $table[0]; - } - /** - * Delete current table - * - * @param {WrappedRange} rng - * @return {Node} - */ - - }, { - key: "deleteTable", - value: function deleteTable(rng) { - var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); - external_jQuery_default()(cell).closest('table').remove(); - } - }]); - - return Table; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Editor.js -function Editor_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Editor_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); } } - -function Editor_createClass(Constructor, protoProps, staticProps) { if (protoProps) Editor_defineProperties(Constructor.prototype, protoProps); if (staticProps) Editor_defineProperties(Constructor, staticProps); return Constructor; } - - - - - - - - - - - - - - -var KEY_BOGUS = 'bogus'; -/** - * @class Editor - */ - -var Editor = /*#__PURE__*/function () { - function Editor(context) { - var _this = this; - - Editor_classCallCheck(this, Editor); - - this.context = context; - this.$note = context.layoutInfo.note; - this.$editor = context.layoutInfo.editor; - this.$editable = context.layoutInfo.editable; - this.options = context.options; - this.lang = this.options.langInfo; - this.editable = this.$editable[0]; - this.lastRange = null; - this.snapshot = null; - this.style = new Style(); - this.table = new Table(); - this.typing = new Typing(context); - this.bullet = new Bullet(); - this.history = new History(context); - this.context.memo('help.escape', this.lang.help.escape); - this.context.memo('help.undo', this.lang.help.undo); - this.context.memo('help.redo', this.lang.help.redo); - this.context.memo('help.tab', this.lang.help.tab); - this.context.memo('help.untab', this.lang.help.untab); - this.context.memo('help.insertParagraph', this.lang.help.insertParagraph); - this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList); - this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList); - this.context.memo('help.indent', this.lang.help.indent); - this.context.memo('help.outdent', this.lang.help.outdent); - this.context.memo('help.formatPara', this.lang.help.formatPara); - this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule); - this.context.memo('help.fontName', this.lang.help.fontName); // native commands(with execCommand), generate function for execCommand - - var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull', 'formatBlock', 'removeFormat', 'backColor']; - - for (var idx = 0, len = commands.length; idx < len; idx++) { - this[commands[idx]] = function (sCmd) { - return function (value) { - _this.beforeCommand(); - - document.execCommand(sCmd, false, value); - - _this.afterCommand(true); - }; - }(commands[idx]); - - this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]); - } - - this.fontName = this.wrapCommand(function (value) { - return _this.fontStyling('font-family', env.validFontName(value)); - }); - this.fontSize = this.wrapCommand(function (value) { - var unit = _this.currentStyle()['font-size-unit']; - - return _this.fontStyling('font-size', value + unit); - }); - this.fontSizeUnit = this.wrapCommand(function (value) { - var size = _this.currentStyle()['font-size']; - - return _this.fontStyling('font-size', size + value); - }); - - for (var _idx = 1; _idx <= 6; _idx++) { - this['formatH' + _idx] = function (idx) { - return function () { - _this.formatBlock('H' + idx); - }; - }(_idx); - - this.context.memo('help.formatH' + _idx, this.lang.help['formatH' + _idx]); - } - - this.insertParagraph = this.wrapCommand(function () { - _this.typing.insertParagraph(_this.editable); - }); - this.insertOrderedList = this.wrapCommand(function () { - _this.bullet.insertOrderedList(_this.editable); - }); - this.insertUnorderedList = this.wrapCommand(function () { - _this.bullet.insertUnorderedList(_this.editable); - }); - this.indent = this.wrapCommand(function () { - _this.bullet.indent(_this.editable); - }); - this.outdent = this.wrapCommand(function () { - _this.bullet.outdent(_this.editable); - }); - /** - * insertNode - * insert node - * @param {Node} node - */ - - this.insertNode = this.wrapCommand(function (node) { - if (_this.isLimited(external_jQuery_default()(node).text().length)) { - return; - } - - var rng = _this.getLastRange(); - - rng.insertNode(node); - - _this.setLastRange(range.createFromNodeAfter(node).select()); - }); - /** - * insert text - * @param {String} text - */ - - this.insertText = this.wrapCommand(function (text) { - if (_this.isLimited(text.length)) { - return; - } - - var rng = _this.getLastRange(); - - var textNode = rng.insertNode(dom.createText(text)); - - _this.setLastRange(range.create(textNode, dom.nodeLength(textNode)).select()); - }); - /** - * paste HTML - * @param {String} markup - */ - - this.pasteHTML = this.wrapCommand(function (markup) { - if (_this.isLimited(markup.length)) { - return; - } - - markup = _this.context.invoke('codeview.purify', markup); - - var contents = _this.getLastRange().pasteHTML(markup); - - _this.setLastRange(range.createFromNodeAfter(lists.last(contents)).select()); - }); - /** - * formatBlock - * - * @param {String} tagName - */ - - this.formatBlock = this.wrapCommand(function (tagName, $target) { - var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle; - - if (onApplyCustomStyle) { - onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock); - } else { - _this.onFormatBlock(tagName, $target); - } - }); - /** - * insert horizontal rule - */ - - this.insertHorizontalRule = this.wrapCommand(function () { - var hrNode = _this.getLastRange().insertNode(dom.create('HR')); - - if (hrNode.nextSibling) { - _this.setLastRange(range.create(hrNode.nextSibling, 0).normalize().select()); - } - }); - /** - * lineHeight - * @param {String} value - */ - - this.lineHeight = this.wrapCommand(function (value) { - _this.style.stylePara(_this.getLastRange(), { - lineHeight: value - }); - }); - /** - * create link (command) - * - * @param {Object} linkInfo - */ - - this.createLink = this.wrapCommand(function (linkInfo) { - var linkUrl = linkInfo.url; - var linkText = linkInfo.text; - var isNewWindow = linkInfo.isNewWindow; - var checkProtocol = linkInfo.checkProtocol; - - var rng = linkInfo.range || _this.getLastRange(); - - var additionalTextLength = linkText.length - rng.toString().length; - - if (additionalTextLength > 0 && _this.isLimited(additionalTextLength)) { - return; - } - - var isTextChanged = rng.toString() !== linkText; // handle spaced urls from input - - if (typeof linkUrl === 'string') { - linkUrl = linkUrl.trim(); - } - - if (_this.options.onCreateLink) { - linkUrl = _this.options.onCreateLink(linkUrl); - } else if (checkProtocol) { - // if url doesn't have any protocol and not even a relative or a label, use http:// as default - linkUrl = /^([A-Za-z][A-Za-z0-9+-.]*\:|#|\/)/.test(linkUrl) ? linkUrl : _this.options.defaultProtocol + linkUrl; - } - - var anchors = []; - - if (isTextChanged) { - rng = rng.deleteContents(); - var anchor = rng.insertNode(external_jQuery_default()('' + linkText + '')[0]); - anchors.push(anchor); - } else { - anchors = _this.style.styleNodes(rng, { - nodeName: 'A', - expandClosestSibling: true, - onlyPartialContains: true - }); - } - - external_jQuery_default().each(anchors, function (idx, anchor) { - external_jQuery_default()(anchor).attr('href', linkUrl); - - if (isNewWindow) { - external_jQuery_default()(anchor).attr('target', '_blank'); - } else { - external_jQuery_default()(anchor).removeAttr('target'); - } - }); - - _this.setLastRange(_this.createRangeFromList(anchors).select()); - }); - /** - * setting color - * - * @param {Object} sObjColor color code - * @param {String} sObjColor.foreColor foreground color - * @param {String} sObjColor.backColor background color - */ - - this.color = this.wrapCommand(function (colorInfo) { - var foreColor = colorInfo.foreColor; - var backColor = colorInfo.backColor; - - if (foreColor) { - document.execCommand('foreColor', false, foreColor); - } - - if (backColor) { - document.execCommand('backColor', false, backColor); - } - }); - /** - * Set foreground color - * - * @param {String} colorCode foreground color code - */ - - this.foreColor = this.wrapCommand(function (colorInfo) { - document.execCommand('foreColor', false, colorInfo); - }); - /** - * insert Table - * - * @param {String} dimension of table (ex : "5x5") - */ - - this.insertTable = this.wrapCommand(function (dim) { - var dimension = dim.split('x'); - - var rng = _this.getLastRange().deleteContents(); - - rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options)); - }); - /** - * remove media object and Figure Elements if media object is img with Figure. - */ - - this.removeMedia = this.wrapCommand(function () { - var $target = external_jQuery_default()(_this.restoreTarget()).parent(); - - if ($target.closest('figure').length) { - $target.closest('figure').remove(); - } else { - $target = external_jQuery_default()(_this.restoreTarget()).detach(); - } - - _this.context.triggerEvent('media.delete', $target, _this.$editable); - }); - /** - * float me - * - * @param {String} value - */ - - this.floatMe = this.wrapCommand(function (value) { - var $target = external_jQuery_default()(_this.restoreTarget()); - $target.toggleClass('note-float-left', value === 'left'); - $target.toggleClass('note-float-right', value === 'right'); - $target.css('float', value === 'none' ? '' : value); - }); - /** - * resize overlay element - * @param {String} value - */ - - this.resize = this.wrapCommand(function (value) { - var $target = external_jQuery_default()(_this.restoreTarget()); - value = parseFloat(value); - - if (value === 0) { - $target.css('width', ''); - } else { - $target.css({ - width: value * 100 + '%', - height: '' - }); - } - }); - } - - Editor_createClass(Editor, [{ - key: "initialize", - value: function initialize() { - var _this2 = this; - - // bind custom events - this.$editable.on('keydown', function (event) { - if (event.keyCode === key.code.ENTER) { - _this2.context.triggerEvent('enter', event); - } - - _this2.context.triggerEvent('keydown', event); // keep a snapshot to limit text on input event - - - _this2.snapshot = _this2.history.makeSnapshot(); - _this2.hasKeyShortCut = false; - - if (!event.isDefaultPrevented()) { - if (_this2.options.shortcuts) { - _this2.hasKeyShortCut = _this2.handleKeyMap(event); - } else { - _this2.preventDefaultEditableShortCuts(event); - } - } - - if (_this2.isLimited(1, event)) { - var lastRange = _this2.getLastRange(); - - if (lastRange.eo - lastRange.so === 0) { - return false; - } - } - - _this2.setLastRange(); // record undo in the key event except keyMap. - - - if (_this2.options.recordEveryKeystroke) { - if (_this2.hasKeyShortCut === false) { - _this2.history.recordUndo(); - } - } - }).on('keyup', function (event) { - _this2.setLastRange(); - - _this2.context.triggerEvent('keyup', event); - }).on('focus', function (event) { - _this2.setLastRange(); - - _this2.context.triggerEvent('focus', event); - }).on('blur', function (event) { - _this2.context.triggerEvent('blur', event); - }).on('mousedown', function (event) { - _this2.context.triggerEvent('mousedown', event); - }).on('mouseup', function (event) { - _this2.setLastRange(); - - _this2.history.recordUndo(); - - _this2.context.triggerEvent('mouseup', event); - }).on('scroll', function (event) { - _this2.context.triggerEvent('scroll', event); - }).on('paste', function (event) { - _this2.setLastRange(); - - _this2.context.triggerEvent('paste', event); - }).on('input', function () { - // To limit composition characters (e.g. Korean) - if (_this2.isLimited(0) && _this2.snapshot) { - _this2.history.applySnapshot(_this2.snapshot); - } - }); - this.$editable.attr('spellcheck', this.options.spellCheck); - this.$editable.attr('autocorrect', this.options.spellCheck); - - if (this.options.disableGrammar) { - this.$editable.attr('data-gramm', false); - } // init content before set event - - - this.$editable.html(dom.html(this.$note) || dom.emptyPara); - this.$editable.on(env.inputEventName, func.debounce(function () { - _this2.context.triggerEvent('change', _this2.$editable.html(), _this2.$editable); - }, 10)); - this.$editable.on('focusin', function (event) { - _this2.context.triggerEvent('focusin', event); - }).on('focusout', function (event) { - _this2.context.triggerEvent('focusout', event); - }); - - if (this.options.airMode) { - if (this.options.overrideContextMenu) { - this.$editor.on('contextmenu', function (event) { - _this2.context.triggerEvent('contextmenu', event); - - return false; - }); - } - } else { - if (this.options.width) { - this.$editor.outerWidth(this.options.width); - } - - if (this.options.height) { - this.$editable.outerHeight(this.options.height); - } - - if (this.options.maxHeight) { - this.$editable.css('max-height', this.options.maxHeight); - } - - if (this.options.minHeight) { - this.$editable.css('min-height', this.options.minHeight); - } - } - - this.history.recordUndo(); - this.setLastRange(); - } - }, { - key: "destroy", - value: function destroy() { - this.$editable.off(); - } - }, { - key: "handleKeyMap", - value: function handleKeyMap(event) { - var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc']; - var keys = []; - - if (event.metaKey) { - keys.push('CMD'); - } - - if (event.ctrlKey && !event.altKey) { - keys.push('CTRL'); - } - - if (event.shiftKey) { - keys.push('SHIFT'); - } - - var keyName = key.nameFromCode[event.keyCode]; - - if (keyName) { - keys.push(keyName); - } - - var eventName = keyMap[keys.join('+')]; - - if (keyName === 'TAB' && !this.options.tabDisable) { - this.afterCommand(); - } else if (eventName) { - if (this.context.invoke(eventName) !== false) { - event.preventDefault(); // if keyMap action was invoked - - return true; - } - } else if (key.isEdit(event.keyCode)) { - this.afterCommand(); - } - - return false; - } - }, { - key: "preventDefaultEditableShortCuts", - value: function preventDefaultEditableShortCuts(event) { - // B(Bold, 66) / I(Italic, 73) / U(Underline, 85) - if ((event.ctrlKey || event.metaKey) && lists.contains([66, 73, 85], event.keyCode)) { - event.preventDefault(); - } - } - }, { - key: "isLimited", - value: function isLimited(pad, event) { - pad = pad || 0; - - if (typeof event !== 'undefined') { - if (key.isMove(event.keyCode) || key.isNavigation(event.keyCode) || event.ctrlKey || event.metaKey || lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) { - return false; - } - } - - if (this.options.maxTextLength > 0) { - if (this.$editable.text().length + pad > this.options.maxTextLength) { - return true; - } - } - - return false; - } - /** - * create range - * @return {WrappedRange} - */ - - }, { - key: "createRange", - value: function createRange() { - this.focus(); - this.setLastRange(); - return this.getLastRange(); - } - /** - * create a new range from the list of elements - * - * @param {list} dom element list - * @return {WrappedRange} - */ - - }, { - key: "createRangeFromList", - value: function createRangeFromList(lst) { - var startRange = range.createFromNodeBefore(lists.head(lst)); - var startPoint = startRange.getStartPoint(); - var endRange = range.createFromNodeAfter(lists.last(lst)); - var endPoint = endRange.getEndPoint(); - return range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); - } - /** - * set the last range - * - * if given rng is exist, set rng as the last range - * or create a new range at the end of the document - * - * @param {WrappedRange} rng - */ - - }, { - key: "setLastRange", - value: function setLastRange(rng) { - if (rng) { - this.lastRange = rng; - } else { - this.lastRange = range.create(this.editable); - - if (external_jQuery_default()(this.lastRange.sc).closest('.note-editable').length === 0) { - this.lastRange = range.createFromBodyElement(this.editable); - } - } - } - /** - * get the last range - * - * if there is a saved last range, return it - * or create a new range and return it - * - * @return {WrappedRange} - */ - - }, { - key: "getLastRange", - value: function getLastRange() { - if (!this.lastRange) { - this.setLastRange(); - } - - return this.lastRange; - } - /** - * saveRange - * - * save current range - * - * @param {Boolean} [thenCollapse=false] - */ - - }, { - key: "saveRange", - value: function saveRange(thenCollapse) { - if (thenCollapse) { - this.getLastRange().collapse().select(); - } - } - /** - * restoreRange - * - * restore lately range - */ - - }, { - key: "restoreRange", - value: function restoreRange() { - if (this.lastRange) { - this.lastRange.select(); - this.focus(); - } - } - }, { - key: "saveTarget", - value: function saveTarget(node) { - this.$editable.data('target', node); - } - }, { - key: "clearTarget", - value: function clearTarget() { - this.$editable.removeData('target'); - } - }, { - key: "restoreTarget", - value: function restoreTarget() { - return this.$editable.data('target'); - } - /** - * currentStyle - * - * current style - * @return {Object|Boolean} unfocus - */ - - }, { - key: "currentStyle", - value: function currentStyle() { - var rng = range.create(); - - if (rng) { - rng = rng.normalize(); - } - - return rng ? this.style.current(rng) : this.style.fromNode(this.$editable); - } - /** - * style from node - * - * @param {jQuery} $node - * @return {Object} - */ - - }, { - key: "styleFromNode", - value: function styleFromNode($node) { - return this.style.fromNode($node); - } - /** - * undo - */ - - }, { - key: "undo", - value: function undo() { - this.context.triggerEvent('before.command', this.$editable.html()); - this.history.undo(); - this.context.triggerEvent('change', this.$editable.html(), this.$editable); - } - /* - * commit - */ - - }, { - key: "commit", - value: function commit() { - this.context.triggerEvent('before.command', this.$editable.html()); - this.history.commit(); - this.context.triggerEvent('change', this.$editable.html(), this.$editable); - } - /** - * redo - */ - - }, { - key: "redo", - value: function redo() { - this.context.triggerEvent('before.command', this.$editable.html()); - this.history.redo(); - this.context.triggerEvent('change', this.$editable.html(), this.$editable); - } - /** - * before command - */ - - }, { - key: "beforeCommand", - value: function beforeCommand() { - this.context.triggerEvent('before.command', this.$editable.html()); // Set styleWithCSS before run a command - - document.execCommand('styleWithCSS', false, this.options.styleWithCSS); // keep focus on editable before command execution - - this.focus(); - } - /** - * after command - * @param {Boolean} isPreventTrigger - */ - - }, { - key: "afterCommand", - value: function afterCommand(isPreventTrigger) { - this.normalizeContent(); - this.history.recordUndo(); - - if (!isPreventTrigger) { - this.context.triggerEvent('change', this.$editable.html(), this.$editable); - } - } - /** - * handle tab key - */ - - }, { - key: "tab", - value: function tab() { - var rng = this.getLastRange(); - - if (rng.isCollapsed() && rng.isOnCell()) { - this.table.tab(rng); - } else { - if (this.options.tabSize === 0) { - return false; - } - - if (!this.isLimited(this.options.tabSize)) { - this.beforeCommand(); - this.typing.insertTab(rng, this.options.tabSize); - this.afterCommand(); - } - } - } - /** - * handle shift+tab key - */ - - }, { - key: "untab", - value: function untab() { - var rng = this.getLastRange(); - - if (rng.isCollapsed() && rng.isOnCell()) { - this.table.tab(rng, true); - } else { - if (this.options.tabSize === 0) { - return false; - } - } - } - /** - * run given function between beforeCommand and afterCommand - */ - - }, { - key: "wrapCommand", - value: function wrapCommand(fn) { - return function () { - this.beforeCommand(); - fn.apply(this, arguments); - this.afterCommand(); - }; - } - /** - * insert image - * - * @param {String} src - * @param {String|Function} param - * @return {Promise} - */ - - }, { - key: "insertImage", - value: function insertImage(src, param) { - var _this3 = this; - - return createImage(src, param).then(function ($image) { - _this3.beforeCommand(); - - if (typeof param === 'function') { - param($image); - } else { - if (typeof param === 'string') { - $image.attr('data-filename', param); - } - - $image.css('width', Math.min(_this3.$editable.width(), $image.width())); - } - - $image.show(); - - _this3.getLastRange().insertNode($image[0]); - - _this3.setLastRange(range.createFromNodeAfter($image[0]).select()); - - _this3.afterCommand(); - }).fail(function (e) { - _this3.context.triggerEvent('image.upload.error', e); - }); - } - /** - * insertImages - * @param {File[]} files - */ - - }, { - key: "insertImagesAsDataURL", - value: function insertImagesAsDataURL(files) { - var _this4 = this; - - external_jQuery_default().each(files, function (idx, file) { - var filename = file.name; - - if (_this4.options.maximumImageFileSize && _this4.options.maximumImageFileSize < file.size) { - _this4.context.triggerEvent('image.upload.error', _this4.lang.image.maximumFileSizeError); - } else { - readFileAsDataURL(file).then(function (dataURL) { - return _this4.insertImage(dataURL, filename); - }).fail(function () { - _this4.context.triggerEvent('image.upload.error'); - }); - } - }); - } - /** - * insertImagesOrCallback - * @param {File[]} files - */ - - }, { - key: "insertImagesOrCallback", - value: function insertImagesOrCallback(files) { - var callbacks = this.options.callbacks; // If onImageUpload set, - - if (callbacks.onImageUpload) { - this.context.triggerEvent('image.upload', files); // else insert Image as dataURL - } else { - this.insertImagesAsDataURL(files); - } - } - /** - * return selected plain text - * @return {String} text - */ - - }, { - key: "getSelectedText", - value: function getSelectedText() { - var rng = this.getLastRange(); // if range on anchor, expand range with anchor - - if (rng.isOnAnchor()) { - rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor)); - } - - return rng.toString(); - } - }, { - key: "onFormatBlock", - value: function onFormatBlock(tagName, $target) { - // [workaround] for MSIE, IE need `<` - document.execCommand('FormatBlock', false, env.isMSIE ? '<' + tagName + '>' : tagName); // support custom class - - if ($target && $target.length) { - // find the exact element has given tagName - if ($target[0].tagName.toUpperCase() !== tagName.toUpperCase()) { - $target = $target.find(tagName); - } - - if ($target && $target.length) { - var currentRange = this.createRange(); - var $parent = external_jQuery_default()([currentRange.sc, currentRange.ec]).closest(tagName); // remove class added for current block - - $parent.removeClass(); - var className = $target[0].className || ''; - - if (className) { - $parent.addClass(className); - } - } - } - } - }, { - key: "formatPara", - value: function formatPara() { - this.formatBlock('P'); - } - }, { - key: "fontStyling", - value: function fontStyling(target, value) { - var rng = this.getLastRange(); - - if (rng !== '') { - var spans = this.style.styleNodes(rng); - this.$editor.find('.note-status-output').html(''); - external_jQuery_default()(spans).css(target, value); // [workaround] added styled bogus span for style - // - also bogus character needed for cursor position - - if (rng.isCollapsed()) { - var firstSpan = lists.head(spans); - - if (firstSpan && !dom.nodeLength(firstSpan)) { - firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR; - range.createFromNode(firstSpan.firstChild).select(); - this.setLastRange(); - this.$editable.data(KEY_BOGUS, firstSpan); - } - } else { - this.setLastRange(this.createRangeFromList(spans).select()); - } - } else { - var noteStatusOutput = external_jQuery_default().now(); - this.$editor.find('.note-status-output').html('
      ' + this.lang.output.noSelection + '
      '); - setTimeout(function () { - external_jQuery_default()('#note-status-output-' + noteStatusOutput).remove(); - }, 5000); - } - } - /** - * unlink - * - * @type command - */ - - }, { - key: "unlink", - value: function unlink() { - var rng = this.getLastRange(); - - if (rng.isOnAnchor()) { - var anchor = dom.ancestor(rng.sc, dom.isAnchor); - rng = range.createFromNode(anchor); - rng.select(); - this.setLastRange(); - this.beforeCommand(); - document.execCommand('unlink'); - this.afterCommand(); - } - } - /** - * returns link info - * - * @return {Object} - * @return {WrappedRange} return.range - * @return {String} return.text - * @return {Boolean} [return.isNewWindow=true] - * @return {String} [return.url=""] - */ - - }, { - key: "getLinkInfo", - value: function getLinkInfo() { - var rng = this.getLastRange().expand(dom.isAnchor); // Get the first anchor on range(for edit). - - var $anchor = external_jQuery_default()(lists.head(rng.nodes(dom.isAnchor))); - var linkInfo = { - range: rng, - text: rng.toString(), - url: $anchor.length ? $anchor.attr('href') : '' - }; // When anchor exists, - - if ($anchor.length) { - // Set isNewWindow by checking its target. - linkInfo.isNewWindow = $anchor.attr('target') === '_blank'; - } - - return linkInfo; - } - }, { - key: "addRow", - value: function addRow(position) { - var rng = this.getLastRange(this.$editable); - - if (rng.isCollapsed() && rng.isOnCell()) { - this.beforeCommand(); - this.table.addRow(rng, position); - this.afterCommand(); - } - } - }, { - key: "addCol", - value: function addCol(position) { - var rng = this.getLastRange(this.$editable); - - if (rng.isCollapsed() && rng.isOnCell()) { - this.beforeCommand(); - this.table.addCol(rng, position); - this.afterCommand(); - } - } - }, { - key: "deleteRow", - value: function deleteRow() { - var rng = this.getLastRange(this.$editable); - - if (rng.isCollapsed() && rng.isOnCell()) { - this.beforeCommand(); - this.table.deleteRow(rng); - this.afterCommand(); - } - } - }, { - key: "deleteCol", - value: function deleteCol() { - var rng = this.getLastRange(this.$editable); - - if (rng.isCollapsed() && rng.isOnCell()) { - this.beforeCommand(); - this.table.deleteCol(rng); - this.afterCommand(); - } - } - }, { - key: "deleteTable", - value: function deleteTable() { - var rng = this.getLastRange(this.$editable); - - if (rng.isCollapsed() && rng.isOnCell()) { - this.beforeCommand(); - this.table.deleteTable(rng); - this.afterCommand(); - } - } - /** - * @param {Position} pos - * @param {jQuery} $target - target element - * @param {Boolean} [bKeepRatio] - keep ratio - */ - - }, { - key: "resizeTo", - value: function resizeTo(pos, $target, bKeepRatio) { - var imageSize; - - if (bKeepRatio) { - var newRatio = pos.y / pos.x; - var ratio = $target.data('ratio'); - imageSize = { - width: ratio > newRatio ? pos.x : pos.y / ratio, - height: ratio > newRatio ? pos.x * ratio : pos.y - }; - } else { - imageSize = { - width: pos.x, - height: pos.y - }; - } - - $target.css(imageSize); - } - /** - * returns whether editable area has focus or not. - */ - - }, { - key: "hasFocus", - value: function hasFocus() { - return this.$editable.is(':focus'); - } - /** - * set focus - */ - - }, { - key: "focus", - value: function focus() { - // [workaround] Screen will move when page is scolled in IE. - // - do focus when not focused - if (!this.hasFocus()) { - this.$editable.focus(); - } - } - /** - * returns whether contents is empty or not. - * @return {Boolean} - */ - - }, { - key: "isEmpty", - value: function isEmpty() { - return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html(); - } - /** - * Removes all contents and restores the editable instance to an _emptyPara_. - */ - - }, { - key: "empty", - value: function empty() { - this.context.invoke('code', dom.emptyPara); - } - /** - * normalize content - */ - - }, { - key: "normalizeContent", - value: function normalizeContent() { - this.$editable[0].normalize(); - } - }]); - - return Editor; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Clipboard.js -function Clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Clipboard_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); } } - -function Clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) Clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) Clipboard_defineProperties(Constructor, staticProps); return Constructor; } - - - -var Clipboard = /*#__PURE__*/function () { - function Clipboard(context) { - Clipboard_classCallCheck(this, Clipboard); - - this.context = context; - this.$editable = context.layoutInfo.editable; - } - - Clipboard_createClass(Clipboard, [{ - key: "initialize", - value: function initialize() { - this.$editable.on('paste', this.pasteByEvent.bind(this)); - } - /** - * paste by clipboard event - * - * @param {Event} event - */ - - }, { - key: "pasteByEvent", - value: function pasteByEvent(event) { - var _this = this; - - var clipboardData = event.originalEvent.clipboardData; - - if (clipboardData && clipboardData.items && clipboardData.items.length) { - var item = clipboardData.items.length > 1 ? clipboardData.items[1] : lists.head(clipboardData.items); - - if (item.kind === 'file' && item.type.indexOf('image/') !== -1) { - // paste img file - this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]); - event.preventDefault(); - } else if (item.kind === 'string') { - // paste text with maxTextLength check - if (this.context.invoke('editor.isLimited', clipboardData.getData('Text').length)) { - event.preventDefault(); - } - } - } else if (window.clipboardData) { - // for IE - var text = window.clipboardData.getData('text'); - - if (this.context.invoke('editor.isLimited', text.length)) { - event.preventDefault(); - } - } // Call editor.afterCommand after proceeding default event handler - - - setTimeout(function () { - _this.context.invoke('editor.afterCommand'); - }, 10); - } - }]); - - return Clipboard; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Dropzone.js -function Dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Dropzone_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); } } - -function Dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) Dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) Dropzone_defineProperties(Constructor, staticProps); return Constructor; } - - - -var Dropzone = /*#__PURE__*/function () { - function Dropzone(context) { - Dropzone_classCallCheck(this, Dropzone); - - this.context = context; - this.$eventListener = external_jQuery_default()(document); - this.$editor = context.layoutInfo.editor; - this.$editable = context.layoutInfo.editable; - this.options = context.options; - this.lang = this.options.langInfo; - this.documentEventHandlers = {}; - this.$dropzone = external_jQuery_default()(['
      ', '
      ', '
      '].join('')).prependTo(this.$editor); - } - /** - * attach Drag and Drop Events - */ - - - Dropzone_createClass(Dropzone, [{ - key: "initialize", - value: function initialize() { - if (this.options.disableDragAndDrop) { - // prevent default drop event - this.documentEventHandlers.onDrop = function (e) { - e.preventDefault(); - }; // do not consider outside of dropzone - - - this.$eventListener = this.$dropzone; - this.$eventListener.on('drop', this.documentEventHandlers.onDrop); - } else { - this.attachDragAndDropEvent(); - } - } - /** - * attach Drag and Drop Events - */ - - }, { - key: "attachDragAndDropEvent", - value: function attachDragAndDropEvent() { - var _this = this; - - var collection = external_jQuery_default()(); - var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message'); - - this.documentEventHandlers.onDragenter = function (e) { - var isCodeview = _this.context.invoke('codeview.isActivated'); - - var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0; - - if (!isCodeview && !collection.length && hasEditorSize) { - _this.$editor.addClass('dragover'); - - _this.$dropzone.width(_this.$editor.width()); - - _this.$dropzone.height(_this.$editor.height()); - - $dropzoneMessage.text(_this.lang.image.dragImageHere); - } - - collection = collection.add(e.target); - }; - - this.documentEventHandlers.onDragleave = function (e) { - collection = collection.not(e.target); // If nodeName is BODY, then just make it over (fix for IE) - - if (!collection.length || e.target.nodeName === 'BODY') { - collection = external_jQuery_default()(); - - _this.$editor.removeClass('dragover'); - } - }; - - this.documentEventHandlers.onDrop = function () { - collection = external_jQuery_default()(); - - _this.$editor.removeClass('dragover'); - }; // show dropzone on dragenter when dragging a object to document - // -but only if the editor is visible, i.e. has a positive width and height - - - this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter).on('dragleave', this.documentEventHandlers.onDragleave).on('drop', this.documentEventHandlers.onDrop); // change dropzone's message on hover. - - this.$dropzone.on('dragenter', function () { - _this.$dropzone.addClass('hover'); - - $dropzoneMessage.text(_this.lang.image.dropImage); - }).on('dragleave', function () { - _this.$dropzone.removeClass('hover'); - - $dropzoneMessage.text(_this.lang.image.dragImageHere); - }); // attach dropImage - - this.$dropzone.on('drop', function (event) { - var dataTransfer = event.originalEvent.dataTransfer; // stop the browser from opening the dropped content - - event.preventDefault(); - - if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { - _this.$editable.focus(); - - _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files); - } else { - external_jQuery_default().each(dataTransfer.types, function (idx, type) { - // skip moz-specific types - if (type.toLowerCase().indexOf('_moz_') > -1) { - return; - } - - var content = dataTransfer.getData(type); - - if (type.toLowerCase().indexOf('text') > -1) { - _this.context.invoke('editor.pasteHTML', content); - } else { - external_jQuery_default()(content).each(function (idx, item) { - _this.context.invoke('editor.insertNode', item); - }); - } - }); - } - }).on('dragover', false); // prevent default dragover event - } - }, { - key: "destroy", - value: function destroy() { - var _this2 = this; - - Object.keys(this.documentEventHandlers).forEach(function (key) { - _this2.$eventListener.off(key.substr(2).toLowerCase(), _this2.documentEventHandlers[key]); - }); - this.documentEventHandlers = {}; - } - }]); - - return Dropzone; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Codeview.js -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function Codeview_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Codeview_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); } } - -function Codeview_createClass(Constructor, protoProps, staticProps) { if (protoProps) Codeview_defineProperties(Constructor.prototype, protoProps); if (staticProps) Codeview_defineProperties(Constructor, staticProps); return Constructor; } - - - -/** - * @class Codeview - */ - -var CodeView = /*#__PURE__*/function () { - function CodeView(context) { - Codeview_classCallCheck(this, CodeView); - - this.context = context; - this.$editor = context.layoutInfo.editor; - this.$editable = context.layoutInfo.editable; - this.$codable = context.layoutInfo.codable; - this.options = context.options; - this.CodeMirrorConstructor = window.CodeMirror; - - if (this.options.codemirror.CodeMirrorConstructor) { - this.CodeMirrorConstructor = this.options.codemirror.CodeMirrorConstructor; - } - } - - Codeview_createClass(CodeView, [{ - key: "sync", - value: function sync(html) { - var isCodeview = this.isActivated(); - var CodeMirror = this.CodeMirrorConstructor; - - if (isCodeview) { - if (html) { - if (CodeMirror) { - this.$codable.data('cmEditor').getDoc().setValue(html); - } else { - this.$codable.val(html); - } - } else { - if (CodeMirror) { - this.$codable.data('cmEditor').save(); - } - } - } - } - }, { - key: "initialize", - value: function initialize() { - var _this = this; - - this.$codable.on('keyup', function (event) { - if (event.keyCode === key.code.ESCAPE) { - _this.deactivate(); - } - }); - } - /** - * @return {Boolean} - */ - - }, { - key: "isActivated", - value: function isActivated() { - return this.$editor.hasClass('codeview'); - } - /** - * toggle codeview - */ - - }, { - key: "toggle", - value: function toggle() { - if (this.isActivated()) { - this.deactivate(); - } else { - this.activate(); - } - - this.context.triggerEvent('codeview.toggled'); - } - /** - * purify input value - * @param value - * @returns {*} - */ - - }, { - key: "purify", - value: function purify(value) { - if (this.options.codeviewFilter) { - // filter code view regex - value = value.replace(this.options.codeviewFilterRegex, ''); // allow specific iframe tag - - if (this.options.codeviewIframeFilter) { - var whitelist = this.options.codeviewIframeWhitelistSrc.concat(this.options.codeviewIframeWhitelistSrcBase); - value = value.replace(/(.*?(?:<\/iframe>)?)/gi, function (tag) { - // remove if src attribute is duplicated - if (/<.+src(?==?('|"|\s)?)[\s\S]+src(?=('|"|\s)?)[^>]*?>/i.test(tag)) { - return ''; - } - - var _iterator = _createForOfIteratorHelper(whitelist), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var src = _step.value; - - // pass if src is trusted - if (new RegExp('src="(https?:)?\/\/' + src.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '\/(.+)"').test(tag)) { - return tag; - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - return ''; - }); - } - } - - return value; - } - /** - * activate code view - */ - - }, { - key: "activate", - value: function activate() { - var _this2 = this; - - var CodeMirror = this.CodeMirrorConstructor; - this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml)); - this.$codable.height(this.$editable.height()); - this.context.invoke('toolbar.updateCodeview', true); - this.context.invoke('airPopover.updateCodeview', true); - this.$editor.addClass('codeview'); - this.$codable.focus(); // activate CodeMirror as codable - - if (CodeMirror) { - var cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror); // CodeMirror TernServer - - if (this.options.codemirror.tern) { - var server = new CodeMirror.TernServer(this.options.codemirror.tern); - cmEditor.ternServer = server; - cmEditor.on('cursorActivity', function (cm) { - server.updateArgHints(cm); - }); - } - - cmEditor.on('blur', function (event) { - _this2.context.triggerEvent('blur.codeview', cmEditor.getValue(), event); - }); - cmEditor.on('change', function () { - _this2.context.triggerEvent('change.codeview', cmEditor.getValue(), cmEditor); - }); // CodeMirror hasn't Padding. - - cmEditor.setSize(null, this.$editable.outerHeight()); - this.$codable.data('cmEditor', cmEditor); - } else { - this.$codable.on('blur', function (event) { - _this2.context.triggerEvent('blur.codeview', _this2.$codable.val(), event); - }); - this.$codable.on('input', function () { - _this2.context.triggerEvent('change.codeview', _this2.$codable.val(), _this2.$codable); - }); - } - } - /** - * deactivate code view - */ - - }, { - key: "deactivate", - value: function deactivate() { - var CodeMirror = this.CodeMirrorConstructor; // deactivate CodeMirror as codable - - if (CodeMirror) { - var cmEditor = this.$codable.data('cmEditor'); - this.$codable.val(cmEditor.getValue()); - cmEditor.toTextArea(); - } - - var value = this.purify(dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara); - var isChange = this.$editable.html() !== value; - this.$editable.html(value); - this.$editable.height(this.options.height ? this.$codable.height() : 'auto'); - this.$editor.removeClass('codeview'); - - if (isChange) { - this.context.triggerEvent('change', this.$editable.html(), this.$editable); - } - - this.$editable.focus(); - this.context.invoke('toolbar.updateCodeview', false); - this.context.invoke('airPopover.updateCodeview', false); - } - }, { - key: "destroy", - value: function destroy() { - if (this.isActivated()) { - this.deactivate(); - } - } - }]); - - return CodeView; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Statusbar.js -function Statusbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Statusbar_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); } } - -function Statusbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Statusbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Statusbar_defineProperties(Constructor, staticProps); return Constructor; } - - -var EDITABLE_PADDING = 24; - -var Statusbar = /*#__PURE__*/function () { - function Statusbar(context) { - Statusbar_classCallCheck(this, Statusbar); - - this.$document = external_jQuery_default()(document); - this.$statusbar = context.layoutInfo.statusbar; - this.$editable = context.layoutInfo.editable; - this.$codable = context.layoutInfo.codable; - this.options = context.options; - } - - Statusbar_createClass(Statusbar, [{ - key: "initialize", - value: function initialize() { - var _this = this; - - if (this.options.airMode || this.options.disableResizeEditor) { - this.destroy(); - return; - } - - this.$statusbar.on('mousedown', function (event) { - event.preventDefault(); - event.stopPropagation(); - - var editableTop = _this.$editable.offset().top - _this.$document.scrollTop(); - - var editableCodeTop = _this.$codable.offset().top - _this.$document.scrollTop(); - - var onMouseMove = function onMouseMove(event) { - var height = event.clientY - (editableTop + EDITABLE_PADDING); - var heightCode = event.clientY - (editableCodeTop + EDITABLE_PADDING); - height = _this.options.minheight > 0 ? Math.max(height, _this.options.minheight) : height; - height = _this.options.maxHeight > 0 ? Math.min(height, _this.options.maxHeight) : height; - heightCode = _this.options.minheight > 0 ? Math.max(heightCode, _this.options.minheight) : heightCode; - heightCode = _this.options.maxHeight > 0 ? Math.min(heightCode, _this.options.maxHeight) : heightCode; - - _this.$editable.height(height); - - _this.$codable.height(heightCode); - }; - - _this.$document.on('mousemove', onMouseMove).one('mouseup', function () { - _this.$document.off('mousemove', onMouseMove); - }); - }); - } - }, { - key: "destroy", - value: function destroy() { - this.$statusbar.off(); - this.$statusbar.addClass('locked'); - } - }]); - - return Statusbar; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Fullscreen.js -function Fullscreen_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Fullscreen_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); } } - -function Fullscreen_createClass(Constructor, protoProps, staticProps) { if (protoProps) Fullscreen_defineProperties(Constructor.prototype, protoProps); if (staticProps) Fullscreen_defineProperties(Constructor, staticProps); return Constructor; } - - - -var Fullscreen = /*#__PURE__*/function () { - function Fullscreen(context) { - var _this = this; - - Fullscreen_classCallCheck(this, Fullscreen); - - this.context = context; - this.$editor = context.layoutInfo.editor; - this.$toolbar = context.layoutInfo.toolbar; - this.$editable = context.layoutInfo.editable; - this.$codable = context.layoutInfo.codable; - this.$window = external_jQuery_default()(window); - this.$scrollbar = external_jQuery_default()('html, body'); - this.scrollbarClassName = 'note-fullscreen-body'; - - this.onResize = function () { - _this.resizeTo({ - h: _this.$window.height() - _this.$toolbar.outerHeight() - }); - }; - } - - Fullscreen_createClass(Fullscreen, [{ - key: "resizeTo", - value: function resizeTo(size) { - this.$editable.css('height', size.h); - this.$codable.css('height', size.h); - - if (this.$codable.data('cmeditor')) { - this.$codable.data('cmeditor').setsize(null, size.h); - } - } - /** - * toggle fullscreen - */ - - }, { - key: "toggle", - value: function toggle() { - this.$editor.toggleClass('fullscreen'); - var isFullscreen = this.isFullscreen(); - this.$scrollbar.toggleClass(this.scrollbarClassName, isFullscreen); - - if (isFullscreen) { - this.$editable.data('orgHeight', this.$editable.css('height')); - this.$editable.data('orgMaxHeight', this.$editable.css('maxHeight')); - this.$editable.css('maxHeight', ''); - this.$window.on('resize', this.onResize).trigger('resize'); - } else { - this.$window.off('resize', this.onResize); - this.resizeTo({ - h: this.$editable.data('orgHeight') - }); - this.$editable.css('maxHeight', this.$editable.css('orgMaxHeight')); - } - - this.context.invoke('toolbar.updateFullscreen', isFullscreen); - } - }, { - key: "isFullscreen", - value: function isFullscreen() { - return this.$editor.hasClass('fullscreen'); - } - }, { - key: "destroy", - value: function destroy() { - this.$scrollbar.removeClass(this.scrollbarClassName); - } - }]); - - return Fullscreen; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Handle.js -function Handle_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Handle_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); } } - -function Handle_createClass(Constructor, protoProps, staticProps) { if (protoProps) Handle_defineProperties(Constructor.prototype, protoProps); if (staticProps) Handle_defineProperties(Constructor, staticProps); return Constructor; } - - - - -var Handle = /*#__PURE__*/function () { - function Handle(context) { - var _this = this; - - Handle_classCallCheck(this, Handle); - - this.context = context; - this.$document = external_jQuery_default()(document); - this.$editingArea = context.layoutInfo.editingArea; - this.options = context.options; - this.lang = this.options.langInfo; - this.events = { - 'summernote.mousedown': function summernoteMousedown(we, e) { - if (_this.update(e.target, e)) { - e.preventDefault(); - } - }, - 'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function summernoteKeyupSummernoteScrollSummernoteChangeSummernoteDialogShown() { - _this.update(); - }, - 'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() { - _this.hide(); - }, - 'summernote.codeview.toggled': function summernoteCodeviewToggled() { - _this.update(); - } - }; - } - - Handle_createClass(Handle, [{ - key: "initialize", - value: function initialize() { - var _this2 = this; - - this.$handle = external_jQuery_default()(['
      ', '
      ', '
      ', '
      ', '
      ', '
      ', '
      ', this.options.disableResizeImage ? '' : '
      ', '
      ', '
      '].join('')).prependTo(this.$editingArea); - this.$handle.on('mousedown', function (event) { - if (dom.isControlSizing(event.target)) { - event.preventDefault(); - event.stopPropagation(); - - var $target = _this2.$handle.find('.note-control-selection').data('target'); - - var posStart = $target.offset(); - - var scrollTop = _this2.$document.scrollTop(); - - var onMouseMove = function onMouseMove(event) { - _this2.context.invoke('editor.resizeTo', { - x: event.clientX - posStart.left, - y: event.clientY - (posStart.top - scrollTop) - }, $target, !event.shiftKey); - - _this2.update($target[0], event); - }; - - _this2.$document.on('mousemove', onMouseMove).one('mouseup', function (e) { - e.preventDefault(); - - _this2.$document.off('mousemove', onMouseMove); - - _this2.context.invoke('editor.afterCommand'); - }); - - if (!$target.data('ratio')) { - // original ratio. - $target.data('ratio', $target.height() / $target.width()); - } - } - }); // Listen for scrolling on the handle overlay. - - this.$handle.on('wheel', function (e) { - e.preventDefault(); - - _this2.update(); - }); - } - }, { - key: "destroy", - value: function destroy() { - this.$handle.remove(); - } - }, { - key: "update", - value: function update(target, event) { - if (this.context.isDisabled()) { - return false; - } - - var isImage = dom.isImg(target); - var $selection = this.$handle.find('.note-control-selection'); - this.context.invoke('imagePopover.update', target, event); - - if (isImage) { - var $image = external_jQuery_default()(target); - var position = $image.position(); - var pos = { - left: position.left + parseInt($image.css('marginLeft'), 10), - top: position.top + parseInt($image.css('marginTop'), 10) - }; // exclude margin - - var imageSize = { - w: $image.outerWidth(false), - h: $image.outerHeight(false) - }; - $selection.css({ - display: 'block', - left: pos.left, - top: pos.top, - width: imageSize.w, - height: imageSize.h - }).data('target', $image); // save current image element. - - var origImageObj = new Image(); - origImageObj.src = $image.attr('src'); - var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')'; - $selection.find('.note-control-selection-info').text(sizingText); - this.context.invoke('editor.saveTarget', target); - } else { - this.hide(); - } - - return isImage; - } - /** - * hide - * - * @param {jQuery} $handle - */ - - }, { - key: "hide", - value: function hide() { - this.context.invoke('editor.clearTarget'); - this.$handle.children().hide(); - } - }]); - - return Handle; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/AutoLink.js -function AutoLink_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function AutoLink_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); } } - -function AutoLink_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoLink_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoLink_defineProperties(Constructor, staticProps); return Constructor; } - - - - -var defaultScheme = 'http://'; -var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\:[\/]{2}|tel:|mailto:[A-Z0-9._%+-]+@|xmpp:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i; - -var AutoLink = /*#__PURE__*/function () { - function AutoLink(context) { - var _this = this; - - AutoLink_classCallCheck(this, AutoLink); - - this.context = context; - this.options = context.options; - this.events = { - 'summernote.keyup': function summernoteKeyup(we, e) { - if (!e.isDefaultPrevented()) { - _this.handleKeyup(e); - } - }, - 'summernote.keydown': function summernoteKeydown(we, e) { - _this.handleKeydown(e); - } - }; - } - - AutoLink_createClass(AutoLink, [{ - key: "initialize", - value: function initialize() { - this.lastWordRange = null; - } - }, { - key: "destroy", - value: function destroy() { - this.lastWordRange = null; - } - }, { - key: "replace", - value: function replace() { - if (!this.lastWordRange) { - return; - } - - var keyword = this.lastWordRange.toString(); - var match = keyword.match(linkPattern); - - if (match && (match[1] || match[2])) { - var link = match[1] ? keyword : defaultScheme + keyword; - var urlText = this.options.showDomainOnlyForAutolink ? keyword.replace(/^(?:https?:\/\/)?(?:tel?:?)?(?:mailto?:?)?(?:xmpp?:?)?(?:www\.)?/i, '').split('/')[0] : keyword; - var node = external_jQuery_default()('').html(urlText).attr('href', link)[0]; - - if (this.context.options.linkTargetBlank) { - external_jQuery_default()(node).attr('target', '_blank'); - } - - this.lastWordRange.insertNode(node); - this.lastWordRange = null; - this.context.invoke('editor.focus'); - } - } - }, { - key: "handleKeydown", - value: function handleKeydown(e) { - if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) { - var wordRange = this.context.invoke('editor.createRange').getWordRange(); - this.lastWordRange = wordRange; - } - } - }, { - key: "handleKeyup", - value: function handleKeyup(e) { - if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) { - this.replace(); - } - } - }]); - - return AutoLink; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/AutoSync.js -function AutoSync_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function AutoSync_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); } } - -function AutoSync_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoSync_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoSync_defineProperties(Constructor, staticProps); return Constructor; } - - -/** - * textarea auto sync. - */ - -var AutoSync = /*#__PURE__*/function () { - function AutoSync(context) { - var _this = this; - - AutoSync_classCallCheck(this, AutoSync); - - this.$note = context.layoutInfo.note; - this.events = { - 'summernote.change': function summernoteChange() { - _this.$note.val(context.invoke('code')); - } - }; - } - - AutoSync_createClass(AutoSync, [{ - key: "shouldInitialize", - value: function shouldInitialize() { - return dom.isTextarea(this.$note[0]); - } - }]); - - return AutoSync; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/AutoReplace.js -function AutoReplace_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function AutoReplace_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); } } - -function AutoReplace_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoReplace_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoReplace_defineProperties(Constructor, staticProps); return Constructor; } - - - - - -var AutoReplace = /*#__PURE__*/function () { - function AutoReplace(context) { - var _this = this; - - AutoReplace_classCallCheck(this, AutoReplace); - - this.context = context; - this.options = context.options.replace || {}; - this.keys = [key.code.ENTER, key.code.SPACE, key.code.PERIOD, key.code.COMMA, key.code.SEMICOLON, key.code.SLASH]; - this.previousKeydownCode = null; - this.events = { - 'summernote.keyup': function summernoteKeyup(we, e) { - if (!e.isDefaultPrevented()) { - _this.handleKeyup(e); - } - }, - 'summernote.keydown': function summernoteKeydown(we, e) { - _this.handleKeydown(e); - } - }; - } - - AutoReplace_createClass(AutoReplace, [{ - key: "shouldInitialize", - value: function shouldInitialize() { - return !!this.options.match; - } - }, { - key: "initialize", - value: function initialize() { - this.lastWord = null; - } - }, { - key: "destroy", - value: function destroy() { - this.lastWord = null; - } - }, { - key: "replace", - value: function replace() { - if (!this.lastWord) { - return; - } - - var self = this; - var keyword = this.lastWord.toString(); - this.options.match(keyword, function (match) { - if (match) { - var node = ''; - - if (typeof match === 'string') { - node = dom.createText(match); - } else if (match instanceof jQuery) { - node = match[0]; - } else if (match instanceof Node) { - node = match; - } - - if (!node) return; - self.lastWord.insertNode(node); - self.lastWord = null; - self.context.invoke('editor.focus'); - } - }); - } - }, { - key: "handleKeydown", - value: function handleKeydown(e) { - // this forces it to remember the last whole word, even if multiple termination keys are pressed - // before the previous key is let go. - if (this.previousKeydownCode && lists.contains(this.keys, this.previousKeydownCode)) { - this.previousKeydownCode = e.keyCode; - return; - } - - if (lists.contains(this.keys, e.keyCode)) { - var wordRange = this.context.invoke('editor.createRange').getWordRange(); - this.lastWord = wordRange; - } - - this.previousKeydownCode = e.keyCode; - } - }, { - key: "handleKeyup", - value: function handleKeyup(e) { - if (lists.contains(this.keys, e.keyCode)) { - this.replace(); - } - } - }]); - - return AutoReplace; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Placeholder.js -function Placeholder_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Placeholder_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); } } - -function Placeholder_createClass(Constructor, protoProps, staticProps) { if (protoProps) Placeholder_defineProperties(Constructor.prototype, protoProps); if (staticProps) Placeholder_defineProperties(Constructor, staticProps); return Constructor; } - - - -var Placeholder = /*#__PURE__*/function () { - function Placeholder(context) { - var _this = this; - - Placeholder_classCallCheck(this, Placeholder); - - this.context = context; - this.$editingArea = context.layoutInfo.editingArea; - this.options = context.options; - - if (this.options.inheritPlaceholder === true) { - // get placeholder value from the original element - this.options.placeholder = this.context.$note.attr('placeholder') || this.options.placeholder; - } - - this.events = { - 'summernote.init summernote.change': function summernoteInitSummernoteChange() { - _this.update(); - }, - 'summernote.codeview.toggled': function summernoteCodeviewToggled() { - _this.update(); - } - }; - } - - Placeholder_createClass(Placeholder, [{ - key: "shouldInitialize", - value: function shouldInitialize() { - return !!this.options.placeholder; - } - }, { - key: "initialize", - value: function initialize() { - var _this2 = this; - - this.$placeholder = external_jQuery_default()('
      '); - this.$placeholder.on('click', function () { - _this2.context.invoke('focus'); - }).html(this.options.placeholder).prependTo(this.$editingArea); - this.update(); - } - }, { - key: "destroy", - value: function destroy() { - this.$placeholder.remove(); - } - }, { - key: "update", - value: function update() { - var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty'); - this.$placeholder.toggle(isShow); - } - }]); - - return Placeholder; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Buttons.js -function Buttons_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Buttons_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); } } - -function Buttons_createClass(Constructor, protoProps, staticProps) { if (protoProps) Buttons_defineProperties(Constructor.prototype, protoProps); if (staticProps) Buttons_defineProperties(Constructor, staticProps); return Constructor; } - - - - - - -var Buttons = /*#__PURE__*/function () { - function Buttons(context) { - Buttons_classCallCheck(this, Buttons); - - this.ui = (external_jQuery_default()).summernote.ui; - this.context = context; - this.$toolbar = context.layoutInfo.toolbar; - this.options = context.options; - this.lang = this.options.langInfo; - this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']); - } - - Buttons_createClass(Buttons, [{ - key: "representShortcut", - value: function representShortcut(editorMethod) { - var shortcut = this.invertedKeyMap[editorMethod]; - - if (!this.options.shortcuts || !shortcut) { - return ''; - } - - if (env.isMac) { - shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧'); - } - - shortcut = shortcut.replace('BACKSLASH', '\\').replace('SLASH', '/').replace('LEFTBRACKET', '[').replace('RIGHTBRACKET', ']'); - return ' (' + shortcut + ')'; - } - }, { - key: "button", - value: function button(o) { - if (!this.options.tooltip && o.tooltip) { - delete o.tooltip; - } - - o.container = this.options.container; - return this.ui.button(o); - } - }, { - key: "initialize", - value: function initialize() { - this.addToolbarButtons(); - this.addImagePopoverButtons(); - this.addLinkPopoverButtons(); - this.addTablePopoverButtons(); - this.fontInstalledMap = {}; - } - }, { - key: "destroy", - value: function destroy() { - delete this.fontInstalledMap; - } - }, { - key: "isFontInstalled", - value: function isFontInstalled(name) { - if (!Object.prototype.hasOwnProperty.call(this.fontInstalledMap, name)) { - this.fontInstalledMap[name] = env.isFontInstalled(name) || lists.contains(this.options.fontNamesIgnoreCheck, name); - } - - return this.fontInstalledMap[name]; - } - }, { - key: "isFontDeservedToAdd", - value: function isFontDeservedToAdd(name) { - name = name.toLowerCase(); - return name !== '' && this.isFontInstalled(name) && env.genericFontFamilies.indexOf(name) === -1; - } - }, { - key: "colorPalette", - value: function colorPalette(className, tooltip, backColor, foreColor) { - var _this = this; - - return this.ui.buttonGroup({ - className: 'note-color ' + className, - children: [this.button({ - className: 'note-current-color-button', - contents: this.ui.icon(this.options.icons.font + ' note-recent-color'), - tooltip: tooltip, - click: function click(e) { - var $button = external_jQuery_default()(e.currentTarget); - - if (backColor && foreColor) { - _this.context.invoke('editor.color', { - backColor: $button.attr('data-backColor'), - foreColor: $button.attr('data-foreColor') - }); - } else if (backColor) { - _this.context.invoke('editor.color', { - backColor: $button.attr('data-backColor') - }); - } else if (foreColor) { - _this.context.invoke('editor.color', { - foreColor: $button.attr('data-foreColor') - }); - } - }, - callback: function callback($button) { - var $recentColor = $button.find('.note-recent-color'); - - if (backColor) { - $recentColor.css('background-color', _this.options.colorButton.backColor); - $button.attr('data-backColor', _this.options.colorButton.backColor); - } - - if (foreColor) { - $recentColor.css('color', _this.options.colorButton.foreColor); - $button.attr('data-foreColor', _this.options.colorButton.foreColor); - } else { - $recentColor.css('color', 'transparent'); - } - } - }), this.button({ - className: 'dropdown-toggle', - contents: this.ui.dropdownButtonContents('', this.options), - tooltip: this.lang.color.more, - data: { - toggle: 'dropdown' - } - }), this.ui.dropdown({ - items: (backColor ? ['
      ', '
      ' + this.lang.color.background + '
      ', '
      ', '', '
      ', '
      ', '
      ', '', '', '
      ', '
      ', '
      '].join('') : '') + (foreColor ? ['
      ', '
      ' + this.lang.color.foreground + '
      ', '
      ', '', '
      ', '
      ', '
      ', '', '', '
      ', // Fix missing Div, Commented to find easily if it's wrong - '
      ', '
      '].join('') : ''), - callback: function callback($dropdown) { - $dropdown.find('.note-holder').each(function (idx, item) { - var $holder = external_jQuery_default()(item); - $holder.append(_this.ui.palette({ - colors: _this.options.colors, - colorsName: _this.options.colorsName, - eventName: $holder.data('event'), - container: _this.options.container, - tooltip: _this.options.tooltip - }).render()); - }); - /* TODO: do we have to record recent custom colors within cookies? */ - - var customColors = [['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF']]; - $dropdown.find('.note-holder-custom').each(function (idx, item) { - var $holder = external_jQuery_default()(item); - $holder.append(_this.ui.palette({ - colors: customColors, - colorsName: customColors, - eventName: $holder.data('event'), - container: _this.options.container, - tooltip: _this.options.tooltip - }).render()); - }); - $dropdown.find('input[type=color]').each(function (idx, item) { - external_jQuery_default()(item).change(function () { - var $chip = $dropdown.find('#' + external_jQuery_default()(this).data('event')).find('.note-color-btn').first(); - var color = this.value.toUpperCase(); - $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color); - $chip.click(); - }); - }); - }, - click: function click(event) { - event.stopPropagation(); - var $parent = external_jQuery_default()('.' + className).find('.note-dropdown-menu'); - var $button = external_jQuery_default()(event.target); - var eventName = $button.data('event'); - var value = $button.attr('data-value'); - - if (eventName === 'openPalette') { - var $picker = $parent.find('#' + value); - var $palette = external_jQuery_default()($parent.find('#' + $picker.data('event')).find('.note-color-row')[0]); // Shift palette chips - - var $chip = $palette.find('.note-color-btn').last().detach(); // Set chip attributes - - var color = $picker.val(); - $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color); - $palette.prepend($chip); - $picker.click(); - } else { - if (lists.contains(['backColor', 'foreColor'], eventName)) { - var key = eventName === 'backColor' ? 'background-color' : 'color'; - var $color = $button.closest('.note-color').find('.note-recent-color'); - var $currentButton = $button.closest('.note-color').find('.note-current-color-button'); - $color.css(key, value); - $currentButton.attr('data-' + eventName, value); - } - - _this.context.invoke('editor.' + eventName, value); - } - } - })] - }).render(); - } - }, { - key: "addToolbarButtons", - value: function addToolbarButtons() { - var _this2 = this; - - this.context.memo('button.style', function () { - return _this2.ui.buttonGroup([_this2.button({ - className: 'dropdown-toggle', - contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.magic), _this2.options), - tooltip: _this2.lang.style.style, - data: { - toggle: 'dropdown' - } - }), _this2.ui.dropdown({ - className: 'dropdown-style', - items: _this2.options.styleTags, - title: _this2.lang.style.style, - template: function template(item) { - // TBD: need to be simplified - if (typeof item === 'string') { - item = { - tag: item, - title: Object.prototype.hasOwnProperty.call(_this2.lang.style, item) ? _this2.lang.style[item] : item - }; - } - - var tag = item.tag; - var title = item.title; - var style = item.style ? ' style="' + item.style + '" ' : ''; - var className = item.className ? ' class="' + item.className + '"' : ''; - return '<' + tag + style + className + '>' + title + ''; - }, - click: _this2.context.createInvokeHandler('editor.formatBlock') - })]).render(); - }); - - var _loop = function _loop(styleIdx, styleLen) { - var item = _this2.options.styleTags[styleIdx]; - - _this2.context.memo('button.style.' + item, function () { - return _this2.button({ - className: 'note-btn-style-' + item, - contents: '
      ' + item.toUpperCase() + '
      ', - tooltip: _this2.lang.style[item], - click: _this2.context.createInvokeHandler('editor.formatBlock') - }).render(); - }); - }; - - for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) { - _loop(styleIdx, styleLen); - } - - this.context.memo('button.bold', function () { - return _this2.button({ - className: 'note-btn-bold', - contents: _this2.ui.icon(_this2.options.icons.bold), - tooltip: _this2.lang.font.bold + _this2.representShortcut('bold'), - click: _this2.context.createInvokeHandlerAndUpdateState('editor.bold') - }).render(); - }); - this.context.memo('button.italic', function () { - return _this2.button({ - className: 'note-btn-italic', - contents: _this2.ui.icon(_this2.options.icons.italic), - tooltip: _this2.lang.font.italic + _this2.representShortcut('italic'), - click: _this2.context.createInvokeHandlerAndUpdateState('editor.italic') - }).render(); - }); - this.context.memo('button.underline', function () { - return _this2.button({ - className: 'note-btn-underline', - contents: _this2.ui.icon(_this2.options.icons.underline), - tooltip: _this2.lang.font.underline + _this2.representShortcut('underline'), - click: _this2.context.createInvokeHandlerAndUpdateState('editor.underline') - }).render(); - }); - this.context.memo('button.clear', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.eraser), - tooltip: _this2.lang.font.clear + _this2.representShortcut('removeFormat'), - click: _this2.context.createInvokeHandler('editor.removeFormat') - }).render(); - }); - this.context.memo('button.strikethrough', function () { - return _this2.button({ - className: 'note-btn-strikethrough', - contents: _this2.ui.icon(_this2.options.icons.strikethrough), - tooltip: _this2.lang.font.strikethrough + _this2.representShortcut('strikethrough'), - click: _this2.context.createInvokeHandlerAndUpdateState('editor.strikethrough') - }).render(); - }); - this.context.memo('button.superscript', function () { - return _this2.button({ - className: 'note-btn-superscript', - contents: _this2.ui.icon(_this2.options.icons.superscript), - tooltip: _this2.lang.font.superscript, - click: _this2.context.createInvokeHandlerAndUpdateState('editor.superscript') - }).render(); - }); - this.context.memo('button.subscript', function () { - return _this2.button({ - className: 'note-btn-subscript', - contents: _this2.ui.icon(_this2.options.icons.subscript), - tooltip: _this2.lang.font.subscript, - click: _this2.context.createInvokeHandlerAndUpdateState('editor.subscript') - }).render(); - }); - this.context.memo('button.fontname', function () { - var styleInfo = _this2.context.invoke('editor.currentStyle'); - - if (_this2.options.addDefaultFonts) { - // Add 'default' fonts into the fontnames array if not exist - external_jQuery_default().each(styleInfo['font-family'].split(','), function (idx, fontname) { - fontname = fontname.trim().replace(/['"]+/g, ''); - - if (_this2.isFontDeservedToAdd(fontname)) { - if (_this2.options.fontNames.indexOf(fontname) === -1) { - _this2.options.fontNames.push(fontname); - } - } - }); - } - - return _this2.ui.buttonGroup([_this2.button({ - className: 'dropdown-toggle', - contents: _this2.ui.dropdownButtonContents('', _this2.options), - tooltip: _this2.lang.font.name, - data: { - toggle: 'dropdown' - } - }), _this2.ui.dropdownCheck({ - className: 'dropdown-fontname', - checkClassName: _this2.options.icons.menuCheck, - items: _this2.options.fontNames.filter(_this2.isFontInstalled.bind(_this2)), - title: _this2.lang.font.name, - template: function template(item) { - return '' + item + ''; - }, - click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontName') - })]).render(); - }); - this.context.memo('button.fontsize', function () { - return _this2.ui.buttonGroup([_this2.button({ - className: 'dropdown-toggle', - contents: _this2.ui.dropdownButtonContents('', _this2.options), - tooltip: _this2.lang.font.size, - data: { - toggle: 'dropdown' - } - }), _this2.ui.dropdownCheck({ - className: 'dropdown-fontsize', - checkClassName: _this2.options.icons.menuCheck, - items: _this2.options.fontSizes, - title: _this2.lang.font.size, - click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSize') - })]).render(); - }); - this.context.memo('button.fontsizeunit', function () { - return _this2.ui.buttonGroup([_this2.button({ - className: 'dropdown-toggle', - contents: _this2.ui.dropdownButtonContents('', _this2.options), - tooltip: _this2.lang.font.sizeunit, - data: { - toggle: 'dropdown' - } - }), _this2.ui.dropdownCheck({ - className: 'dropdown-fontsizeunit', - checkClassName: _this2.options.icons.menuCheck, - items: _this2.options.fontSizeUnits, - title: _this2.lang.font.sizeunit, - click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSizeUnit') - })]).render(); - }); - this.context.memo('button.color', function () { - return _this2.colorPalette('note-color-all', _this2.lang.color.recent, true, true); - }); - this.context.memo('button.forecolor', function () { - return _this2.colorPalette('note-color-fore', _this2.lang.color.foreground, false, true); - }); - this.context.memo('button.backcolor', function () { - return _this2.colorPalette('note-color-back', _this2.lang.color.background, true, false); - }); - this.context.memo('button.ul', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.unorderedlist), - tooltip: _this2.lang.lists.unordered + _this2.representShortcut('insertUnorderedList'), - click: _this2.context.createInvokeHandler('editor.insertUnorderedList') - }).render(); - }); - this.context.memo('button.ol', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.orderedlist), - tooltip: _this2.lang.lists.ordered + _this2.representShortcut('insertOrderedList'), - click: _this2.context.createInvokeHandler('editor.insertOrderedList') - }).render(); - }); - var justifyLeft = this.button({ - contents: this.ui.icon(this.options.icons.alignLeft), - tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'), - click: this.context.createInvokeHandler('editor.justifyLeft') - }); - var justifyCenter = this.button({ - contents: this.ui.icon(this.options.icons.alignCenter), - tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'), - click: this.context.createInvokeHandler('editor.justifyCenter') - }); - var justifyRight = this.button({ - contents: this.ui.icon(this.options.icons.alignRight), - tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'), - click: this.context.createInvokeHandler('editor.justifyRight') - }); - var justifyFull = this.button({ - contents: this.ui.icon(this.options.icons.alignJustify), - tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'), - click: this.context.createInvokeHandler('editor.justifyFull') - }); - var outdent = this.button({ - contents: this.ui.icon(this.options.icons.outdent), - tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'), - click: this.context.createInvokeHandler('editor.outdent') - }); - var indent = this.button({ - contents: this.ui.icon(this.options.icons.indent), - tooltip: this.lang.paragraph.indent + this.representShortcut('indent'), - click: this.context.createInvokeHandler('editor.indent') - }); - this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render')); - this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render')); - this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render')); - this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render')); - this.context.memo('button.outdent', func.invoke(outdent, 'render')); - this.context.memo('button.indent', func.invoke(indent, 'render')); - this.context.memo('button.paragraph', function () { - return _this2.ui.buttonGroup([_this2.button({ - className: 'dropdown-toggle', - contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.alignLeft), _this2.options), - tooltip: _this2.lang.paragraph.paragraph, - data: { - toggle: 'dropdown' - } - }), _this2.ui.dropdown([_this2.ui.buttonGroup({ - className: 'note-align', - children: [justifyLeft, justifyCenter, justifyRight, justifyFull] - }), _this2.ui.buttonGroup({ - className: 'note-list', - children: [outdent, indent] - })])]).render(); - }); - this.context.memo('button.height', function () { - return _this2.ui.buttonGroup([_this2.button({ - className: 'dropdown-toggle', - contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.textHeight), _this2.options), - tooltip: _this2.lang.font.height, - data: { - toggle: 'dropdown' - } - }), _this2.ui.dropdownCheck({ - items: _this2.options.lineHeights, - checkClassName: _this2.options.icons.menuCheck, - className: 'dropdown-line-height', - title: _this2.lang.font.height, - click: _this2.context.createInvokeHandler('editor.lineHeight') - })]).render(); - }); - this.context.memo('button.table', function () { - return _this2.ui.buttonGroup([_this2.button({ - className: 'dropdown-toggle', - contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.table), _this2.options), - tooltip: _this2.lang.table.table, - data: { - toggle: 'dropdown' - } - }), _this2.ui.dropdown({ - title: _this2.lang.table.table, - className: 'note-table', - items: ['
      ', '
      ', '
      ', '
      ', '
      ', '
      1 x 1
      '].join('') - })], { - callback: function callback($node) { - var $catcher = $node.find('.note-dimension-picker-mousecatcher'); - $catcher.css({ - width: _this2.options.insertTableMaxSize.col + 'em', - height: _this2.options.insertTableMaxSize.row + 'em' - }).mouseup(_this2.context.createInvokeHandler('editor.insertTable')).on('mousemove', _this2.tableMoveHandler.bind(_this2)); - } - }).render(); - }); - this.context.memo('button.link', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.link), - tooltip: _this2.lang.link.link + _this2.representShortcut('linkDialog.show'), - click: _this2.context.createInvokeHandler('linkDialog.show') - }).render(); - }); - this.context.memo('button.picture', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.picture), - tooltip: _this2.lang.image.image, - click: _this2.context.createInvokeHandler('imageDialog.show') - }).render(); - }); - this.context.memo('button.video', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.video), - tooltip: _this2.lang.video.video, - click: _this2.context.createInvokeHandler('videoDialog.show') - }).render(); - }); - this.context.memo('button.hr', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.minus), - tooltip: _this2.lang.hr.insert + _this2.representShortcut('insertHorizontalRule'), - click: _this2.context.createInvokeHandler('editor.insertHorizontalRule') - }).render(); - }); - this.context.memo('button.fullscreen', function () { - return _this2.button({ - className: 'btn-fullscreen note-codeview-keep', - contents: _this2.ui.icon(_this2.options.icons.arrowsAlt), - tooltip: _this2.lang.options.fullscreen, - click: _this2.context.createInvokeHandler('fullscreen.toggle') - }).render(); - }); - this.context.memo('button.codeview', function () { - return _this2.button({ - className: 'btn-codeview note-codeview-keep', - contents: _this2.ui.icon(_this2.options.icons.code), - tooltip: _this2.lang.options.codeview, - click: _this2.context.createInvokeHandler('codeview.toggle') - }).render(); - }); - this.context.memo('button.redo', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.redo), - tooltip: _this2.lang.history.redo + _this2.representShortcut('redo'), - click: _this2.context.createInvokeHandler('editor.redo') - }).render(); - }); - this.context.memo('button.undo', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.undo), - tooltip: _this2.lang.history.undo + _this2.representShortcut('undo'), - click: _this2.context.createInvokeHandler('editor.undo') - }).render(); - }); - this.context.memo('button.help', function () { - return _this2.button({ - contents: _this2.ui.icon(_this2.options.icons.question), - tooltip: _this2.lang.options.help, - click: _this2.context.createInvokeHandler('helpDialog.show') - }).render(); - }); - } - /** - * image: [ - * ['imageResize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']], - * ['float', ['floatLeft', 'floatRight', 'floatNone']], - * ['remove', ['removeMedia']], - * ], - */ - - }, { - key: "addImagePopoverButtons", - value: function addImagePopoverButtons() { - var _this3 = this; - - // Image Size Buttons - this.context.memo('button.resizeFull', function () { - return _this3.button({ - contents: '100%', - tooltip: _this3.lang.image.resizeFull, - click: _this3.context.createInvokeHandler('editor.resize', '1') - }).render(); - }); - this.context.memo('button.resizeHalf', function () { - return _this3.button({ - contents: '50%', - tooltip: _this3.lang.image.resizeHalf, - click: _this3.context.createInvokeHandler('editor.resize', '0.5') - }).render(); - }); - this.context.memo('button.resizeQuarter', function () { - return _this3.button({ - contents: '25%', - tooltip: _this3.lang.image.resizeQuarter, - click: _this3.context.createInvokeHandler('editor.resize', '0.25') - }).render(); - }); - this.context.memo('button.resizeNone', function () { - return _this3.button({ - contents: _this3.ui.icon(_this3.options.icons.rollback), - tooltip: _this3.lang.image.resizeNone, - click: _this3.context.createInvokeHandler('editor.resize', '0') - }).render(); - }); // Float Buttons - - this.context.memo('button.floatLeft', function () { - return _this3.button({ - contents: _this3.ui.icon(_this3.options.icons.floatLeft), - tooltip: _this3.lang.image.floatLeft, - click: _this3.context.createInvokeHandler('editor.floatMe', 'left') - }).render(); - }); - this.context.memo('button.floatRight', function () { - return _this3.button({ - contents: _this3.ui.icon(_this3.options.icons.floatRight), - tooltip: _this3.lang.image.floatRight, - click: _this3.context.createInvokeHandler('editor.floatMe', 'right') - }).render(); - }); - this.context.memo('button.floatNone', function () { - return _this3.button({ - contents: _this3.ui.icon(_this3.options.icons.rollback), - tooltip: _this3.lang.image.floatNone, - click: _this3.context.createInvokeHandler('editor.floatMe', 'none') - }).render(); - }); // Remove Buttons - - this.context.memo('button.removeMedia', function () { - return _this3.button({ - contents: _this3.ui.icon(_this3.options.icons.trash), - tooltip: _this3.lang.image.remove, - click: _this3.context.createInvokeHandler('editor.removeMedia') - }).render(); - }); - } - }, { - key: "addLinkPopoverButtons", - value: function addLinkPopoverButtons() { - var _this4 = this; - - this.context.memo('button.linkDialogShow', function () { - return _this4.button({ - contents: _this4.ui.icon(_this4.options.icons.link), - tooltip: _this4.lang.link.edit, - click: _this4.context.createInvokeHandler('linkDialog.show') - }).render(); - }); - this.context.memo('button.unlink', function () { - return _this4.button({ - contents: _this4.ui.icon(_this4.options.icons.unlink), - tooltip: _this4.lang.link.unlink, - click: _this4.context.createInvokeHandler('editor.unlink') - }).render(); - }); - } - /** - * table : [ - * ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']], - * ['delete', ['deleteRow', 'deleteCol', 'deleteTable']] - * ], - */ - - }, { - key: "addTablePopoverButtons", - value: function addTablePopoverButtons() { - var _this5 = this; - - this.context.memo('button.addRowUp', function () { - return _this5.button({ - className: 'btn-md', - contents: _this5.ui.icon(_this5.options.icons.rowAbove), - tooltip: _this5.lang.table.addRowAbove, - click: _this5.context.createInvokeHandler('editor.addRow', 'top') - }).render(); - }); - this.context.memo('button.addRowDown', function () { - return _this5.button({ - className: 'btn-md', - contents: _this5.ui.icon(_this5.options.icons.rowBelow), - tooltip: _this5.lang.table.addRowBelow, - click: _this5.context.createInvokeHandler('editor.addRow', 'bottom') - }).render(); - }); - this.context.memo('button.addColLeft', function () { - return _this5.button({ - className: 'btn-md', - contents: _this5.ui.icon(_this5.options.icons.colBefore), - tooltip: _this5.lang.table.addColLeft, - click: _this5.context.createInvokeHandler('editor.addCol', 'left') - }).render(); - }); - this.context.memo('button.addColRight', function () { - return _this5.button({ - className: 'btn-md', - contents: _this5.ui.icon(_this5.options.icons.colAfter), - tooltip: _this5.lang.table.addColRight, - click: _this5.context.createInvokeHandler('editor.addCol', 'right') - }).render(); - }); - this.context.memo('button.deleteRow', function () { - return _this5.button({ - className: 'btn-md', - contents: _this5.ui.icon(_this5.options.icons.rowRemove), - tooltip: _this5.lang.table.delRow, - click: _this5.context.createInvokeHandler('editor.deleteRow') - }).render(); - }); - this.context.memo('button.deleteCol', function () { - return _this5.button({ - className: 'btn-md', - contents: _this5.ui.icon(_this5.options.icons.colRemove), - tooltip: _this5.lang.table.delCol, - click: _this5.context.createInvokeHandler('editor.deleteCol') - }).render(); - }); - this.context.memo('button.deleteTable', function () { - return _this5.button({ - className: 'btn-md', - contents: _this5.ui.icon(_this5.options.icons.trash), - tooltip: _this5.lang.table.delTable, - click: _this5.context.createInvokeHandler('editor.deleteTable') - }).render(); - }); - } - }, { - key: "build", - value: function build($container, groups) { - for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) { - var group = groups[groupIdx]; - var groupName = Array.isArray(group) ? group[0] : group; - var buttons = Array.isArray(group) ? group.length === 1 ? [group[0]] : group[1] : [group]; - var $group = this.ui.buttonGroup({ - className: 'note-' + groupName - }).render(); - - for (var idx = 0, len = buttons.length; idx < len; idx++) { - var btn = this.context.memo('button.' + buttons[idx]); - - if (btn) { - $group.append(typeof btn === 'function' ? btn(this.context) : btn); - } - } - - $group.appendTo($container); - } - } - /** - * @param {jQuery} [$container] - */ - - }, { - key: "updateCurrentStyle", - value: function updateCurrentStyle($container) { - var $cont = $container || this.$toolbar; - var styleInfo = this.context.invoke('editor.currentStyle'); - this.updateBtnStates($cont, { - '.note-btn-bold': function noteBtnBold() { - return styleInfo['font-bold'] === 'bold'; - }, - '.note-btn-italic': function noteBtnItalic() { - return styleInfo['font-italic'] === 'italic'; - }, - '.note-btn-underline': function noteBtnUnderline() { - return styleInfo['font-underline'] === 'underline'; - }, - '.note-btn-subscript': function noteBtnSubscript() { - return styleInfo['font-subscript'] === 'subscript'; - }, - '.note-btn-superscript': function noteBtnSuperscript() { - return styleInfo['font-superscript'] === 'superscript'; - }, - '.note-btn-strikethrough': function noteBtnStrikethrough() { - return styleInfo['font-strikethrough'] === 'strikethrough'; - } - }); - - if (styleInfo['font-family']) { - var fontNames = styleInfo['font-family'].split(',').map(function (name) { - return name.replace(/[\'\"]/g, '').replace(/\s+$/, '').replace(/^\s+/, ''); - }); - var fontName = lists.find(fontNames, this.isFontInstalled.bind(this)); - $cont.find('.dropdown-fontname a').each(function (idx, item) { - var $item = external_jQuery_default()(item); // always compare string to avoid creating another func. - - var isChecked = $item.data('value') + '' === fontName + ''; - $item.toggleClass('checked', isChecked); - }); - $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName); - } - - if (styleInfo['font-size']) { - var fontSize = styleInfo['font-size']; - $cont.find('.dropdown-fontsize a').each(function (idx, item) { - var $item = external_jQuery_default()(item); // always compare with string to avoid creating another func. - - var isChecked = $item.data('value') + '' === fontSize + ''; - $item.toggleClass('checked', isChecked); - }); - $cont.find('.note-current-fontsize').text(fontSize); - var fontSizeUnit = styleInfo['font-size-unit']; - $cont.find('.dropdown-fontsizeunit a').each(function (idx, item) { - var $item = external_jQuery_default()(item); - var isChecked = $item.data('value') + '' === fontSizeUnit + ''; - $item.toggleClass('checked', isChecked); - }); - $cont.find('.note-current-fontsizeunit').text(fontSizeUnit); - } - - if (styleInfo['line-height']) { - var lineHeight = styleInfo['line-height']; - $cont.find('.dropdown-line-height a').each(function (idx, item) { - var $item = external_jQuery_default()(item); // always compare with string to avoid creating another func. - - var isChecked = external_jQuery_default()(item).data('value') + '' === lineHeight + ''; - $item.toggleClass('checked', isChecked); - }); - $cont.find('.note-current-line-height').text(lineHeight); - } - } - }, { - key: "updateBtnStates", - value: function updateBtnStates($container, infos) { - var _this6 = this; - - external_jQuery_default().each(infos, function (selector, pred) { - _this6.ui.toggleBtnActive($container.find(selector), pred()); - }); - } - }, { - key: "tableMoveHandler", - value: function tableMoveHandler(event) { - var PX_PER_EM = 18; - var $picker = external_jQuery_default()(event.target.parentNode); // target is mousecatcher - - var $dimensionDisplay = $picker.next(); - var $catcher = $picker.find('.note-dimension-picker-mousecatcher'); - var $highlighted = $picker.find('.note-dimension-picker-highlighted'); - var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted'); - var posOffset; // HTML5 with jQuery - e.offsetX is undefined in Firefox - - if (event.offsetX === undefined) { - var posCatcher = external_jQuery_default()(event.target).offset(); - posOffset = { - x: event.pageX - posCatcher.left, - y: event.pageY - posCatcher.top - }; - } else { - posOffset = { - x: event.offsetX, - y: event.offsetY - }; - } - - var dim = { - c: Math.ceil(posOffset.x / PX_PER_EM) || 1, - r: Math.ceil(posOffset.y / PX_PER_EM) || 1 - }; - $highlighted.css({ - width: dim.c + 'em', - height: dim.r + 'em' - }); - $catcher.data('value', dim.c + 'x' + dim.r); - - if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) { - $unhighlighted.css({ - width: dim.c + 1 + 'em' - }); - } - - if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) { - $unhighlighted.css({ - height: dim.r + 1 + 'em' - }); - } - - $dimensionDisplay.html(dim.c + ' x ' + dim.r); - } - }]); - - return Buttons; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/Toolbar.js -function Toolbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function Toolbar_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); } } - -function Toolbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Toolbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Toolbar_defineProperties(Constructor, staticProps); return Constructor; } - - - -var Toolbar = /*#__PURE__*/function () { - function Toolbar(context) { - Toolbar_classCallCheck(this, Toolbar); - - this.context = context; - this.$window = external_jQuery_default()(window); - this.$document = external_jQuery_default()(document); - this.ui = (external_jQuery_default()).summernote.ui; - this.$note = context.layoutInfo.note; - this.$editor = context.layoutInfo.editor; - this.$toolbar = context.layoutInfo.toolbar; - this.$editable = context.layoutInfo.editable; - this.$statusbar = context.layoutInfo.statusbar; - this.options = context.options; - this.isFollowing = false; - this.followScroll = this.followScroll.bind(this); - } - - Toolbar_createClass(Toolbar, [{ - key: "shouldInitialize", - value: function shouldInitialize() { - return !this.options.airMode; - } - }, { - key: "initialize", - value: function initialize() { - var _this = this; - - this.options.toolbar = this.options.toolbar || []; - - if (!this.options.toolbar.length) { - this.$toolbar.hide(); - } else { - this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar); - } - - if (this.options.toolbarContainer) { - this.$toolbar.appendTo(this.options.toolbarContainer); - } - - this.changeContainer(false); - this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () { - _this.context.invoke('buttons.updateCurrentStyle'); - }); - this.context.invoke('buttons.updateCurrentStyle'); - - if (this.options.followingToolbar) { - this.$window.on('scroll resize', this.followScroll); - } - } - }, { - key: "destroy", - value: function destroy() { - this.$toolbar.children().remove(); - - if (this.options.followingToolbar) { - this.$window.off('scroll resize', this.followScroll); - } - } - }, { - key: "followScroll", - value: function followScroll() { - if (this.$editor.hasClass('fullscreen')) { - return false; - } - - var editorHeight = this.$editor.outerHeight(); - var editorWidth = this.$editor.width(); - var toolbarHeight = this.$toolbar.height(); - var statusbarHeight = this.$statusbar.height(); // check if the web app is currently using another static bar - - var otherBarHeight = 0; - - if (this.options.otherStaticBar) { - otherBarHeight = external_jQuery_default()(this.options.otherStaticBar).outerHeight(); - } - - var currentOffset = this.$document.scrollTop(); - var editorOffsetTop = this.$editor.offset().top; - var editorOffsetBottom = editorOffsetTop + editorHeight; - var activateOffset = editorOffsetTop - otherBarHeight; - var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight - statusbarHeight; - - if (!this.isFollowing && currentOffset > activateOffset && currentOffset < deactivateOffsetBottom - toolbarHeight) { - this.isFollowing = true; - this.$editable.css({ - marginTop: this.$toolbar.outerHeight() - }); - this.$toolbar.css({ - position: 'fixed', - top: otherBarHeight, - width: editorWidth, - zIndex: 1000 - }); - } else if (this.isFollowing && (currentOffset < activateOffset || currentOffset > deactivateOffsetBottom)) { - this.isFollowing = false; - this.$toolbar.css({ - position: 'relative', - top: 0, - width: '100%', - zIndex: 'auto' - }); - this.$editable.css({ - marginTop: '' - }); - } - } - }, { - key: "changeContainer", - value: function changeContainer(isFullscreen) { - if (isFullscreen) { - this.$toolbar.prependTo(this.$editor); - } else { - if (this.options.toolbarContainer) { - this.$toolbar.appendTo(this.options.toolbarContainer); - } - } - - if (this.options.followingToolbar) { - this.followScroll(); - } - } - }, { - key: "updateFullscreen", - value: function updateFullscreen(isFullscreen) { - this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen); - this.changeContainer(isFullscreen); - } - }, { - key: "updateCodeview", - value: function updateCodeview(isCodeview) { - this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview); - - if (isCodeview) { - this.deactivate(); - } else { - this.activate(); - } - } - }, { - key: "activate", - value: function activate(isIncludeCodeview) { - var $btn = this.$toolbar.find('button'); - - if (!isIncludeCodeview) { - $btn = $btn.not('.note-codeview-keep'); - } - - this.ui.toggleBtn($btn, true); - } - }, { - key: "deactivate", - value: function deactivate(isIncludeCodeview) { - var $btn = this.$toolbar.find('button'); - - if (!isIncludeCodeview) { - $btn = $btn.not('.note-codeview-keep'); - } - - this.ui.toggleBtn($btn, false); - } - }]); - - return Toolbar; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/LinkDialog.js -function LinkDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function LinkDialog_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); } } - -function LinkDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkDialog_defineProperties(Constructor, staticProps); return Constructor; } - - - - - - -var LinkDialog = /*#__PURE__*/function () { - function LinkDialog(context) { - LinkDialog_classCallCheck(this, LinkDialog); - - this.context = context; - this.ui = (external_jQuery_default()).summernote.ui; - this.$body = external_jQuery_default()(document.body); - this.$editor = context.layoutInfo.editor; - this.options = context.options; - this.lang = this.options.langInfo; - context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']); - } - - LinkDialog_createClass(LinkDialog, [{ - key: "initialize", - value: function initialize() { - var $container = this.options.dialogsInBody ? this.$body : this.options.container; - var body = ['
      ', ""), ""), '
      ', '
      ', ""), ""), '
      ', !this.options.disableLinkTarget ? external_jQuery_default()('
      ').append(this.ui.checkbox({ - className: 'sn-checkbox-open-in-new-window', - text: this.lang.link.openInNewWindow, - checked: true - }).render()).html() : '', external_jQuery_default()('
      ').append(this.ui.checkbox({ - className: 'sn-checkbox-use-protocol', - text: this.lang.link.useProtocol, - checked: true - }).render()).html()].join(''); - var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn'; - var footer = ""); - this.$dialog = this.ui.dialog({ - className: 'link-dialog', - title: this.lang.link.insert, - fade: this.options.dialogsFade, - body: body, - footer: footer - }).render().appendTo($container); - } - }, { - key: "destroy", - value: function destroy() { - this.ui.hideDialog(this.$dialog); - this.$dialog.remove(); - } - }, { - key: "bindEnterKey", - value: function bindEnterKey($input, $btn) { - $input.on('keypress', function (event) { - if (event.keyCode === key.code.ENTER) { - event.preventDefault(); - $btn.trigger('click'); - } - }); - } - /** - * toggle update button - */ - - }, { - key: "toggleLinkBtn", - value: function toggleLinkBtn($linkBtn, $linkText, $linkUrl) { - this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val()); - } - /** - * Show link dialog and set event handlers on dialog controls. - * - * @param {Object} linkInfo - * @return {Promise} - */ - - }, { - key: "showLinkDialog", - value: function showLinkDialog(linkInfo) { - var _this = this; - - return external_jQuery_default().Deferred(function (deferred) { - var $linkText = _this.$dialog.find('.note-link-text'); - - var $linkUrl = _this.$dialog.find('.note-link-url'); - - var $linkBtn = _this.$dialog.find('.note-link-btn'); - - var $openInNewWindow = _this.$dialog.find('.sn-checkbox-open-in-new-window input[type=checkbox]'); - - var $useProtocol = _this.$dialog.find('.sn-checkbox-use-protocol input[type=checkbox]'); - - _this.ui.onDialogShown(_this.$dialog, function () { - _this.context.triggerEvent('dialog.shown'); // If no url was given and given text is valid URL then copy that into URL Field - - - if (!linkInfo.url && func.isValidUrl(linkInfo.text)) { - linkInfo.url = linkInfo.text; - } - - $linkText.on('input paste propertychange', function () { - // If linktext was modified by input events, - // cloning text from linkUrl will be stopped. - linkInfo.text = $linkText.val(); - - _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl); - }).val(linkInfo.text); - $linkUrl.on('input paste propertychange', function () { - // Display same text on `Text to display` as default - // when linktext has no text - if (!linkInfo.text) { - $linkText.val($linkUrl.val()); - } - - _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl); - }).val(linkInfo.url); - - if (!env.isSupportTouch) { - $linkUrl.trigger('focus'); - } - - _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl); - - _this.bindEnterKey($linkUrl, $linkBtn); - - _this.bindEnterKey($linkText, $linkBtn); - - var isNewWindowChecked = linkInfo.isNewWindow !== undefined ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank; - $openInNewWindow.prop('checked', isNewWindowChecked); - var useProtocolChecked = linkInfo.url ? false : _this.context.options.useProtocol; - $useProtocol.prop('checked', useProtocolChecked); - $linkBtn.one('click', function (event) { - event.preventDefault(); - deferred.resolve({ - range: linkInfo.range, - url: $linkUrl.val(), - text: $linkText.val(), - isNewWindow: $openInNewWindow.is(':checked'), - checkProtocol: $useProtocol.is(':checked') - }); - - _this.ui.hideDialog(_this.$dialog); - }); - }); - - _this.ui.onDialogHidden(_this.$dialog, function () { - // detach events - $linkText.off(); - $linkUrl.off(); - $linkBtn.off(); - - if (deferred.state() === 'pending') { - deferred.reject(); - } - }); - - _this.ui.showDialog(_this.$dialog); - }).promise(); - } - /** - * @param {Object} layoutInfo - */ - - }, { - key: "show", - value: function show() { - var _this2 = this; - - var linkInfo = this.context.invoke('editor.getLinkInfo'); - this.context.invoke('editor.saveRange'); - this.showLinkDialog(linkInfo).then(function (linkInfo) { - _this2.context.invoke('editor.restoreRange'); - - _this2.context.invoke('editor.createLink', linkInfo); - }).fail(function () { - _this2.context.invoke('editor.restoreRange'); - }); - } - }]); - - return LinkDialog; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/LinkPopover.js -function LinkPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function LinkPopover_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); } } - -function LinkPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkPopover_defineProperties(Constructor, staticProps); return Constructor; } - - - - - -var LinkPopover = /*#__PURE__*/function () { - function LinkPopover(context) { - var _this = this; - - LinkPopover_classCallCheck(this, LinkPopover); - - this.context = context; - this.ui = (external_jQuery_default()).summernote.ui; - this.options = context.options; - this.events = { - 'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteChangeSummernoteScroll() { - _this.update(); - }, - 'summernote.disable summernote.dialog.shown': function summernoteDisableSummernoteDialogShown() { - _this.hide(); - }, - 'summernote.blur': function summernoteBlur(we, e) { - if (e.originalEvent && e.originalEvent.relatedTarget) { - if (!_this.$popover[0].contains(e.originalEvent.relatedTarget)) { - _this.hide(); - } - } else { - _this.hide(); - } - } - }; - } - - LinkPopover_createClass(LinkPopover, [{ - key: "shouldInitialize", - value: function shouldInitialize() { - return !lists.isEmpty(this.options.popover.link); - } - }, { - key: "initialize", - value: function initialize() { - this.$popover = this.ui.popover({ - className: 'note-link-popover', - callback: function callback($node) { - var $content = $node.find('.popover-content,.note-popover-content'); - $content.prepend(' '); - } - }).render().appendTo(this.options.container); - var $content = this.$popover.find('.popover-content,.note-popover-content'); - this.context.invoke('buttons.build', $content, this.options.popover.link); - this.$popover.on('mousedown', function (e) { - e.preventDefault(); - }); - } - }, { - key: "destroy", - value: function destroy() { - this.$popover.remove(); - } - }, { - key: "update", - value: function update() { - // Prevent focusing on editable when invoke('code') is executed - if (!this.context.invoke('editor.hasFocus')) { - this.hide(); - return; - } - - var rng = this.context.invoke('editor.getLastRange'); - - if (rng.isCollapsed() && rng.isOnAnchor()) { - var anchor = dom.ancestor(rng.sc, dom.isAnchor); - var href = external_jQuery_default()(anchor).attr('href'); - this.$popover.find('a').attr('href', href).text(href); - var pos = dom.posFromPlaceholder(anchor); - var containerOffset = external_jQuery_default()(this.options.container).offset(); - pos.top -= containerOffset.top; - pos.left -= containerOffset.left; - this.$popover.css({ - display: 'block', - left: pos.left, - top: pos.top - }); - } else { - this.hide(); - } - } - }, { - key: "hide", - value: function hide() { - this.$popover.hide(); - } - }]); - - return LinkPopover; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/ImageDialog.js -function ImageDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function ImageDialog_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); } } - -function ImageDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImageDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImageDialog_defineProperties(Constructor, staticProps); return Constructor; } - - - - - -var ImageDialog = /*#__PURE__*/function () { - function ImageDialog(context) { - ImageDialog_classCallCheck(this, ImageDialog); - - this.context = context; - this.ui = (external_jQuery_default()).summernote.ui; - this.$body = external_jQuery_default()(document.body); - this.$editor = context.layoutInfo.editor; - this.options = context.options; - this.lang = this.options.langInfo; - } - - ImageDialog_createClass(ImageDialog, [{ - key: "initialize", - value: function initialize() { - var imageLimitation = ''; - - if (this.options.maximumImageFileSize) { - var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024)); - var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 + ' ' + ' KMGTP'[unit] + 'B'; - imageLimitation = "".concat(this.lang.image.maximumFileSize + ' : ' + readableSize, ""); - } - - var $container = this.options.dialogsInBody ? this.$body : this.options.container; - var body = ['
      ', '', '', imageLimitation, '
      ', '
      ', '', '', '
      '].join(''); - var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn'; - var footer = ""); - this.$dialog = this.ui.dialog({ - title: this.lang.image.insert, - fade: this.options.dialogsFade, - body: body, - footer: footer - }).render().appendTo($container); - } - }, { - key: "destroy", - value: function destroy() { - this.ui.hideDialog(this.$dialog); - this.$dialog.remove(); - } - }, { - key: "bindEnterKey", - value: function bindEnterKey($input, $btn) { - $input.on('keypress', function (event) { - if (event.keyCode === key.code.ENTER) { - event.preventDefault(); - $btn.trigger('click'); - } - }); - } - }, { - key: "show", - value: function show() { - var _this = this; - - this.context.invoke('editor.saveRange'); - this.showImageDialog().then(function (data) { - // [workaround] hide dialog before restore range for IE range focus - _this.ui.hideDialog(_this.$dialog); - - _this.context.invoke('editor.restoreRange'); - - if (typeof data === 'string') { - // image url - // If onImageLinkInsert set, - if (_this.options.callbacks.onImageLinkInsert) { - _this.context.triggerEvent('image.link.insert', data); - } else { - _this.context.invoke('editor.insertImage', data); - } - } else { - // array of files - _this.context.invoke('editor.insertImagesOrCallback', data); - } - }).fail(function () { - _this.context.invoke('editor.restoreRange'); - }); - } - /** - * show image dialog - * - * @param {jQuery} $dialog - * @return {Promise} - */ - - }, { - key: "showImageDialog", - value: function showImageDialog() { - var _this2 = this; - - return external_jQuery_default().Deferred(function (deferred) { - var $imageInput = _this2.$dialog.find('.note-image-input'); - - var $imageUrl = _this2.$dialog.find('.note-image-url'); - - var $imageBtn = _this2.$dialog.find('.note-image-btn'); - - _this2.ui.onDialogShown(_this2.$dialog, function () { - _this2.context.triggerEvent('dialog.shown'); // Cloning imageInput to clear element. - - - $imageInput.replaceWith($imageInput.clone().on('change', function (event) { - deferred.resolve(event.target.files || event.target.value); - }).val('')); - $imageUrl.on('input paste propertychange', function () { - _this2.ui.toggleBtn($imageBtn, $imageUrl.val()); - }).val(''); - - if (!env.isSupportTouch) { - $imageUrl.trigger('focus'); - } - - $imageBtn.click(function (event) { - event.preventDefault(); - deferred.resolve($imageUrl.val()); - }); - - _this2.bindEnterKey($imageUrl, $imageBtn); - }); - - _this2.ui.onDialogHidden(_this2.$dialog, function () { - $imageInput.off(); - $imageUrl.off(); - $imageBtn.off(); - - if (deferred.state() === 'pending') { - deferred.reject(); - } - }); - - _this2.ui.showDialog(_this2.$dialog); - }); - } - }]); - - return ImageDialog; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/ImagePopover.js -function ImagePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function ImagePopover_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); } } - -function ImagePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImagePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImagePopover_defineProperties(Constructor, staticProps); return Constructor; } - - - - -/** - * Image popover module - * mouse events that show/hide popover will be handled by Handle.js. - * Handle.js will receive the events and invoke 'imagePopover.update'. - */ - -var ImagePopover = /*#__PURE__*/function () { - function ImagePopover(context) { - var _this = this; - - ImagePopover_classCallCheck(this, ImagePopover); - - this.context = context; - this.ui = (external_jQuery_default()).summernote.ui; - this.editable = context.layoutInfo.editable[0]; - this.options = context.options; - this.events = { - 'summernote.disable summernote.dialog.shown': function summernoteDisableSummernoteDialogShown() { - _this.hide(); - }, - 'summernote.blur': function summernoteBlur(we, e) { - if (e.originalEvent && e.originalEvent.relatedTarget) { - if (!_this.$popover[0].contains(e.originalEvent.relatedTarget)) { - _this.hide(); - } - } else { - _this.hide(); - } - } - }; - } - - ImagePopover_createClass(ImagePopover, [{ - key: "shouldInitialize", - value: function shouldInitialize() { - return !lists.isEmpty(this.options.popover.image); - } - }, { - key: "initialize", - value: function initialize() { - this.$popover = this.ui.popover({ - className: 'note-image-popover' - }).render().appendTo(this.options.container); - var $content = this.$popover.find('.popover-content,.note-popover-content'); - this.context.invoke('buttons.build', $content, this.options.popover.image); - this.$popover.on('mousedown', function (e) { - e.preventDefault(); - }); - } - }, { - key: "destroy", - value: function destroy() { - this.$popover.remove(); - } - }, { - key: "update", - value: function update(target, event) { - if (dom.isImg(target)) { - var position = external_jQuery_default()(target).offset(); - var containerOffset = external_jQuery_default()(this.options.container).offset(); - var pos = {}; - - if (this.options.popatmouse) { - pos.left = event.pageX - 20; - pos.top = event.pageY; - } else { - pos = position; - } - - pos.top -= containerOffset.top; - pos.left -= containerOffset.left; - this.$popover.css({ - display: 'block', - left: pos.left, - top: pos.top - }); - } else { - this.hide(); - } - } - }, { - key: "hide", - value: function hide() { - this.$popover.hide(); - } - }]); - - return ImagePopover; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/TablePopover.js -function TablePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function TablePopover_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); } } - -function TablePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) TablePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) TablePopover_defineProperties(Constructor, staticProps); return Constructor; } - - - - - - -var TablePopover = /*#__PURE__*/function () { - function TablePopover(context) { - var _this = this; - - TablePopover_classCallCheck(this, TablePopover); - - this.context = context; - this.ui = (external_jQuery_default()).summernote.ui; - this.options = context.options; - this.events = { - 'summernote.mousedown': function summernoteMousedown(we, e) { - _this.update(e.target); - }, - 'summernote.keyup summernote.scroll summernote.change': function summernoteKeyupSummernoteScrollSummernoteChange() { - _this.update(); - }, - 'summernote.disable summernote.dialog.shown': function summernoteDisableSummernoteDialogShown() { - _this.hide(); - }, - 'summernote.blur': function summernoteBlur(we, e) { - if (e.originalEvent && e.originalEvent.relatedTarget) { - if (!_this.$popover[0].contains(e.originalEvent.relatedTarget)) { - _this.hide(); - } - } else { - _this.hide(); - } - } - }; - } - - TablePopover_createClass(TablePopover, [{ - key: "shouldInitialize", - value: function shouldInitialize() { - return !lists.isEmpty(this.options.popover.table); - } - }, { - key: "initialize", - value: function initialize() { - this.$popover = this.ui.popover({ - className: 'note-table-popover' - }).render().appendTo(this.options.container); - var $content = this.$popover.find('.popover-content,.note-popover-content'); - this.context.invoke('buttons.build', $content, this.options.popover.table); // [workaround] Disable Firefox's default table editor - - if (env.isFF) { - document.execCommand('enableInlineTableEditing', false, false); - } - - this.$popover.on('mousedown', function (e) { - e.preventDefault(); - }); - } - }, { - key: "destroy", - value: function destroy() { - this.$popover.remove(); - } - }, { - key: "update", - value: function update(target) { - if (this.context.isDisabled()) { - return false; - } - - var isCell = dom.isCell(target) || dom.isCell(target === null || target === void 0 ? void 0 : target.parentElement); - - if (isCell) { - var pos = dom.posFromPlaceholder(target); - var containerOffset = external_jQuery_default()(this.options.container).offset(); - pos.top -= containerOffset.top; - pos.left -= containerOffset.left; - this.$popover.css({ - display: 'block', - left: pos.left, - top: pos.top - }); - } else { - this.hide(); - } - - return isCell; - } - }, { - key: "hide", - value: function hide() { - this.$popover.hide(); - } - }]); - - return TablePopover; -}(); - - -;// CONCATENATED MODULE: ./src/js/module/VideoDialog.js -function VideoDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function VideoDialog_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); } } - -function VideoDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) VideoDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) VideoDialog_defineProperties(Constructor, staticProps); return Constructor; } - - - - - -var VideoDialog = /*#__PURE__*/function () { - function VideoDialog(context) { - VideoDialog_classCallCheck(this, VideoDialog); - - this.context = context; - this.ui = (external_jQuery_default()).summernote.ui; - this.$body = external_jQuery_default()(document.body); - this.$editor = context.layoutInfo.editor; - this.options = context.options; - this.lang = this.options.langInfo; - } - - VideoDialog_createClass(VideoDialog, [{ - key: "initialize", - value: function initialize() { - var $container = this.options.dialogsInBody ? this.$body : this.options.container; - var body = ['
      ', ""), ""), '
      '].join(''); - var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn'; - var footer = ""); - this.$dialog = this.ui.dialog({ - title: this.lang.video.insert, - fade: this.options.dialogsFade, - body: body, - footer: footer - }).render().appendTo($container); - } - }, { - key: "destroy", - value: function destroy() { - this.ui.hideDialog(this.$dialog); - this.$dialog.remove(); - } - }, { - key: "bindEnterKey", - value: function bindEnterKey($input, $btn) { - $input.on('keypress', function (event) { - if (event.keyCode === key.code.ENTER) { - event.preventDefault(); - $btn.trigger('click'); - } - }); - } - }, { - key: "createVideoNode", - value: function createVideoNode(url) { - // video url patterns(youtube, instagram, vimeo, dailymotion, youku, peertube, mp4, ogg, webm) - var ytRegExp = /\/\/(?:(?:www|m)\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))([\w|-]{11})(?:(?:[\?&]t=)(\S+))?$/; - var ytRegExpForStart = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/; - var ytMatch = url.match(ytRegExp); - var gdRegExp = /(?:\.|\/\/)drive\.google\.com\/file\/d\/(.[a-zA-Z0-9_-]*)\/view/; - var gdMatch = url.match(gdRegExp); - var igRegExp = /(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/; - var igMatch = url.match(igRegExp); - var vRegExp = /\/\/vine\.co\/v\/([a-zA-Z0-9]+)/; - var vMatch = url.match(vRegExp); - var vimRegExp = /\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/; - var vimMatch = url.match(vimRegExp); - var dmRegExp = /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/; - var dmMatch = url.match(dmRegExp); - var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/; - var youkuMatch = url.match(youkuRegExp); - var peerTubeRegExp = /\/\/(.*)\/videos\/watch\/([^?]*)(?:\?(?:start=(\w*))?(?:&stop=(\w*))?(?:&loop=([10]))?(?:&autoplay=([10]))?(?:&muted=([10]))?)?/; - var peerTubeMatch = url.match(peerTubeRegExp); - var qqRegExp = /\/\/v\.qq\.com.*?vid=(.+)/; - var qqMatch = url.match(qqRegExp); - var qqRegExp2 = /\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/; - var qqMatch2 = url.match(qqRegExp2); - var mp4RegExp = /^.+.(mp4|m4v)$/; - var mp4Match = url.match(mp4RegExp); - var oggRegExp = /^.+.(ogg|ogv)$/; - var oggMatch = url.match(oggRegExp); - var webmRegExp = /^.+.(webm)$/; - var webmMatch = url.match(webmRegExp); - var fbRegExp = /(?:www\.|\/\/)facebook\.com\/([^\/]+)\/videos\/([0-9]+)/; - var fbMatch = url.match(fbRegExp); - var $video; - - if (ytMatch && ytMatch[1].length === 11) { - var youtubeId = ytMatch[1]; - var start = 0; - - if (typeof ytMatch[2] !== 'undefined') { - var ytMatchForStart = ytMatch[2].match(ytRegExpForStart); - - if (ytMatchForStart) { - for (var n = [3600, 60, 1], i = 0, r = n.length; i < r; i++) { - start += typeof ytMatchForStart[i + 1] !== 'undefined' ? n[i] * parseInt(ytMatchForStart[i + 1], 10) : 0; - } - } - } - - $video = external_jQuery_default()('