From c52175c3fa784aa220d186b152312eafde710892 Mon Sep 17 00:00:00 2001 From: selul Date: Tue, 26 Jun 2018 12:30:50 +0000 Subject: [PATCH] [AUTO][skip ci] Updating changelog for v3.2.11 --- CHANGELOG.md | 7 + dist/CHANGELOG.md | 213 ++ dist/LICENSE.txt | 339 +++ dist/css/feedzy-rss-feeds.css | 523 +++++ dist/css/form.css | 725 ++++++ dist/css/metabox-settings.css | 2025 +++++++++++++++++ dist/feedzy-rss-feed.php | 156 ++ dist/form/form.php | 135 ++ dist/img/features-affiliate-ready.jpg | Bin 0 -> 20904 bytes dist/img/features-caching.jpg | Bin 0 -> 29180 bytes dist/img/features-feed-to-post.jpg | Bin 0 -> 21010 bytes dist/img/features-templates.jpg | Bin 0 -> 19809 bytes dist/img/features-widgets-support.jpg | Bin 0 -> 23853 bytes dist/img/feedzy-default-template.jpg | Bin 0 -> 1496 bytes dist/img/feedzy-default.jpg | Bin 0 -> 6849 bytes dist/img/feedzy-style1-template.jpg | Bin 0 -> 1996 bytes dist/img/feedzy-style2-template.jpg | Bin 0 -> 2341 bytes dist/img/feedzy.png | Bin 0 -> 447 bytes dist/img/feedzy.svg | 1 + .../feedzy-rss-feeds-admin-abstract.php | 1098 +++++++++ .../includes/admin/feedzy-rss-feeds-admin.php | 534 +++++ .../admin/feedzy-rss-feeds-options.php | 84 + .../admin/feedzy-rss-feeds-ui-lang.php | 392 ++++ dist/includes/admin/feedzy-rss-feeds-ui.php | 146 ++ .../admin/feedzy-rss-feeds-upgrader.php | 68 + dist/includes/admin/feedzy-wp-widget.php | 249 ++ dist/includes/feedzy-rss-feeds-activator.php | 49 + .../includes/feedzy-rss-feeds-deactivator.php | 36 + .../includes/feedzy-rss-feeds-feed-tweaks.php | 66 + dist/includes/feedzy-rss-feeds-i18n.php | 49 + dist/includes/feedzy-rss-feeds-loader.php | 155 ++ dist/includes/feedzy-rss-feeds.php | 259 +++ dist/includes/gutenberg/dist/block.css | 2 + dist/includes/gutenberg/dist/block.js | 502 ++++ .../feedzy-rss-feeds-gutenberg-block.php | 291 +++ dist/includes/layouts/css/upsell.css | 236 ++ dist/includes/layouts/feedzy-upsell.php | 47 + dist/includes/layouts/header.php | 25 + dist/includes/layouts/settings.php | 122 + .../util/feedzy-rss-feeds-util-simplepie.php | 85 + dist/index.php | 9 + dist/js/feedzy-rss-feeds-ui-mce.js | 96 + dist/languages/feedzy-rss-feeds-de_DE.mo | Bin 0 -> 3233 bytes dist/languages/feedzy-rss-feeds-de_DE.po | 141 ++ dist/languages/feedzy-rss-feeds-es_ES.mo | Bin 0 -> 3968 bytes dist/languages/feedzy-rss-feeds-es_ES.po | 163 ++ dist/languages/feedzy-rss-feeds-fr_FR.mo | Bin 0 -> 3275 bytes dist/languages/feedzy-rss-feeds-fr_FR.po | 217 ++ dist/languages/feedzy-rss-feeds-ja.mo | Bin 0 -> 3790 bytes dist/languages/feedzy-rss-feeds-ja.po | 189 ++ dist/languages/feedzy-rss-feeds-sr_RS.mo | Bin 0 -> 3120 bytes dist/languages/feedzy-rss-feeds-sr_RS.po | 204 ++ dist/languages/feedzy-rss-feeds.pot | 459 ++++ dist/readme.md | 695 ++++++ dist/readme.txt | 702 ++++++ dist/themeisle-hash.json | 1 + dist/uninstall.php | 24 + dist/webpack.config.js | 68 + readme.md | 15 + readme.txt | 15 + themeisle-hash.json | 2 +- 61 files changed, 11618 insertions(+), 1 deletion(-) create mode 100644 dist/CHANGELOG.md create mode 100644 dist/LICENSE.txt create mode 100644 dist/css/feedzy-rss-feeds.css create mode 100644 dist/css/form.css create mode 100644 dist/css/metabox-settings.css create mode 100644 dist/feedzy-rss-feed.php create mode 100644 dist/form/form.php create mode 100644 dist/img/features-affiliate-ready.jpg create mode 100644 dist/img/features-caching.jpg create mode 100644 dist/img/features-feed-to-post.jpg create mode 100644 dist/img/features-templates.jpg create mode 100644 dist/img/features-widgets-support.jpg create mode 100644 dist/img/feedzy-default-template.jpg create mode 100644 dist/img/feedzy-default.jpg create mode 100644 dist/img/feedzy-style1-template.jpg create mode 100644 dist/img/feedzy-style2-template.jpg create mode 100644 dist/img/feedzy.png create mode 100644 dist/img/feedzy.svg create mode 100644 dist/includes/abstract/feedzy-rss-feeds-admin-abstract.php create mode 100644 dist/includes/admin/feedzy-rss-feeds-admin.php create mode 100644 dist/includes/admin/feedzy-rss-feeds-options.php create mode 100644 dist/includes/admin/feedzy-rss-feeds-ui-lang.php create mode 100644 dist/includes/admin/feedzy-rss-feeds-ui.php create mode 100644 dist/includes/admin/feedzy-rss-feeds-upgrader.php create mode 100644 dist/includes/admin/feedzy-wp-widget.php create mode 100644 dist/includes/feedzy-rss-feeds-activator.php create mode 100644 dist/includes/feedzy-rss-feeds-deactivator.php create mode 100644 dist/includes/feedzy-rss-feeds-feed-tweaks.php create mode 100644 dist/includes/feedzy-rss-feeds-i18n.php create mode 100644 dist/includes/feedzy-rss-feeds-loader.php create mode 100644 dist/includes/feedzy-rss-feeds.php create mode 100644 dist/includes/gutenberg/dist/block.css create mode 100644 dist/includes/gutenberg/dist/block.js create mode 100644 dist/includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php create mode 100644 dist/includes/layouts/css/upsell.css create mode 100644 dist/includes/layouts/feedzy-upsell.php create mode 100644 dist/includes/layouts/header.php create mode 100644 dist/includes/layouts/settings.php create mode 100644 dist/includes/util/feedzy-rss-feeds-util-simplepie.php create mode 100644 dist/index.php create mode 100644 dist/js/feedzy-rss-feeds-ui-mce.js create mode 100644 dist/languages/feedzy-rss-feeds-de_DE.mo create mode 100644 dist/languages/feedzy-rss-feeds-de_DE.po create mode 100644 dist/languages/feedzy-rss-feeds-es_ES.mo create mode 100644 dist/languages/feedzy-rss-feeds-es_ES.po create mode 100644 dist/languages/feedzy-rss-feeds-fr_FR.mo create mode 100644 dist/languages/feedzy-rss-feeds-fr_FR.po create mode 100644 dist/languages/feedzy-rss-feeds-ja.mo create mode 100644 dist/languages/feedzy-rss-feeds-ja.po create mode 100644 dist/languages/feedzy-rss-feeds-sr_RS.mo create mode 100644 dist/languages/feedzy-rss-feeds-sr_RS.po create mode 100644 dist/languages/feedzy-rss-feeds.pot create mode 100644 dist/readme.md create mode 100644 dist/readme.txt create mode 100644 dist/themeisle-hash.json create mode 100644 dist/uninstall.php create mode 100644 dist/webpack.config.js diff --git a/CHANGELOG.md b/CHANGELOG.md index c36b9643..bec34d96 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,11 @@ + ### v3.2.11 - 2018-06-26 + **Changes:** + * New Gutenberg block for Feedzy RSS Feeds +* Fixed curl SSL problem with Feeds with HTTPS +* Fix content type, conflicting with Gutenberg +* Added compatibility with the pro version for full text import + ### v3.2.10 - 2018-04-02 **Changes:** * Adds shortcode attribute for feed items order ( title ASC/DESC, date ASC/DESC). diff --git a/dist/CHANGELOG.md b/dist/CHANGELOG.md new file mode 100644 index 00000000..bec34d96 --- /dev/null +++ b/dist/CHANGELOG.md @@ -0,0 +1,213 @@ + + ### v3.2.11 - 2018-06-26 + **Changes:** + * New Gutenberg block for Feedzy RSS Feeds +* Fixed curl SSL problem with Feeds with HTTPS +* Fix content type, conflicting with Gutenberg +* Added compatibility with the pro version for full text import + + ### v3.2.10 - 2018-04-02 + **Changes:** + * Adds shortcode attribute for feed items order ( title ASC/DESC, date ASC/DESC). +* Improve documentation and examples. + + ### v3.2.9 - 2018-03-07 + **Changes:** + * Automatically fix deprecated google news feeds. +* Improve compatibility with the pro version. + + ### v3.2.8 - 2018-02-20 + **Changes:** + * Fix issue with medium feeds. +* Improves extensibility using various hooks. +* Fix feeds without schema protocol. + + ### v3.2.7 - 2018-01-05 + **Changes:** + * Fix compatibility with SiteOrigin Page Builder. +* Adds full content import from feed. +* Fix issue with img scraped from articles. + + ### v3.2.6 - 2017-11-16 + **Changes:** + * Adds compatibility with WordPress 4.9 + + ### v3.2.5 - 2017-11-03 + **Changes:** + * Fix for double slash issue in image path. + * Fix for private ips when proxy is used. + * Add FAQ in sync with helpscout docs. + + ### v3.2.4 - 2017-10-13 + **Changes:** + * Fix for assets enqueue, loading them where are needed only. +* Removes duplicates readme.md files. + + ### v3.2.1 - 2017-10-12 + **Changes:** + * Adds global settings page. +* Adds User Agent and Proxy settings. +* Fix for some edge cases regarding images in the feed. + + ### v3.2.0 - 2017-08-17 + **Changes:** + * Fix for image URL issue following some strange patterns. +* Added fallback for broken feed, now if one feed from the list is not working, others will will be used. +* Added shortcode parameter for feed cache control. + + ### v3.1.10 - 2017-08-03 + **Changes:** + * Fixed typos in shortcode builder. +* Fixed image encoding issue. + + ### v3.1.9 - 2017-07-21 + **Changes:** + * Fixed issue with fetching images containg GET parameters. + + ### v3.1.8 - 2017-07-17 + **Changes:** + * Fixed image fetching issues. +* Fixed link opening behaviour +* Improved description ( Thanks to @chesio ) + + ### v3.1.7 - 2017-06-21 + **Changes:** + * Added new sdk logic. +* Improved compatibility with the pro version. + + ### v3.1.6 - 2017-06-02 + **Changes:** + - Added sdk test. + + ### v3.1.5 - 2017-05-31 + **Changes:** + - Fixed sdk notifications issues. +- Added compatibility with pro version. + + ### v3.1.4 - 2017-05-30 + **Changes:** + - Added new doc for feedzy categories. +- Bump themeisle-sdk version. + + ### v3.1.3 - 2017-05-29 + **Changes:** + - * Added new SDK features. +- * Fixed some edge case issues on image parsing. + + ### v3.1.2 - 2017-05-25 + **Changes:** + - Release 3.1.2 + + ### v3.1.1 - 2017-05-22 + **Changes:** + - Replace alt in span with title + + ### v3.1.0 - 2017-05-17 + **Changes:** + - Added feed to post compatibility +- Added categories to group urls +- Added filter for author url +- Fixed regex for jpeg images. + + ### v3.0.12 - 2017-04-24 + **Changes:** + - Fixed svn commit. + + ### v3.0.11 - 2017-04-24 + **Changes:** + - Changed deploy mechanism. + + +### 3.0.10 - 24/04/2017 + +**Changes:** + +- Fixed wrong image regex. +- Fixed image compression. +- Added wraith. + + +### 3.0.9 - 21/02/2017 + +**Changes:** + +- Fixed wrong empty title check. + + +### 3.0.8 - 20/02/2017 + +**Changes:** + +- Added sizes param to feedzy_thumb_output. + +- Dont show items with empty title. + + +### 3.0.7 - 03/02/2017 + +**Changes:** + +- Fixed is_new when pro is active. + +- Fixed redundant auto options. + +- Fixed auto option in widget for image option. + + +### 3.0.6 - 27/01/2017 + +**Changes:** + +- + +- Added feedzy_feed_timestamp filter. + +- Fixed issue with edge cases feed urls. + +- Fixed error when using [] on string vars. + + +### 3.0.5 - 13/01/2017 + +**Changes:** + +- Fixed issue with google news feeds + + +### 3.0.4 - 11/01/2017 + +**Changes:** + +- Release 3.0.4 + + +### 3.0.3 - 10/01/2017 + +**Changes:** + +- Added compatibility with the new pro options + +- Added new documentation help + +- Added legacy filters and functions + + +### 3.0.2 - 06/01/2017 + +**Changes:** + +- Added default image class back + + +### 3.0.1 - 05/01/2017 + +**Changes:** + +- Fixed html markup error + + +### 3.0.0 - 03/01/2017 + +**Changes:** + +- Release 3.0.0 version diff --git a/dist/LICENSE.txt b/dist/LICENSE.txt new file mode 100644 index 00000000..ecbc0593 --- /dev/null +++ b/dist/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) 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 +this service 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 make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. 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. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + 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 +convey 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 2 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision 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, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This 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. \ No newline at end of file diff --git a/dist/css/feedzy-rss-feeds.css b/dist/css/feedzy-rss-feeds.css new file mode 100644 index 00000000..a3ea6563 --- /dev/null +++ b/dist/css/feedzy-rss-feeds.css @@ -0,0 +1,523 @@ +/** + * feedzy-rss-feeds.css + * Feedzy RSS Feed + * Copyright: (c) 2016 Themeisle, themeisle.com + * Version: 3.2.11 + * Plugin Name: FEEDZY RSS Feeds + * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/ + * Author: Themeisle + */ +.feedzy-rss > ul { + margin: 0; + padding: 0; +} + +/*noinspection CssUnusedSymbol*/ +.feedzy-rss .rss_item { + border-bottom: 1px solid #eee; + list-style: none; +} + +.feedzy-rss .rss_item .title { + font-weight: bold; +} + +/*noinspection CssUnusedSymbol*/ +.feedzy-rss .rss_item:after { + display: block; + clear: both; + content: ""; +} + +/*noinspection CssUnusedSymbol*/ +.feedzy-rss .rss_item .rss_image { + float: left; + position: relative; + border: none; + text-decoration: none; +} + +.feedzy-rss .rss_item .rss_image span { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + background-position: 50%; + background-size: cover; +} + +/*noinspection CssUnusedSymbol*/ +.feedzy-rss .rss_item .rss_image .fetched { + z-index: 9; +} + +.feedzy-rss .rss_item .rss_image { + margin: 0.3em 1em 0 0; +} + +.feedzy-rss .rss_item .rss_content small { + display: block; + font-size: 0.9em; + font-style: italic; +} + +/*TinyMce UI button*/ +/*noinspection CssUnusedSymbol*/ +i.mce-i-feedzy-icon { + background-image: none, url("../img/feedzy.svg"), url("../img/feedzy.png"); +} + +#feedzy-rss-button-insert { + border-color: #4cae4c; + color: #fff; + background-color: #5cb85c; +} + +#feedzy-rss-button-insert button { + color: #fff; +} + +#feedzy-rss-button-insert:hover, +#feedzy-rss-button-insert:focus { + border-color: #398439; + color: #fff; + background-color: #449d44; +} + +#feedzy-rss-button-cancel { + border-color: #ccc; + color: #333; + background-color: #fff; +} + +#feedzy-rss-button-cancel button { + color: #333; +} + +#feedzy-rss-button-cancel:hover, +#feedzy-rss-button-cancel:focus { + border-color: #adadad; + color: #333; + background-color: #e6e6e6; +} + +#feedzy-rss-button-pro { + position: absolute; + left: 10px !important; + border-color: #46b8da; + color: #fff; + background-color: #5bc0de; +} + +#feedzy-rss-button-pro button { + color: #fff; +} + +#feedzy-rss-button-pro:hover, +#feedzy-rss-button-pro:focus { + border-color: #269abc; + color: #fff; + background-color: #31b0d5; +} + +#feedzy-rss-insert-dialog-title { + font-weight: 300; + text-align: center; +} + +/* PRO */ +.feedzy-rss ul { + margin: 0 -2%; +} + +.feedzy-rss ul:before, +.feedzy-rss ul:after { + display: table; + content: " "; +} + +.feedzy-rss ul:after { + clear: both; +} + +.feedzy-rss .rss_item { + margin: 2%; + padding: 0; +} + +/* Default */ +/* +.feedzy-rss .feedzy-default .rss_image, +.feedzy-rss .feedzy-default .rss_content_wrap { + display: inline-block; + width: 100%; +} + +.feedzy-rss .feedzy-default .rss_image { + float: none; + padding: 0; + text-align: center; + width: 100%; +} + +.feedzy-rss .feedzy-default .rss_content_wrap { + margin: 10px 0 0; + padding: 0; +}*/ + +/* Style1 */ +.feedzy-rss .feedzy-style1 .rss_image, +.feedzy-rss .feedzy-style1 .rss_content_wrap { + display: inline-block; + width: 100%; +} + +.feedzy-rss .feedzy-style1 .rss_item .rss_image span { + width: 100%; +} + +.feedzy-rss .feedzy-style1 .rss_content_wrap { + text-align: left; +} + +.feedzy-rss .feedzy-style1 .rss_item { + text-align: center; +} + +.feedzy-rss .feedzy-style2 .rss_item .rss_image { + float: none; +} + +.feedzy-rss .feedzy-style2 .rss_item .rss_image span { + width: 100%; +} + +.feedzy-rss .feedzy-style2 .rss_content_wrap { + text-align: left; +} + +.feedzy-rss .feedzy-style2 .rss_item { + text-align: center; +} + +.feedzy-rss .feedzy-style1 .rss_image { + float: none; + width: 100%; + padding: 0; + text-align: center; + -webkit-transition: 0.75s ease; + transition: 0.75s ease; +} + +.feedzy-rss .feedzy-style1 .rss_image a { + border: 3px solid transparent; + border-radius: 50%; + -webkit-transition: 0.5s ease; + transition: 0.5s ease; +} + +.feedzy-rss .feedzy-style1 .rss_image a span { + display: inline-block; + left: 0; + border-radius: 50%; +} + +.feedzy-rss .feedzy-style1 .rss_item:hover .rss_image a { + box-shadow: 0 0 10px rgba(0,0,0,0.25); +} + +.feedzy-rss .feedzy-style1 .rss_content_wrap { + margin: 10px 0 0; + padding: 0; +} + +.feedzy-rss .feedzy-style1 .rss_content_wrap .title a { + text-decoration: none; +} + +.feedzy-rss .feedzy-style1 .rss_content_wrap .title a:hover { + text-decoration: underline; +} + +.feedzy-rss .feedzy-style1 .rss_content .description { + margin: 0; + padding: 0; + font-size: 90%; +} + +.feedzy-rss .feedzy-style1 .rss_content .price-wrap { + margin: 10px 0 0; + text-align: center; +} + +.feedzy-rss .feedzy-style1 .rss_content .price { + display: inline-block; + padding: 5px 10px; + border-radius: 5px; + color: #fff; + background: #4f6d8d; + font-weight: 700; +} + +/* Style2 */ +.feedzy-rss .feedzy-style2 .rss_item { + padding: 0 !important; + border: 1px solid #e3edeb; + border-radius: 5px; +} + +.feedzy-rss .feedzy-style2 .rss_image span { + left: 0; +} + +.feedzy-rss .feedzy-style2 .rss_image, +.feedzy-rss .feedzy-style2 .rss_content_wrap { + display: inline-block; + width: 100%; +} + +.feedzy-rss .feedzy-style2 .rss_image { + overflow: hidden; + width: 100%; + padding: 0; + border-bottom: 7px solid #355c7d; + line-height: 0; + text-align: center; +} + +.feedzy-rss .feedzy-style2 .rss_image a span { + display: inline-block; + -webkit-transition: 0.3s ease; + transition: 0.3s ease; +} + +.feedzy-rss .feedzy-style2 .rss_item:hover .rss_image a span { + -webkit-transform: scale(1.2); + -ms-transform: scale(1.2); + transform: scale(1.2); +} + +.feedzy-rss .feedzy-style2 .rss_content_wrap { + margin: 0; + padding: 0; + letter-spacing: 0; +} + +.feedzy-rss .feedzy-style2 .rss_content_wrap .title { + display: block; + padding: 10px 15px; +} + +.feedzy-rss .feedzy-style2 .rss_content_wrap .title a { + /*color: #355c7d;*/ + text-decoration: none; +} + +.feedzy-rss .feedzy-style2 .rss_content_wrap .title a:hover { + text-decoration: underline; +} + +.feedzy-rss .feedzy-style2 .rss_content .meta { + padding: 10px 15px; + border-top: 1px solid #e3edeb; + border-bottom: 1px solid #e3edeb; + background-color: #f1f5f4; +} + +.feedzy-rss .feedzy-style2 .rss_content .description { + margin: 0; + padding: 10px 15px; + font-size: 90%; + line-height: 1.5; +} + +.feedzy-rss .feedzy-style2 .rss_content .price-wrap { + margin: 10px 0 15px; + text-align: center; +} + +.feedzy-rss .feedzy-style2 .rss_content .price { + display: inline-block; + padding: 8px 15px; + color: #fff; + background: #355c7d; + font-weight: 700; +} + +/* Columns */ +.feedzy-rss .feedzy-rss-col-1 { + width: 96%; +} + +/* SCHIMBAT DIN ID in CLASA */ +.feedzy-rss .feedzy-rss-col-2, +.feedzy-rss .feedzy-rss-col-3, +.feedzy-rss .feedzy-rss-col-4, +.feedzy-rss .feedzy-rss-col-5, +.feedzy-rss .feedzy-rss-col-6 { + float: left; + width: 96%; +} + +@media screen and (min-width: 768px) { + .feedzy-rss .feedzy-rss-col-2, + .feedzy-rss .feedzy-rss-col-3, + .feedzy-rss .feedzy-rss-col-4, + .feedzy-rss .feedzy-rss-col-5, + .feedzy-rss .feedzy-rss-col-6 { + width: 46%; + } + + .feedzy-rss .feedzy-rss-col-2:nth-child(2n+1), + .feedzy-rss .feedzy-rss-col-3:nth-child(2n+1), + .feedzy-rss .feedzy-rss-col-4:nth-child(2n+1), + .feedzy-rss .feedzy-rss-col-5:nth-child(2n+1), + .feedzy-rss .feedzy-rss-col-6:nth-child(2n+1) { + clear: both; + } +} + +@media screen and (min-width: 992px) { + .feedzy-rss .feedzy-rss-col-3, + .feedzy-rss .feedzy-rss-col-4, + .feedzy-rss .feedzy-rss-col-5, + .feedzy-rss .feedzy-rss-col-6 { + width: 29.33333%; + } + + .feedzy-rss .feedzy-rss-col-3:nth-child(2n+1), + .feedzy-rss .feedzy-rss-col-4:nth-child(2n+1), + .feedzy-rss .feedzy-rss-col-5:nth-child(2n+1), + .feedzy-rss .feedzy-rss-col-6:nth-child(2n+1) { + clear: none; + } + + .feedzy-rss .feedzy-rss-col-3:nth-child(3n+1), + .feedzy-rss .feedzy-rss-col-4:nth-child(3n+1), + .feedzy-rss .feedzy-rss-col-5:nth-child(3n+1), + .feedzy-rss .feedzy-rss-col-6:nth-child(3n+1) { + clear: both; + } +} + +@media screen and (min-width: 1200px) { + .feedzy-rss .feedzy-rss-col-4 { + width: 21%; + } + + .feedzy-rss .feedzy-rss-col-5 { + width: 16%; + } + + .feedzy-rss .feedzy-rss-col-6 { + width: 12.66666%; + } + + .feedzy-rss .feedzy-rss-col-4:nth-child(3n+1), + .feedzy-rss .feedzy-rss-col-5:nth-child(3n+1), + .feedzy-rss .feedzy-rss-col-6:nth-child(3n+1) { + clear: none; + } + + .feedzy-rss .feedzy-rss-col-4:nth-child(4n+1), + .feedzy-rss .feedzy-rss-col-5:nth-child(5n+1), + .feedzy-rss .feedzy-rss-col-6:nth-child(6n+1) { + /* PANA AICI INCLUSIV */ + clear: both; + } +} + +/* The switch - the box around the slider */ +.feedzy-switch { + display: inline-block; + position: relative; + width: 30px; + height: 18px; + margin-left: 20px; +} + +/* Hide default HTML checkbox */ +.feedzy-switch input { + display: none; +} + +/* The slider */ +.feedzy-tracking sup { + vertical-align: 3px; +} + +.feedzy-track { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #ccc; + cursor: pointer; + -webkit-transition: 0.4s; + transition: 0.4s; +} + +.feedzy-track:before { + position: absolute; + bottom: 1.5px; + left: 2px; + width: 15px; + height: 15px; + background-color: white; + content: ""; + -webkit-transition: 0.4s; + transition: 0.4s; +} + +input:checked + .feedzy-track { + background-color: #0085ba; +} + +input:focus + .feedzy-track { + box-shadow: 0 0 1px #0085ba; +} + +input:checked + .feedzy-track:before { + -webkit-transform: translateX(11px); + -ms-transform: translateX(11px); + transform: translateX(11px); +} + +/* Rounded sliders */ +.feedzy-track.visualizer-round { + border-radius: 34px; +} + +.feedzy-track.visualizer-round:before { + border-radius: 50%; +} + +.feedzy-tracking p small sup { + margin-left: -3px; +} + +.feedzy-tracking p { + padding-left: 14px; + color: #23282d; + font-size: 12px; + line-height: 12px; + text-align: left; +} + +.feedzy-tracking span { + margin-left: 10px; + color: #23282d; + background: none; + font-size: 14px; + font-weight: bold; +} + +.post-type-feedzy_categories .postbox-container div#submitdiv, +.post-type-feedzy_categories #feedzy_category_feeds_rn { + display: block !important; +} + +.post-type-feedzy_categories .postbox-container > div > .postbox:not(#feedzy_category_feeds) { + display: none; +} diff --git a/dist/css/form.css b/dist/css/form.css new file mode 100644 index 00000000..23bf9bf6 --- /dev/null +++ b/dist/css/form.css @@ -0,0 +1,725 @@ +/** + * form.css + * Feedzy RSS Feeds Form CSS + */ + +html { + box-sizing: border-box; + font-size: 62.5%; +} + +body { + color: #606c76; + font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + font-size: 1.6em; + font-weight: 300; + line-height: 1.6; + letter-spacing: 0.01em; +} + +*, +*:after, +*:before { + box-sizing: inherit; +} + +.button, +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + display: inline-block; + height: 3.8rem; + padding: 0 3.0rem; + border: 0.1rem solid #31b0d5; + border-radius: 0.4rem; + color: #fff; + background-color: #31b0d5; + font-size: 1.1rem; + font-weight: 700; + line-height: 3.8rem; + text-align: center; + white-space: nowrap; + text-decoration: none; + letter-spacing: 0.1rem; + text-transform: uppercase; + cursor: pointer; +} + +.button:focus, +.button:hover, +button:focus, +button:hover, +input[type="button"]:focus, +input[type="button"]:hover, +input[type="reset"]:focus, +input[type="reset"]:hover, +input[type="submit"]:focus, +input[type="submit"]:hover { + border-color: #606c76; + outline: 0; + color: #fff; + background-color: #606c76; +} + +.button[disabled], +button[disabled], +input[type="button"][disabled], +input[type="reset"][disabled], +input[type="submit"][disabled] { + opacity: 0.5; + cursor: default; +} + +.button[disabled]:focus, +.button[disabled]:hover, +button[disabled]:focus, +button[disabled]:hover, +input[type="button"][disabled]:focus, +input[type="button"][disabled]:hover, +input[type="reset"][disabled]:focus, +input[type="reset"][disabled]:hover, +input[type="submit"][disabled]:focus, +input[type="submit"][disabled]:hover { + border-color: #31b0d5; + background-color: #31b0d5; +} + +.button.button-outline, +button.button-outline, +input[type="button"].button-outline, +input[type="reset"].button-outline, +input[type="submit"].button-outline { + color: #31b0d5; + background-color: transparent; +} + +.button.button-outline:focus, +.button.button-outline:hover, +button.button-outline:focus, +button.button-outline:hover, +input[type="button"].button-outline:focus, +input[type="button"].button-outline:hover, +input[type="reset"].button-outline:focus, +input[type="reset"].button-outline:hover, +input[type="submit"].button-outline:focus, +input[type="submit"].button-outline:hover { + border-color: #606c76; + color: #606c76; + background-color: transparent; +} + +.button.button-outline[disabled]:focus, +.button.button-outline[disabled]:hover, +button.button-outline[disabled]:focus, +button.button-outline[disabled]:hover, +input[type="button"].button-outline[disabled]:focus, +input[type="button"].button-outline[disabled]:hover, +input[type="reset"].button-outline[disabled]:focus, +input[type="reset"].button-outline[disabled]:hover, +input[type="submit"].button-outline[disabled]:focus, +input[type="submit"].button-outline[disabled]:hover { + border-color: inherit; + color: #31b0d5; +} + +.button.button-clear, +button.button-clear, +input[type="button"].button-clear, +input[type="reset"].button-clear, +input[type="submit"].button-clear { + border-color: transparent; + color: #31b0d5; + background-color: transparent; +} + +.button.button-clear:focus, +.button.button-clear:hover, +button.button-clear:focus, +button.button-clear:hover, +input[type="button"].button-clear:focus, +input[type="button"].button-clear:hover, +input[type="reset"].button-clear:focus, +input[type="reset"].button-clear:hover, +input[type="submit"].button-clear:focus, +input[type="submit"].button-clear:hover { + border-color: transparent; + color: #606c76; + background-color: transparent; +} + +.button.button-clear[disabled]:focus, +.button.button-clear[disabled]:hover, +button.button-clear[disabled]:focus, +button.button-clear[disabled]:hover, +input[type="button"].button-clear[disabled]:focus, +input[type="button"].button-clear[disabled]:hover, +input[type="reset"].button-clear[disabled]:focus, +input[type="reset"].button-clear[disabled]:hover, +input[type="submit"].button-clear[disabled]:focus, +input[type="submit"].button-clear[disabled]:hover { + color: #31b0d5; +} + +hr { + margin: 3.0rem 0; + border: 0; + border-top: 0.1rem solid #f4f5f6; +} + +input[type="email"], +input[type="number"], +input[type="password"], +input[type="search"], +input[type="tel"], +input[type="text"], +input[type="url"], +textarea, +select { + box-sizing: inherit; + width: 100%; + height: 3.8rem; + padding: 0.6rem 1.0rem; + border: 0.1rem solid #d1d1d1; + border-radius: 0.4rem; + background-color: transparent; + box-shadow: none; + + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +input[type="email"]:focus, +input[type="number"]:focus, +input[type="password"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="text"]:focus, +input[type="url"]:focus, +textarea:focus, +select:focus { + border-color: #31b0d5; + outline: 0; +} + +select { + padding-right: 3.0rem; + background: url("data:image/svg+xml;utf8,") center right no-repeat; +} + +select:focus { + background-image: url("data:image/svg+xml;utf8,"); +} + +textarea { + min-height: 6.5rem; +} + +label, +legend { + display: block; + margin-bottom: 0.5rem; + font-size: 1.2rem; + font-weight: 300; +} + +fieldset { + padding: 0; + border-width: 0; +} + +input[type="checkbox"], +input[type="radio"] { + display: inline; +} + +.label-inline { + display: inline-block; + margin-left: 0.5rem; + font-weight: normal; +} + +.container { + position: relative; + width: 100%; + max-width: 112.0rem; + margin: 0 auto; + padding: 0 2.0rem; +} + +.row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + flex-direction: column; + width: 100%; + padding: 0; + + -webkit-box-direction: normal; + -webkit-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; +} + +.row.row-no-padding { + padding: 0; +} + +.row.row-no-padding > .column { + padding: 0; +} + +.row.row-wrap { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.row.row-top { + -webkit-align-items: flex-start; + align-items: flex-start; + -webkit-box-align: start; + -ms-flex-align: start; +} + +.row.row-bottom { + -webkit-align-items: flex-end; + align-items: flex-end; + -webkit-box-align: end; + -ms-flex-align: end; +} + +.row.row-center { + -webkit-align-items: center; + align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; +} + +.row.row-stretch { + -webkit-align-items: stretch; + align-items: stretch; + -webkit-box-align: stretch; + -ms-flex-align: stretch; +} + +.row.row-baseline { + -webkit-align-items: baseline; + align-items: baseline; + -webkit-box-align: baseline; + -ms-flex-align: baseline; +} + +.row .column { + display: block; + width: 100%; + max-width: 100%; + margin-left: 0; + + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.row .column.column-offset-10 { + margin-left: 10%; +} + +.row .column.column-offset-20 { + margin-left: 20%; +} + +.row .column.column-offset-25 { + margin-left: 25%; +} + +.row .column.column-offset-33, +.row .column.column-offset-34 { + margin-left: 33.3333%; +} + +.row .column.column-offset-50 { + margin-left: 50%; +} + +.row .column.column-offset-66, +.row .column.column-offset-67 { + margin-left: 66.6666%; +} + +.row .column.column-offset-75 { + margin-left: 75%; +} + +.row .column.column-offset-80 { + margin-left: 80%; +} + +.row .column.column-offset-90 { + margin-left: 90%; +} + +.row .column.column-10 { + max-width: 10%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; +} + +.row .column.column-20 { + max-width: 20%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; +} + +.row .column.column-25 { + max-width: 25%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; +} + +.row .column.column-33, +.row .column.column-34 { + max-width: 33.3333%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.3333%; + -ms-flex: 0 0 33.3333%; + flex: 0 0 33.3333%; +} + +.row .column.column-40 { + max-width: 40%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; +} + +.row .column.column-50 { + max-width: 50%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; +} + +.row .column.column-60 { + max-width: 60%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; +} + +.row .column.column-66, +.row .column.column-67 { + max-width: 66.6666%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.6666%; + -ms-flex: 0 0 66.6666%; + flex: 0 0 66.6666%; +} + +.row .column.column-75 { + max-width: 75%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; +} + +.row .column.column-80 { + max-width: 80%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; +} + +.row .column.column-90 { + max-width: 90%; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; +} + +.row .column .column-top { + -webkit-align-self: flex-start; + align-self: flex-start; + -ms-flex-item-align: start; +} + +.row .column .column-bottom { + -webkit-align-self: flex-end; + align-self: flex-end; + -ms-flex-item-align: end; +} + +.row .column .column-center { + -webkit-align-self: center; + align-self: center; + -ms-flex-item-align: center; + -ms-grid-row-align: center; +} + +@media (min-width: 40rem) { + .row { + flex-direction: row; + width: -webkit-calc(100% + 2.0rem); + width: calc(100% + 2.0rem); + margin-left: -1.0rem; + + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + } + + .row .column { + margin-bottom: inherit; + padding: 0 1.0rem; + } +} + +a { + color: #31b0d5; + text-decoration: none; +} + +a:focus, +a:hover { + color: #606c76; +} + +dl, +ol, +ul { + margin-top: 0; + padding-left: 0; + list-style: none; +} + +dl dl, +dl ol, +dl ul, +ol dl, +ol ol, +ol ul, +ul dl, +ul ol, +ul ul { + margin: 1.5rem 0 1.5rem 3.0rem; + font-size: 90%; +} + +ol { + list-style: decimal inside; +} + +ul { + list-style: circle inside; +} + +.button, +button, +dd, +dt, +li { + margin-bottom: 1.0rem; +} + +fieldset, +input, +select, +textarea { + margin-bottom: 1.5rem; +} + +blockquote, +dl, +figure, +form, +ol, +p, +pre, +table, +ul { + margin-bottom: 2.5rem; +} + +table { + width: 100%; +} + +td, +th { + padding: 1.2rem 1.5rem; + border-bottom: 0.1rem solid #e1e1e1; + text-align: left; +} + +td:first-child, +th:first-child { + padding-left: 0; +} + +td:last-child, +th:last-child { + padding-right: 0; +} + +p { + margin-top: 0; + font-size: 1.4rem; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 2.0rem; + font-weight: 300; + letter-spacing: -0.1rem; +} + +h1 { + font-size: 4.0rem; + line-height: 1.2; +} + +h2 { + font-size: 3.6rem; + line-height: 1.25; +} + +h3 { + font-size: 3.0rem; + line-height: 1.3; +} + +h4 { + font-size: 2.4rem; + line-height: 1.35; + letter-spacing: -0.08rem; +} + +h5 { + border-bottom: 1px solid #31b0d5; + font-size: 1.8rem; + line-height: 1.5; + letter-spacing: -0.05rem; +} + +h6 { + font-size: 1.6rem; + line-height: 1.4; + letter-spacing: 0; +} + +@media (min-width: 40rem) { + h1 { + font-size: 5.0rem; + } + + h2 { + font-size: 4.2rem; + } + + h3 { + font-size: 3.6rem; + } + + h4 { + font-size: 3.0rem; + } + + h5 { + font-size: 2.4rem; + } + + h6 { + font-size: 1.5rem; + } +} + +img { + max-width: 100%; +} + +.clearfix:after { + display: table; + clear: both; + content: " "; +} + +.float-left { + float: left; +} + +.float-right { + float: right; +} + +.feedzy_section_pro { + background-color: #fefefe; +} + +.feedzy_section_pro h5 { + border-bottom-color: #d9a404; + color: #d9a404; +} + +.feedzy_pro_tag { + margin-left: 10px; + padding: 3px 6px; + border-radius: 3px; + color: #fff; + background-color: #d9a404; +} + +.feedzy-radio-image { + display: inline-block; + width: 100px; + margin-right: 20px; + padding-bottom: 60px; +} + +.feedzy-template-default { + background: url(../img/feedzy-default-template.jpg) no-repeat bottom center; +} + +.feedzy-template-style1 { + background: url(../img/feedzy-style1-template.jpg) no-repeat bottom center; +} + +.feedzy-template-style2 { + background: url(../img/feedzy-style2-template.jpg) no-repeat bottom center; +} + +input[disabled], +select[disabled] { + cursor: not-allowed; +} diff --git a/dist/css/metabox-settings.css b/dist/css/metabox-settings.css new file mode 100644 index 00000000..8df17d99 --- /dev/null +++ b/dist/css/metabox-settings.css @@ -0,0 +1,2025 @@ +/** + * import-metabox-edit.css + * + * @since 1.2.0 + * @package feedzy-rss-feeds-pro + */ +.fz-form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + border: 1px solid #ccc; + border-radius: 4px; + color: #555; + background-color: #fff; + background-image: none; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + font-size: 14px; + line-height: 1.42857143; + -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} + +.fz-form-control:focus { + border-color: #66afe9; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(102, 175, 233, 0.6); +} + +.fz-form-control::-moz-placeholder { + opacity: 1; + color: #999; +} + +.fz-form-control:-ms-input-placeholder { + color: #999; +} + +.fz-form-control::-webkit-input-placeholder { + color: #999; +} + +.fz-form-control::-ms-expand { + border: 0; + background-color: transparent; +} + +.fz-form-control[disabled], +.fz-form-control[readonly], +fieldset[disabled] .fz-form-control { + opacity: 1; + background-color: #eee; +} + +.fz-form-control[disabled], +fieldset[disabled] .fz-form-control { + cursor: not-allowed; +} + +textarea.fz-form-control { + height: auto; +} + +input[type="search"] { + -webkit-appearance: none; +} + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].fz-form-control, + input[type="time"].fz-form-control, + input[type="datetime-local"].fz-form-control, + input[type="month"].fz-form-control { + line-height: 34px; + } + + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .fz-input-group-sm input[type="date"], + .fz-input-group-sm input[type="time"], + .fz-input-group-sm input[type="datetime-local"], + .fz-input-group-sm input[type="month"] { + line-height: 30px; + } + + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .fz-input-group-lg input[type="date"], + .fz-input-group-lg input[type="time"], + .fz-input-group-lg input[type="datetime-local"], + .fz-input-group-lg input[type="month"] { + line-height: 46px; + } +} + +.fz-form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + display: block; + position: relative; + margin-top: 10px; + margin-bottom: 10px; +} + +.radio label, +.checkbox label { + min-height: 20px; + margin-bottom: 0; + padding-left: 20px; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + display: inline-block; + position: relative; + margin-bottom: 0; + padding-left: 20px; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} + +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} + +.fz-form-control-static { + min-height: 34px; + margin-bottom: 0; + padding-top: 7px; + padding-bottom: 7px; +} + +.fz-form-control-static.input-lg, +.fz-form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + border-radius: 3px; + font-size: 12px; + line-height: 1.5; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} + +.fz-form-group-sm .fz-form-control { + height: 30px; + padding: 5px 10px; + border-radius: 3px; + font-size: 12px; + line-height: 1.5; +} + +.fz-form-group-sm select.fz-form-control { + height: 30px; + line-height: 30px; +} + +.fz-form-group-sm textarea.fz-form-control, +.fz-form-group-sm select[multiple].fz-form-control { + height: auto; +} + +.fz-form-group-sm .fz-form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} + +.input-lg { + height: 46px; + padding: 10px 16px; + border-radius: 6px; + font-size: 18px; + line-height: 1.3333333; +} + +select.input-lg { + height: 46px; + line-height: 46px; +} + +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} + +.fz-form-group-lg .fz-form-control { + height: 46px; + padding: 10px 16px; + border-radius: 6px; + font-size: 18px; + line-height: 1.3333333; +} + +.fz-form-group-lg select.fz-form-control { + height: 46px; + line-height: 46px; +} + +.fz-form-group-lg textarea.fz-form-control, +.fz-form-group-lg select[multiple].fz-form-control { + height: auto; +} + +.fz-form-group-lg .fz-form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} + +.has-feedback { + position: relative; +} + +.has-feedback .fz-form-control { + padding-right: 42.5px; +} + +.fz-form-control-feedback { + display: block; + position: absolute; + z-index: 2; + top: 0; + right: 0; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} + +.input-lg + .fz-form-control-feedback, +.fz-input-group-lg + .fz-form-control-feedback, +.fz-form-group-lg .fz-form-control + .fz-form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} + +.input-sm + .fz-form-control-feedback, +.fz-input-group-sm + .fz-form-control-feedback, +.fz-form-group-sm .fz-form-control + .fz-form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} + +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} + +.has-success .fz-form-control { + border-color: #3c763d; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-success .fz-form-control:focus { + border-color: #2b542c; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; +} + +.has-success .fz-input-group-addon { + border-color: #3c763d; + color: #3c763d; + background-color: #dff0d8; +} + +.has-success .fz-form-control-feedback { + color: #3c763d; +} + +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} + +.has-warning .fz-form-control { + border-color: #8a6d3b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-warning .fz-form-control:focus { + border-color: #66512c; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; +} + +.has-warning .fz-input-group-addon { + border-color: #8a6d3b; + color: #8a6d3b; + background-color: #fcf8e3; +} + +.has-warning .fz-form-control-feedback { + color: #8a6d3b; +} + +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} + +.has-error .fz-form-control { + border-color: #a94442; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-error .fz-form-control:focus { + border-color: #843534; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} + +.has-error .fz-input-group-addon { + border-color: #a94442; + color: #a94442; + background-color: #f2dede; +} + +.has-error .fz-form-control-feedback { + color: #a94442; +} + +.has-feedback label ~ .fz-form-control-feedback { + top: 25px; +} + +.has-feedback label.feedzy-sr-only ~ .fz-form-control-feedback { + top: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .fz-form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .fz-form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .form-inline .fz-form-control-static { + display: inline-block; + } + + .form-inline .fz-input-group { + display: inline-table; + vertical-align: middle; + } + + .form-inline .fz-input-group .fz-input-group-addon, + .form-inline .fz-input-group .fz-input-group-btn, + .form-inline .fz-input-group .fz-form-control { + width: auto; + } + + .form-inline .fz-input-group > .fz-form-control { + width: 100%; + } + + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + + .form-inline .has-feedback .fz-form-control-feedback { + top: 0; + } +} + +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} + +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} + +.form-horizontal .fz-form-group { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + margin-bottom: 0; + padding-top: 7px; + text-align: right; + } +} + +.form-horizontal .has-feedback .fz-form-control-feedback { + right: 15px; +} + +@media (min-width: 768px) { + .form-horizontal .fz-form-group-lg .control-label { + padding-top: 11px; + font-size: 18px; + } +} + +@media (min-width: 768px) { + .form-horizontal .fz-form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} + +.fz-btn { + display: inline-block; + margin-bottom: 0; + padding: 6px 12px; + border: 1px solid transparent; + border-radius: 4px; + background-image: none; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + vertical-align: middle; + white-space: nowrap; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + -ms-touch-action: manipulation; + touch-action: manipulation; +} + +.fz-btn:focus, +.fz-btn:active:focus, +.fz-btn.active:focus, +.fz-btn.focus, +.fz-btn:active.focus, +.fz-btn.active.focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.fz-btn:hover, +.fz-btn:focus, +.fz-btn.focus { + color: #333; + text-decoration: none; +} + +.fz-btn:active, +.fz-btn.active { + outline: 0; + background-image: none; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.fz-btn.disabled, +.fz-btn[disabled], +fieldset[disabled] .fz-btn { + opacity: 0.65; + box-shadow: none; + cursor: not-allowed; + + filter: alpha(opacity=65); +} + +a.fz-btn.disabled, +fieldset[disabled] a.fz-btn { + pointer-events: none; +} + +.fz-btn-default { + border-color: #ccc; + color: #333; + background-color: #fff; +} + +.fz-btn-default:focus, +.fz-btn-default.focus { + border-color: #8c8c8c; + color: #333; + background-color: #e6e6e6; +} + +.fz-btn-default:hover { + border-color: #adadad; + color: #333; + background-color: #e6e6e6; +} + +.fz-btn-default:active, +.fz-btn-default.active, +.open > .dropdown-toggle.fz-btn-default { + border-color: #adadad; + color: #333; + background-color: #e6e6e6; +} + +.fz-btn-default:active:hover, +.fz-btn-default.active:hover, +.open > .dropdown-toggle.fz-btn-default:hover, +.fz-btn-default:active:focus, +.fz-btn-default.active:focus, +.open > .dropdown-toggle.fz-btn-default:focus, +.fz-btn-default:active.focus, +.fz-btn-default.active.focus, +.open > .dropdown-toggle.fz-btn-default.focus { + border-color: #8c8c8c; + color: #333; + background-color: #d4d4d4; +} + +.fz-btn-default:active, +.fz-btn-default.active, +.open > .dropdown-toggle.fz-btn-default { + background-image: none; +} + +.fz-btn-default.disabled:hover, +.fz-btn-default[disabled]:hover, +fieldset[disabled] .fz-btn-default:hover, +.fz-btn-default.disabled:focus, +.fz-btn-default[disabled]:focus, +fieldset[disabled] .fz-btn-default:focus, +.fz-btn-default.disabled.focus, +.fz-btn-default[disabled].focus, +fieldset[disabled] .fz-btn-default.focus { + border-color: #ccc; + background-color: #fff; +} + +.fz-btn-default .badge { + color: #fff; + background-color: #333; +} + +.fz-btn-primary { + border-color: #2e6da4; + color: #fff; + background-color: #337ab7; +} + +.fz-btn-primary:focus, +.fz-btn-primary.focus { + border-color: #122b40; + color: #fff; + background-color: #286090; +} + +.fz-btn-primary:hover { + border-color: #204d74; + color: #fff; + background-color: #286090; +} + +.fz-btn-primary:active, +.fz-btn-primary.active, +.open > .dropdown-toggle.fz-btn-primary { + border-color: #204d74; + color: #fff; + background-color: #286090; +} + +.fz-btn-primary:active:hover, +.fz-btn-primary.active:hover, +.open > .dropdown-toggle.fz-btn-primary:hover, +.fz-btn-primary:active:focus, +.fz-btn-primary.active:focus, +.open > .dropdown-toggle.fz-btn-primary:focus, +.fz-btn-primary:active.focus, +.fz-btn-primary.active.focus, +.open > .dropdown-toggle.fz-btn-primary.focus { + border-color: #122b40; + color: #fff; + background-color: #204d74; +} + +.fz-btn-primary:active, +.fz-btn-primary.active, +.open > .dropdown-toggle.fz-btn-primary { + background-image: none; +} + +.fz-btn-primary.disabled:hover, +.fz-btn-primary[disabled]:hover, +fieldset[disabled] .fz-btn-primary:hover, +.fz-btn-primary.disabled:focus, +.fz-btn-primary[disabled]:focus, +fieldset[disabled] .fz-btn-primary:focus, +.fz-btn-primary.disabled.focus, +.fz-btn-primary[disabled].focus, +fieldset[disabled] .fz-btn-primary.focus { + border-color: #2e6da4; + background-color: #337ab7; +} + +.fz-btn-primary .badge { + color: #337ab7; + background-color: #fff; +} + +.fz-btn-success { + border-color: #4cae4c; + color: #fff; + background-color: #5cb85c; +} + +.fz-btn-success:focus, +.fz-btn-success.focus { + border-color: #255625; + color: #fff; + background-color: #449d44; +} + +.fz-btn-success:hover { + border-color: #398439; + color: #fff; + background-color: #449d44; +} + +.fz-btn-success:active, +.fz-btn-success.active, +.open > .dropdown-toggle.fz-btn-success { + border-color: #398439; + color: #fff; + background-color: #449d44; +} + +.fz-btn-success:active:hover, +.fz-btn-success.active:hover, +.open > .dropdown-toggle.fz-btn-success:hover, +.fz-btn-success:active:focus, +.fz-btn-success.active:focus, +.open > .dropdown-toggle.fz-btn-success:focus, +.fz-btn-success:active.focus, +.fz-btn-success.active.focus, +.open > .dropdown-toggle.fz-btn-success.focus { + border-color: #255625; + color: #fff; + background-color: #398439; +} + +.fz-btn-success:active, +.fz-btn-success.active, +.open > .dropdown-toggle.fz-btn-success { + background-image: none; +} + +.fz-btn-success.disabled:hover, +.fz-btn-success[disabled]:hover, +fieldset[disabled] .fz-btn-success:hover, +.fz-btn-success.disabled:focus, +.fz-btn-success[disabled]:focus, +fieldset[disabled] .fz-btn-success:focus, +.fz-btn-success.disabled.focus, +.fz-btn-success[disabled].focus, +fieldset[disabled] .fz-btn-success.focus { + border-color: #4cae4c; + background-color: #5cb85c; +} + +.fz-btn-success .badge { + color: #5cb85c; + background-color: #fff; +} + +.fz-btn-info { + border-color: #46b8da; + color: #fff; + background-color: #5bc0de; +} + +.fz-btn-info:focus, +.fz-btn-info.focus { + border-color: #1b6d85; + color: #fff; + background-color: #31b0d5; +} + +.fz-btn-info:hover { + border-color: #269abc; + color: #fff; + background-color: #31b0d5; +} + +.fz-btn-info:active, +.fz-btn-info.active, +.open > .dropdown-toggle.fz-btn-info { + border-color: #269abc; + color: #fff; + background-color: #31b0d5; +} + +.fz-btn-info:active:hover, +.fz-btn-info.active:hover, +.open > .dropdown-toggle.fz-btn-info:hover, +.fz-btn-info:active:focus, +.fz-btn-info.active:focus, +.open > .dropdown-toggle.fz-btn-info:focus, +.fz-btn-info:active.focus, +.fz-btn-info.active.focus, +.open > .dropdown-toggle.fz-btn-info.focus { + border-color: #1b6d85; + color: #fff; + background-color: #269abc; +} + +.fz-btn-info:active, +.fz-btn-info.active, +.open > .dropdown-toggle.fz-btn-info { + background-image: none; +} + +.fz-btn-info.disabled:hover, +.fz-btn-info[disabled]:hover, +fieldset[disabled] .fz-btn-info:hover, +.fz-btn-info.disabled:focus, +.fz-btn-info[disabled]:focus, +fieldset[disabled] .fz-btn-info:focus, +.fz-btn-info.disabled.focus, +.fz-btn-info[disabled].focus, +fieldset[disabled] .fz-btn-info.focus { + border-color: #46b8da; + background-color: #5bc0de; +} + +.fz-btn-info .badge { + color: #5bc0de; + background-color: #fff; +} + +.fz-btn-warning { + border-color: #eea236; + color: #fff; + background-color: #f0ad4e; +} + +.fz-btn-warning:focus, +.fz-btn-warning.focus { + border-color: #985f0d; + color: #fff; + background-color: #ec971f; +} + +.fz-btn-warning:hover { + border-color: #d58512; + color: #fff; + background-color: #ec971f; +} + +.fz-btn-warning:active, +.fz-btn-warning.active, +.open > .dropdown-toggle.fz-btn-warning { + border-color: #d58512; + color: #fff; + background-color: #ec971f; +} + +.fz-btn-warning:active:hover, +.fz-btn-warning.active:hover, +.open > .dropdown-toggle.fz-btn-warning:hover, +.fz-btn-warning:active:focus, +.fz-btn-warning.active:focus, +.open > .dropdown-toggle.fz-btn-warning:focus, +.fz-btn-warning:active.focus, +.fz-btn-warning.active.focus, +.open > .dropdown-toggle.fz-btn-warning.focus { + border-color: #985f0d; + color: #fff; + background-color: #d58512; +} + +.fz-btn-warning:active, +.fz-btn-warning.active, +.open > .dropdown-toggle.fz-btn-warning { + background-image: none; +} + +.fz-btn-warning.disabled:hover, +.fz-btn-warning[disabled]:hover, +fieldset[disabled] .fz-btn-warning:hover, +.fz-btn-warning.disabled:focus, +.fz-btn-warning[disabled]:focus, +fieldset[disabled] .fz-btn-warning:focus, +.fz-btn-warning.disabled.focus, +.fz-btn-warning[disabled].focus, +fieldset[disabled] .fz-btn-warning.focus { + border-color: #eea236; + background-color: #f0ad4e; +} + +.fz-btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} + +.fz-btn-danger { + border-color: #d43f3a; + color: #fff; + background-color: #d9534f; +} + +.fz-btn-danger:focus, +.fz-btn-danger.focus { + border-color: #761c19; + color: #fff; + background-color: #c9302c; +} + +.fz-btn-danger:hover { + border-color: #ac2925; + color: #fff; + background-color: #c9302c; +} + +.fz-btn-danger:active, +.fz-btn-danger.active, +.open > .dropdown-toggle.fz-btn-danger { + border-color: #ac2925; + color: #fff; + background-color: #c9302c; +} + +.fz-btn-danger:active:hover, +.fz-btn-danger.active:hover, +.open > .dropdown-toggle.fz-btn-danger:hover, +.fz-btn-danger:active:focus, +.fz-btn-danger.active:focus, +.open > .dropdown-toggle.fz-btn-danger:focus, +.fz-btn-danger:active.focus, +.fz-btn-danger.active.focus, +.open > .dropdown-toggle.fz-btn-danger.focus { + border-color: #761c19; + color: #fff; + background-color: #ac2925; +} + +.fz-btn-danger:active, +.fz-btn-danger.active, +.open > .dropdown-toggle.fz-btn-danger { + background-image: none; +} + +.fz-btn-danger.disabled:hover, +.fz-btn-danger[disabled]:hover, +fieldset[disabled] .fz-btn-danger:hover, +.fz-btn-danger.disabled:focus, +.fz-btn-danger[disabled]:focus, +fieldset[disabled] .fz-btn-danger:focus, +.fz-btn-danger.disabled.focus, +.fz-btn-danger[disabled].focus, +fieldset[disabled] .fz-btn-danger.focus { + border-color: #d43f3a; + background-color: #d9534f; +} + +.fz-btn-danger .badge { + color: #d9534f; + background-color: #fff; +} + +.fz-btn-link { + border-radius: 0; + color: #337ab7; + font-weight: normal; +} + +.fz-btn-link, +.fz-btn-link:active, +.fz-btn-link.active, +.fz-btn-link[disabled], +fieldset[disabled] .fz-btn-link { + background-color: transparent; + box-shadow: none; +} + +.fz-btn-link, +.fz-btn-link:hover, +.fz-btn-link:focus, +.fz-btn-link:active { + border-color: transparent; +} + +.fz-btn-link:hover, +.fz-btn-link:focus { + color: #23527c; + background-color: transparent; + text-decoration: underline; +} + +.fz-btn-link[disabled]:hover, +fieldset[disabled] .fz-btn-link:hover, +.fz-btn-link[disabled]:focus, +fieldset[disabled] .fz-btn-link:focus { + color: #777; + text-decoration: none; +} + +.fz-btn-lg, +.fz-btn-group-lg > .fz-btn { + padding: 10px 16px; + border-radius: 6px; + font-size: 18px; + line-height: 1.3333333; +} + +.fz-btn-sm, +.fz-btn-group-sm > .fz-btn { + padding: 5px 10px; + border-radius: 3px; + font-size: 12px; + line-height: 1.5; +} + +.fz-btn-xs, +.fz-btn-group-xs > .fz-btn { + padding: 1px 5px; + border-radius: 3px; + font-size: 12px; + line-height: 1.5; +} + +.fz-btn-block { + display: block; + width: 100%; +} + +.fz-btn-block + .fz-btn-block { + margin-top: 5px; +} + +input[type="submit"].fz-btn-block, +input[type="reset"].fz-btn-block, +input[type="button"].fz-btn-block { + width: 100%; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + vertical-align: middle; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + display: none; + float: left; + position: absolute; + z-index: 1000; + top: 40px; + left: 0; + min-width: 160px; + /* fallback if 100% not supported */ + min-width: 100%; + margin: 2px 0 0; + padding: 5px 0; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + background-color: #fff; + background-clip: padding-box; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + font-size: 14px; + text-align: left; + list-style: none; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + overflow: hidden; + height: 1px; + margin: 9px 0; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + clear: both; + padding: 3px 20px; + color: #333; + font-weight: normal; + line-height: 1.42857143; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + background-color: #f5f5f5; + text-decoration: none; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + outline: 0; + color: #fff; + background-color: #337ab7; + text-decoration: none; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + background-color: transparent; + background-image: none; + text-decoration: none; + cursor: not-allowed; + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + color: #777; + font-size: 12px; + line-height: 1.42857143; + white-space: nowrap; +} + +.dropdown-backdrop { + position: fixed; + z-index: 990; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} + +.fz-btn-group, +.fz-btn-group-vertical { + display: inline-block; + position: relative; + vertical-align: middle; +} + +.fz-btn-group > .fz-btn, +.fz-btn-group-vertical > .fz-btn { + float: left; + position: relative; +} + +.fz-btn-group > .fz-btn:hover, +.fz-btn-group-vertical > .fz-btn:hover, +.fz-btn-group > .fz-btn:focus, +.fz-btn-group-vertical > .fz-btn:focus, +.fz-btn-group > .fz-btn:active, +.fz-btn-group-vertical > .fz-btn:active, +.fz-btn-group > .fz-btn.active, +.fz-btn-group-vertical > .fz-btn.active { + z-index: 2; +} + +.fz-btn-group .fz-btn + .fz-btn, +.fz-btn-group .fz-btn + .fz-btn-group, +.fz-btn-group .fz-btn-group + .fz-btn, +.fz-btn-group .fz-btn-group + .fz-btn-group { + margin-left: -1px; +} + +.fz-btn-toolbar { + margin-left: -5px; +} + +.fz-btn-toolbar .fz-btn, +.fz-btn-toolbar .fz-btn-group, +.fz-btn-toolbar .fz-input-group { + float: left; +} + +.fz-btn-toolbar > .fz-btn, +.fz-btn-toolbar > .fz-btn-group, +.fz-btn-toolbar > .fz-input-group { + margin-left: 5px; +} + +.fz-btn-group > .fz-btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.fz-btn-group > .fz-btn:first-child { + margin-left: 0; +} + +.fz-btn-group > .fz-btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.fz-btn-group > .fz-btn:last-child:not(:first-child), +.fz-btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.fz-btn-group > .fz-btn-group { + float: left; +} + +.fz-btn-group > .fz-btn-group:not(:first-child):not(:last-child) > .fz-btn { + border-radius: 0; +} + +.fz-btn-group > .fz-btn-group:first-child:not(:last-child) > .fz-btn:last-child, +.fz-btn-group > .fz-btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.fz-btn-group > .fz-btn-group:last-child:not(:first-child) > .fz-btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.fz-btn-group .dropdown-toggle:active, +.fz-btn-group.open .dropdown-toggle { + outline: 0; +} + +.fz-btn-group > .fz-btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.fz-btn-group > .fz-btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.fz-btn-group.open .dropdown-toggle { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.fz-btn-group.open .dropdown-toggle.fz-btn-link { + box-shadow: none; +} + +.fz-btn .caret { + margin-left: 0; +} + +.fz-btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .fz-btn-lg .caret { + border-width: 0 5px 5px; +} + +.fz-btn-group-vertical > .fz-btn, +.fz-btn-group-vertical > .fz-btn-group, +.fz-btn-group-vertical > .fz-btn-group > .fz-btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.fz-btn-group-vertical > .fz-btn-group > .fz-btn { + float: none; +} + +.fz-btn-group-vertical > .fz-btn + .fz-btn, +.fz-btn-group-vertical > .fz-btn + .fz-btn-group, +.fz-btn-group-vertical > .fz-btn-group + .fz-btn, +.fz-btn-group-vertical > .fz-btn-group + .fz-btn-group { + margin-top: -1px; + margin-left: 0; +} + +.fz-btn-group-vertical > .fz-btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.fz-btn-group-vertical > .fz-btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.fz-btn-group-vertical > .fz-btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.fz-btn-group-vertical > .fz-btn-group:not(:first-child):not(:last-child) > .fz-btn { + border-radius: 0; +} + +.fz-btn-group-vertical > .fz-btn-group:first-child:not(:last-child) > .fz-btn:last-child, +.fz-btn-group-vertical > .fz-btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.fz-btn-group-vertical > .fz-btn-group:last-child:not(:first-child) > .fz-btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.fz-btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} + +.fz-btn-group-justified > .fz-btn, +.fz-btn-group-justified > .fz-btn-group { + display: table-cell; + float: none; + width: 1%; +} + +.fz-btn-group-justified > .fz-btn-group .fz-btn { + width: 100%; +} + +.fz-btn-group-justified > .fz-btn-group .dropdown-menu { + left: auto; +} + +[data-toggle="buttons"] > .fz-btn input[type="radio"], +[data-toggle="buttons"] > .fz-btn-group > .fz-btn input[type="radio"], +[data-toggle="buttons"] > .fz-btn input[type="checkbox"], +[data-toggle="buttons"] > .fz-btn-group > .fz-btn input[type="checkbox"] { + clip: rect(0, 0, 0, 0); + position: absolute; + pointer-events: none; +} + +.fz-input-group { + display: table; + position: relative; + border-collapse: separate; +} + +.fz-input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} + +.fz-input-group .fz-form-control { + float: left; + position: relative; + z-index: 2; + width: 100%; + margin-bottom: 0; +} + +.fz-input-group .fz-form-control:focus { + z-index: 3; +} + +.fz-input-group-lg > .fz-form-control, +.fz-input-group-lg > .fz-input-group-addon, +.fz-input-group-lg > .fz-input-group-btn > .fz-btn { + height: 46px; + padding: 10px 16px; + border-radius: 6px; + font-size: 18px; + line-height: 1.3333333; +} + +select.fz-input-group-lg > .fz-form-control, +select.fz-input-group-lg > .fz-input-group-addon, +select.fz-input-group-lg > .fz-input-group-btn > .fz-btn { + height: 46px; + line-height: 46px; +} + +textarea.fz-input-group-lg > .fz-form-control, +textarea.fz-input-group-lg > .fz-input-group-addon, +textarea.fz-input-group-lg > .fz-input-group-btn > .fz-btn, +select[multiple].fz-input-group-lg > .fz-form-control, +select[multiple].fz-input-group-lg > .fz-input-group-addon, +select[multiple].fz-input-group-lg > .fz-input-group-btn > .fz-btn { + height: auto; +} + +.fz-input-group-sm > .fz-form-control, +.fz-input-group-sm > .fz-input-group-addon, +.fz-input-group-sm > .fz-input-group-btn > .fz-btn { + height: 30px; + padding: 5px 10px; + border-radius: 3px; + font-size: 12px; + line-height: 1.5; +} + +select.fz-input-group-sm > .fz-form-control, +select.fz-input-group-sm > .fz-input-group-addon, +select.fz-input-group-sm > .fz-input-group-btn > .fz-btn { + height: 30px; + line-height: 30px; +} + +textarea.fz-input-group-sm > .fz-form-control, +textarea.fz-input-group-sm > .fz-input-group-addon, +textarea.fz-input-group-sm > .fz-input-group-btn > .fz-btn, +select[multiple].fz-input-group-sm > .fz-form-control, +select[multiple].fz-input-group-sm > .fz-input-group-addon, +select[multiple].fz-input-group-sm > .fz-input-group-btn > .fz-btn { + height: auto; +} + +.fz-input-group-addon, +.fz-input-group-btn, +.fz-input-group .fz-form-control { + display: table-cell; +} + +.fz-input-group-addon:not(:first-child):not(:last-child), +.fz-input-group-btn:not(:first-child):not(:last-child), +.fz-input-group .fz-form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.fz-input-group-addon, +.fz-input-group-btn { + width: 1%; + vertical-align: top; + white-space: nowrap; +} + +.fz-input-group-addon { + padding: 6px 12px; + border: 1px solid #ccc; + border-radius: 4px; + color: #555; + background-color: #eee; + font-size: 14px; + font-weight: normal; + line-height: 1; + text-align: center; +} + +.fz-input-group-addon.input-sm { + padding: 5px 10px; + border-radius: 3px; + font-size: 12px; +} + +.fz-input-group-addon.input-lg { + padding: 10px 16px; + border-radius: 6px; + font-size: 18px; +} + +.fz-input-group-addon input[type="radio"], +.fz-input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.fz-input-group .fz-form-control:first-child, +.fz-input-group-addon:first-child, +.fz-input-group-btn:first-child > .fz-btn, +.fz-input-group-btn:first-child > .fz-btn-group > .fz-btn, +.fz-input-group-btn:first-child > .dropdown-toggle, +.fz-input-group-btn:last-child > .fz-btn:not(:last-child):not(.dropdown-toggle), +.fz-input-group-btn:last-child > .fz-btn-group:not(:last-child) > .fz-btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.fz-input-group-addon:first-child { + border-right: 0; +} + +.fz-input-group .fz-form-control:last-child, +.fz-input-group-addon:last-child, +.fz-input-group-btn:last-child > .fz-btn, +.fz-input-group-btn:last-child > .fz-btn-group > .fz-btn, +.fz-input-group-btn:last-child > .dropdown-toggle, +.fz-input-group-btn:first-child > .fz-btn:not(:first-child), +.fz-input-group-btn:first-child > .fz-btn-group:not(:first-child) > .fz-btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.fz-input-group-addon:last-child { + border-left: 0; +} + +.fz-input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} + +.fz-input-group-btn > .fz-btn { + position: relative; +} + +.fz-input-group-btn > .fz-btn + .fz-btn { + margin-left: -1px; +} + +.fz-input-group-btn > .fz-btn:hover, +.fz-input-group-btn > .fz-btn:focus, +.fz-input-group-btn > .fz-btn:active { + z-index: 2; +} + +.fz-input-group-btn:first-child > .fz-btn, +.fz-input-group-btn:first-child > .fz-btn-group { + margin-right: -1px; +} + +.fz-input-group-btn:last-child > .fz-btn, +.fz-input-group-btn:last-child > .fz-btn-group { + z-index: 2; + margin-left: -1px; +} + +.col-left, +.col-right { + display: inline-block; + float: left; + position: relative; + width: -webkit-calc( 50% - 34px ); + width: calc( 50% - 34px ); + min-height: 36px; +} + +.col-left::after { + position: absolute; + top: calc( 50% - 18px ); + top: -webkit-calc( 50% - 18px ); + left: -webkit-calc( 100% + 5px ); + left: calc( 100% + 5px ); + left: -webkit-calc( 100% + 8px ); + width: 36px; + height: 36px; + color: #ccc; + font-family: "dashicons"; + font-size: 36px; + line-height: 36px; + content: "\f503"; +} + +.col-left.fields::after { + content: "\f229"; +} + +.col-left { + padding: 8px 8px 8px 0; + border-right: 1px solid #ccc; +} + +.col-right { + margin-left: 50px; + padding: 8px 0 8px 8px; + border-left: 1px solid #ccc; +} + +.label_description, +.form_item { + margin-top: 8px; + margin-bottom: 8px; +} + +.label_description { + border-bottom: 1px solid #efefef; +} + +.form_item { + padding-top: 12px; +} + +a.dropdown-item { + display: block; + padding: 5px 8px; + color: #f35b3f; + text-align: center; + text-decoration: none; +} + +a:hover.dropdown-item, +a:focus.dropdown-item { + color: #f89c8b; + background-color: #f8f8f8; +} + +.fz-btn.fz-btn-add-fields { + background-color: #099bb2; +} + +.fz-btn.fz-btn-add-fields:hover { + background-color: #14b2cc; +} + +.fz-btn.fz-btn-remove-fields { + color: #f35b3f; +} + +.fz-btn.fz-btn-remove-fields:hover { + color: #f89c8b; +} + +.fz-btn > span.dashicons { + vertical-align: middle; +} + +.f1 { + padding: 25px; + border-radius: 4px; + background: #fff; +} + +.f1 h3 { + margin-top: 0; + margin-bottom: 5px; + text-transform: uppercase; +} + +.f1-steps { + overflow: hidden; + position: relative; + margin-top: 20px; +} + +.f1-progress { + position: absolute; + top: 24px; + left: 0; + width: 100%; + height: 1px; + background: #ddd; +} + +.f1-progress-line { + position: absolute; + top: 0; + left: 0; + height: 1px; + background: #f35b3f; +} + +.f1-step { + display: inline-block; + position: relative; + width: calc(100%/3 - 10px); + width: -webkit-calc(100%/3 - 10px); + text-align: center; +} + +.f1-step-icon { + display: inline-block; + width: 40px; + height: 40px; + margin-top: 4px; + border-radius: 50%; + color: #fff; + background: #ddd; + font-size: 16px; + line-height: 40px; +} + +.f1-step-icon span { + display: inline-block; + width: 18px; + height: 18px; + padding: 11px; + font-size: 18px; +} + +.f1-step.activated .f1-step-icon span { + width: 20px; + height: 20px; + margin-top: -2px; + margin-left: -1px; + padding: 12px; + font-size: 20px; +} + +.f1-step.active .f1-step-icon span { + width: 24px; + height: 24px; + padding: 12px; + font-size: 24px; +} + +.f1-step.activated .f1-step-icon { + border: 1px solid #f35b3f; + color: #f35b3f; + background: #fff; + line-height: 48px; +} + +.f1-step.active .f1-step-icon { + width: 48px; + height: 48px; + margin-top: 0; + background: #f35b3f; + font-size: 22px; + line-height: 48px; +} + +.f1-step p { + color: #ccc; +} + +.f1-step.activated p { + color: #f35b3f; +} + +.f1-step.active p { + color: #f35b3f; +} + +.f1 fieldset { + display: none; + text-align: left; +} + +.f1-buttons { + text-align: right; +} + +.f1 .input-error { + border-color: #f35b3f; +} + +input[type="password"].fz-form-control, +textarea.fz-form-control { + width: 100%; + height: 44px; + margin: 0; + padding: 0 20px; + border: 1px solid #ddd; + border-radius: 4px; + color: #888; + background: #fff; + box-shadow: none; + font-family: "Roboto", sans-serif; + font-size: 16px; + font-weight: 300; + line-height: 44px; + vertical-align: middle; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +textarea.fz-form-control { + height: 90px; + padding-top: 8px; + padding-bottom: 8px; + line-height: 30px; +} + +textarea.fz-form-control:focus { + border: 1px solid #ccc; + outline: 0; + background: #fff; + box-shadow: none; +} + +textarea.fz-form-control:-moz-placeholder { + color: #888; +} + +textarea.fz-form-control:-ms-input-placeholder { + color: #888; +} + +textarea.fz-form-control::-webkit-input-placeholder { + color: #888; +} + +button.fz-btn { + min-width: 105px; + height: 44px; + margin: 0; + padding: 0 20px; + border: 0; + border-radius: 4px; + color: #fff; + box-shadow: none; + text-shadow: none; + font-family: "Roboto", sans-serif; + font-size: 16px; + font-weight: 300; + line-height: 40px; + vertical-align: middle; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +button.fz-btn:hover { + opacity: 0.6; + color: #fff; +} + +button.fz-btn:active { + outline: 0; + opacity: 0.6; + color: #fff; + box-shadow: none; +} + +button.fz-btn:focus, +button.fz-btn:active:focus, +button.fz-btn.active:focus { + outline: 0; + opacity: 0.6; + color: #fff; +} + +button.fz-btn.fz-btn-next, +button.fz-btn.fz-btn-next:focus, +button.fz-btn.fz-btn-next:active:focus, +button.fz-btn.fz-btn-next.active:focus { + background: #f35b3f; +} + +button.fz-btn.fz-btn-submit, +button.fz-btn.fz-btn-submit:focus, +button.fz-btn.fz-btn-submit:active:focus, +button.fz-btn.fz-btn-submit.active:focus { + background: #f35b3f; +} + +button.fz-btn.fz-btn-previous, +button.fz-btn.fz-btn-previous:focus, +button.fz-btn.fz-btn-previous:active:focus, +button.fz-btn.fz-btn-previous.active:focus { + background: #bbb; +} + +button.fz-btn.fz-btn-submit.fz-btn-activate, +button.fz-btn.fz-btn-submit.fz-btn-activate:focus, +button.fz-btn.fz-btn-submit.fz-btn-activate:active:focus, +button.fz-btn.fz-btn-submit.fz-btn-activate.active:focus { + background: #8ce196; +} + +/* +Toggle switches +*/ +.feedzy-toggle { + visibility: hidden; + position: absolute; + margin-left: -9999px; +} + +.feedzy-toggle + label { + display: block; + position: relative; + outline: none; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +input.feedzy-toggle-round + label { + padding: 2px; + background-color: #ddd; +} + +input.feedzy-toggle-round + label:before, +input.feedzy-toggle-round + label:after { + display: block; + position: absolute; + top: 1px; + bottom: 1px; + left: 1px; + content: ""; +} + +input.feedzy-toggle-round + label:before { + right: 1px; + border-radius: 15px; + background-color: #f1f1f1; + -webkit-transition: background 0.4s; + transition: background 0.4s; +} + +input.feedzy-toggle-round + label:after { + width: 28px; + border-radius: 100%; + background-color: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + -webkit-transition: margin 0.4s; + transition: margin 0.4s; +} + +input.feedzy-toggle-round:checked + label:before { + background-color: #8ce196; +} + +input.feedzy-toggle-round:checked + label:after { + margin-left: 34px; +} + +/* +!!! CAUTION -- Hides Core WordPress Post Elements +*/ + +.post-type-feedzy_imports #poststuff #post-body.columns-2 { + margin-right: 0; +} + +.post-type-feedzy_imports div#side-sortables { + display: none; +} + +.post-type-feedzy_imports #titlediv .inside { + display: none; +} + +.post-type-feedzy_imports div#advanced-sortables { + display: none; +} + +.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate, +.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate:focus, +.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate:active:focus, +.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate.active:focus { + background-color: #62c370; +} diff --git a/dist/feedzy-rss-feed.php b/dist/feedzy-rss-feed.php new file mode 100644 index 00000000..ff37bf52 --- /dev/null +++ b/dist/feedzy-rss-feed.php @@ -0,0 +1,156 @@ +run(); + $vendor_file = FEEDZY_ABSPATH . '/vendor/autoload_52.php'; + if ( is_readable( $vendor_file ) ) { + require_once $vendor_file; + } + + add_filter( 'themeisle_sdk_products', 'feedzy_register_sdk', 10, 1 ); + add_filter( 'pirate_parrot_log', 'feedzy_register_parrot', 10, 1 ); + +} + +/** + * Registers with the SDK + * + * @since 1.0.0 + */ +function feedzy_register_sdk( $products ) { + $products[] = FEEDZY_BASEFILE; + return $products; +} + +/** + * Registers with the parrot plugin + * + * @since 1.0.0 + */ +function feedzy_register_parrot( $plugins ) { + $plugins[] = FEEDZY_NAME; + return $plugins; +} + +spl_autoload_register( 'feedzy_rss_feeds_autoload' ); +run_feedzy_rss_feeds(); diff --git a/dist/form/form.php b/dist/form/form.php new file mode 100644 index 00000000..59c198cb --- /dev/null +++ b/dist/form/form.php @@ -0,0 +1,135 @@ + + + + + + + + + + + +
+ $section ) { + $output .= '
'; + $output .= '
' . $section['title'] . '
'; + if ( isset( $section['description'] ) ) { + $output .= '

' . $section['description'] . '

'; + } + if ( ! empty( $section['elements'] ) ) { + foreach ( $section['elements'] as $name => $props ) { + $element = ''; + $disabled = ''; + $badge = ''; + if ( isset( $props['disabled'] ) && $props['disabled'] ) { + $disabled = 'disabled="true"'; + $badge = '' . __( 'Premium', 'feedzy-rss-feeds' ) . ''; + } + switch ( $props['type'] ) { + case 'select': + $element = ''; + break; + case 'radio': + foreach ( $props['opts'] as $opt => $values ) { + $checked = ''; + if ( $props['value'] == $values['value'] ) { + $checked = 'checked="checked"'; + } + $element .= ''; + } + break; + case 'checkbox': + foreach ( $props['opts'] as $opt => $values ) { + $checked = ''; + if ( $props['value'] == $values['value'] ) { + $checked = 'checked="checked"'; + } + $element .= ' ' . $values['label']; + } + break; + case 'file': + $element = ' + + + '; + break; + default: + $element = ''; + break; + } // End switch(). + $output .= ' +
+
+ +
+
+ ' . $element . ' +
+
+
+ '; + } // End foreach(). + } // End if(). + $output .= '
'; + } // End foreach(). + } // End if(). + echo $output; + ?> +
+ + + diff --git a/dist/img/features-affiliate-ready.jpg b/dist/img/features-affiliate-ready.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7ff9af61f53c48cddb6082716b0acd06321faf0 GIT binary patch literal 20904 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 literal 0 HcmV?d00001 diff --git a/dist/img/features-feed-to-post.jpg b/dist/img/features-feed-to-post.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db87d2c26c0fe04c79270e97cd02372f7c22579e GIT binary patch literal 21010 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 literal 0 HcmV?d00001 diff --git a/dist/img/features-templates.jpg b/dist/img/features-templates.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01056addbdaea76c3e2cfa68ba73110136e8eb30 GIT binary patch literal 19809 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 literal 0 HcmV?d00001 diff --git a/dist/img/feedzy-default-template.jpg b/dist/img/feedzy-default-template.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94dcfc930287b453e1fd810a8999dc0c1e0480aa GIT binary patch literal 1496 zcmex=xe%b_*WYXbtJgec?9zH!!H~+euK{GTIGV9QlNgzp!NxKP06DLGuAC@U z%it9@VO4W5aZO_nN^7`i=#VpWfr(#&JbnY1K?XdEb=xB2y@FZw4&$VE3@3A9*@a$- z7{oRd>pkERU%?JE!5*lLiIt6$i;a;Lr~wEVnHiW^ScTXGg+(S^5*1Sn3Qd`^__BhM znrUEI^W@Eslno3WgF_YxI3*@ELPLPjp5fo7{B<*H{C!jEjrQ~B1ePZqV`PY6x{}tI zDC6xvN#VE846Cr`^S7{mIe2Ni&EEz3OXjCn8(%Y6FvHN%)gwXjOPA)d$jp8B)qKBR z*6)0|rvF*^!?#^}Zz2vTa5F^pT+mVO%>3jcpE;S`>(1wI4g1hcTgEqa=kvFWwFV_? z&)a8kzieKbSNYo^-bYru`1~!VUkNXx=ha;h|0x7@V~x~%-K7rM6t-@cHXvhUTwWtv%5Lxq{3o$rT@>f(U3xvmXHOo!|P-OlKHiE?e_v3XVHv1m^EESbr^MkUh&@2h*3%6`Jb zNUlEpQ82aoW$%0aBd$~5FEih>Ur;Q3Utg!koqHctCp68?xfV|Ee*|dYk(U*DH%M-rbZ-6c6fLygQ|`CDu!=@9o5Af~EMS%O|S+dO7{bmuv0^ z*L}Jb!nVEJTX9N)LL|4|szqxapOXlU)*=v-1QLQg)B|fj?FZ%|SwThyW(Hk`Pt!uNRcEsoj>m*AY zGwdlWEc8**J$lqIzUNCv(3D3&@c5&x;_K_{&1hTLshiQ-sX1$>ZWc>A6ES(> z$<%3)Ks4DX%_pYq!HE-oKrOwKws>8f2m;fO%N?tLfXa`@H%{FI*Z-&R{ipvo0mp7l AiU0rr literal 0 HcmV?d00001 diff --git a/dist/img/feedzy-default.jpg b/dist/img/feedzy-default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..742c40de8b1cf3405e6a4494837fe8e51aa7ce6e GIT binary patch literal 6849 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 B8RY-~ literal 0 HcmV?d00001 diff --git a/dist/img/feedzy-style2-template.jpg b/dist/img/feedzy-style2-template.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b3c621b1b067450b0289d5076994ce8afeda42f9 GIT binary patch literal 2341 zcmbtVXIK;I7M>K67(*nXgs=*sByQ*+MNm{M1R|((r4!0h6{JY9K>)c~ln|swR9vcv zAShfgfQq0rm%tK=2uhWvmm;WlAv=M+d;jc@`#krZIp>-0J7wNEbH3*Y2ZZkd3A&ku z832I*00g`M;aea9fWt%pH5>s41t|uHiy=`61QLNjp;6mFpwMWH2%r`h$6#01N>| zLQujX0JXKhUYQw?-1;ggU9I8!?*%JRo*-aodUu2M{8UjB}tD1du;Dj{^*lo;g@GQ|Ng=D6j0(H zPv(_q^tcVzFC6^)eBh^U=7WjywFdJR0*%5MAD3#T4UZ6L8MQ`{R+4xG7yBTW&R}q| zvkP0EQeJJ3?`6%kKLHc!N&pZT3<`szp|GuD!J#lQKuQ`SiO~0zkkRwO;T6dgGg~`* zZzUZA)1!YD5P|{Nq3jRL1AW)p-$eWA-&*SS^VUr;!#8VGjtzL1BAv;Pc_U#RrVpkw znJx$3_w*YAtdaVE)_T5l>U&sro0?oLv3GHdO8iv=!OXNkV2#J)`7-mq4-C?Mj5hRt z7&1&qDEgMRi$@d!5z3r67x&KG`Jbmu`#YbgH&292oJabftsszB&j~b-&yN<_6o{h} zi|xuAy^k>_8oR!?v|ZwUd2yJdKiRCg$9&?hqg0Y7UR*tNI6}5gtNQXUzZBp|N&@9J zTIb`0S1j#Zf~ptR<;6zOECzQn&@myysCDH=wf63_ZI=sjy=)ao@uN6ywtH9J5q}x4 znVr$;nX5ZGZxkv=0tO8}N_poMvm83AY2*%(i`7xZDfY6>PgI^`lSakyQjFPem)75` zHM=)hS9kM+ehlrlVZThr=O!GQakAD5{>bJH*L)3JE0NrL5z5ub!`NP3B<;RAkWw@2 zLL);{KdmqB>*tP&U;d)gqI0CO`=j4=>nMSn5a=$?g4W53jeRbY?(JjE%%WnwlYZVO zXH>ps6)-aU$kpWZ!`meT>rAH$I|9K9SX*-wcs!XejQSYR=IpjKP+R6z&YhB>&Z0Cz9P*kBNJ|u;(mAF2I ziddi^QR4*EV}`=ta2sIaQ6IsH3Mo!%&ys$5%^{&|8Q#Oi;>Srjs;A!5>?0NQ zjmLhl#>}BlA@s}N9{3ECx6HI^*d_f%e$vg2_Pe7RO#bbN`+XtsE=((`&*NlG6D6|Y zk#p+5OAr>v{Z)06=b%r?zpGWbzu?$NaY*q7KdInO%dU<*Y`cP<&-zy(qgIJd(aL5U z&*j9nmgutWhNSWh%Pd4eR4oI$dqd9vbqk7GD0qO3o6jb7k1cFF^&tQwZmiZH_H{FDRv0b1_Me8=Tg^$91{&>GbtoQJqyh-ns9^D_<7}d{rIGeTp_0^TH^_&j>1MxSn(pL57v{r3TD7FBF zo#aE=6W!7D)I&bc59UY}5o>z`-rZ?GMy?#hO2ZWC`|&Yz0{8i%3N;&x8Z@ike5W`m z$j9~>xwY-ijMQXJ21l~(v?CBx209fQI76!Ld6({H(d^GgO(%ZSOr4YKo9^&fKju== z9eqxr+{>{l;9{K+m~8?NngTdkA#iY>Zp{ag#z7<$O+BG_9g_CeEQ3G}0;xw;^Ci7h zTn=l~nl7f?@~5Cyyvm5L+h7z+n{lGp$IdKGoq;5m>>NC)E|jR4g=3kdhR4mvQY=$q zvPOb0jgLu+@=iKJ)wWA!m_^mzJBq0-Y#=>9cRa?Fuv13T zJcsD1r<#J@u3*k(n=++{1)ZMuBx&fN#EK79H5{m>qbLfkAQSmAS6BGiN%_ z@{#N@)SA6uN8+q#!G&)M=k4PWwdHI3EY-Q%X#128|8v$oZo1;Fcv4?;d+e>y*uXN* znKCJte$JS{(z|il%!zG$$@8yTF6CP@-6K?m`^(eMTe6o;R<@hI`s1gA-OFto7S7su z{^8jx7pmHRXXyLrIvhPzJ-P0Bw9@2`C6WQ}`s5aW;BjbmJnPyTd3l$U4ZC92npTNB rYYzWC;`4oT#q#d=5B}edtjmv&W-yVvQC_|r=tTxkS3j3^P6 \ No newline at end of file diff --git a/dist/includes/abstract/feedzy-rss-feeds-admin-abstract.php b/dist/includes/abstract/feedzy-rss-feeds-admin-abstract.php new file mode 100644 index 00000000..6b287229 --- /dev/null +++ b/dist/includes/abstract/feedzy-rss-feeds-admin-abstract.php @@ -0,0 +1,1098 @@ + + * @abstract + */ +abstract class Feedzy_Rss_Feeds_Admin_Abstract { + + /** + * Defines the default image to use on RSS Feeds + * + * @since 3.0.0 + * @access public + * + * @param string $imageSrc The image source, currently not used. + * + * @return string + */ + public function feedzy_define_default_image( $imageSrc ) { + $defaultImg = FEEDZY_ABSURL . '/img/feedzy-default.jpg'; + + return apply_filters( 'feedzy_define_default_image_filter', $defaultImg ); + } + + /** + * Defines the default error notice + * + * Logs error to the log file + * Returns the error message + * + * @since 3.0.0 + * @access public + * + * @param object $error The error Object. + * @param string $feedURL The feed URL. + * + * @return string + */ + public function feedzy_default_error_notice( $error, $feedURL ) { + error_log( 'Feedzy RSS Feeds - related feed: ' . print_r( $feedURL, true ) . ' - Error message: ' . $this->feedzy_array_obj_string( $error ) ); + + return '

feedzy_array_obj_string( $error ) ) . '">

' . __( 'Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy-rss-feeds' ) . '

'; + } + + /** + * Converts an object to string + * + * @since 3.0.0 + * @access public + * + * @param object $error The error Object. + * + * @return string + */ + public function feedzy_array_obj_string( $error ) { + if ( is_array( $error ) || is_object( $error ) ) { + return print_r( $error, true ); + } else { + return $error; + } + } + + /** + * Padding ratio based on image size + * + * @since 3.0.0 + * @access public + * + * @param string $itemAttr The item attribute. + * @param array $sizes An array with the current sizes. + * + * @return string + */ + public function feedzy_add_item_padding( $itemAttr, $sizes ) { + $paddinTop = number_format( ( 15 / 150 ) * $sizes['height'], 0 ); + $paddinBottom = number_format( ( 25 / 150 ) * $sizes['height'], 0 ); + $stylePadding = ' style="padding: ' . $paddinTop . 'px 0 ' . $paddinBottom . 'px"'; + + return $itemAttr . $stylePadding; + } + + /** + * Appends classes to the feed item + * + * @since 3.0.0 + * @access public + * + * @param string $itemAttr The item attribute. + * @param string $sizes The item sizes. + * @param string $item The feed item. + * @param string $feedURL The feed URL. + * @param string $sc The short code attributes. + * + * @return string + */ + public function feedzy_classes_item( $itemAttr = '', $sizes = '', $item = '', $feedURL = '', $sc = '' ) { + $classes = array( 'rss_item' ); + $classes = apply_filters( 'feedzy_add_classes_item', $classes, $sc ); + $classes = ' class="' . implode( ' ', $classes ) . '"'; + + return $itemAttr . $classes; + } + + /** + * Filter feed description input + * + * @since 3.0.0 + * @access public + * + * @param string $description The feed description. + * @param string $content The feed description. + * @param string $feedURL The feed URL. + * + * @return string + */ + public function feedzy_summary_input_filter( $description, $content, $feedURL ) { + $description = trim( strip_tags( $description ) ); + $description = trim( chop( $description, '[…]' ) ); + + return $description; + } + + /** + * Check title for keywords + * + * @since 3.0.0 + * @access public + * + * @param boolean $continue A boolean to stop the script. + * @param array $sc The shortcode attributes. + * @param object $item The feed item. + * @param string $feedURL The feed URL. + * + * @return boolean + */ + public function feedzy_feed_item_keywords_title( $continue, $sc, $item, $feedURL ) { + if ( feedzy_is_new() && ! feedzy_is_pro() ) { + return true; + } + $keywords_title = $sc['keywords_title']; + if ( ! empty( $keywords_title ) ) { + $continue = false; + foreach ( $keywords_title as $keyword ) { + if ( strpos( $item->get_title(), $keyword ) !== false ) { + $continue = true; + } + } + } + + return $continue; + } + + /** + * Include cover picture (medium) to rss feed enclosure + * and media:content + * + * @since 3.0.0 + * @access public + */ + public function feedzy_include_thumbnail_rss() { + global $post; + if ( has_post_thumbnail( $post->ID ) ) { + $postThumbnailId = get_post_thumbnail_id( $post->ID ); + $attachmentMeta = wp_get_attachment_metadata( $postThumbnailId ); + $imageUrl = wp_get_attachment_image_src( $postThumbnailId, 'medium' ); + echo ''; + echo ''; + + } + } + + /** + * Utility method to check if source is a URL's string + * or if is a post type slug. + * + * @since 3.0.12 + * @access public + * + * @param string $src The feeds source string. + * + * @return bool|string + */ + public function process_feed_source( $src ) { + $regex = '((https?|ftp)\:\/\/)?'; // Contains Protocol + $regex .= '([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?'; // Uses User and Pass + $regex .= '([a-z0-9-.]*)\.([a-z]{2,3})'; // Has Host or IP + $regex .= '(\:[0-9]{2,5})?'; // Uses Port + $regex .= '(\/([a-z0-9+\$_-]\.?)+)*\/?'; // Has Path + $regex .= '(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?'; // Has GET Query + $regex .= '(#[a-z_.-][a-z0-9+\$_.-]*)?'; // Uses Anchor + if ( preg_match( "/^$regex$/", $src ) ) { + // If it matches Regex ( it's not a slug ) so return the sources. + return $src; + } else { + $src = trim( $src ); + if ( $post = get_page_by_path( $src, OBJECT, 'feedzy_categories' ) ) { + return trim( preg_replace( '/\s+/', ' ', get_post_meta( $post->ID, 'feedzy_category_feed', true ) ) ); + } else { + return $src; + } + } + + } + + /** + * Main shortcode function + * + * @since 3.0.0 + * @access public + * + * @param array $atts Shortcode attributes. + * @param string $content The item feed content. + * + * @return mixed + */ + public function feedzy_rss( $atts, $content = '' ) { + $sc = $this->get_short_code_attributes( $atts ); + $feedURL = $this->normalize_urls( $sc['feeds'] ); + $cache = $sc['refresh']; + $feed = $this->fetch_feed( $feedURL, $cache, $sc ); + if ( is_string( $feed ) ) { + return $feed; + } + $sc = $this->sanitize_attr( $sc, $feedURL ); + $content = $this->render_content( $sc, $feed, $content, $feedURL ); + + return $content; + } + + /** + * Returns the attributes of the shortcode + * + * @since 3.0.0 + * @access public + * + * @param array $atts The attributes passed by WordPress. + * + * @return array + */ + public function get_short_code_attributes( $atts ) { + // Retrieve & extract shorcode parameters + $sc = shortcode_atts( + array( + 'feeds' => '', + // comma separated feeds url + 'max' => '5', + // number of feeds items (0 for unlimited) + 'feed_title' => 'yes', + // display feed title yes/no + 'target' => '_blank', + // _blank, _self + 'title' => '', + // strip title after X char + 'meta' => 'yes', + // yes, no + 'summary' => 'yes', + // strip title + 'summarylength' => '', + // strip summary after X char + 'thumb' => 'auto', + // yes, no, auto + 'default' => '', + // default thumb URL if no image found (only if thumb is set to yes or auto) + 'size' => '', + // thumbs pixel size + 'keywords_title' => '', + // cache refresh + 'refresh' => '12_hours', + // sorting. + 'sort' => '', + // only display item if title contains specific keywords (comma-separated list/case sensitive) + ), $atts, 'feedzy_default' + ); + $sc = array_merge( $sc, apply_filters( 'feedzy_get_short_code_attributes_filter', $atts ) ); + + return $sc; + } + + /** + * Validate feeds attribute. + * + * @since 3.0.0 + * @updated 3.1.7 Take into account $feedURL as array from PRO version. + * + * @param string $raw Url or list of urls. + * + * @return mixed|void Urls of the feeds. + */ + public function normalize_urls( $raw ) { + $feeds = apply_filters( 'feedzy_process_feed_source', $raw ); + $feedURL = apply_filters( 'feedzy_get_feed_url', $feeds ); + if ( is_array( $feedURL ) ) { + foreach ( $feedURL as $index => $url ) { + $feedURL[ $index ] = $this->smart_convert( $url ); + } + } else { + $feedURL = $this->smart_convert( $feedURL ); + } + + return $feedURL; + } + + /** + * Converts the feed URL. + * + * @param string $url The feed url. + */ + private function smart_convert( $url ) { + + $url = htmlspecialchars_decode( $url ); + + // Automatically fix deprecated google news feeds. + if ( false !== strpos( $url, 'news.google.' ) ) { + + $parts = parse_url( $url ); + parse_str( $parts['query'], $query ); + + if ( isset( $query['q'] ) ) { + $search_query = $query['q']; + unset( $query['q'] ); + $url = sprintf( 'https://news.google.com/news/rss/search/section/q/%s/%s?%s', $search_query, $search_query, http_build_query( $query ) ); + + } + } + + return apply_filters( 'feedzy_alter_feed_url', $url ); + } + + /** + * Fetch the content feed from a group of urls. + * + * @since 3.0.0 + * @access public + * @updated 3.2.0 + * + * @param array $feedURL The feeds urls to fetch content from. + * @param string $cache The cache string (eg. 1_hour, 30_min etc.). + * @param array $sc The shortcode attributes. + * + * @return SimplePie|string|void|WP_Error The feed resource. + */ + public function fetch_feed( $feedURL, $cache = '12_hours', $sc ) { + // Load SimplePie if not already + do_action( 'feedzy_pre_http_setup', $feedURL ); + + // Load SimplePie Instance + $feed = $this->init_feed( $feedURL, $cache, $sc ); // Not used as log as #41304 is Opened. + + // Report error when is an error loading the feed + if ( is_wp_error( $feed ) ) { + // Fallback for different edge cases. + if ( is_array( $feedURL ) ) { + $feedURL = array_map( 'html_entity_decode', $feedURL ); + } else { + $feedURL = html_entity_decode( $feedURL ); + } + + $feedURL = $this->get_valid_feed_urls( $feedURL, $cache ); + + $feed = $this->init_feed( $feedURL, $cache, $sc ); // Not used as log as #41304 is Opened. + + } + + do_action( 'feedzy_post_http_teardown', $feedURL ); + + // var_dump( $feed ); + return $feed; + } + + /** + * + * Method to avoid using core implementation in order + * order to fix issues reported here: https://core.trac.wordpress.org/ticket/41304 + * Bug: #41304 with WP wp_kses sanitizer used by WP SimplePie implementation. + * + * NOTE: This is temporary should be removed as soon as #41304 is patched. + * + * @since 3.1.7 + * @access private + * + * @param string $feedURL The feed URL. + * @param string $cache The cache string (eg. 1_hour, 30_min etc.). + * @param array $sc The shortcode attributes. + * + * @return SimplePie + */ + private function init_feed( $feedURL, $cache, $sc ) { + $unit_defaults = array( + 'mins' => MINUTE_IN_SECONDS, + 'hours' => HOUR_IN_SECONDS, + 'days' => DAY_IN_SECONDS, + ); + $cache_time = 12 * HOUR_IN_SECONDS; + if ( isset( $cache ) && $cache != '' ) { + list( $value, $unit ) = explode( '_', $cache ); + if ( isset( $value ) && is_numeric( $value ) && $value >= 1 && $value <= 100 ) { + if ( isset( $unit ) && in_array( strtolower( $unit ), array( 'mins', 'hours', 'days' ) ) ) { + $cache_time = $value * $unit_defaults[ $unit ]; + } + } + } + + $feed = new Feedzy_Rss_Feeds_Util_SimplePie( $sc ); + if ( ! FEEDZY_ALLOW_HTTPS ) { + $feed->set_curl_options( + array( + CURLOPT_SSL_VERIFYHOST => false, + CURLOPT_SSL_VERIFYPEER => false, + ) + ); + } + $feed->set_file_class( 'WP_SimplePie_File' ); + $default_agent = $this->get_default_user_agent( $feedURL ); + $feed->set_useragent( apply_filters( 'http_headers_useragent', $default_agent ) ); + if ( ! FEEDZY_DISABLE_CACHE_FOR_TESTING ) { + $feed->set_cache_class( 'WP_Feed_Cache' ); + $feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', $cache_time, $feedURL ) ); + } + $feed->set_feed_url( $feedURL ); + $feed->force_feed( apply_filters( 'feedzy_force_feed', true ) ); + do_action( 'feedzy_modify_feed_config', $feed ); + $feed->init(); + + return $feed; + } + + /** + * Change the default user agent based on the feed url. + * + * @param string|array $urls Feed urls. + * + * @return string Optimal User Agent + */ + private function get_default_user_agent( $urls ) { + + $set = array(); + if ( ! is_array( $urls ) ) { + $set[] = $urls; + } + foreach ( $set as $url ) { + if ( strpos( $url, 'medium.com' ) !== false ) { + return FEEDZY_USER_AGENT; + } + } + + return SIMPLEPIE_USERAGENT; + } + + /** + * Returns only valid URLs for fetching. + * + * @since 3.2.0 + * @access private + * + * @param array|string $feedURL The feeds URL/s. + * @param string $cache The cache string (eg. 1_hour, 30_min etc.). + * + * @return array + */ + private function get_valid_feed_urls( $feedURL, $cache ) { + $validFeedURL = array(); + if ( is_array( $feedURL ) ) { + foreach ( $feedURL as $url ) { + if ( $this->check_valid_xml( $url, $cache ) ) { + $validFeedURL[] = $url; + } else { + echo sprintf( __( 'Feed URL: %s not valid and removed from fetch.', 'feedzy-rss-feeds' ), '' . $url . '' ); + } + } + } else { + if ( $this->check_valid_xml( $feedURL, $cache ) ) { + $validFeedURL[] = $feedURL; + } else { + echo sprintf( __( 'Feed URL: %s not valid and removed from fetch.', 'feedzy-rss-feeds' ), '' . $feedURL . '' ); + } + } + + return $validFeedURL; + } + + /** + * Checks if a url is a valid feed. + * + * @since 3.2.0 + * @access private + * + * @param string $url The URL to validate. + * @param string $cache The cache string (eg. 1_hour, 30_min etc.). + * + * @return bool + */ + private function check_valid_xml( $url, $cache ) { + $feed = $this->init_feed( $url, $cache ); + if ( $feed->error() ) { + return false; + } + + return true; + } + + /** + * Sanitizes the shortcode array and sets the defaults + * + * @since 3.0.0 + * @access public + * + * @param array $sc The shorcode attributes array. + * @param string $feedURL The feed url. + * + * @return mixed + */ + public function sanitize_attr( $sc, $feedURL ) { + if ( $sc['max'] == '0' ) { + $sc['max'] = '999'; + } elseif ( empty( $sc['max'] ) || ! ctype_digit( $sc['max'] ) ) { + $sc['max'] = '5'; + } + if ( empty( $sc['size'] ) || ! ctype_digit( $sc['size'] ) ) { + $sc['size'] = '150'; + } + if ( ! empty( $sc['title'] ) && ! ctype_digit( $sc['title'] ) ) { + $sc['title'] = ''; + } + if ( ! empty( $sc['keywords_title'] ) ) { + $sc['keywords_title'] = rtrim( $sc['keywords_title'], ',' ); + $sc['keywords_title'] = array_map( 'trim', explode( ',', $sc['keywords_title'] ) ); + } + if ( ! empty( $sc['keywords_ban'] ) ) { + $sc['keywords_ban'] = rtrim( $sc['keywords_ban'], ',' ); + $sc['keywords_ban'] = array_map( 'trim', explode( ',', $sc['keywords_ban'] ) ); + } + if ( ! empty( $sc['summarylength'] ) && ! ctype_digit( $sc['summarylength'] ) ) { + $sc['summarylength'] = ''; + } + if ( empty( $sc['default'] ) ) { + $sc['default'] = apply_filters( 'feedzy_default_image', $sc['default'], $feedURL ); + } + + return $sc; + } + + /** + * Render the content to be displayed + * + * @since 3.0.0 + * @access public + * + * @param array $sc The shorcode attributes array. + * @param object $feed The feed object. + * @param string $content The original content. + * @param string $feedURL The feed url. + * + * @return string + */ + public function render_content( $sc, $feed, $content = '', $feedURL ) { + $count = 0; + $sizes = array( + 'width' => $sc['size'], + 'height' => $sc['size'], + ); + $sizes = apply_filters( 'feedzy_thumb_sizes', $sizes, $feedURL ); + $feed_title['use_title'] = false; + if ( $sc['feed_title'] == 'yes' ) { + $feed_title = $this->get_feed_title_filter( $feed ); + $feed_title['use_title'] = true; + } + // Display the error message + if ( $feed->error() ) { + $content .= apply_filters( 'feedzy_default_error', $feed->error(), $feedURL ); + } + $feed_items = apply_filters( 'feedzy_get_feed_array', array(), $sc, $feed, $feedURL, $sizes ); + $content = '
'; + if ( $feed_title['use_title'] ) { + $content .= '
'; + $content .= '

' . html_entity_decode( $feed->get_title() ) . ' ' . $feed->get_description() . '

'; + $content .= '
'; + } + $content .= '
    '; + foreach ( $feed_items as $item ) { + $content .= ' +
  • + ' . ( ( ! empty( $item['item_img'] ) && $sc['thumb'] != 'no' ) ? ' + ' : '' ) . ' + + + ' . $item['item_title'] . ' + + +
    + ' . ( ! empty( $item['item_meta'] ) ? ' + ' . $item['item_meta'] . ' + ' : '' ) . ' + ' . ( ! empty( $item['item_description'] ) ? '

    ' . $item['item_description'] . '

    ' : '' ) . ' +
    +
  • + '; + } + $content .= '
'; + $content = apply_filters( 'feedzy_global_output', $content, $sc, $feed_title, $feed_items ); + + return $content; + } + + /** + * Retrive the filter rss title array + * + * @since 3.0.0 + * @access private + * + * @param object $feed The feed object. + * + * @return array + */ + private function get_feed_title_filter( $feed ) { + return array( + 'rss_url' => $feed->get_permalink(), + 'rss_title_class' => 'rss_title', + 'rss_title' => html_entity_decode( $feed->get_title() ), + 'rss_description_class' => 'rss_description', + 'rss_description' => $feed->get_description(), + ); + } + + /** + * Get the feed url based on the feeds passed from the shortcode attribute. + * + * @since 3.0.0 + * @access public + * + * @param string $feeds The feeds from the shortcode attribute. + * + * @return array|mixed + */ + public function get_feed_url( $feeds ) { + $feedURL = ''; + if ( ! empty( $feeds ) ) { + $feeds = rtrim( $feeds, ',' ); + $feeds = explode( ',', $feeds ); + $feedURL = array(); + // Remove SSL from HTTP request to prevent fetching errors + foreach ( $feeds as $feed ) { + if ( FEEDZY_ALLOW_HTTPS ) { + $feedURL[] = $feed; + } else { + $feedURL[] = preg_replace( '/^https:/i', 'http:', $feed ); + } + // scheme-less URLs. + if ( strpos( $feed, 'http' ) !== 0 ) { + $feed = 'http://' . $feed; + } + } + if ( count( $feedURL ) === 1 ) { + $feedURL = $feedURL[0]; + } + } + + return $feedURL; + } + + /** + * Utility method to return feed in array format + * before content render. + * + * @since 3.0.12 + * @access public + * + * @param array $feed_items The feed items array. + * @param array $sc The short code attributes. + * @param object $feed The feed object. + * @param string $feedURL The feed URL source/s. + * @param array $sizes Sizes array. + * + * @return array + */ + public function get_feed_array( $feed_items, $sc, $feed, $feedURL, $sizes ) { + $count = 0; + $items = apply_filters( 'feedzy_feed_items', $feed->get_items(), $feedURL ); + foreach ( (array) $items as $item ) { + if ( trim( $item->get_title() ) != '' ) { + $continue = apply_filters( 'feedzy_item_keyword', true, $sc, $item, $feedURL ); + if ( $continue == true ) { + // Count items. This should be > and not >= because max, when not defined and empty, becomes 0. + if ( $count >= $sc['max'] ) { + break; + } + $itemAttr = apply_filters( 'feedzy_item_attributes', $itemAttr = '', $sizes, $item, $feedURL, $sc ); + $feed_items[ $count ] = $this->get_feed_item_filter( $sc, $sizes, $item, $feedURL ); + $feed_items[ $count ]['itemAttr'] = $itemAttr; + $count ++; + } + } + } + + return $feed_items; + } + + /** + * Retrive the filter item array + * + * @since 3.0.0 + * @access private + * + * @param array $sc The shorcode attributes array. + * @param array $sizes The sizes array. + * @param object $item The feed item object. + * @param string $feedURL The feed url. + * + * @return array + */ + private function get_feed_item_filter( $sc, $sizes, $item, $feedURL ) { + $itemLink = $item->get_permalink(); + $newLink = apply_filters( 'feedzy_item_url_filter', $itemLink, $sc, $item ); + // Fetch image thumbnail + if ( $sc['thumb'] == 'yes' || $sc['thumb'] == 'auto' ) { + $theThumbnail = $this->feedzy_retrieve_image( $item ); + } + if ( $sc['thumb'] == 'yes' || $sc['thumb'] == 'auto' ) { + $contentThumb = ''; + if ( ( ! empty( $theThumbnail ) && $sc['thumb'] == 'auto' ) || $sc['thumb'] == 'yes' ) { + if ( ! empty( $theThumbnail ) ) { + $theThumbnail = $this->feedzy_image_encode( $theThumbnail ); + $contentThumb .= ''; + } + if ( $sc['thumb'] == 'yes' ) { + $contentThumb .= ''; + } + } + $contentThumb = apply_filters( 'feedzy_thumb_output', $contentThumb, $feedURL, $sizes, $item ); + } else { + $contentThumb = ''; + $contentThumb .= ''; + $contentThumb = apply_filters( 'feedzy_thumb_output', $contentThumb, $feedURL, $sizes, $item ); + } + $contentTitle = ''; + if ( is_numeric( $sc['title'] ) && strlen( $item->get_title() ) > $sc['title'] ) { + $contentTitle .= preg_replace( '/\s+?(\S+)?$/', '', substr( $item->get_title(), 0, $sc['title'] ) ) . '...'; + } else { + $contentTitle .= $item->get_title(); + } + $contentTitle = apply_filters( 'feedzy_title_output', $contentTitle, $feedURL, $item ); + // Define Meta args + $metaArgs = array( + 'author' => true, + 'date' => true, + 'date_format' => get_option( 'date_format' ), + 'time_format' => get_option( 'time_format' ), + ); + // Filter: feedzy_meta_args + $metaArgs = apply_filters( 'feedzy_meta_args', $metaArgs, $feedURL, $item ); + $contentMeta = ''; + if ( $sc['meta'] == 'yes' && ( $metaArgs['author'] || $metaArgs['date'] ) ) { + $contentMeta = ''; + if ( $item->get_author() && $metaArgs['author'] ) { + $author = $item->get_author(); + if ( ! $authorName = $author->get_name() ) { + $authorName = $author->get_email(); + } + + $authorName = apply_filters( 'feedzy_author_name', $authorName, $feedURL, $item ); + + if ( $authorName ) { + $domain = parse_url( $newLink ); + $authorURL = '//' . $domain['host']; + $authorURL = apply_filters( 'feedzy_author_url', $authorURL, $authorName, $feedURL, $item ); + $contentMeta .= __( 'by', 'feedzy-rss-feeds' ) . ' ' . $authorName . ' '; + } + } + if ( $metaArgs['date'] ) { + $date_time = $item->get_date( 'U' ); + $date_time = apply_filters( 'feedzy_feed_timestamp', $date_time, $feedURL, $item ); + if ( ! empty( $metaArgs['date_format'] ) ) { + $contentMeta .= __( 'on', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['date_format'], $date_time ); + $contentMeta .= ' '; + } + if ( ! empty( $metaArgs['time_format'] ) ) { + $contentMeta .= __( 'at', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['time_format'], $date_time ); + } + } + } + $contentMeta = apply_filters( 'feedzy_meta_output', $contentMeta, $feedURL, $item ); + $contentSummary = ''; + if ( $sc['summary'] == 'yes' ) { + $contentSummary = ''; + $description = $item->get_description(); + $description = apply_filters( 'feedzy_summary_input', $description, $item->get_content(), $feedURL, $item ); + if ( is_numeric( $sc['summarylength'] ) && strlen( $description ) > $sc['summarylength'] ) { + $contentSummary .= preg_replace( '/\s+?(\S+)?$/', '', substr( $description, 0, $sc['summarylength'] ) ) . ' […]'; + } else { + $contentSummary .= $description . ' […]'; + } + $contentSummary = apply_filters( 'feedzy_summary_output', $contentSummary, $newLink, $feedURL, $item ); + } + $itemArray = array( + 'item_img_class' => 'rss_image', + 'item_img_style' => 'width:' . $sizes['width'] . 'px; height:' . $sizes['height'] . 'px;', + 'item_url' => $newLink, + 'item_url_target' => $sc['target'], + 'item_url_title' => $item->get_title(), + 'item_img' => $contentThumb, + 'item_img_path' => $this->feedzy_retrieve_image( $item ), + 'item_title' => $contentTitle, + 'item_content_class' => 'rss_content', + 'item_content_style' => '', + 'item_meta' => $contentMeta, + 'item_date' => $item->get_date( 'U' ), + 'item_author' => $item->get_author(), + 'item_description' => $contentSummary, + 'item_content' => apply_filters( 'feedzy_content', $item->get_content( false ), $item ), + ); + $itemArray = apply_filters( 'feedzy_item_filter', $itemArray, $item ); + + return $itemArray; + } + + /** + * Retrive image from the item object + * + * @since 3.0.0 + * @access public + * + * @param object $item The item object. + * + * @return string + */ + public function feedzy_retrieve_image( $item ) { + $theThumbnail = ''; + if ( $enclosures = $item->get_enclosures() ) { + foreach ( (array) $enclosures as $enclosure ) { + // Item thumbnail + if ( $thumbnail = $enclosure->get_thumbnail() ) { + $theThumbnail = $thumbnail; + } + if ( isset( $enclosure->thumbnails ) ) { + foreach ( (array) $enclosure->thumbnails as $thumbnail ) { + $theThumbnail = $thumbnail; + } + } + if ( $thumbnail = $enclosure->embed() ) { + $pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpeg|JPEG|jpe|JPE|gif|GIF|png|PNG)/i'; + if ( preg_match( $pattern, $thumbnail, $matches ) ) { + $theThumbnail = $matches[0]; + } + } + foreach ( (array) $enclosure->get_link() as $thumbnail ) { + $pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpeg|JPEG|jpe|JPE|gif|GIF|png|PNG)/i'; + $imgsrc = $thumbnail; + if ( preg_match( $pattern, $imgsrc, $matches ) ) { + $theThumbnail = $thumbnail; + break; + } + } + // Break loop if thumbnail is found + if ( ! empty( $theThumbnail ) ) { + break; + } + } + } + // xmlns:itunes podcast + if ( empty( $theThumbnail ) ) { + $data = $item->get_item_tags( 'http://www.itunes.com/dtds/podcast-1.0.dtd', 'image' ); + if ( isset( $data['0']['attribs']['']['href'] ) && ! empty( $data['0']['attribs']['']['href'] ) ) { + $theThumbnail = $data['0']['attribs']['']['href']; + } + } + // Content image + if ( empty( $theThumbnail ) ) { + $feedDescription = $item->get_content(); + $theThumbnail = $this->feedzy_return_image( $feedDescription ); + } + // Description image + if ( empty( $theThumbnail ) ) { + $feedDescription = $item->get_description(); + $theThumbnail = $this->feedzy_return_image( $feedDescription ); + } + + $theThumbnail = apply_filters( 'feedzy_retrieve_image', $theThumbnail, $item ); + + return $theThumbnail; + } + + /** + * Get an image from a string + * + * @since 3.0.0 + * @access public + * + * @param string $string A string with an tag. + * + * @return string + */ + public function feedzy_return_image( $string ) { + $img = html_entity_decode( $string, ENT_QUOTES, 'UTF-8' ); + $pattern = '/]+\>/i'; + preg_match_all( $pattern, $img, $matches ); + + $image = null; + if ( isset( $matches[0] ) ) { + foreach ( $matches[0] as $match ) { + $link = $this->feedzy_scrape_image( $match ); + $blacklist = $this->feedzy_blacklist_images(); + $is_blacklist = false; + foreach ( $blacklist as $string ) { + if ( strpos( (string) $link, $string ) !== false ) { + $is_blacklist = true; + break; + } + } + if ( ! $is_blacklist ) { + $image = $link; + break; + } + } + } + + return $image; + } + + /** + * Scrape an image for link from a string with an + * + * @since 3.0.0 + * @access public + * + * @param string $string A string with an tag. + * @param string $link The link to search for. + * + * @return string + */ + public function feedzy_scrape_image( $string, $link = '' ) { + $pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/'; + $match = $link; + preg_match( $pattern, $string, $link ); + if ( ! empty( $link ) && isset( $link[1] ) ) { + $match = $link[1]; + } + + return $match; + } + + /** + * List blacklisted images to prevent fetching emoticons + * + * @since 3.0.0 + * @access public + * + * @return array + */ + public function feedzy_blacklist_images() { + $blacklist = array( + 'frownie.png', + 'icon_arrow.gif', + 'icon_biggrin.gif', + 'icon_confused.gif', + 'icon_cool.gif', + 'icon_cry.gif', + 'icon_eek.gif', + 'icon_evil.gif', + 'icon_exclaim.gif', + 'icon_idea.gif', + 'icon_lol.gif', + 'icon_mad.gif', + 'icon_mrgreen.gif', + 'icon_neutral.gif', + 'icon_question.gif', + 'icon_razz.gif', + 'icon_redface.gif', + 'icon_rolleyes.gif', + 'icon_sad.gif', + 'icon_smile.gif', + 'icon_surprised.gif', + 'icon_twisted.gif', + 'icon_wink.gif', + 'mrgreen.png', + 'rolleyes.png', + 'simple-smile.png', + ); + + return apply_filters( 'feedzy_feed_blacklist_images', $blacklist ); + } + + /** + * Image name encoder and url retrive if in url param + * + * @since 3.0.0 + * @access public + * + * @param string $string A string containing the image URL. + * + * @return string + */ + public function feedzy_image_encode( $string ) { + // Check if img url is set as an URL parameter + $url_tab = parse_url( $string ); + if ( isset( $url_tab['query'] ) ) { + preg_match_all( '/(http|https):\/\/[^ ]+(\.gif|\.GIF|\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG)/', $url_tab['query'], $imgUrl ); + if ( isset( $imgUrl[0][0] ) ) { + $string = $imgUrl[0][0]; + } + } + // Encode image name only en keep extra parameters + $query = ''; + if ( isset( $url_tab['query'] ) ) { + $query = '?' . $url_tab['query']; + } + $path = ltrim( $url_tab['path'], '/' ); + + if ( substr( $path, 0, 0 ) !== '/' ) { + $path = '/' . $path; + } + + // Return a well encoded image url + return $url_tab['scheme'] . '://' . $url_tab['host'] . $path . $query; + } + + /** + * Render the form template for tinyMCE popup. + * Called via ajax. + * + * @since 3.0.0 + * @access public + */ + public function get_tinymce_form() { + die( include FEEDZY_ABSPATH . '/form/form.php' ); + } + + /** + * Method used to render upsell page. + * + * @since 3.0.12 + * @access public + */ + public function render_upsell() { + $this->load_layout( 'feedzy-upsell' ); + } + + /** + * Method used to render pages + * + * @since 3.0.12 + * @access public + * + * @param string $layout_name The name of the layout. + * + * @return mixed + */ + public function load_layout( $layout_name ) { + include( FEEDZY_ABSPATH . '/includes/layouts/' . $layout_name . '.php' ); + } + + /** + * Utility method to insert before specific key + * in an associative array. + * + * @since 3.0.12 + * @access public + * + * @param string $key The key before to insert. + * @param array $array The array in which to insert the new key. + * @param string $new_key The new key name. + * @param mixed $new_value The new key value. + * + * @return array|bool + */ + protected function array_insert_before( $key, &$array, $new_key, $new_value ) { + if ( array_key_exists( $key, $array ) ) { + $new = array(); + foreach ( $array as $k => $value ) { + if ( $k === $key ) { + $new[ $new_key ] = $new_value; + } + $new[ $k ] = $value; + } + + return $new; + } + + return false; + } +} diff --git a/dist/includes/admin/feedzy-rss-feeds-admin.php b/dist/includes/admin/feedzy-rss-feeds-admin.php new file mode 100644 index 00000000..6af54615 --- /dev/null +++ b/dist/includes/admin/feedzy-rss-feeds-admin.php @@ -0,0 +1,534 @@ + + */ + +/** + * Class Feedzy_Rss_Feeds_Admin + */ +class Feedzy_Rss_Feeds_Admin extends Feedzy_Rss_Feeds_Admin_Abstract { + + /** + * Any notice we want to show in the settings screen. + * + * @access public + * @var string $notice The notice. + */ + public $notice; + /** + * Any error we want to show in the settings screen. + * + * @access public + * @var string $error The error. + */ + public $error; + /** + * The version of this plugin. + * + * @since 3.0.0 + * @access protected + * @var string $version The current version of this plugin. + */ + protected $version; + /** + * The ID of this plugin. + * + * @since 3.0.0 + * @access private + * @var string $plugin_name The ID of this plugin. + */ + private $plugin_name; + + /** + * Initialize the class and set its properties. + * + * @since 3.0.0 + * @access public + * + * @param string $plugin_name The name of this plugin. + * @param string $version The version of this plugin. + */ + public function __construct( $plugin_name, $version ) { + $this->plugin_name = $plugin_name; + $this->version = $version; + } + + /** + * Register the stylesheets for the admin area. + * + * @since 3.0.0 + * @access public + */ + public function enqueue_styles() { + /** + * This function is provided for demonstration purposes only. + * + * An instance of this class should be passed to the run() function + * defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined + * in that particular class. + * + * The Feedzy_Rss_Feeds_Loader will then create the relationship + * between the defined hooks and the functions defined in this + * class. + */ + + wp_enqueue_style( $this->plugin_name, FEEDZY_ABSURL . 'css/feedzy-rss-feeds.css', array(), $this->version, 'all' ); + if ( ! is_admin() ) { + return; + } + $screen = get_current_screen(); + if ( empty( $screen ) ) { + return; + } + if ( ! isset( $screen->base ) ) { + return; + } + + $upsell_screens = array( 'feedzy-rss_page_feedzy-settings', 'feedzy-rss_page_feedzy-admin-menu-pro-upsell' ); + + if ( ! in_array( $screen->base, $upsell_screens ) && strpos( $screen->id, 'feedzy' ) === false ) { + return; + } + wp_enqueue_style( $this->plugin_name . '-upsell', FEEDZY_ABSURL . 'includes/layouts/css/upsell.css' ); + wp_enqueue_style( $this->plugin_name . '-settings', FEEDZY_ABSURL . 'css/metabox-settings.css', array( $this->plugin_name . '-upsell' ) ); + } + + /** + * Register the JavaScript for the admin area. + * + * @since 3.0.0 + * @access public + */ + public function enqueue_scripts() { + + /** + * This function is provided for demonstration purposes only. + * + * An instance of this class should be passed to the run() function + * defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined + * in that particular class. + * + * The Feedzy_Rss_Feeds_Loader will then create the relationship + * between the defined hooks and the functions defined in this + * class. + */ + } + + /** + * Method to register custom post type for + * Feedzy RSS Feeds Categories. + * + * @since 3.0.12 + * @access public + */ + public function register_post_type() { + $labels = array( + 'name' => __( 'Feed Categories', 'feedzy-rss-feeds' ), + 'singular_name' => __( 'Feed Category', 'feedzy-rss-feeds' ), + 'add_new' => __( 'Add Category', 'feedzy-rss-feeds' ), + 'add_new_item' => __( 'Add Category', 'feedzy-rss-feeds' ), + 'edit_item' => __( 'Edit Category', 'feedzy-rss-feeds' ), + 'new_item' => __( 'New Feed Category', 'feedzy-rss-feeds' ), + 'view_item' => __( 'View Category', 'feedzy-rss-feeds' ), + 'search_items' => __( 'Search Category', 'feedzy-rss-feeds' ), + 'not_found' => __( 'No categories found', 'feedzy-rss-feeds' ), + 'not_found_in_trash' => __( 'No categories in the trash', 'feedzy-rss-feeds' ), + ); + $supports = array( + 'title', + ); + $args = array( + 'labels' => $labels, + 'supports' => $supports, + 'public' => true, + 'exclude_from_search' => true, + 'publicly_queryable' => false, + 'show_in_nav_menus' => false, + 'capability_type' => 'post', + 'rewrite' => array( 'slug' => 'feedzy-category' ), + 'show_in_menu' => 'feedzy-admin-menu', + 'register_meta_box_cb' => array( $this, 'add_feedzy_post_type_metaboxes' ), + 'show_in_rest' => true, + 'rest_base' => 'feedzy_categories', + 'rest_controller_class' => 'WP_REST_Posts_Controller', + ); + $args = apply_filters( 'feedzy_post_type_args', $args ); + register_post_type( 'feedzy_categories', $args ); + } + + /** + * Method to add a meta box to `feedzy_categories` + * custom post type. + * + * @since 3.0.12 + * @access public + */ + public function add_feedzy_post_type_metaboxes() { + add_meta_box( + 'feedzy_category_feeds', __( 'Category Feeds', 'feedzy-rss-feeds' ), array( + $this, + 'feedzy_category_feed', + ), 'feedzy_categories', 'normal', 'high' + ); + add_meta_box( + 'feedzy_category_feeds_rn', __( 'Increase your social media presence', 'feedzy-rss-feeds' ), array( + $this, + 'render_upsell_rn', + ), 'feedzy_categories', 'side', 'low' + ); + } + + /** + * Render RN upsell metabox. + */ + public function render_upsell_rn() { + echo '

Learn how you can connect with people by sharing content from RSS feeds on your social media accounts.

'; + echo 'View more details'; + + } + + /** + * Meta box callback function to display a textarea + * inside the custom post edit page. + * + * @since 3.0.12 + * @access public + * @return mixed + */ + public function feedzy_category_feed() { + global $post; + $nonce = wp_create_nonce( FEEDZY_BASEFILE ); + $feed = get_post_meta( $post->ID, 'feedzy_category_feed', true ); + $output = ' + + + '; + echo $output; + } + + /** + * Utility method to save metabox data to + * custom post type. + * + * @since 3.0.12 + * @access public + * + * @param integer $post_id The active post ID. + * @param object $post The post object. + * + * @return mixed|integer + */ + public function save_feedzy_post_type_meta( $post_id, $post ) { + if ( + empty( $_POST ) || + ( isset( $_POST['feedzy_category_meta_noncename'] ) && ! wp_verify_nonce( $_POST['feedzy_category_meta_noncename'], FEEDZY_BASEFILE ) ) || + ! current_user_can( 'edit_post', $post_id ) + ) { + return $post_id; + } + $category_meta['feedzy_category_feed'] = array(); + if ( isset( $_POST['feedzy_category_feed'] ) ) { + $category_meta['feedzy_category_feed'] = $_POST['feedzy_category_feed']; + } + if ( $post->post_type == 'revision' ) { + return true; + } else { + foreach ( $category_meta as $key => $value ) { + $value = implode( ',', (array) $value ); + if ( get_post_meta( $post_id, $key, false ) ) { + update_post_meta( $post_id, $key, $value ); + } else { + add_post_meta( $post_id, $key, $value ); + } + if ( ! $value ) { + delete_post_meta( $post_id, $key ); + } + } + + return true; + } + } + + /** + * Method for adding `slug` column to post type + * table and internalize the `title`. Used for + * table head. + * + * @since 3.0.12 + * @access public + * + * @param array $columns The default columns array. + * + * @return array + */ + public function feedzy_category_columns( $columns ) { + $columns['title'] = __( 'Category Title', 'feedzy-rss-feeds' ); + if ( $new_columns = $this->array_insert_before( 'date', $columns, 'slug', __( 'Slug', 'feedzy-rss-feeds' ) ) ) { + $columns = $new_columns; + } else { + $columns['slug'] = __( 'Slug', 'feedzy-rss-feeds' ); + } + + return $columns; + } + + /** + * Method for displaying post type data in custom + * added columns. + * + * @since 3.0.12 + * @access public + * + * @param string $column The column string. + * @param integer $post_id The active post ID. + * + * @return mixed + */ + public function manage_feedzy_category_columns( $column, $post_id ) { + global $post; + switch ( $column ) { + case 'slug': + $slug = $post->post_name; + if ( empty( $slug ) ) { + echo __( 'Undefined', 'feedzy-rss-feeds' ); + } else { + echo '' . $slug . ''; + } + break; + default: + break; + } + } + + /** + * The custom plugin_row_meta function + * Adds additional links on the plugins page for this plugin + * + * @since 3.0.0 + * @access public + * + * @param array $links The array having default links for the plugin. + * @param string $file The name of the plugin file. + * + * @return array + */ + public function feedzy_filter_plugin_row_meta( $links, $file ) { + if ( strpos( $file, 'feedzy-rss-feed.php' ) !== false ) { + $new_links = array( + 'doc' => '' . __( 'Documentation and examples', 'feedzy-rss-feeds' ) . '', + 'more_features' => '' . __( 'More Features', 'feedzy-rss-feeds' ) . '', + ); + $links = array_merge( $links, $new_links ); + } + + return $links; + } + + /** + * Method to register pages for admin menu. + * + * @since 3.0.12 + * @access public + */ + public function feedzy_menu_pages() { + $svg_base64_icon = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NTAuMzkiIGhlaWdodD0iODUwLjM5Ij48cGF0aCBmaWxsPSIjREIzOTM5IiBkPSJNNDI1LjIgMkMxOTAuMzYgMiAwIDE5MS45MiAwIDQyNi4yYzAgMjM0LjI3IDE5MC4zNyA0MjQuMiA0MjUuMiA0MjQuMiAyMzQuODIgMCA0MjUuMi0xODkuOTMgNDI1LjItNDI0LjJDODUwLjQgMTkxLjkgNjYwIDIgNDI1LjIgMnptLTQ2LjU1IDY2OC42NmgtOTEuNTh2LTU3LjFMMjM3LjUgNTY0LjFoLTU3LjI2di05MS4yNGg5NS4yNWwxMDMuMTUgMTAyLjh2OTV6bTE1Mi41MiAwSDQzOS42di0xMzMuM0wzMTMuODUgNDExLjk0aC0xMzMuNnYtOTEuMzZIMzUxLjdMNTMxLjE4IDQ5OS42djE3MS4wNnptMTUyLjU1IDBoLTkxLjU4VjQ2MS4yTDM5MC4wNiAyNTkuNzRIMTgwLjI0di05MS4zNmgyNDcuOGwyNTUuNjggMjU1LjA3djI0Ny4yMnoiLz48L3N2Zz4='; + add_menu_page( __( 'Feedzy RSS Feeds', 'feedzy-rss-feeds' ), __( 'Feedzy RSS', 'feedzy-rss-feeds' ), 'manage_options', 'feedzy-admin-menu', '', $svg_base64_icon, 98.7666 ); + if ( ! class_exists( 'Feedzy_Rss_Feeds_Pro' ) ) { + add_submenu_page( + 'feedzy-admin-menu', __( 'More Features', 'feedzy-rss-feeds' ), __( 'More Features', 'feedzy-rss-feeds' ) . '', 'manage_options', 'feedzy-admin-menu-pro-upsell', + array( + $this, + 'render_upsell', + ) + ); + } else { + $is_business = apply_filters( 'feedzy_is_business_filter', false ); + if ( $is_business != false ) { + add_submenu_page( 'feedzy-admin-menu', __( 'Import Posts', 'feedzy-rss-feeds' ), __( 'Import Posts', 'feedzy-rss-feeds' ), 'manage_options', 'edit.php?post_type=feedzy_imports' ); + } + } + add_submenu_page( + 'feedzy-admin-menu', __( 'Settings', 'feedzy-rss-feeds' ), __( 'Settings', 'feedzy-rss-feeds' ), 'manage_options', 'feedzy-settings', array( + $this, + 'feedzy_settings_page', + ) + ); + } + + /** + * Method to register the settings page. + * + * @access public + */ + public function feedzy_settings_page() { + if ( isset( $_POST['feedzy-settings-submit'] ) && isset( $_POST['tab'] ) && wp_verify_nonce( $_POST['nonce'], $_POST['tab'] ) ) { + $this->save_settings(); + $this->notice = __( 'Your settings were saved.', 'feedzy-rss-feeds' ); + } + + $settings = apply_filters( 'feedzy_get_settings', array() ); + include( FEEDZY_ABSPATH . '/includes/layouts/settings.php' ); + } + + /** + * Method to save the settings. + * + * @access private + */ + private function save_settings() { + $settings = apply_filters( 'feedzy_get_settings', array() ); + switch ( $_POST['tab'] ) { + case 'headers': + $settings['header']['user-agent'] = $_POST['user-agent']; + break; + case 'proxy': + $settings['proxy'] = array( + 'host' => $_POST['proxy-host'], + 'port' => $_POST['proxy-port'], + 'user' => $_POST['proxy-user'], + 'pass' => $_POST['proxy-pass'], + ); + break; + default: + $settings = apply_filters( 'feedzy_save_tab_settings', $settings, $_POST['tab'] ); + } + + update_option( 'feedzy-settings', $settings ); + } + + /** + * Method to get the settings. + * + * @access public + */ + public function get_settings() { + $settings = get_option( 'feedzy-settings' ); + + return $settings; + } + + /** + * Set up the HTTP parameters/headers. + * + * @access public + */ + public function pre_http_setup( $url ) { + $this->add_proxy( $url ); + add_filter( 'http_headers_useragent', array( $this, 'add_user_agent' ) ); + add_filter( 'http_request_args', array( $this, 'http_request_args' ) ); + } + + /** + * Add the proxy settings as specified in the settings. + * + * @access private + */ + private function add_proxy( $url ) { + $settings = apply_filters( 'feedzy_get_settings', null ); + if ( $settings && is_array( $settings['proxy'] ) && ! empty( $settings['proxy'] ) ) { + // if even one constant is defined, escape. + if ( defined( 'WP_PROXY_HOST' ) || defined( 'WP_PROXY_PORT' ) || defined( 'WP_PROXY_USERNAME' ) || defined( 'WP_PROXY_PASSWORD' ) ) { + do_action( 'themeisle_log_event', FEEDZY_NAME, 'Some proxy constants already defined; ignoring proxy settings', 'info', __FILE__, __LINE__ ); + + return; + } + + $proxied = false; + if ( isset( $settings['proxy']['host'] ) && ! empty( $settings['proxy']['host'] ) ) { + $proxied = true; + define( 'WP_PROXY_HOST', $settings['proxy']['host'] ); + } + if ( isset( $settings['proxy']['port'] ) && ! empty( $settings['proxy']['port'] ) ) { + $proxied = true; + define( 'WP_PROXY_PORT', $settings['proxy']['port'] ); + } + if ( isset( $settings['proxy']['user'] ) && ! empty( $settings['proxy']['user'] ) ) { + $proxied = true; + define( 'WP_PROXY_USERNAME', $settings['proxy']['user'] ); + } + if ( isset( $settings['proxy']['pass'] ) && ! empty( $settings['proxy']['pass'] ) ) { + $proxied = true; + define( 'WP_PROXY_PASSWORD', $settings['proxy']['pass'] ); + } + + // temporary constant for use in the pre_http_send_through_proxy filter. + if ( $proxied && ! defined( 'FEEZY_URL_THRU_PROXY' ) ) { + define( 'FEEZY_URL_THRU_PROXY', $url ); + } + add_filter( 'pre_http_send_through_proxy', array( $this, 'send_through_proxy' ), 10, 4 ); + } + } + + /** + * Add additional HTTP request args. + * + * @access public + */ + public function http_request_args( $args ) { + // allow private IPs. + $args['reject_unsafe_urls'] = false; + // allow SSLs to go through without certificate verification. + $args['sslverify'] = false; + + return $args; + } + + /** + * Add the user agent if specified in the settings. + * + * @access public + */ + public function add_user_agent( $ua ) { + $settings = apply_filters( 'feedzy_get_settings', null ); + if ( $settings && isset( $settings['header']['user-agent'] ) && ! empty( $settings['header']['user-agent'] ) ) { + do_action( 'themeisle_log_event', FEEDZY_NAME, sprintf( 'Override user-agent from %s to %s', $ua, $settings['header']['user-agent'] ), 'info', __FILE__, __LINE__ ); + $ua = $settings['header']['user-agent']; + } + + return $ua; + } + + /** + * Check if the uri should go through the proxy. + * + * @access public + */ + public function send_through_proxy( $return, $uri, $check, $home ) { + $proxied = defined( 'FEEZY_URL_THRU_PROXY' ) ? FEEZY_URL_THRU_PROXY : null; + if ( $proxied && ( ( is_array( $proxied ) && in_array( $uri, $proxied ) ) || $uri === $proxied ) ) { + do_action( 'themeisle_log_event', FEEDZY_NAME, sprintf( 'sending %s through proxy', $uri ), 'info', __FILE__, __LINE__ ); + + return true; + } + + return false; + } + + /** + * Teardown the HTTP parameters/headers. + * + * @access public + */ + public function post_http_teardown( $url ) { + remove_filter( 'http_headers_useragent', array( $this, 'add_user_agent' ) ); + } + + +} diff --git a/dist/includes/admin/feedzy-rss-feeds-options.php b/dist/includes/admin/feedzy-rss-feeds-options.php new file mode 100644 index 00000000..1b5cdb58 --- /dev/null +++ b/dist/includes/admin/feedzy-rss-feeds-options.php @@ -0,0 +1,84 @@ +init(); + } + + return self::$instance; + } + + /** + * Init the default values of the options class. + */ + public function init() { + self::$instance->options = get_option( Feedzy_Rss_Feeds::get_plugin_name() ); + } + + /** + * Get the key option value from DB. + * + * @param string $key The key name of the option. + * + * @return bool|mixed The value of the option + */ + public function get_var( $key ) { + if ( isset( self::$instance->options[ $key ] ) ) { + return self::$instance->options[ $key ]; + } + + return false; + } + + /** + * Setter method for updating the options array. + * + * @param string $key The name of option. + * @param string $value The value of the option. + * + * @return bool|mixed The value of the option. + */ + public function set_var( $key, $value = '' ) { + self::$instance->options[ $key ] = apply_filters( 'feedzy_pre_set_option_' . $key, $value ); + + return update_option( Feedzy_Rss_Feeds::get_plugin_name(), self::$instance->options ); + + } + } +}// End if(). diff --git a/dist/includes/admin/feedzy-rss-feeds-ui-lang.php b/dist/includes/admin/feedzy-rss-feeds-ui-lang.php new file mode 100644 index 00000000..2d8804a7 --- /dev/null +++ b/dist/includes/admin/feedzy-rss-feeds-ui-lang.php @@ -0,0 +1,392 @@ +strings = array( + 'popup_url' => wp_nonce_url( 'admin-ajax.php', 'feedzy_ajax_token', 'feedzy_request_form_token' ), + 'pro_url' => FEEDZY_UPSELL_LINK, + 'plugin_label' => __( 'Feedzy Lite', 'feedzy-rss-feeds' ), + 'plugin_title' => __( 'Insert Feedzy RSS Feeds Shortcode', 'feedzy-rss-feeds' ), + 'image_button' => __( 'Use Image', 'feedzy-rss-feeds' ), + 'insert_button' => __( 'Insert Shortcode', 'feedzy-rss-feeds' ), + 'cancel_button' => __( 'Cancel', 'feedzy-rss-feeds' ), + 'pro_button' => __( 'Get Feedzy RSS Feeds Premium', 'feedzy-rss-feeds' ), + ); + } + + /** + * Return the default values of the forms elements + * + * @return array The default values of shortcode elements + */ + public static function get_form_defaults() { + + $html_parts = self::get_form_elements(); + $all_options = wp_list_pluck( array_values( $html_parts ), 'elements' ); + $all_options = call_user_func_array( 'array_merge', $all_options ); + $defaults = array(); + + foreach ( $all_options as $id => $option ) { + $defaults[ $id ] = $option['value']; + } + + return $defaults; + } + + /** + * The method for localizing and generating of the tinyMCE popup form. + * + * It returns an array, use it to add more options to the popup window. + * Can be hook-ed into via 'feedzy_get_form_elements'. + * + * @since 3.0.0 + * @access public + * @return array|mixed|void + */ + public static function get_form_elements() { + $elements = array( + 'section_feed' => array( + 'title' => __( 'Feed Source', 'feedzy-rss-feeds' ), + 'elements' => array( + 'feeds' => array( + 'label' => __( 'The feed(s) URL (comma-separated list).', 'feedzy-rss-feeds' ) . ' ' . __( 'Check feed before insert.', 'feedzy-rss-feeds' ), + 'placeholder' => __( 'Feed URL', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'value' => '', + ), + 'max' => array( + 'label' => __( 'Number of items to display.', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg: 5)', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'value' => '', + ), + 'feed_title' => array( + 'label' => __( 'Should we display the RSS title?', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'value' => '', + 'opts' => array( + 'yes' => array( + 'label' => __( 'Yes', 'feedzy-rss-feeds' ), + 'value' => 'yes', + ), + 'no' => array( + 'label' => __( 'No', 'feedzy-rss-feeds' ), + 'value' => 'no', + ), + ), + ), + 'refresh' => array( + 'label' => __( 'For how long we will cache the feed results.', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg: 1_days, defaults: 12_hours)', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'value' => '12_hours', + 'opts' => array( + '1_hours' => array( + 'label' => '1' . ' ' . __( 'Hour', 'feedzy-rss-feeds' ), + 'value' => '1_hours', + ), + '3_hours' => array( + 'label' => '3' . ' ' . __( 'Hours', 'feedzy-rss-feeds' ), + 'value' => '3_hours', + ), + '12_hours' => array( + 'label' => '12' . ' ' . __( 'Hours', 'feedzy-rss-feeds' ), + 'value' => '12_hours', + ), + '1_days' => array( + 'label' => '1' . ' ' . __( 'Day', 'feedzy-rss-feeds' ), + 'value' => '1_days', + ), + '3_days' => array( + 'label' => '3' . ' ' . __( 'Days', 'feedzy-rss-feeds' ), + 'value' => '3_days', + ), + '15_days' => array( + 'label' => '15' . ' ' . __( 'Days', 'feedzy-rss-feeds' ), + 'value' => '15_days', + ), + ), + ), + 'sort' => array( + 'label' => __( 'Sorting order.', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'value' => '', + 'opts' => array( + 'date_desc' => array( + 'label' => __( 'Date Descending', 'feedzy-rss-feeds' ), + 'value' => 'date_desc', + ), + 'date_asc' => array( + 'label' => __( 'Date Ascending', 'feedzy-rss-feeds' ), + 'value' => 'date_asc', + ), + 'title_desc' => array( + 'label' => __( 'Title Descending', 'feedzy-rss-feeds' ), + 'value' => 'title_desc', + ), + 'title_asc' => array( + 'label' => __( 'Title Ascending', 'feedzy-rss-feeds' ), + 'value' => 'title_asc', + ), + ), + ), + ), + ), + 'section_item' => array( + 'title' => __( 'Item Options', 'feedzy-rss-feeds' ), + 'elements' => array( + 'target' => array( + 'label' => __( 'Links may be opened in the same window or a new tab.', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'value' => '', + 'opts' => array( + 'auto' => array( + 'label' => __( 'Auto', 'feedzy-rss-feeds' ), + 'value' => '', + ), + '_blank' => array( + 'label' => __( '_blank', 'feedzy-rss-feeds' ), + 'value' => '_blank', + ), + '_self' => array( + 'label' => __( '_self', 'feedzy-rss-feeds' ), + 'value' => '_self', + ), + '_parent' => array( + 'label' => __( '_parent', 'feedzy-rss-feeds' ), + 'value' => '_parent', + ), + '_top' => array( + 'label' => __( '_top', 'feedzy-rss-feeds' ), + 'value' => '_top', + ), + 'framename' => array( + 'label' => __( 'framename', 'feedzy-rss-feeds' ), + 'value' => 'framename', + ), + ), + ), + 'title' => array( + 'label' => __( 'Trim the title of the item after X characters.', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'value' => '', + ), + 'meta' => array( + 'label' => __( 'Should we display the date of publication and the author name?', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'value' => '', + 'opts' => array( + 'yes' => array( + 'label' => __( 'Yes', 'feedzy-rss-feeds' ), + 'value' => 'yes', + ), + 'no' => array( + 'label' => __( 'No', 'feedzy-rss-feeds' ), + 'value' => 'no', + ), + ), + ), + 'summary' => array( + 'label' => __( 'Should we display a description (abstract) of the retrieved item?', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'value' => '', + 'opts' => array( + 'yes' => array( + 'label' => __( 'Yes', 'feedzy-rss-feeds' ), + 'value' => 'yes', + ), + 'no' => array( + 'label' => __( 'No', 'feedzy-rss-feeds' ), + 'value' => 'no', + ), + ), + ), + 'summarylength' => array( + 'label' => __( 'Crop description (summary) of the element after X characters.', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ), + 'value' => '', + ), + 'keywords_title' => array( + 'label' => __( 'Only display item if title contains specific keyword(s) (comma-separated list/case sensitive).', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg: news, sports etc.)', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'value' => '', + 'disabled' => feedzy_is_new(), + ), + 'keywords_ban' => array( + 'label' => __( 'Exclude items if title or content contains specific keyword(s) (comma-separated list/case sensitive). ', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg: politics, gossip etc.)', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'value' => '', + 'disabled' => true, + ), + ), + ), + 'section_image' => array( + 'title' => __( 'Item Image Options', 'feedzy-rss-feeds' ), + 'elements' => array( + 'thumb' => array( + 'label' => __( 'Should we display the first image of the content if it is available?', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'value' => '', + 'opts' => array( + 'auto' => array( + 'label' => __( 'Auto', 'feedzy-rss-feeds' ), + 'value' => '', + ), + 'yes' => array( + 'label' => __( 'Yes', 'feedzy-rss-feeds' ), + 'value' => 'yes', + ), + 'no' => array( + 'label' => __( 'No', 'feedzy-rss-feeds' ), + 'value' => 'no', + ), + ), + ), + 'default' => array( + 'label' => __( 'Default thumbnail URL if no image is found.', 'feedzy-rss-feeds' ), + 'placeholder' => __( 'Image URL', 'feedzy-rss-feeds' ), + 'type' => 'file', + 'value' => '', + 'button' => array( + 'button_text' => __( 'Select from Gallery', 'feedzy-rss-feeds' ), + ), + ), + 'size' => array( + 'label' => __( 'Thumbnails dimension. Do not include "px". Eg: 150', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg: 150)', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'value' => '', + ), + ), + ), + 'section_pro' => array( + 'title' => __( 'PRO Options', 'feedzy-rss-feeds' ), + 'description' => __( 'Get access to more options and customizations with full version of Feedzy RSS Feeds . Use existing templates or extend them and make them your own.', 'feedzy-rss-feeds' ) . '
' . '' . __( 'See more features of Feedzy RSS Feeds ', 'feedzy-rss-feeds' ) . '', + 'elements' => array( + 'price' => array( + 'label' => __( 'Should we display the price from the feed if it is available?', 'feedzy-rss-feeds' ), + 'type' => 'select', + 'disabled' => true, + 'value' => '', + 'opts' => array( + 'yes' => array( + 'label' => __( 'Yes', 'feedzy-rss-feeds' ), + 'value' => 'yes', + ), + 'no' => array( + 'label' => __( 'No', 'feedzy-rss-feeds' ), + 'value' => 'no', + ), + ), + ), + 'referral_url' => array( + 'label' => __( 'Referral URL parameters (w/o "?").', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg. promo_code=feedzy_is_awesome)', 'feedzy-rss-feeds' ), + 'type' => 'text', + 'disabled' => true, + 'value' => '', + ), + 'columns' => array( + 'label' => __( 'How many columns we should use to display the feed items', 'feedzy-rss-feeds' ), + 'placeholder' => __( '(eg. 1, 2, ..., 6)', 'feedzy-rss-feeds' ), + 'type' => 'number', + 'disabled' => true, + 'value' => '1', + ), + 'template' => array( + 'label' => __( 'Template to use when displaying the feed.', 'feedzy-rss-feeds' ), + 'type' => 'radio', + 'disabled' => true, + 'value' => '', + 'opts' => array( + 'auto' => array( + 'label' => __( 'Default', 'feedzy-rss-feeds' ), + 'value' => 'default', + ), + 'yes' => array( + 'label' => __( 'Style 1', 'feedzy-rss-feeds' ), + 'value' => 'style1', + ), + 'no' => array( + 'label' => __( 'Style 2', 'feedzy-rss-feeds' ), + 'value' => 'style2', + ), + ), + ), + ), + ), + ); + + $elements = apply_filters( 'feedzy_get_form_elements_filter', $elements ); + + return $elements; + } + + /** + * + * The method that returns the translation array + * + * @since 3.0.0 + * @access public + * @return string + */ + public function feedzy_tinymce_translation() { + + $locale = _WP_Editors::$mce_locale; + $translated = 'tinyMCE.addI18n("' . $locale . '.feedzy_tinymce_plugin", ' . json_encode( $this->strings ) . ");\n"; + + return $translated; + } + +} + +$feedzyLangClass = new Feedzy_Rss_Feeds_Ui_Lang(); +$strings = $feedzyLangClass->feedzy_tinymce_translation(); diff --git a/dist/includes/admin/feedzy-rss-feeds-ui.php b/dist/includes/admin/feedzy-rss-feeds-ui.php new file mode 100644 index 00000000..a78da3fa --- /dev/null +++ b/dist/includes/admin/feedzy-rss-feeds-ui.php @@ -0,0 +1,146 @@ + + */ +class Feedzy_Rss_Feeds_Ui { + + /** + * The ID of this plugin. + * + * @since 3.0.0 + * @access private + * @var string $plugin_name The ID of this plugin. + */ + private $plugin_name; + + /** + * The version of this plugin. + * + * @since 3.0.0 + * @access private + * @var string $version The current version of this plugin. + */ + private $version; + + /** + * The loader class. + * + * @since 3.0.0 + * @access private + * @var Feedzy_Rss_Feeds_Loader $loader The loader class of the plugin. + */ + private $loader; + + /** + * Initialize the class and set its properties. + * + * @since 3.0.0 + * @access public + * @param string $plugin_name The name of this plugin. + * @param string $version The version of this plugin. + * @param Feedzy_Rss_Feeds_Loader $loader The version of this plugin. + */ + public function __construct( $plugin_name, $version, Feedzy_Rss_Feeds_Loader $loader ) { + + $this->plugin_name = $plugin_name; + $this->version = $version; + $this->loader = $loader; + + } + + /** + * Initialize the hooks and filters for the tinymce button + * + * @since 3.0.0 + * @access public + */ + public function register_init() { + if ( current_user_can( 'edit_posts' ) && current_user_can( 'edit_pages' ) ) { + if ( 'true' == get_user_option( 'rich_editing' ) ) { + + $this->loader->add_filter( 'mce_external_plugins', $this, 'feedzy_tinymce_plugin', 10, 1 ); + $this->loader->add_filter( 'mce_buttons', $this, 'feedzy_register_mce_button', 10, 1 ); + + $this->loader->add_action( 'admin_enqueue_scripts', $this, 'enqueue_scripts', 10 ); + + $this->loader->run(); + } + } + } + + /** + * Register the JavaScript for the admin area. + * + * @since 3.0.0 + * @access public + */ + public function enqueue_scripts() { + + /** + * This function is provided for demonstration purposes only. + * + * An instance of this class should be passed to the run() function + * defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined + * in that particular class. + * + * The Feedzy_Rss_Feeds_Loader will then create the relationship + * between the defined hooks and the functions defined in this + * class. + */ + } + + /** + * Load plugin translation for - TinyMCE API + * + * @since 3.0.0 + * @access public + * @param array $arr The tinymce_lang array. + * @return array + */ + public function feedzy_add_tinymce_lang( $arr ) { + $feedzy_rss_feeds_ui_lang = FEEDZY_ABSPATH . '/includes/admin/feedzy-rss-feeds-ui-lang.php'; + $feedzy_rss_feeds_ui_lang = apply_filters( 'feedzy_rss_feeds_ui_lang_filter', $feedzy_rss_feeds_ui_lang ); + $arr[] = $feedzy_rss_feeds_ui_lang; + return $arr; + } + + /** + * Load custom js options - TinyMCE API + * + * @since 3.0.0 + * @access public + * @param array $plugin_array The tinymce plugin array. + * @return array + */ + public function feedzy_tinymce_plugin( $plugin_array ) { + $plugin_array['feedzy_mce_button'] = FEEDZY_ABSURL . 'js/feedzy-rss-feeds-ui-mce.js'; + return $plugin_array; + } + + /** + * Register new button in the editor + * + * @since 3.0.0 + * @access public + * @param array $buttons The tinymce buttons array. + * @return array + */ + public function feedzy_register_mce_button( $buttons ) { + array_push( $buttons, 'feedzy_mce_button' ); + return $buttons; + } +} diff --git a/dist/includes/admin/feedzy-rss-feeds-upgrader.php b/dist/includes/admin/feedzy-rss-feeds-upgrader.php new file mode 100644 index 00000000..47f8fa01 --- /dev/null +++ b/dist/includes/admin/feedzy-rss-feeds-upgrader.php @@ -0,0 +1,68 @@ +get_var( 'db_version' ); + if ( $db_version === false ) { + feedzy_options()->set_var( 'db_version', $php_version ); + $this->db_version = $php_version; + } else { + if ( feedzy_options()->get_var( 'is_new' ) === false ) { + feedzy_options()->set_var( 'is_new', 'no' ); + } + $this->db_version = $db_version; + } + $this->php_version = $php_version; + } + + /** + * Check if we need to run an upgrade or not. + */ + public function check() { + if ( version_compare( $this->db_version, $this->php_version ) === - 1 ) { + do_action( 'feedzy_upgrade_to_' . self::version_to_hook( $this->php_version ), $this->db_version ); + } + } + + /** + * Normalize version to be used in hooks. + * + * @param string $version In format 2.0.0. + * + * @return string Version format 2_0_0. + */ + public static function version_to_hook( $version ) { + return str_replace( '.', '_', $version ); + } + } +}// End if(). diff --git a/dist/includes/admin/feedzy-wp-widget.php b/dist/includes/admin/feedzy-wp-widget.php new file mode 100644 index 00000000..019735dc --- /dev/null +++ b/dist/includes/admin/feedzy-wp-widget.php @@ -0,0 +1,249 @@ + + */ +// @codingStandardsIgnoreStart +class feedzy_wp_widget extends WP_Widget { + // @codingStandardsIgnoreEnd + /** + * The class instance. + * + * @since 3.0.0 + * @access public + * @var feedzy_wp_widget $instance The instance of the class. + */ + public static $instance; + + /** + * The feedzy_wp_widget constructor method + * + * @since 3.0.0 + * @access public + * + * @param Feedzy_Rss_Feeds_Admin $plugin_admin The Feedzy_Rss_Feeds_Admin object. + */ + public function __construct( $plugin_admin = null ) { + parent::__construct( false, $name = __( 'Feedzy RSS Feeds', 'feedzy-rss-feeds' ) ); + self::$instance = $this; + + } + + /** + * Returns the instance of this class as in the singleton pattern + * + * @since 3.0.0 + * @access public + * @return feedzy_wp_widget + */ + public static function get_instance() { + if ( self::$instance === null ) { + self::$instance = new self(); + } + + return self::$instance; + } + + /** + * The register method for registering this widget class + * + * @since 3.0.0 + * @access public + */ + public function registerWidget() { + register_widget( 'feedzy_wp_widget' ); + } + + /** + * The widget form creation + * + * @since 3.0.0 + * @access public + * + * @param string $instance The Widget instance. + * + * @return mixed + */ + public function form( $instance ) { + $screen = get_current_screen(); + // to prevent conflicts with plugins such as siteorigin page builder that call this function from outside of the 'widgets' screen. + if ( ! empty( $screen ) && 'widgets' !== $screen->id ) { + return; + } + $instance = wp_parse_args( $instance, $this->get_widget_defaults() ); + $widget_form = '

+ + +

+

+ + +

'; + foreach ( Feedzy_Rss_Feeds_Ui_Lang::get_form_elements() as $key_section => $section ) { + $widget_form .= '

' . $section['title'] . '

'; + if ( isset( $section['description'] ) ) { + $widget_form .= '' . $section['description'] . ''; + } + foreach ( $section['elements'] as $id => $element ) { + if ( isset( $element['disabled'] ) && $element['disabled'] ) { + continue; + } + if ( $id == 'feed_title' ) { + continue; + } + if ( $id == 'title' ) { + $id = 'titlelength'; + } + $widget_form .= '

'; + $widget_form .= ''; + if ( $element['type'] == 'text' || $element['type'] == 'file' ) { + $widget_form .= ''; + } + if ( $element['type'] == 'number' ) { + $widget_form .= ''; + } + if ( $element['type'] == 'select' || $element['type'] == 'radio' ) { + $widget_form .= ''; + } + $widget_form .= '

'; + + } + } + $widget_form .= '
'; + $widget_form = apply_filters( 'feedzy_widget_form_filter', $widget_form, $instance, $this->get_widget_defaults() ); + echo $widget_form; + + } + + /** + * Get widget default values for params + * + * @return array List of defaults values + */ + public function get_widget_defaults() { + $defaults = Feedzy_Rss_Feeds_Ui_Lang::get_form_defaults(); + // rename title to title length as widget instance already have one + $defaults['titlelength'] = $defaults['title']; + $defaults['title'] = ''; + $defaults['textarea'] = ''; + + return $defaults; + } + + /** + * Convert binary values to yes/no touple. + * + * @param mixed $value string Value to convert to yes/no. + * + * @return bool + */ + public static function bool_to_enum( $value ) { + if ( in_array( $value, array( 'yes', 'no' ) ) ) { + return $value; + } + $value = strval( $value ); + if ( $value == '1' || $value == 'true' ) { + return 'yes'; + } + if ( $value == '0' || $value == 'false' ) { + return 'no'; + } + if ( $value == '' ) { + return 'auto'; + } + return $value; + + } + + /** + * + * The update method + * + * @since 3.0.0 + * @access public + * + * @param array $new_instance The new widget instance. + * @param array $old_instance The old widget instance. + * + * @return array + */ + public function update( $new_instance, $old_instance ) { + $instance = $old_instance; + $instance['title'] = strip_tags( $new_instance['title'] ); + if ( current_user_can( 'unfiltered_html' ) ) { + $instance['textarea'] = $new_instance['textarea']; + } else { + $instance['textarea'] = stripslashes( wp_filter_post_kses( addslashes( $new_instance['textarea'] ) ) ); + } + $forms_ids = array_keys( $this->get_widget_defaults() ); + foreach ( $forms_ids as $key ) { + $instance[ $key ] = strip_tags( isset( $new_instance[ $key ] ) ? $new_instance[ $key ] : '' ); + } + $instance = apply_filters( 'feedzy_widget_update_filter', $instance, $new_instance ); + + return $instance; + + } + + /** + * + * The widget function + * + * @since 3.0.0 + * @access public + * + * @param array $args The args to use. + * @param array $instance The widget instance. + */ + public function widget( $args, $instance ) { + $title = apply_filters( 'widget_title', $instance['title'] ); + $textarea = apply_filters( 'widget_textarea', empty( $instance['textarea'] ) ? '' : $instance['textarea'], $instance ); + // Display the widget body + echo $args['before_widget']; + // Check if title is set + if ( $title ) { + echo $args['before_title'] . $title . $args['after_title']; + } + // Check if text intro is set + if ( isset( $instance['textarea'] ) && ! empty( $instance['textarea'] ) ) { + echo '

' . wpautop( $textarea ) . '

'; + } + $feedzy_widget_shortcode_attributes = array( + 'feeds' => $instance['feeds'], + 'max' => $instance['max'], + 'feed_title' => 'no', + 'target' => $instance['target'], + 'title' => $instance['titlelength'], + 'meta' => self::bool_to_enum( $instance['meta'] ), + 'summary' => self::bool_to_enum( $instance['summary'] ), + 'summarylength' => $instance['summarylength'], + 'thumb' => self::bool_to_enum( $instance['thumb'] ), + 'default' => $instance['default'], + 'size' => $instance['size'], + 'keywords_title' => $instance['keywords_title'], + ); + $feedzy_widget_shortcode_attributes = apply_filters( 'feedzy_widget_shortcode_attributes_filter', $feedzy_widget_shortcode_attributes, $args, $instance ); + + echo feedzy_rss( $feedzy_widget_shortcode_attributes ); + echo $args['after_widget']; + + } + +} diff --git a/dist/includes/feedzy-rss-feeds-activator.php b/dist/includes/feedzy-rss-feeds-activator.php new file mode 100644 index 00000000..813da731 --- /dev/null +++ b/dist/includes/feedzy-rss-feeds-activator.php @@ -0,0 +1,49 @@ + + */ +class Feedzy_Rss_Feeds_Activator { + + /** + * Plugin activation action. + * + * Triggers the plugin activation action on plugin activate. + * + * @since 3.0.0 + * @access public + */ + public static function activate() { + $options = get_option( Feedzy_Rss_Feeds::get_plugin_name(), array() ); + $old_logger_option = get_option( 'feedzy_logger_flag', 'no' ); + if ( $old_logger_option == 'yes' ) { + update_option( 'feedzy_rss_feeds_logger_flag', 'yes' ); + update_option( 'feedzy_logger_flag', 'no' ); + } + if ( ! isset( $options['is_new'] ) ) { + update_option( + Feedzy_Rss_Feeds::get_plugin_name(), array( + 'is_new' => 'yes', + ) + ); + } + + } + +} diff --git a/dist/includes/feedzy-rss-feeds-deactivator.php b/dist/includes/feedzy-rss-feeds-deactivator.php new file mode 100644 index 00000000..115a6b5d --- /dev/null +++ b/dist/includes/feedzy-rss-feeds-deactivator.php @@ -0,0 +1,36 @@ + + */ +class Feedzy_Rss_Feeds_Deactivator { + + /** + * Short Description. (use period) + * + * Long Description. + * + * @since 3.0.0 + * @access public + */ + public static function deactivate() { + + } + +} diff --git a/dist/includes/feedzy-rss-feeds-feed-tweaks.php b/dist/includes/feedzy-rss-feeds-feed-tweaks.php new file mode 100644 index 00000000..1da185a1 --- /dev/null +++ b/dist/includes/feedzy-rss-feeds-feed-tweaks.php @@ -0,0 +1,66 @@ +ID ) ) { + $content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail' ) . '' . $content; + } + + return $content; +} + +// Alter the main blog feed to insert the thumbnail image. +add_filter( 'the_excerpt_rss', 'feedzy_insert_thumbnail_RSS' ); +add_filter( 'the_content_feed', 'feedzy_insert_thumbnail_RSS' ); + +/** + * Boostrap the plugin view. + * + * @param array $options The shortcode attributes. + */ +function feedzy_rss( $options = array() ) { + $admin = Feedzy_Rss_Feeds::instance()->get_admin(); + return $admin->feedzy_rss( $options ); +} + +/** + * The helper method for options wrapper + * + * @return Feedzy_Rss_Feeds_Options + */ +function feedzy_options() { + return Feedzy_Rss_Feeds_Options::instance(); +} + +/** + * Check if the user is before 3.0.3 or not. + * + * @return bool If the users is before 3.0.3 or after + */ +function feedzy_is_new() { + return feedzy_options()->get_var( 'is_new' ) === 'yes' && ! feedzy_is_pro(); +} + +/** + * Check if the user is pro or not. + * + * @return bool If the users is pro or not + */ +function feedzy_is_pro() { + return defined( 'FEEDZY_PRO_ABSPATH' ); +} diff --git a/dist/includes/feedzy-rss-feeds-i18n.php b/dist/includes/feedzy-rss-feeds-i18n.php new file mode 100644 index 00000000..7dc4e2af --- /dev/null +++ b/dist/includes/feedzy-rss-feeds-i18n.php @@ -0,0 +1,49 @@ + + */ + +// @codingStandardsIgnoreStart +class Feedzy_Rss_Feeds_i18n { + // @codingStandardsIgnoreEnd + + /** + * Load the plugin text domain for translation. + * + * @since 3.0.0 + * @access public + */ + public function load_plugin_textdomain() { + + load_plugin_textdomain( + 'feedzy-rss-feeds', + false, + dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' + ); + + } + + + +} diff --git a/dist/includes/feedzy-rss-feeds-loader.php b/dist/includes/feedzy-rss-feeds-loader.php new file mode 100644 index 00000000..9c9f9b2f --- /dev/null +++ b/dist/includes/feedzy-rss-feeds-loader.php @@ -0,0 +1,155 @@ + + */ +class Feedzy_Rss_Feeds_Loader { + + /** + * The array of actions registered with WordPress. + * + * @since 3.0.0 + * @access protected + * @var array $actions The actions registered with WordPress to fire when the plugin loads. + */ + protected $actions; + + /** + * The array of filters registered with WordPress. + * + * @since 3.0.0 + * @access protected + * @var array $filters The filters registered with WordPress to fire when the plugin loads. + */ + protected $filters; + + /** + * Initialize the collections used to maintain the actions and filters. + * + * @since 3.0.0 + * @access public + */ + public function __construct() { + + $this->actions = array(); + $this->filters = array(); + + } + + /** + * Add a new action to the collection to be registered with WordPress. + * + * @since 3.0.0 + * @access public + * @param string $hook The name of the WordPress action that is being registered. + * @param object $component A reference to the instance of the object on which the action is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority Optional. he priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. + */ + public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { + $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args ); + } + + /** + * Add a new filter to the collection to be registered with WordPress. + * + * @since 3.0.0 + * @access public + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority Optional. he priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. + */ + public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { + $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args ); + } + + /** + * Registers AJAX action hook. + * + * @since 3.0.0 + * @access public + * @param string $tag The name of the AJAX action to which the $method is hooked. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority Optional. he priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. + * @param boolean $private Optional. Determines if we should register hook for logged in users. + * @param boolean $public Optional. Determines if we should register hook for not logged in users. + */ + public function add_ajax_action( $tag, $component, $callback, $priority = 10, $accepted_args = 1, $private = true, $public = false ) { + if ( $private ) { + $this->actions = $this->add( $this->actions, 'wp_ajax_' . $tag, $component, $callback, $priority, $accepted_args ); + } + + if ( $public ) { + $this->actions = $this->add( $this->actions, 'wp_ajax_nopriv_' . $tag, $component, $callback, $priority, $accepted_args ); + } + } + + /** + * A utility function that is used to register the actions and hooks into a single + * collection. + * + * @since 3.0.0 + * @access private + * @param array $hooks The collection of hooks that is being registered (that is, actions or filters). + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority The priority at which the function should be fired. + * @param int $accepted_args The number of arguments that should be passed to the $callback. + * @return array The collection of actions and filters registered with WordPress. + */ + private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) { + + $hooks[] = array( + 'hook' => $hook, + 'component' => $component, + 'callback' => $callback, + 'priority' => $priority, + 'accepted_args' => $accepted_args, + ); + + return $hooks; + + } + + /** + * Register the filters and actions with WordPress. + * + * @since 3.0.0 + * @access public + */ + public function run() { + + foreach ( $this->filters as $hook ) { + add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); + } + + foreach ( $this->actions as $hook ) { + add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); + } + + } + +} diff --git a/dist/includes/feedzy-rss-feeds.php b/dist/includes/feedzy-rss-feeds.php new file mode 100644 index 00000000..51890377 --- /dev/null +++ b/dist/includes/feedzy-rss-feeds.php @@ -0,0 +1,259 @@ + + */ +class Feedzy_Rss_Feeds { + + /** + * The unique identifier of this plugin. + * + * @since 3.0.0 + * @access protected + * @var string $plugin_name The string used to uniquely identify this plugin. + */ + protected static $plugin_name; + /** + * The current version of the plugin. + * + * @since 3.0.0 + * @access protected + * @var string $version The current version of the plugin. + */ + protected static $version; + + /** + * The main instance var. + * + * @var Feedzy_Rss_Feeds The one Feedzy_Rss_Feeds instance. + * @since 3.0.4 + */ + private static $instance; + /** + * The loader that's responsible for maintaining and registering all hooks that power + * the plugin. + * + * @since 3.0.0 + * @access protected + * @var Feedzy_Rss_Feeds_Loader $loader Maintains and registers all hooks for the plugin. + */ + protected $loader; + /** + * The class responsible for all upgrading proceses. + * + * @since 3.0.3 + * @access protected + * @var Feedzy_Rss_Feeds_Upgrader $upgrader Responsible for the upgrading processes. + */ + protected $upgrader; + /** + * The class responsible for all admin processes. + * + * @since 3.0.3 + * @access protected + * @var Feedzy_Rss_Feeds_Admin $admin Responsible for the admin processes. + */ + protected $admin; + + /** + * Init the main singleton instance class. + * + * @return Feedzy_Rss_Feeds Return the instance class + */ + public static function instance() { + if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Feedzy_Rss_Feeds ) ) { + self::$instance = new Feedzy_Rss_Feeds; + self::$instance->init(); + } + + return self::$instance; + } + + /** + * Define the core functionality of the plugin. + * + * Set the plugin name and the plugin version that can be used throughout the plugin. + * Load the dependencies, define the locale, and set the hooks for the admin area and + * the public-facing side of the site. + * + * @since 3.0.0 + * @access public + */ + public function init() { + self::$plugin_name = 'feedzy-rss-feeds'; + self::$version = '3.2.11'; + self::$instance->load_dependencies(); + self::$instance->set_locale(); + self::$instance->define_admin_hooks(); + + } + + /** + * Load the required dependencies for this plugin. + * + * Include the following files that make up the plugin: + * + * - Feedzy_Rss_Feeds_Loader. Orchestrates the hooks of the plugin. + * - Feedzy_Rss_Feeds_i18n. Defines internationalization functionality. + * - Feedzy_Rss_Feeds_Admin. Defines all hooks for the admin area. + * - Feedzy_Rss_Feeds_Public. Defines all hooks for the public side of the site. + * + * Create an instance of the loader which will be used to register the hooks + * with WordPress. + * + * @since 3.0.0 + * @access private + */ + private function load_dependencies() { + include_once FEEDZY_ABSPATH . '/includes/feedzy-rss-feeds-feed-tweaks.php'; + self::$instance->loader = new Feedzy_Rss_Feeds_Loader(); + self::$instance->upgrader = new Feedzy_Rss_Feeds_Upgrader(); + self::$instance->admin = new Feedzy_Rss_Feeds_Admin( self::$instance->get_plugin_name(), self::$instance->get_version() ); + + } + + /** + * The name of the plugin used to uniquely identify it within the context of + * WordPress and to define internationalization functionality. + * + * @since 3.0.0 + * @access public + * @return string The name of the plugin. + */ + public static function get_plugin_name() { + return self::$plugin_name; + } + + /** + * Retrieve the version number of the plugin. + * + * @since 3.0.0 + * @access public + * @return string The version number of the plugin. + */ + public static function get_version() { + return self::$version; + } + + /** + * Define the locale for this plugin for internationalization. + * + * Uses the Feedzy_Rss_Feeds_i18n class in order to set the domain and to register the hook + * with WordPress. + * + * @since 3.0.0 + * @access private + */ + private function set_locale() { + /** + * The class responsible for defining internationalization functionality + * of the plugin. + */ + $plugin_i18n = new Feedzy_Rss_Feeds_i18n(); + self::$instance->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' ); + + } + + /** + * Register all of the hooks related to the admin area functionality + * of the plugin. + * + * @since 3.0.0 + * @updated 3.0.12 + * @access private + */ + private function define_admin_hooks() { + $plugin_ui = new Feedzy_Rss_Feeds_Ui( self::$instance->get_plugin_name(), self::$instance->get_version(), self::$instance->loader ); + self::$instance->loader->add_action( 'init', $plugin_ui, 'register_init' ); + self::$instance->loader->add_action( 'init', self::$instance->admin, 'register_post_type' ); + self::$instance->loader->add_action( 'save_post', self::$instance->admin, 'save_feedzy_post_type_meta', 1, 2 ); + self::$instance->loader->add_action( 'feedzy_pre_http_setup', self::$instance->admin, 'pre_http_setup', 10, 1 ); + self::$instance->loader->add_action( 'feedzy_post_http_teardown', self::$instance->admin, 'post_http_teardown', 10, 1 ); + + self::$instance->loader->add_action( 'manage_feedzy_categories_posts_custom_column', self::$instance->admin, 'manage_feedzy_category_columns', 10, 2 ); + self::$instance->loader->add_filter( 'manage_feedzy_categories_posts_columns', self::$instance->admin, 'feedzy_category_columns' ); + + self::$instance->loader->add_action( 'admin_menu', self::$instance->admin, 'feedzy_menu_pages' ); + self::$instance->loader->add_filter( 'mce_external_languages', $plugin_ui, 'feedzy_add_tinymce_lang', 10, 1 ); + self::$instance->loader->add_filter( 'plugin_row_meta', self::$instance->admin, 'feedzy_filter_plugin_row_meta', 10, 2 ); + self::$instance->loader->add_filter( 'feedzy_default_image', self::$instance->admin, 'feedzy_define_default_image' ); + self::$instance->loader->add_filter( 'feedzy_default_error', self::$instance->admin, 'feedzy_default_error_notice', 9, 2 ); + self::$instance->loader->add_filter( 'feedzy_item_attributes', self::$instance->admin, 'feedzy_add_item_padding', 10, 2 ); + self::$instance->loader->add_filter( 'feedzy_item_attributes', self::$instance->admin, 'feedzy_classes_item', 99, 5 ); + self::$instance->loader->add_filter( 'feedzy_register_options', self::$instance->admin, 'register_options' ); + self::$instance->loader->add_filter( 'feedzy_summary_input', self::$instance->admin, 'feedzy_summary_input_filter', 9, 3 ); + self::$instance->loader->add_filter( 'feedzy_item_keyword', self::$instance->admin, 'feedzy_feed_item_keywords_title', 9, 4 ); + self::$instance->loader->add_filter( 'feedzy_get_feed_array', self::$instance->admin, 'get_feed_array', 10, 5 ); + self::$instance->loader->add_filter( 'feedzy_process_feed_source', self::$instance->admin, 'process_feed_source', 10, 1 ); + self::$instance->loader->add_filter( 'feedzy_get_feed_url', self::$instance->admin, 'get_feed_url', 10, 1 ); + self::$instance->loader->add_filter( 'feedzy_get_settings', self::$instance->admin, 'get_settings', 10, 1 ); + add_shortcode( 'feedzy-rss', array( self::$instance->admin, 'feedzy_rss' ) ); + self::$instance->loader->add_action( 'wp_ajax_get_tinymce_form', self::$instance->admin, 'get_tinymce_form' ); + self::$instance->loader->add_action( 'wp_enqueue_scripts', self::$instance->admin, 'enqueue_styles' ); + self::$instance->loader->add_action( 'admin_enqueue_scripts', self::$instance->admin, 'enqueue_styles' ); + $plugin_widget = new feedzy_wp_widget(); + self::$instance->loader->add_action( 'widgets_init', $plugin_widget, 'registerWidget', 10 ); + add_action( + 'plugins_loaded', function () { + if ( function_exists( 'register_block_type' ) ) { + Feedzy_Rss_Feeds_Gutenberg_Block::get_instance(); + }} + ); + } + + /** + * Run the loader to execute all of the hooks with WordPress. + * + * @since 3.0.0 + * @access public + */ + public function run() { + self::$instance->loader->run(); + } + + /** + * The reference to the class that orchestrates the hooks with the plugin. + * + * @since 3.0.0 + * @access public + * @return Feedzy_Rss_Feeds_Loader Orchestrates the hooks of the plugin. + */ + public function get_loader() { + return self::$instance->loader; + } + + /** + * The reference to the class that run the admin with the plugin. + * + * @since 3.0.0 + * @access public + * @return Feedzy_Rss_Feeds_Admin Orchestrates the admin of the plugin. + */ + public function get_admin() { + return self::$instance->admin; + } + +} diff --git a/dist/includes/gutenberg/dist/block.css b/dist/includes/gutenberg/dist/block.css new file mode 100644 index 00000000..59a46274 --- /dev/null +++ b/dist/includes/gutenberg/dist/block.css @@ -0,0 +1,2 @@ +.feedzy-blocks-base-control{padding-bottom:10px}.feedzy-blocks-base-control label{padding-bottom:10px}.feedzy-blocks-base-control .feedzy_image_upload{display:block;margin-bottom:10px}.feedzy-select-cat{width:100%}.feedzy-select-cat select{width:auto} +.components-radio-image-control__container{display:block}.components-radio-image-control__option{display:inline-block;padding:5px}.components-radio-image-control label{display:inline-block;position:relative}.components-radio-image-control label img{border:1px solid transparent;max-width:250px !important}.components-radio-image-control input{display:none}.components-radio-image-control input+label .image-clickable{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.components-radio-image-control input:checked+label img{border:1px solid #3498DB;box-shadow:0 0 5px 2px rgba(0,0,0,0.25)} diff --git a/dist/includes/gutenberg/dist/block.js b/dist/includes/gutenberg/dist/block.js new file mode 100644 index 00000000..da0f8882 --- /dev/null +++ b/dist/includes/gutenberg/dist/block.js @@ -0,0 +1,502 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 29); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var store = __webpack_require__(24)('wks');\nvar uid = __webpack_require__(26);\nvar Symbol = __webpack_require__(1).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLmpzPzc1MmMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHN0b3JlID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ3drcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLlN5bWJvbDtcbnZhciBVU0VfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xuXG52YXIgJGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n"); + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + +eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZ2xvYmFsLmpzP2VjYWIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n"); + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +eval("var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qcz8xNWUwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjUuNycgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qc1xuLy8gbW9kdWxlIGlkID0gMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2\n"); + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var dP = __webpack_require__(4);\nvar createDesc = __webpack_require__(11);\nmodule.exports = __webpack_require__(6) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGlkZS5qcz84NDljIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oaWRlLmpzXG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n"); + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var anObject = __webpack_require__(5);\nvar IE8_DOM_DEFINE = __webpack_require__(35);\nvar toPrimitive = __webpack_require__(36);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(6) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwLmpzPzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHAuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4\n"); + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var isObject = __webpack_require__(9);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYW4tb2JqZWN0LmpzP2VmYjMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FuLW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n"); + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(10)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVzY3JpcHRvcnMuanM/Zjg0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZXNjcmlwdG9ycy5qc1xuLy8gbW9kdWxlIGlkID0gNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6\n"); + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGFzLmpzPzBmNjIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oYXMuanNcbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///7\n"); + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var global = __webpack_require__(1);\nvar core = __webpack_require__(2);\nvar ctx = __webpack_require__(17);\nvar hide = __webpack_require__(3);\nvar has = __webpack_require__(7);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzPzkwY2QiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIElTX1dSQVAgPSB0eXBlICYgJGV4cG9ydC5XO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV07XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIga2V5LCBvd24sIG91dDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICBpZiAob3duICYmIGhhcyhleHBvcnRzLCBrZXkpKSBjb250aW51ZTtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IG93biA/IHRhcmdldFtrZXldIDogc291cmNlW2tleV07XG4gICAgLy8gcHJldmVudCBnbG9iYWwgcG9sbHV0aW9uIGZvciBuYW1lc3BhY2VzXG4gICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV1cbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIDogSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpXG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnlcbiAgICA6IElTX1dSQVAgJiYgdGFyZ2V0W2tleV0gPT0gb3V0ID8gKGZ1bmN0aW9uIChDKSB7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykge1xuICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEMoKTtcbiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpO1xuICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEMoYSwgYik7XG4gICAgICAgICAgfSByZXR1cm4gbmV3IEMoYSwgYiwgYyk7XG4gICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBGW1BST1RPVFlQRV0gPSBDW1BST1RPVFlQRV07XG4gICAgICByZXR1cm4gRjtcbiAgICAvLyBtYWtlIHN0YXRpYyB2ZXJzaW9ucyBmb3IgcHJvdG90eXBlIG1ldGhvZHNcbiAgICB9KShvdXQpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlXG4gICAgaWYgKElTX1BST1RPKSB7XG4gICAgICAoZXhwb3J0cy52aXJ0dWFsIHx8IChleHBvcnRzLnZpcnR1YWwgPSB7fSkpW2tleV0gPSBvdXQ7XG4gICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJVxuICAgICAgaWYgKHR5cGUgJiAkZXhwb3J0LlIgJiYgZXhwUHJvdG8gJiYgIWV4cFByb3RvW2tleV0pIGhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzXG4vLyBtb2R1bGUgaWQgPSA4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8\n"); + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + +eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzPzEyYTgiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///9\n"); + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + +eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzPzRiY2QiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///10\n"); + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + +eval("module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanM/NWZjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanNcbi8vIG1vZHVsZSBpZCA9IDExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///11\n"); + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + +eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanM/ZTc2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanNcbi8vIG1vZHVsZSBpZCA9IDEyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///12\n"); + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + +eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWludGVnZXIuanM/NTJlMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAxM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///13\n"); + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var shared = __webpack_require__(24)('keys');\nvar uid = __webpack_require__(26);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC1rZXkuanM/NmIxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzXG4vLyBtb2R1bGUgaWQgPSAxNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///14\n"); + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(12);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcz9iMDFkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///15\n"); + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + +eval("module.exports = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcz9mZGI0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge307XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlcmF0b3JzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///16\n"); + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// optional / simple context binding\nvar aFunction = __webpack_require__(34);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2N0eC5qcz9mOTkzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jdHguanNcbi8vIG1vZHVsZSBpZCA9IDE3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///17\n"); + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var isObject = __webpack_require__(9);\nvar document = __webpack_require__(1).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanM/MzhkZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kb20tY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAxOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///18\n"); + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(38);\nvar enumBugKeys = __webpack_require__(27);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzPzk2NGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjE0IC8gMTUuMi4zLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykge1xuICByZXR1cm4gJGtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy5qc1xuLy8gbW9kdWxlIGlkID0gMTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///19\n"); + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(21);\nvar defined = __webpack_require__(12);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWlvYmplY3QuanM/NGRjNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0byBpbmRleGVkIG9iamVjdCwgdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSU9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWlvYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDIwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///20\n"); + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(22);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanM/MzE0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDIxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n"); + +/***/ }), +/* 22 */ +/***/ (function(module, exports) { + +eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qcz80N2QzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanNcbi8vIG1vZHVsZSBpZCA9IDIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///22\n"); + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(13);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcz80MTExIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xNSBUb0xlbmd0aFxudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA+IDAgPyBtaW4odG9JbnRlZ2VyKGl0KSwgMHgxZmZmZmZmZmZmZmZmZikgOiAwOyAvLyBwb3coMiwgNTMpIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qc1xuLy8gbW9kdWxlIGlkID0gMjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///23\n"); + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var core = __webpack_require__(2);\nvar global = __webpack_require__(1);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(25) ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcz83YmMwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxOCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gMjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n"); + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + +eval("module.exports = true;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanM/M2I4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbGlicmFyeS5qc1xuLy8gbW9kdWxlIGlkID0gMjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///25\n"); + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + +eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcz9kYzRhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpZCA9IDA7XG52YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qc1xuLy8gbW9kdWxlIGlkID0gMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///26\n"); + +/***/ }), +/* 27 */ +/***/ (function(module, exports) { + +eval("// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanM/YzY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJRSA4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IChcbiAgJ2NvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZidcbikuc3BsaXQoJywnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19lbnVtLWJ1Zy1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///27\n"); + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var def = __webpack_require__(4).f;\nvar has = __webpack_require__(7);\nvar TAG = __webpack_require__(0)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzPzdiYTkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanNcbi8vIG1vZHVsZSBpZCA9IDI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///28\n"); + +/***/ }), +/* 29 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__style_scss__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_query_string__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_query_string___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_query_string__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__attributes__ = __webpack_require__(47);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__inspector__ = __webpack_require__(48);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(51);\n\n\nvar _this = this;\n\n// jshint ignore: start\n\n/**\n * Block dependencies\n */\n\n\n\n\n\n\n/**\n * Internal block libraries\n */\nvar __ = wp.i18n.__;\nvar registerBlockType = wp.blocks.registerBlockType;\nvar _wp$components = wp.components,\n Placeholder = _wp$components.Placeholder,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n Spinner = _wp$components.Spinner;\n\n/**\n * Register block\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (registerBlockType('feedzy-rss-feeds/feedzy-block', {\n\ttitle: __('Feedzy RSS Feeds'),\n\tcategory: 'common',\n\ticon: 'rss',\n\tkeywords: [__('Feedzy RSS Feeds'), __('RSS'), __('Feeds')],\n\tsupports: {\n\t\thtml: false\n\t},\n\tattributes: __WEBPACK_IMPORTED_MODULE_3__attributes__[\"a\" /* default */],\n\tedit: function edit(props) {\n\t\tvar onChangeFeeds = function onChangeFeeds(value) {\n\t\t\tprops.setAttributes({ feeds: value });\n\t\t};\n\t\tvar onChangeMax = function onChangeMax(value) {\n\t\t\tprops.setAttributes({ max: value.toString() });\n\t\t};\n\t\tvar toggleFeedTitle = function toggleFeedTitle(value) {\n\t\t\tprops.setAttributes({ feed_title: !props.attributes.feed_title });\n\t\t};\n\t\tvar onRefresh = function onRefresh(value) {\n\t\t\tprops.setAttributes({ refresh: value });\n\t\t};\n\t\tvar onSort = function onSort(value) {\n\t\t\tprops.setAttributes({ sort: value });\n\t\t};\n\t\tvar onTarget = function onTarget(value) {\n\t\t\tprops.setAttributes({ target: value });\n\t\t};\n\t\tvar onTitle = function onTitle(value) {\n\t\t\tprops.setAttributes({ title: value });\n\t\t};\n\t\tvar toggleMeta = function toggleMeta(value) {\n\t\t\tprops.setAttributes({ meta: !props.attributes.meta });\n\t\t};\n\t\tvar toggleSummary = function toggleSummary(value) {\n\t\t\tprops.setAttributes({ summary: !props.attributes.summary });\n\t\t};\n\t\tvar onSummaryLength = function onSummaryLength(value) {\n\t\t\tprops.setAttributes({ summarylength: value });\n\t\t};\n\t\tvar onKeywordsTitle = function onKeywordsTitle(value) {\n\t\t\tprops.setAttributes({ keywords_title: value });\n\t\t};\n\t\tvar onKeywordsBan = function onKeywordsBan(value) {\n\t\t\tprops.setAttributes({ keywords_ban: value });\n\t\t};\n\t\tvar onThumb = function onThumb(value) {\n\t\t\tprops.setAttributes({ thumb: value });\n\t\t};\n\t\tvar onDefault = function onDefault(value) {\n\t\t\tprops.setAttributes({ default: value });\n\t\t};\n\t\tvar onSize = function onSize(value) {\n\t\t\tprops.setAttributes({ size: value });\n\t\t};\n\t\tvar onReferralURL = function onReferralURL(value) {\n\t\t\tprops.setAttributes({ referral_url: value });\n\t\t};\n\t\tvar onColumns = function onColumns(value) {\n\t\t\tprops.setAttributes({ columns: value });\n\t\t};\n\t\tvar onTemplate = function onTemplate(value) {\n\t\t\tprops.setAttributes({ template: value });\n\t\t};\n\t\tvar togglePrice = function togglePrice(value) {\n\t\t\tprops.setAttributes({ price: !props.attributes.price });\n\t\t};\n\t\tvar loadFeed = function loadFeed() {\n\t\t\tprops.setAttributes({ status: 1 });\n\n\t\t\tvar url = props.attributes.feeds;\n\n\t\t\tif (url === undefined) {\n\t\t\t\treturn props.setAttributes({ status: 3 });\n\t\t\t}\n\n\t\t\tif (Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"b\" /* inArray */])(url, props.attributes.categories)) {\n\t\t\t\tvar category = url;\n\t\t\t\turl = __WEBPACK_IMPORTED_MODULE_2_query_string___default.a.stringify({ category: category }, { arrayFormat: 'bracket' });\n\t\t\t} else {\n\t\t\t\turl = url.replace(/\\s/g, '').split(',').filter(function (item) {\n\t\t\t\t\treturn item !== '';\n\t\t\t\t});\n\t\t\t\turl = __WEBPACK_IMPORTED_MODULE_2_query_string___default.a.stringify({ url: url }, { arrayFormat: 'bracket' });\n\t\t\t}\n\n\t\t\twp.apiRequest({ path: '/feedzy/v1/feed?' + url }).then(function (data) {\n\t\t\t\tif (_this.unmounting) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\tif (!data['error']) {\n\t\t\t\t\tprops.setAttributes({ feedData: data });\n\t\t\t\t\tprops.setAttributes({ status: 2 });\n\t\t\t\t\treturn data;\n\t\t\t\t} else {\n\t\t\t\t\tprops.setAttributes({ status: 3 });\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t}).fail(function (err) {\n\t\t\t\tprops.setAttributes({ status: 3 });\n\t\t\t\treturn err;\n\t\t\t});\n\t\t};\n\t\tvar loadCategories = function loadCategories() {\n\t\t\twp.apiRequest({ path: '/wp/v2/feedzy_categories' }).then(function (data) {\n\t\t\t\tif (_this.unmounting) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\tvar i = 0;\n\t\t\t\tvar categories = [];\n\t\t\t\tdata.forEach(function (item) {\n\t\t\t\t\tcategories[i] = item.slug;\n\t\t\t\t\ti = i + 1;\n\t\t\t\t});\n\t\t\t\tprops.setAttributes({ categories: categories });\n\t\t\t\tjQuery('.feedzy-source input').autocomplete({\n\t\t\t\t\tsource: categories,\n\t\t\t\t\tselect: function select(event, ui) {\n\t\t\t\t\t\tprops.setAttributes({ feeds: ui.item.label });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).fail(function (err) {\n\t\t\t\treturn err;\n\t\t\t});\n\t\t};\n\t\tif (props.attributes.categories === undefined) {\n\t\t\tloadCategories();\n\t\t}\n\t\treturn [\n\t\t// Inspector\n\t\t!!props.isSelected && wp.element.createElement(__WEBPACK_IMPORTED_MODULE_4__inspector__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ onChangeFeeds: onChangeFeeds, onChangeMax: onChangeMax, toggleFeedTitle: toggleFeedTitle, onRefresh: onRefresh, onSort: onSort, onTarget: onTarget, onTitle: onTitle, toggleMeta: toggleMeta, toggleSummary: toggleSummary, onSummaryLength: onSummaryLength, onKeywordsTitle: onKeywordsTitle, onKeywordsBan: onKeywordsBan, onThumb: onThumb, onDefault: onDefault, onSize: onSize, onReferralURL: onReferralURL, onColumns: onColumns, onTemplate: onTemplate, togglePrice: togglePrice, loadFeed: loadFeed }, props)), props.attributes.status !== 2 && wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: props.className },\n\t\t\twp.element.createElement(\n\t\t\t\tPlaceholder,\n\t\t\t\t{\n\t\t\t\t\tkey: 'placeholder',\n\t\t\t\t\ticon: 'rss',\n\t\t\t\t\tlabel: __('Feedzy RSS Feeds')\n\t\t\t\t},\n\t\t\t\tprops.attributes.status === 1 ? wp.element.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ key: 'loading', className: 'wp-block-embed is-loading' },\n\t\t\t\t\twp.element.createElement(Spinner, null),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'p',\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t__('Fetching…')\n\t\t\t\t\t)\n\t\t\t\t) : [props.attributes.status === 3 && wp.element.createElement(\n\t\t\t\t\t'span',\n\t\t\t\t\tnull,\n\t\t\t\t\t__('Feed URL Invalid')\n\t\t\t\t), wp.element.createElement(TextControl, {\n\t\t\t\t\ttype: 'url',\n\t\t\t\t\tclassName: 'feedzy-source',\n\t\t\t\t\tplaceholder: __('Enter URL or category of your feed here…'),\n\t\t\t\t\tonChange: onChangeFeeds,\n\t\t\t\t\tvalue: props.attributes.feeds\n\t\t\t\t}), wp.element.createElement(\n\t\t\t\t\tButton,\n\t\t\t\t\t{\n\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\ttype: 'submit',\n\t\t\t\t\t\tonClick: loadFeed\n\t\t\t\t\t},\n\t\t\t\t\t__('Load Feed')\n\t\t\t\t)]\n\t\t\t)\n\t\t), !!(props.attributes.status === 2 && props.attributes.feedData !== undefined) && wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: 'feedzy-rss' },\n\t\t\tprops.attributes.feed_title && props.attributes.feedData['channel'] !== null && wp.element.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: 'rss_header' },\n\t\t\t\twp.element.createElement(\n\t\t\t\t\t'h2',\n\t\t\t\t\tnull,\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'a',\n\t\t\t\t\t\t{ className: 'rss_title' },\n\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(props.attributes.feedData['channel']['title'])\n\t\t\t\t\t),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'span',\n\t\t\t\t\t\t{ className: 'rss_description' },\n\t\t\t\t\t\t' ' + Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(props.attributes.feedData['channel']['description'])\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t),\n\t\t\twp.element.createElement(\n\t\t\t\t'ul',\n\t\t\t\t{ className: 'feedzy-' + props.attributes.template },\n\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* filterData */])(props.attributes.feedData['items'], props.attributes.sort, props.attributes.keywords_title, props.attributes.keywords_ban, props.attributes.max).map(function (item, i) {\n\t\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t\t'li',\n\t\t\t\t\t\t{ key: i, style: { padding: '15px 0 25px' }, className: 'rss_item feedzy-rss-col-' + props.attributes.columns },\n\t\t\t\t\t\t(item['thumbnail'] && props.attributes.thumb === 'auto' || props.attributes.thumb === 'yes') && wp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'rss_image', style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px' } },\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t{ title: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']), style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px' } },\n\t\t\t\t\t\t\t\twp.element.createElement('span', { className: 'fetched', style: { backgroundImage: 'url(' + (item['thumbnail'] ? item['thumbnail'] : props.attributes.default ? props.attributes.default.url : feedzyjs.imagepath + 'feedzy-default.jpg') + ')' }, title: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']) })\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'rss_content_wrap' },\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t\t{ className: 'title' },\n\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tprops.attributes.title && Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']).length > props.attributes.title ? Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']).substring(0, props.attributes.title) + '...' : Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title'])\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t{ className: 'rss_content' },\n\t\t\t\t\t\t\t\tprops.attributes.meta && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'small',\n\t\t\t\t\t\t\t\t\t{ className: 'meta' },\n\t\t\t\t\t\t\t\t\titem['creator'] && [__('by'), ' ', wp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['creator'])\n\t\t\t\t\t\t\t\t\t), ' '],\n\t\t\t\t\t\t\t\t\t__('on'),\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['date']),\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t__('at'),\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['time'])\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tprops.attributes.summary && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'p',\n\t\t\t\t\t\t\t\t\t{ className: 'description' },\n\t\t\t\t\t\t\t\t\tprops.attributes.summarylength && Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description']).length > props.attributes.summarylength ? Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description']).substring(0, props.attributes.summarylength) + ' […]' : Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description'])\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tfeedzyjs.isPro && item['media'] && item['media']['src'] && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'audio',\n\t\t\t\t\t\t\t\t\t{ controls: true, controlsList: 'nodownload' },\n\t\t\t\t\t\t\t\t\twp.element.createElement('source', { src: item['media']['src'], type: item['media']['type'] }),\n\t\t\t\t\t\t\t\t\t__('Your browser does not support the audio element. But you can check this for the original link: '),\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\t{ href: item['media']['src'] },\n\t\t\t\t\t\t\t\t\t\titem['media']['src']\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tfeedzyjs.isPro && props.attributes.price && item['price'] && props.attributes.template !== 'default' && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t\t{ className: 'price-wrap' },\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t\t'button',\n\t\t\t\t\t\t\t\t\t\t\t{ className: 'price' },\n\t\t\t\t\t\t\t\t\t\t\titem['price']\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t)\n\t\t)];\n\t},\n\tsave: function save() {\n\t\t// Rendering in PHP\n\t\treturn null;\n\t}\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2Jsb2NrLmpzPzUxZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcblxudmFyIF90aGlzID0gdGhpcztcblxuLy8ganNoaW50IGlnbm9yZTogc3RhcnRcblxuLyoqXG4gKiBCbG9jayBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3F1ZXJ5LXN0cmluZyc7XG5pbXBvcnQgYmxvY2tBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yJztcbmltcG9ydCB7IHVuZXNjYXBlSFRNTCwgZmlsdGVyRGF0YSwgaW5BcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEludGVybmFsIGJsb2NrIGxpYnJhcmllc1xuICovXG52YXIgX18gPSB3cC5pMThuLl9fO1xudmFyIHJlZ2lzdGVyQmxvY2tUeXBlID0gd3AuYmxvY2tzLnJlZ2lzdGVyQmxvY2tUeXBlO1xudmFyIF93cCRjb21wb25lbnRzID0gd3AuY29tcG9uZW50cyxcbiAgICBQbGFjZWhvbGRlciA9IF93cCRjb21wb25lbnRzLlBsYWNlaG9sZGVyLFxuICAgIFRleHRDb250cm9sID0gX3dwJGNvbXBvbmVudHMuVGV4dENvbnRyb2wsXG4gICAgQnV0dG9uID0gX3dwJGNvbXBvbmVudHMuQnV0dG9uLFxuICAgIFNwaW5uZXIgPSBfd3AkY29tcG9uZW50cy5TcGlubmVyO1xuXG4vKipcbiAqIFJlZ2lzdGVyIGJsb2NrXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgcmVnaXN0ZXJCbG9ja1R5cGUoJ2ZlZWR6eS1yc3MtZmVlZHMvZmVlZHp5LWJsb2NrJywge1xuXHR0aXRsZTogX18oJ0ZlZWR6eSBSU1MgRmVlZHMnKSxcblx0Y2F0ZWdvcnk6ICdjb21tb24nLFxuXHRpY29uOiAncnNzJyxcblx0a2V5d29yZHM6IFtfXygnRmVlZHp5IFJTUyBGZWVkcycpLCBfXygnUlNTJyksIF9fKCdGZWVkcycpXSxcblx0c3VwcG9ydHM6IHtcblx0XHRodG1sOiBmYWxzZVxuXHR9LFxuXHRhdHRyaWJ1dGVzOiBibG9ja0F0dHJpYnV0ZXMsXG5cdGVkaXQ6IGZ1bmN0aW9uIGVkaXQocHJvcHMpIHtcblx0XHR2YXIgb25DaGFuZ2VGZWVkcyA9IGZ1bmN0aW9uIG9uQ2hhbmdlRmVlZHModmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkczogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25DaGFuZ2VNYXggPSBmdW5jdGlvbiBvbkNoYW5nZU1heCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IG1heDogdmFsdWUudG9TdHJpbmcoKSB9KTtcblx0XHR9O1xuXHRcdHZhciB0b2dnbGVGZWVkVGl0bGUgPSBmdW5jdGlvbiB0b2dnbGVGZWVkVGl0bGUodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkX3RpdGxlOiAhcHJvcHMuYXR0cmlidXRlcy5mZWVkX3RpdGxlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uUmVmcmVzaCA9IGZ1bmN0aW9uIG9uUmVmcmVzaCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHJlZnJlc2g6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uU29ydCA9IGZ1bmN0aW9uIG9uU29ydCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHNvcnQ6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGFyZ2V0ID0gZnVuY3Rpb24gb25UYXJnZXQodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyB0YXJnZXQ6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGl0bGUgPSBmdW5jdGlvbiBvblRpdGxlKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgdGl0bGU6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIHRvZ2dsZU1ldGEgPSBmdW5jdGlvbiB0b2dnbGVNZXRhKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgbWV0YTogIXByb3BzLmF0dHJpYnV0ZXMubWV0YSB9KTtcblx0XHR9O1xuXHRcdHZhciB0b2dnbGVTdW1tYXJ5ID0gZnVuY3Rpb24gdG9nZ2xlU3VtbWFyeSh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN1bW1hcnk6ICFwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnkgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25TdW1tYXJ5TGVuZ3RoID0gZnVuY3Rpb24gb25TdW1tYXJ5TGVuZ3RoKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgc3VtbWFyeWxlbmd0aDogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25LZXl3b3Jkc1RpdGxlID0gZnVuY3Rpb24gb25LZXl3b3Jkc1RpdGxlKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsga2V5d29yZHNfdGl0bGU6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uS2V5d29yZHNCYW4gPSBmdW5jdGlvbiBvbktleXdvcmRzQmFuKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsga2V5d29yZHNfYmFuOiB2YWx1ZSB9KTtcblx0XHR9O1xuXHRcdHZhciBvblRodW1iID0gZnVuY3Rpb24gb25UaHVtYih2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHRodW1iOiB2YWx1ZSB9KTtcblx0XHR9O1xuXHRcdHZhciBvbkRlZmF1bHQgPSBmdW5jdGlvbiBvbkRlZmF1bHQodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBkZWZhdWx0OiB2YWx1ZSB9KTtcblx0XHR9O1xuXHRcdHZhciBvblNpemUgPSBmdW5jdGlvbiBvblNpemUodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzaXplOiB2YWx1ZSB9KTtcblx0XHR9O1xuXHRcdHZhciBvblJlZmVycmFsVVJMID0gZnVuY3Rpb24gb25SZWZlcnJhbFVSTCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHJlZmVycmFsX3VybDogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25Db2x1bW5zID0gZnVuY3Rpb24gb25Db2x1bW5zKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgY29sdW1uczogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25UZW1wbGF0ZSA9IGZ1bmN0aW9uIG9uVGVtcGxhdGUodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyB0ZW1wbGF0ZTogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgdG9nZ2xlUHJpY2UgPSBmdW5jdGlvbiB0b2dnbGVQcmljZSh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHByaWNlOiAhcHJvcHMuYXR0cmlidXRlcy5wcmljZSB9KTtcblx0XHR9O1xuXHRcdHZhciBsb2FkRmVlZCA9IGZ1bmN0aW9uIGxvYWRGZWVkKCkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN0YXR1czogMSB9KTtcblxuXHRcdFx0dmFyIHVybCA9IHByb3BzLmF0dHJpYnV0ZXMuZmVlZHM7XG5cblx0XHRcdGlmICh1cmwgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm4gcHJvcHMuc2V0QXR0cmlidXRlcyh7IHN0YXR1czogMyB9KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGluQXJyYXkodXJsLCBwcm9wcy5hdHRyaWJ1dGVzLmNhdGVnb3JpZXMpKSB7XG5cdFx0XHRcdHZhciBjYXRlZ29yeSA9IHVybDtcblx0XHRcdFx0dXJsID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHsgY2F0ZWdvcnk6IGNhdGVnb3J5IH0sIHsgYXJyYXlGb3JtYXQ6ICdicmFja2V0JyB9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHVybCA9IHVybC5yZXBsYWNlKC9cXHMvZywgJycpLnNwbGl0KCcsJykuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGl0ZW0gIT09ICcnO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0dXJsID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHsgdXJsOiB1cmwgfSwgeyBhcnJheUZvcm1hdDogJ2JyYWNrZXQnIH0pO1xuXHRcdFx0fVxuXG5cdFx0XHR3cC5hcGlSZXF1ZXN0KHsgcGF0aDogJy9mZWVkenkvdjEvZmVlZD8nICsgdXJsIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcblx0XHRcdFx0aWYgKF90aGlzLnVubW91bnRpbmcpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWRhdGFbJ2Vycm9yJ10pIHtcblx0XHRcdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgZmVlZERhdGE6IGRhdGEgfSk7XG5cdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN0YXR1czogMiB9KTtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgc3RhdHVzOiAzIH0pO1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cdFx0XHR9KS5mYWlsKGZ1bmN0aW9uIChlcnIpIHtcblx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN0YXR1czogMyB9KTtcblx0XHRcdFx0cmV0dXJuIGVycjtcblx0XHRcdH0pO1xuXHRcdH07XG5cdFx0dmFyIGxvYWRDYXRlZ29yaWVzID0gZnVuY3Rpb24gbG9hZENhdGVnb3JpZXMoKSB7XG5cdFx0XHR3cC5hcGlSZXF1ZXN0KHsgcGF0aDogJy93cC92Mi9mZWVkenlfY2F0ZWdvcmllcycgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuXHRcdFx0XHRpZiAoX3RoaXMudW5tb3VudGluZykge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBpID0gMDtcblx0XHRcdFx0dmFyIGNhdGVnb3JpZXMgPSBbXTtcblx0XHRcdFx0ZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0XHRcdFx0Y2F0ZWdvcmllc1tpXSA9IGl0ZW0uc2x1Zztcblx0XHRcdFx0XHRpID0gaSArIDE7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgY2F0ZWdvcmllczogY2F0ZWdvcmllcyB9KTtcblx0XHRcdFx0alF1ZXJ5KCcuZmVlZHp5LXNvdXJjZSBpbnB1dCcpLmF1dG9jb21wbGV0ZSh7XG5cdFx0XHRcdFx0c291cmNlOiBjYXRlZ29yaWVzLFxuXHRcdFx0XHRcdHNlbGVjdDogZnVuY3Rpb24gc2VsZWN0KGV2ZW50LCB1aSkge1xuXHRcdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGZlZWRzOiB1aS5pdGVtLmxhYmVsIH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KS5mYWlsKGZ1bmN0aW9uIChlcnIpIHtcblx0XHRcdFx0cmV0dXJuIGVycjtcblx0XHRcdH0pO1xuXHRcdH07XG5cdFx0aWYgKHByb3BzLmF0dHJpYnV0ZXMuY2F0ZWdvcmllcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRsb2FkQ2F0ZWdvcmllcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gW1xuXHRcdC8vIEluc3BlY3RvclxuXHRcdCEhcHJvcHMuaXNTZWxlY3RlZCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoSW5zcGVjdG9yLCBfZXh0ZW5kcyh7IG9uQ2hhbmdlRmVlZHM6IG9uQ2hhbmdlRmVlZHMsIG9uQ2hhbmdlTWF4OiBvbkNoYW5nZU1heCwgdG9nZ2xlRmVlZFRpdGxlOiB0b2dnbGVGZWVkVGl0bGUsIG9uUmVmcmVzaDogb25SZWZyZXNoLCBvblNvcnQ6IG9uU29ydCwgb25UYXJnZXQ6IG9uVGFyZ2V0LCBvblRpdGxlOiBvblRpdGxlLCB0b2dnbGVNZXRhOiB0b2dnbGVNZXRhLCB0b2dnbGVTdW1tYXJ5OiB0b2dnbGVTdW1tYXJ5LCBvblN1bW1hcnlMZW5ndGg6IG9uU3VtbWFyeUxlbmd0aCwgb25LZXl3b3Jkc1RpdGxlOiBvbktleXdvcmRzVGl0bGUsIG9uS2V5d29yZHNCYW46IG9uS2V5d29yZHNCYW4sIG9uVGh1bWI6IG9uVGh1bWIsIG9uRGVmYXVsdDogb25EZWZhdWx0LCBvblNpemU6IG9uU2l6ZSwgb25SZWZlcnJhbFVSTDogb25SZWZlcnJhbFVSTCwgb25Db2x1bW5zOiBvbkNvbHVtbnMsIG9uVGVtcGxhdGU6IG9uVGVtcGxhdGUsIHRvZ2dsZVByaWNlOiB0b2dnbGVQcmljZSwgbG9hZEZlZWQ6IGxvYWRGZWVkIH0sIHByb3BzKSksIHByb3BzLmF0dHJpYnV0ZXMuc3RhdHVzICE9PSAyICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdCdkaXYnLFxuXHRcdFx0eyBjbGFzc05hbWU6IHByb3BzLmNsYXNzTmFtZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRQbGFjZWhvbGRlcixcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGtleTogJ3BsYWNlaG9sZGVyJyxcblx0XHRcdFx0XHRpY29uOiAncnNzJyxcblx0XHRcdFx0XHRsYWJlbDogX18oJ0ZlZWR6eSBSU1MgRmVlZHMnKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyA9PT0gMSA/IHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHR7IGtleTogJ2xvYWRpbmcnLCBjbGFzc05hbWU6ICd3cC1ibG9jay1lbWJlZCBpcy1sb2FkaW5nJyB9LFxuXHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTcGlubmVyLCBudWxsKSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQncCcsXG5cdFx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdFx0X18oJ0ZldGNoaW5n4oCmJylcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCkgOiBbcHJvcHMuYXR0cmlidXRlcy5zdGF0dXMgPT09IDMgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdCdzcGFuJyxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdF9fKCdGZWVkIFVSTCBJbnZhbGlkJylcblx0XHRcdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdFx0dHlwZTogJ3VybCcsXG5cdFx0XHRcdFx0Y2xhc3NOYW1lOiAnZmVlZHp5LXNvdXJjZScsXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI6IF9fKCdFbnRlciBVUkwgb3IgY2F0ZWdvcnkgb2YgeW91ciBmZWVkIGhlcmXigKYnKSxcblx0XHRcdFx0XHRvbkNoYW5nZTogb25DaGFuZ2VGZWVkcyxcblx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5mZWVkc1xuXHRcdFx0XHR9KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0dHlwZTogJ3N1Ym1pdCcsXG5cdFx0XHRcdFx0XHRvbkNsaWNrOiBsb2FkRmVlZFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0X18oJ0xvYWQgRmVlZCcpXG5cdFx0XHRcdCldXG5cdFx0XHQpXG5cdFx0KSwgISEocHJvcHMuYXR0cmlidXRlcy5zdGF0dXMgPT09IDIgJiYgcHJvcHMuYXR0cmlidXRlcy5mZWVkRGF0YSAhPT0gdW5kZWZpbmVkKSAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHQnZGl2Jyxcblx0XHRcdHsgY2xhc3NOYW1lOiAnZmVlZHp5LXJzcycgfSxcblx0XHRcdHByb3BzLmF0dHJpYnV0ZXMuZmVlZF90aXRsZSAmJiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydjaGFubmVsJ10gIT09IG51bGwgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0eyBjbGFzc05hbWU6ICdyc3NfaGVhZGVyJyB9LFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0J2gyJyxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdCdhJyxcblx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAncnNzX3RpdGxlJyB9LFxuXHRcdFx0XHRcdFx0dW5lc2NhcGVIVE1MKHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGFbJ2NoYW5uZWwnXVsndGl0bGUnXSlcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdCdzcGFuJyxcblx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAncnNzX2Rlc2NyaXB0aW9uJyB9LFxuXHRcdFx0XHRcdFx0JyAnICsgdW5lc2NhcGVIVE1MKHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGFbJ2NoYW5uZWwnXVsnZGVzY3JpcHRpb24nXSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdCksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdCd1bCcsXG5cdFx0XHRcdHsgY2xhc3NOYW1lOiAnZmVlZHp5LScgKyBwcm9wcy5hdHRyaWJ1dGVzLnRlbXBsYXRlIH0sXG5cdFx0XHRcdGZpbHRlckRhdGEocHJvcHMuYXR0cmlidXRlcy5mZWVkRGF0YVsnaXRlbXMnXSwgcHJvcHMuYXR0cmlidXRlcy5zb3J0LCBwcm9wcy5hdHRyaWJ1dGVzLmtleXdvcmRzX3RpdGxlLCBwcm9wcy5hdHRyaWJ1dGVzLmtleXdvcmRzX2JhbiwgcHJvcHMuYXR0cmlidXRlcy5tYXgpLm1hcChmdW5jdGlvbiAoaXRlbSwgaSkge1xuXHRcdFx0XHRcdHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQnbGknLFxuXHRcdFx0XHRcdFx0eyBrZXk6IGksIHN0eWxlOiB7IHBhZGRpbmc6ICcxNXB4IDAgMjVweCcgfSwgY2xhc3NOYW1lOiAncnNzX2l0ZW0gZmVlZHp5LXJzcy1jb2wtJyArIHByb3BzLmF0dHJpYnV0ZXMuY29sdW1ucyB9LFxuXHRcdFx0XHRcdFx0KGl0ZW1bJ3RodW1ibmFpbCddICYmIHByb3BzLmF0dHJpYnV0ZXMudGh1bWIgPT09ICdhdXRvJyB8fCBwcm9wcy5hdHRyaWJ1dGVzLnRodW1iID09PSAneWVzJykgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdyc3NfaW1hZ2UnLCBzdHlsZTogeyB3aWR0aDogcHJvcHMuYXR0cmlidXRlcy5zaXplICsgJ3B4JywgaGVpZ2h0OiBwcm9wcy5hdHRyaWJ1dGVzLnNpemUgKyAncHgnIH0gfSxcblx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdCdhJyxcblx0XHRcdFx0XHRcdFx0XHR7IHRpdGxlOiB1bmVzY2FwZUhUTUwoaXRlbVsndGl0bGUnXSksIHN0eWxlOiB7IHdpZHRoOiBwcm9wcy5hdHRyaWJ1dGVzLnNpemUgKyAncHgnLCBoZWlnaHQ6IHByb3BzLmF0dHJpYnV0ZXMuc2l6ZSArICdweCcgfSB9LFxuXHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiAnZmV0Y2hlZCcsIHN0eWxlOiB7IGJhY2tncm91bmRJbWFnZTogJ3VybCgnICsgKGl0ZW1bJ3RodW1ibmFpbCddID8gaXRlbVsndGh1bWJuYWlsJ10gOiBwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQgPyBwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQudXJsIDogZmVlZHp5anMuaW1hZ2VwYXRoICsgJ2ZlZWR6eS1kZWZhdWx0LmpwZycpICsgJyknIH0sIHRpdGxlOiB1bmVzY2FwZUhUTUwoaXRlbVsndGl0bGUnXSkgfSlcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAncnNzX2NvbnRlbnRfd3JhcCcgfSxcblx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdCdzcGFuJyxcblx0XHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3RpdGxlJyB9LFxuXHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdCdhJyxcblx0XHRcdFx0XHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnRpdGxlICYmIHVuZXNjYXBlSFRNTChpdGVtWyd0aXRsZSddKS5sZW5ndGggPiBwcm9wcy5hdHRyaWJ1dGVzLnRpdGxlID8gdW5lc2NhcGVIVE1MKGl0ZW1bJ3RpdGxlJ10pLnN1YnN0cmluZygwLCBwcm9wcy5hdHRyaWJ1dGVzLnRpdGxlKSArICcuLi4nIDogdW5lc2NhcGVIVE1MKGl0ZW1bJ3RpdGxlJ10pXG5cdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdyc3NfY29udGVudCcgfSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLm1ldGEgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0J3NtYWxsJyxcblx0XHRcdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAnbWV0YScgfSxcblx0XHRcdFx0XHRcdFx0XHRcdGl0ZW1bJ2NyZWF0b3InXSAmJiBbX18oJ2J5JyksICcgJywgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQnYScsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVuZXNjYXBlSFRNTChpdGVtWydjcmVhdG9yJ10pXG5cdFx0XHRcdFx0XHRcdFx0XHQpLCAnICddLFxuXHRcdFx0XHRcdFx0XHRcdFx0X18oJ29uJyksXG5cdFx0XHRcdFx0XHRcdFx0XHQnICcsXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmVzY2FwZUhUTUwoaXRlbVsnZGF0ZSddKSxcblx0XHRcdFx0XHRcdFx0XHRcdCcgJyxcblx0XHRcdFx0XHRcdFx0XHRcdF9fKCdhdCcpLFxuXHRcdFx0XHRcdFx0XHRcdFx0JyAnLFxuXHRcdFx0XHRcdFx0XHRcdFx0dW5lc2NhcGVIVE1MKGl0ZW1bJ3RpbWUnXSlcblx0XHRcdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0XHRcdHByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeSAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHQncCcsXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ2Rlc2NyaXB0aW9uJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5bGVuZ3RoICYmIHVuZXNjYXBlSFRNTChpdGVtWydkZXNjcmlwdGlvbiddKS5sZW5ndGggPiBwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnlsZW5ndGggPyB1bmVzY2FwZUhUTUwoaXRlbVsnZGVzY3JpcHRpb24nXSkuc3Vic3RyaW5nKDAsIHByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeWxlbmd0aCkgKyAnIFvigKZdJyA6IHVuZXNjYXBlSFRNTChpdGVtWydkZXNjcmlwdGlvbiddKVxuXHRcdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFx0ZmVlZHp5anMuaXNQcm8gJiYgaXRlbVsnbWVkaWEnXSAmJiBpdGVtWydtZWRpYSddWydzcmMnXSAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHQnYXVkaW8nLFxuXHRcdFx0XHRcdFx0XHRcdFx0eyBjb250cm9sczogdHJ1ZSwgY29udHJvbHNMaXN0OiAnbm9kb3dubG9hZCcgfSxcblx0XHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudCgnc291cmNlJywgeyBzcmM6IGl0ZW1bJ21lZGlhJ11bJ3NyYyddLCB0eXBlOiBpdGVtWydtZWRpYSddWyd0eXBlJ10gfSksXG5cdFx0XHRcdFx0XHRcdFx0XHRfXygnWW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlIGF1ZGlvIGVsZW1lbnQuIEJ1dCB5b3UgY2FuIGNoZWNrIHRoaXMgZm9yIHRoZSBvcmlnaW5hbCBsaW5rOiAnKSxcblx0XHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdFx0J2EnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGhyZWY6IGl0ZW1bJ21lZGlhJ11bJ3NyYyddIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGl0ZW1bJ21lZGlhJ11bJ3NyYyddXG5cdFx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0XHRmZWVkenlqcy5pc1BybyAmJiBwcm9wcy5hdHRyaWJ1dGVzLnByaWNlICYmIGl0ZW1bJ3ByaWNlJ10gJiYgcHJvcHMuYXR0cmlidXRlcy50ZW1wbGF0ZSAhPT0gJ2RlZmF1bHQnICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdwcmljZS13cmFwJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQnYScsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnYnV0dG9uJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3ByaWNlJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGl0ZW1bJ3ByaWNlJ11cblx0XHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0pXG5cdFx0XHQpXG5cdFx0KV07XG5cdH0sXG5cdHNhdmU6IGZ1bmN0aW9uIHNhdmUoKSB7XG5cdFx0Ly8gUmVuZGVyaW5nIGluIFBIUFxuXHRcdHJldHVybiBudWxsO1xuXHR9XG59KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2luY2x1ZGVzL2d1dGVuYmVyZy9zcmMvYmxvY2suanNcbi8vIG1vZHVsZSBpZCA9IDI5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///29\n"); + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\n\nvar _assign = __webpack_require__(31);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMuanM/MGRkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9hc3NpZ24gPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvYXNzaWduXCIpO1xuXG52YXIgX2Fzc2lnbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hc3NpZ24pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBfYXNzaWduMi5kZWZhdWx0IHx8IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qc1xuLy8gbW9kdWxlIGlkID0gMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///30\n"); + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = { \"default\": __webpack_require__(32), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9hc3NpZ24uanM/YzI4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnblwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSAzMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n"); + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("__webpack_require__(33);\nmodule.exports = __webpack_require__(2).Object.assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ24uanM/NTc3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuYXNzaWduJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3QuYXNzaWduO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ24uanNcbi8vIG1vZHVsZSBpZCA9IDMyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///32\n"); + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(8);\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(37) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanM/NDc4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjMuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYsICdPYmplY3QnLCB7IGFzc2lnbjogcmVxdWlyZSgnLi9fb2JqZWN0LWFzc2lnbicpIH0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanNcbi8vIG1vZHVsZSBpZCA9IDMzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///33\n"); + +/***/ }), +/* 34 */ +/***/ (function(module, exports) { + +eval("module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanM/OTRlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7XG4gIHJldHVybiBpdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYS1mdW5jdGlvbi5qc1xuLy8gbW9kdWxlIGlkID0gMzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///34\n"); + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = !__webpack_require__(6) && !__webpack_require__(10)(function () {\n return Object.defineProperty(__webpack_require__(18)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzPzQ5ZjAiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///35\n"); + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(9);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcz8zMjYzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///36\n"); + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(19);\nvar gOPS = __webpack_require__(41);\nvar pIE = __webpack_require__(42);\nvar toObject = __webpack_require__(15);\nvar IObject = __webpack_require__(21);\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(10)(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1hc3NpZ24uanM/NGU4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG4vLyAxOS4xLjIuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlLCAuLi4pXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciAkYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gc2hvdWxkIHdvcmsgd2l0aCBzeW1ib2xzIGFuZCBzaG91bGQgaGF2ZSBkZXRlcm1pbmlzdGljIHByb3BlcnR5IG9yZGVyIChWOCBidWcpXG5tb2R1bGUuZXhwb3J0cyA9ICEkYXNzaWduIHx8IHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICB2YXIgQSA9IHt9O1xuICB2YXIgQiA9IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgdmFyIFMgPSBTeW1ib2woKTtcbiAgdmFyIEsgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3QnO1xuICBBW1NdID0gNztcbiAgSy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAoaykgeyBCW2tdID0gazsgfSk7XG4gIHJldHVybiAkYXNzaWduKHt9LCBBKVtTXSAhPSA3IHx8IE9iamVjdC5rZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBLO1xufSkgPyBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCBzb3VyY2UpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICB2YXIgVCA9IHRvT2JqZWN0KHRhcmdldCk7XG4gIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgd2hpbGUgKGFMZW4gPiBpbmRleCkge1xuICAgIHZhciBTID0gSU9iamVjdChhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHZhciBrZXlzID0gZ2V0U3ltYm9scyA/IGdldEtleXMoUykuY29uY2F0KGdldFN5bWJvbHMoUykpIDogZ2V0S2V5cyhTKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGogPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGopIGlmIChpc0VudW0uY2FsbChTLCBrZXkgPSBrZXlzW2orK10pKSBUW2tleV0gPSBTW2tleV07XG4gIH0gcmV0dXJuIFQ7XG59IDogJGFzc2lnbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSAzN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///37\n"); + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var has = __webpack_require__(7);\nvar toIObject = __webpack_require__(20);\nvar arrayIndexOf = __webpack_require__(39)(false);\nvar IE_PROTO = __webpack_require__(14)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLWludGVybmFsLmpzPzIxYjgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanNcbi8vIG1vZHVsZSBpZCA9IDM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///38\n"); + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(20);\nvar toLength = __webpack_require__(23);\nvar toAbsoluteIndex = __webpack_require__(40);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzP2JjNTciXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gdHJ1ZSAgLT4gQXJyYXkjaW5jbHVkZXNcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pIHtcbiAgICAgIGlmIChPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanNcbi8vIG1vZHVsZSBpZCA9IDM5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///39\n"); + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var toInteger = __webpack_require__(13);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzPzdlNDAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDQwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n"); + +/***/ }), +/* 41 */ +/***/ (function(module, exports) { + +eval("exports.f = Object.getOwnPropertySymbols;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzP2Q2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qc1xuLy8gbW9kdWxlIGlkID0gNDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///41\n"); + +/***/ }), +/* 42 */ +/***/ (function(module, exports) { + +eval("exports.f = {}.propertyIsEnumerable;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1waWUuanM/MzY5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtcGllLmpzXG4vLyBtb2R1bGUgaWQgPSA0MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///42\n"); + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + +eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL3N0eWxlLnNjc3M/ZGQ0ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vaW5jbHVkZXMvZ3V0ZW5iZXJnL3NyYy9zdHlsZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSA0M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///43\n"); + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nconst strictUriEncode = __webpack_require__(45);\nconst decodeComponent = __webpack_require__(46);\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, index) => {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, options),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, options)\n\t\t\t\t].join('');\n\t\t\t};\n\t\tcase 'bracket':\n\t\t\treturn (key, value) => {\n\t\t\t\treturn value === null ? [encode(key, options), '[]'].join('') : [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, options)\n\t\t\t\t].join('');\n\t\t\t};\n\t\tdefault:\n\t\t\treturn (key, value) => {\n\t\t\t\treturn value === null ? encode(key, options) : [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, options)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction extract(input) {\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({decode: true, arrayFormat: 'none'}, options);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = param.replace(/\\+/g, ' ').split('=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : decode(value, options);\n\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\treturn Object.keys(ret).sort().reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (obj, options) => {\n\tconst defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\toptions = Object.assign(defaults, options);\n\n\tif (options.sort === false) {\n\t\toptions.sort = () => {};\n\t}\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\treturn obj ? Object.keys(obj).sort(options.sort).map(key => {\n\t\tconst value = obj[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tconst result = [];\n\n\t\t\tfor (const value2 of value.slice()) {\n\t\t\t\tif (value2 === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, value2, result.length));\n\t\t\t}\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&') : '';\n};\n\nexports.parseUrl = (input, options) => {\n\treturn {\n\t\turl: input.split('?')[0] || '',\n\t\tquery: parse(extract(input), options)\n\t};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcXVlcnktc3RyaW5nL2luZGV4LmpzPzM4MGMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuY29uc3Qgc3RyaWN0VXJpRW5jb2RlID0gcmVxdWlyZSgnc3RyaWN0LXVyaS1lbmNvZGUnKTtcbmNvbnN0IGRlY29kZUNvbXBvbmVudCA9IHJlcXVpcmUoJ2RlY29kZS11cmktY29tcG9uZW50Jyk7XG5cbmZ1bmN0aW9uIGVuY29kZXJGb3JBcnJheUZvcm1hdChvcHRpb25zKSB7XG5cdHN3aXRjaCAob3B0aW9ucy5hcnJheUZvcm1hdCkge1xuXHRcdGNhc2UgJ2luZGV4Jzpcblx0XHRcdHJldHVybiAoa2V5LCB2YWx1ZSwgaW5kZXgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSBudWxsID8gW1xuXHRcdFx0XHRcdGVuY29kZShrZXksIG9wdGlvbnMpLFxuXHRcdFx0XHRcdCdbJyxcblx0XHRcdFx0XHRpbmRleCxcblx0XHRcdFx0XHQnXSdcblx0XHRcdFx0XS5qb2luKCcnKSA6IFtcblx0XHRcdFx0XHRlbmNvZGUoa2V5LCBvcHRpb25zKSxcblx0XHRcdFx0XHQnWycsXG5cdFx0XHRcdFx0ZW5jb2RlKGluZGV4LCBvcHRpb25zKSxcblx0XHRcdFx0XHQnXT0nLFxuXHRcdFx0XHRcdGVuY29kZSh2YWx1ZSwgb3B0aW9ucylcblx0XHRcdFx0XS5qb2luKCcnKTtcblx0XHRcdH07XG5cdFx0Y2FzZSAnYnJhY2tldCc6XG5cdFx0XHRyZXR1cm4gKGtleSwgdmFsdWUpID0+IHtcblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSBudWxsID8gW2VuY29kZShrZXksIG9wdGlvbnMpLCAnW10nXS5qb2luKCcnKSA6IFtcblx0XHRcdFx0XHRlbmNvZGUoa2V5LCBvcHRpb25zKSxcblx0XHRcdFx0XHQnW109Jyxcblx0XHRcdFx0XHRlbmNvZGUodmFsdWUsIG9wdGlvbnMpXG5cdFx0XHRcdF0uam9pbignJyk7XG5cdFx0XHR9O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gKGtleSwgdmFsdWUpID0+IHtcblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSBudWxsID8gZW5jb2RlKGtleSwgb3B0aW9ucykgOiBbXG5cdFx0XHRcdFx0ZW5jb2RlKGtleSwgb3B0aW9ucyksXG5cdFx0XHRcdFx0Jz0nLFxuXHRcdFx0XHRcdGVuY29kZSh2YWx1ZSwgb3B0aW9ucylcblx0XHRcdFx0XS5qb2luKCcnKTtcblx0XHRcdH07XG5cdH1cbn1cblxuZnVuY3Rpb24gcGFyc2VyRm9yQXJyYXlGb3JtYXQob3B0aW9ucykge1xuXHRsZXQgcmVzdWx0O1xuXG5cdHN3aXRjaCAob3B0aW9ucy5hcnJheUZvcm1hdCkge1xuXHRcdGNhc2UgJ2luZGV4Jzpcblx0XHRcdHJldHVybiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpID0+IHtcblx0XHRcdFx0cmVzdWx0ID0gL1xcWyhcXGQqKVxcXSQvLmV4ZWMoa2V5KTtcblxuXHRcdFx0XHRrZXkgPSBrZXkucmVwbGFjZSgvXFxbXFxkKlxcXSQvLCAnJyk7XG5cblx0XHRcdFx0aWYgKCFyZXN1bHQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gdmFsdWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGFjY3VtdWxhdG9yW2tleV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB7fTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGFjY3VtdWxhdG9yW2tleV1bcmVzdWx0WzFdXSA9IHZhbHVlO1xuXHRcdFx0fTtcblx0XHRjYXNlICdicmFja2V0Jzpcblx0XHRcdHJldHVybiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpID0+IHtcblx0XHRcdFx0cmVzdWx0ID0gLyhcXFtcXF0pJC8uZXhlYyhrZXkpO1xuXHRcdFx0XHRrZXkgPSBrZXkucmVwbGFjZSgvXFxbXFxdJC8sICcnKTtcblxuXHRcdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB2YWx1ZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoYWNjdW11bGF0b3Jba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IFt2YWx1ZV07XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IFtdLmNvbmNhdChhY2N1bXVsYXRvcltrZXldLCB2YWx1ZSk7XG5cdFx0XHR9O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gKGtleSwgdmFsdWUsIGFjY3VtdWxhdG9yKSA9PiB7XG5cdFx0XHRcdGlmIChhY2N1bXVsYXRvcltrZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gdmFsdWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IFtdLmNvbmNhdChhY2N1bXVsYXRvcltrZXldLCB2YWx1ZSk7XG5cdFx0XHR9O1xuXHR9XG59XG5cbmZ1bmN0aW9uIGVuY29kZSh2YWx1ZSwgb3B0aW9ucykge1xuXHRpZiAob3B0aW9ucy5lbmNvZGUpIHtcblx0XHRyZXR1cm4gb3B0aW9ucy5zdHJpY3QgPyBzdHJpY3RVcmlFbmNvZGUodmFsdWUpIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcblx0fVxuXG5cdHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gZGVjb2RlKHZhbHVlLCBvcHRpb25zKSB7XG5cdGlmIChvcHRpb25zLmRlY29kZSkge1xuXHRcdHJldHVybiBkZWNvZGVDb21wb25lbnQodmFsdWUpO1xuXHR9XG5cblx0cmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBrZXlzU29ydGVyKGlucHV0KSB7XG5cdGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuXHRcdHJldHVybiBpbnB1dC5zb3J0KCk7XG5cdH1cblxuXHRpZiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0Jykge1xuXHRcdHJldHVybiBrZXlzU29ydGVyKE9iamVjdC5rZXlzKGlucHV0KSlcblx0XHRcdC5zb3J0KChhLCBiKSA9PiBOdW1iZXIoYSkgLSBOdW1iZXIoYikpXG5cdFx0XHQubWFwKGtleSA9PiBpbnB1dFtrZXldKTtcblx0fVxuXG5cdHJldHVybiBpbnB1dDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdChpbnB1dCkge1xuXHRjb25zdCBxdWVyeVN0YXJ0ID0gaW5wdXQuaW5kZXhPZignPycpO1xuXHRpZiAocXVlcnlTdGFydCA9PT0gLTEpIHtcblx0XHRyZXR1cm4gJyc7XG5cdH1cblx0cmV0dXJuIGlucHV0LnNsaWNlKHF1ZXJ5U3RhcnQgKyAxKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoaW5wdXQsIG9wdGlvbnMpIHtcblx0b3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe2RlY29kZTogdHJ1ZSwgYXJyYXlGb3JtYXQ6ICdub25lJ30sIG9wdGlvbnMpO1xuXG5cdGNvbnN0IGZvcm1hdHRlciA9IHBhcnNlckZvckFycmF5Rm9ybWF0KG9wdGlvbnMpO1xuXG5cdC8vIENyZWF0ZSBhbiBvYmplY3Qgd2l0aCBubyBwcm90b3R5cGVcblx0Y29uc3QgcmV0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuXHRpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuXHRcdHJldHVybiByZXQ7XG5cdH1cblxuXHRpbnB1dCA9IGlucHV0LnRyaW0oKS5yZXBsYWNlKC9eWz8jJl0vLCAnJyk7XG5cblx0aWYgKCFpbnB1dCkge1xuXHRcdHJldHVybiByZXQ7XG5cdH1cblxuXHRmb3IgKGNvbnN0IHBhcmFtIG9mIGlucHV0LnNwbGl0KCcmJykpIHtcblx0XHRsZXQgW2tleSwgdmFsdWVdID0gcGFyYW0ucmVwbGFjZSgvXFwrL2csICcgJykuc3BsaXQoJz0nKTtcblxuXHRcdC8vIE1pc3NpbmcgYD1gIHNob3VsZCBiZSBgbnVsbGA6XG5cdFx0Ly8gaHR0cDovL3czLm9yZy9UUi8yMDEyL1dELXVybC0yMDEyMDUyNC8jY29sbGVjdC11cmwtcGFyYW1ldGVyc1xuXHRcdHZhbHVlID0gdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZWNvZGUodmFsdWUsIG9wdGlvbnMpO1xuXG5cdFx0Zm9ybWF0dGVyKGRlY29kZShrZXksIG9wdGlvbnMpLCB2YWx1ZSwgcmV0KTtcblx0fVxuXG5cdHJldHVybiBPYmplY3Qua2V5cyhyZXQpLnNvcnQoKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSByZXRba2V5XTtcblx0XHRpZiAoQm9vbGVhbih2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdC8vIFNvcnQgb2JqZWN0IGtleXMsIG5vdCB2YWx1ZXNcblx0XHRcdHJlc3VsdFtrZXldID0ga2V5c1NvcnRlcih2YWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlc3VsdFtrZXldID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG59XG5cbmV4cG9ydHMuZXh0cmFjdCA9IGV4dHJhY3Q7XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5cbmV4cG9ydHMuc3RyaW5naWZ5ID0gKG9iaiwgb3B0aW9ucykgPT4ge1xuXHRjb25zdCBkZWZhdWx0cyA9IHtcblx0XHRlbmNvZGU6IHRydWUsXG5cdFx0c3RyaWN0OiB0cnVlLFxuXHRcdGFycmF5Rm9ybWF0OiAnbm9uZSdcblx0fTtcblxuXHRvcHRpb25zID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgb3B0aW9ucyk7XG5cblx0aWYgKG9wdGlvbnMuc29ydCA9PT0gZmFsc2UpIHtcblx0XHRvcHRpb25zLnNvcnQgPSAoKSA9PiB7fTtcblx0fVxuXG5cdGNvbnN0IGZvcm1hdHRlciA9IGVuY29kZXJGb3JBcnJheUZvcm1hdChvcHRpb25zKTtcblxuXHRyZXR1cm4gb2JqID8gT2JqZWN0LmtleXMob2JqKS5zb3J0KG9wdGlvbnMuc29ydCkubWFwKGtleSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSBvYmpba2V5XTtcblxuXHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXG5cdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gZW5jb2RlKGtleSwgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBbXTtcblxuXHRcdFx0Zm9yIChjb25zdCB2YWx1ZTIgb2YgdmFsdWUuc2xpY2UoKSkge1xuXHRcdFx0XHRpZiAodmFsdWUyID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJlc3VsdC5wdXNoKGZvcm1hdHRlcihrZXksIHZhbHVlMiwgcmVzdWx0Lmxlbmd0aCkpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gcmVzdWx0LmpvaW4oJyYnKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZW5jb2RlKGtleSwgb3B0aW9ucykgKyAnPScgKyBlbmNvZGUodmFsdWUsIG9wdGlvbnMpO1xuXHR9KS5maWx0ZXIoeCA9PiB4Lmxlbmd0aCA+IDApLmpvaW4oJyYnKSA6ICcnO1xufTtcblxuZXhwb3J0cy5wYXJzZVVybCA9IChpbnB1dCwgb3B0aW9ucykgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdHVybDogaW5wdXQuc3BsaXQoJz8nKVswXSB8fCAnJyxcblx0XHRxdWVyeTogcGFyc2UoZXh0cmFjdChpbnB1dCksIG9wdGlvbnMpXG5cdH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcXVlcnktc3RyaW5nL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///44\n"); + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcXVlcnktc3RyaW5nL25vZGVfbW9kdWxlcy9zdHJpY3QtdXJpLWVuY29kZS9pbmRleC5qcz82YzIzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gc3RyID0+IGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpKl0vZywgeCA9PiBgJSR7eC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfWApO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcXVlcnktc3RyaW5nL25vZGVfbW9kdWxlcy9zdHJpY3QtdXJpLWVuY29kZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n"); + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGVjb2RlLXVyaS1jb21wb25lbnQvaW5kZXguanM/OGI4MCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG52YXIgdG9rZW4gPSAnJVthLWYwLTldezJ9JztcbnZhciBzaW5nbGVNYXRjaGVyID0gbmV3IFJlZ0V4cCh0b2tlbiwgJ2dpJyk7XG52YXIgbXVsdGlNYXRjaGVyID0gbmV3IFJlZ0V4cCgnKCcgKyB0b2tlbiArICcpKycsICdnaScpO1xuXG5mdW5jdGlvbiBkZWNvZGVDb21wb25lbnRzKGNvbXBvbmVudHMsIHNwbGl0KSB7XG5cdHRyeSB7XG5cdFx0Ly8gVHJ5IHRvIGRlY29kZSB0aGUgZW50aXJlIHN0cmluZyBmaXJzdFxuXHRcdHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoY29tcG9uZW50cy5qb2luKCcnKSk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIERvIG5vdGhpbmdcblx0fVxuXG5cdGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdHJldHVybiBjb21wb25lbnRzO1xuXHR9XG5cblx0c3BsaXQgPSBzcGxpdCB8fCAxO1xuXG5cdC8vIFNwbGl0IHRoZSBhcnJheSBpbiAyIHBhcnRzXG5cdHZhciBsZWZ0ID0gY29tcG9uZW50cy5zbGljZSgwLCBzcGxpdCk7XG5cdHZhciByaWdodCA9IGNvbXBvbmVudHMuc2xpY2Uoc3BsaXQpO1xuXG5cdHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmNhbGwoW10sIGRlY29kZUNvbXBvbmVudHMobGVmdCksIGRlY29kZUNvbXBvbmVudHMocmlnaHQpKTtcbn1cblxuZnVuY3Rpb24gZGVjb2RlKGlucHV0KSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChpbnB1dCk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdHZhciB0b2tlbnMgPSBpbnB1dC5tYXRjaChzaW5nbGVNYXRjaGVyKTtcblxuXHRcdGZvciAodmFyIGkgPSAxOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpbnB1dCA9IGRlY29kZUNvbXBvbmVudHModG9rZW5zLCBpKS5qb2luKCcnKTtcblxuXHRcdFx0dG9rZW5zID0gaW5wdXQubWF0Y2goc2luZ2xlTWF0Y2hlcik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGlucHV0O1xuXHR9XG59XG5cbmZ1bmN0aW9uIGN1c3RvbURlY29kZVVSSUNvbXBvbmVudChpbnB1dCkge1xuXHQvLyBLZWVwIHRyYWNrIG9mIGFsbCB0aGUgcmVwbGFjZW1lbnRzIGFuZCBwcmVmaWxsIHRoZSBtYXAgd2l0aCB0aGUgYEJPTWBcblx0dmFyIHJlcGxhY2VNYXAgPSB7XG5cdFx0JyVGRSVGRic6ICdcXHVGRkZEXFx1RkZGRCcsXG5cdFx0JyVGRiVGRSc6ICdcXHVGRkZEXFx1RkZGRCdcblx0fTtcblxuXHR2YXIgbWF0Y2ggPSBtdWx0aU1hdGNoZXIuZXhlYyhpbnB1dCk7XG5cdHdoaWxlIChtYXRjaCkge1xuXHRcdHRyeSB7XG5cdFx0XHQvLyBEZWNvZGUgYXMgYmlnIGNodW5rcyBhcyBwb3NzaWJsZVxuXHRcdFx0cmVwbGFjZU1hcFttYXRjaFswXV0gPSBkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbMF0pO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0dmFyIHJlc3VsdCA9IGRlY29kZShtYXRjaFswXSk7XG5cblx0XHRcdGlmIChyZXN1bHQgIT09IG1hdGNoWzBdKSB7XG5cdFx0XHRcdHJlcGxhY2VNYXBbbWF0Y2hbMF1dID0gcmVzdWx0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdG1hdGNoID0gbXVsdGlNYXRjaGVyLmV4ZWMoaW5wdXQpO1xuXHR9XG5cblx0Ly8gQWRkIGAlQzJgIGF0IHRoZSBlbmQgb2YgdGhlIG1hcCB0byBtYWtlIHN1cmUgaXQgZG9lcyBub3QgcmVwbGFjZSB0aGUgY29tYmluYXRvciBiZWZvcmUgZXZlcnl0aGluZyBlbHNlXG5cdHJlcGxhY2VNYXBbJyVDMiddID0gJ1xcdUZGRkQnO1xuXG5cdHZhciBlbnRyaWVzID0gT2JqZWN0LmtleXMocmVwbGFjZU1hcCk7XG5cblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Ly8gUmVwbGFjZSBhbGwgZGVjb2RlZCBjb21wb25lbnRzXG5cdFx0dmFyIGtleSA9IGVudHJpZXNbaV07XG5cdFx0aW5wdXQgPSBpbnB1dC5yZXBsYWNlKG5ldyBSZWdFeHAoa2V5LCAnZycpLCByZXBsYWNlTWFwW2tleV0pO1xuXHR9XG5cblx0cmV0dXJuIGlucHV0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChlbmNvZGVkVVJJKSB7XG5cdGlmICh0eXBlb2YgZW5jb2RlZFVSSSAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBgZW5jb2RlZFVSSWAgdG8gYmUgb2YgdHlwZSBgc3RyaW5nYCwgZ290IGAnICsgdHlwZW9mIGVuY29kZWRVUkkgKyAnYCcpO1xuXHR9XG5cblx0dHJ5IHtcblx0XHRlbmNvZGVkVVJJID0gZW5jb2RlZFVSSS5yZXBsYWNlKC9cXCsvZywgJyAnKTtcblxuXHRcdC8vIFRyeSB0aGUgYnVpbHQgaW4gZGVjb2RlciBmaXJzdFxuXHRcdHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZFVSSSk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIEZhbGxiYWNrIHRvIGEgbW9yZSBhZHZhbmNlZCBkZWNvZGVyXG5cdFx0cmV0dXJuIGN1c3RvbURlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkVVJJKTtcblx0fVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RlY29kZS11cmktY29tcG9uZW50L2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///46\n"); + +/***/ }), +/* 47 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("// jshint ignore: start\n\nvar attributes = {\n\tfeeds: {\n\t\ttype: 'string'\n\t},\n\tmax: {\n\t\ttype: 'number',\n\t\tdefault: 5\n\t},\n\tfeed_title: {\n\t\ttype: 'boolean',\n\t\tdefault: true\n\t},\n\trefresh: {\n\t\ttype: 'string',\n\t\tdefault: '12_hours'\n\t},\n\tsort: {\n\t\ttype: 'string',\n\t\tdefault: 'date_desc'\n\t},\n\ttarget: {\n\t\ttype: 'string',\n\t\tdefault: '_blank'\n\t},\n\ttitle: {\n\t\ttype: 'number'\n\t},\n\tmeta: {\n\t\ttype: 'boolean',\n\t\tdefault: true\n\t},\n\tsummary: {\n\t\ttype: 'boolean',\n\t\tdefault: true\n\t},\n\tsummarylength: {\n\t\ttype: 'number'\n\t},\n\tkeywords_title: {\n\t\ttype: 'string'\n\t},\n\tkeywords_ban: {\n\t\ttype: 'string'\n\t},\n\tthumb: {\n\t\ttype: 'string',\n\t\tdefault: 'auto'\n\t},\n\tdefault: {\n\t\ttype: 'object'\n\t},\n\tsize: {\n\t\ttype: 'number',\n\t\tdefault: 150\n\t},\n\treferral_url: {\n\t\ttype: 'string'\n\t},\n\tcolumns: {\n\t\ttype: 'number',\n\t\tdefault: 1\n\t},\n\ttemplate: {\n\t\ttype: 'string',\n\t\tdefault: 'default'\n\t},\n\tprice: {\n\t\ttype: 'boolean',\n\t\tdefault: true\n\t},\n\tstatus: {\n\t\t// 0 - Initial State\n\t\t// 1 - Feed Loading\n\t\t// 2 - Feed Loaded\n\t\t// 3 - Feed Invalid\n\t\ttype: 'number',\n\t\tdefault: 0\n\t},\n\tfeedData: {\n\t\ttype: 'object'\n\t},\n\tcategories: {\n\t\ttype: 'object'\n\t}\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (attributes);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2F0dHJpYnV0ZXMuanM/NmUxOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBqc2hpbnQgaWdub3JlOiBzdGFydFxuXG52YXIgYXR0cmlidXRlcyA9IHtcblx0ZmVlZHM6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRtYXg6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiA1XG5cdH0sXG5cdGZlZWRfdGl0bGU6IHtcblx0XHR0eXBlOiAnYm9vbGVhbicsXG5cdFx0ZGVmYXVsdDogdHJ1ZVxuXHR9LFxuXHRyZWZyZXNoOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJzEyX2hvdXJzJ1xuXHR9LFxuXHRzb3J0OiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2RhdGVfZGVzYydcblx0fSxcblx0dGFyZ2V0OiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ19ibGFuaydcblx0fSxcblx0dGl0bGU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRtZXRhOiB7XG5cdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdGRlZmF1bHQ6IHRydWVcblx0fSxcblx0c3VtbWFyeToge1xuXHRcdHR5cGU6ICdib29sZWFuJyxcblx0XHRkZWZhdWx0OiB0cnVlXG5cdH0sXG5cdHN1bW1hcnlsZW5ndGg6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRrZXl3b3Jkc190aXRsZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGtleXdvcmRzX2Jhbjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHRodW1iOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2F1dG8nXG5cdH0sXG5cdGRlZmF1bHQ6IHtcblx0XHR0eXBlOiAnb2JqZWN0J1xuXHR9LFxuXHRzaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMTUwXG5cdH0sXG5cdHJlZmVycmFsX3VybDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGNvbHVtbnM6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAxXG5cdH0sXG5cdHRlbXBsYXRlOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2RlZmF1bHQnXG5cdH0sXG5cdHByaWNlOiB7XG5cdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdGRlZmF1bHQ6IHRydWVcblx0fSxcblx0c3RhdHVzOiB7XG5cdFx0Ly8gMCAtIEluaXRpYWwgU3RhdGVcblx0XHQvLyAxIC0gRmVlZCBMb2FkaW5nXG5cdFx0Ly8gMiAtIEZlZWQgTG9hZGVkXG5cdFx0Ly8gMyAtIEZlZWQgSW52YWxpZFxuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0ZmVlZERhdGE6IHtcblx0XHR0eXBlOiAnb2JqZWN0J1xuXHR9LFxuXHRjYXRlZ29yaWVzOiB7XG5cdFx0dHlwZTogJ29iamVjdCdcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0cmlidXRlcztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2luY2x1ZGVzL2d1dGVuYmVyZy9zcmMvYXR0cmlidXRlcy5qc1xuLy8gbW9kdWxlIGlkID0gNDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///47\n"); + +/***/ }), +/* 48 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__radio_image_control___ = __webpack_require__(49);\n// jshint ignore: start\n\n/**\n * Block dependencies\n */\n\n\n/**\n * Internal block libraries\n */\nvar __ = wp.i18n.__;\nvar _wp$editor = wp.editor,\n InspectorControls = _wp$editor.InspectorControls,\n MediaUpload = _wp$editor.MediaUpload;\nvar _wp$components = wp.components,\n PanelBody = _wp$components.PanelBody,\n RangeControl = _wp$components.RangeControl,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n ToggleControl = _wp$components.ToggleControl,\n SelectControl = _wp$components.SelectControl,\n ResponsiveWrapper = _wp$components.ResponsiveWrapper;\n\n/**\n* Create an Inspector Controls wrapper Component\n*/\n\nvar Inspector = function Inspector(props) {\n\treturn wp.element.createElement(\n\t\tInspectorControls,\n\t\t{ key: 'inspector' },\n\t\tprops.attributes.status !== 0 && [wp.element.createElement(TextControl, {\n\t\t\tlabel: __('Feed Source'),\n\t\t\tclassName: 'feedzy-source',\n\t\t\tvalue: props.attributes.feeds,\n\t\t\tonChange: props.onChangeFeeds\n\t\t}), wp.element.createElement(\n\t\t\tButton,\n\t\t\t{\n\t\t\t\tisLarge: true,\n\t\t\t\ttype: 'submit',\n\t\t\t\tonClick: props.loadFeed\n\t\t\t},\n\t\t\t__('Load Feed')\n\t\t)],\n\t\tprops.attributes.status === 2 && [wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{\n\t\t\t\ttitle: __('Feed Settings'),\n\t\t\t\tinitialOpen: true },\n\t\t\twp.element.createElement(RangeControl, {\n\t\t\t\tlabel: __('Number of Feeds'),\n\t\t\t\tvalue: Number(props.attributes.max) || 5,\n\t\t\t\tonChange: props.onChangeMax,\n\t\t\t\tmin: 1,\n\t\t\t\tmax: props.attributes.feedData['items'].length || 10,\n\t\t\t\tbeforeIcon: 'sort'\n\t\t\t}),\n\t\t\tprops.attributes.feedData['channel'] !== null && wp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display feed title?'),\n\t\t\t\tchecked: !!props.attributes.feed_title,\n\t\t\t\tonChange: props.toggleFeedTitle\n\t\t\t}),\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Feed Caching Time'),\n\t\t\t\tvalue: props.attributes.refresh,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('1 Hour'),\n\t\t\t\t\tvalue: '1_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('2 Hours'),\n\t\t\t\t\tvalue: '3_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('12 Hours'),\n\t\t\t\t\tvalue: '12_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('1 Day'),\n\t\t\t\t\tvalue: '1_days'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('3 Days'),\n\t\t\t\t\tvalue: '3_days'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('15 Days'),\n\t\t\t\t\tvalue: '15_days'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onRefresh\n\t\t\t}),\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Sorting Order'),\n\t\t\t\tvalue: props.attributes.sort,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Date Descending'),\n\t\t\t\t\tvalue: 'date_desc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Date Ascending'),\n\t\t\t\t\tvalue: 'date_asc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Title Descending'),\n\t\t\t\t\tvalue: 'title_desc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Title Ascending'),\n\t\t\t\t\tvalue: 'title_asc'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onSort\n\t\t\t})\n\t\t), wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Item Options'), initialOpen: false },\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Open Links In'),\n\t\t\t\tvalue: props.attributes.target,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('New Tab'),\n\t\t\t\t\tvalue: '_blank'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Same Tab'),\n\t\t\t\t\tvalue: '_self'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onTarget\n\t\t\t}),\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Title Character Limit'),\n\t\t\t\thelp: __('Leave empty to show full title.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.title,\n\t\t\t\tonChange: props.onTitle\n\t\t\t}),\n\t\t\twp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display post date & author?'),\n\t\t\t\tchecked: !!props.attributes.meta,\n\t\t\t\tonChange: props.toggleMeta\n\t\t\t}),\n\t\t\twp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display post description?'),\n\t\t\t\tchecked: !!props.attributes.summary,\n\t\t\t\tonChange: props.toggleSummary\n\t\t\t}),\n\t\t\tprops.attributes.summary && wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Description Character Limit'),\n\t\t\t\thelp: __('Leave empty to show full description.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.summarylength,\n\t\t\t\tonChange: props.onSummaryLength\n\t\t\t}),\n\t\t\tfeedzyjs.isPro && [wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Only display if title contains:'),\n\t\t\t\thelp: __('Comma-separated list/case sensitive.'),\n\t\t\t\tvalue: props.attributes.keywords_title,\n\t\t\t\tonChange: props.onKeywordsTitle\n\t\t\t}), wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Exclude if title contains:'),\n\t\t\t\thelp: __('Comma-separated list/case sensitive.'),\n\t\t\t\tvalue: props.attributes.keywords_ban,\n\t\t\t\tonChange: props.onKeywordsBan\n\t\t\t})]\n\t\t), wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Item Image Options'), initialOpen: false },\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Display first image if available?'),\n\t\t\t\tvalue: props.attributes.thumb,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Auto'),\n\t\t\t\t\tvalue: 'auto'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Yes'),\n\t\t\t\t\tvalue: 'yes'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('No'),\n\t\t\t\t\tvalue: 'no'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onThumb\n\t\t\t}),\n\t\t\tprops.attributes.thumb !== 'no' && [props.attributes.thumb !== 'auto' && wp.element.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: 'feedzy-blocks-base-control' },\n\t\t\t\twp.element.createElement(\n\t\t\t\t\t'label',\n\t\t\t\t\t{ className: 'blocks-base-control__label', 'for': 'inspector-media-upload' },\n\t\t\t\t\t__('Default thumbnail URL if no image is found.')\n\t\t\t\t),\n\t\t\t\twp.element.createElement(MediaUpload, {\n\t\t\t\t\ttype: 'image',\n\t\t\t\t\tid: 'inspector-media-upload',\n\t\t\t\t\tvalue: props.attributes.default,\n\t\t\t\t\tonSelect: props.onDefault,\n\t\t\t\t\trender: function render(_ref) {\n\t\t\t\t\t\tvar open = _ref.open;\n\t\t\t\t\t\treturn [props.attributes.default !== undefined && [wp.element.createElement(\n\t\t\t\t\t\t\tResponsiveWrapper,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnaturalWidth: props.attributes.default.width,\n\t\t\t\t\t\t\t\tnaturalHeight: props.attributes.default.height\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twp.element.createElement('img', { src: props.attributes.default.url, alt: __('Featured image') })\n\t\t\t\t\t\t), wp.element.createElement(\n\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\tonClick: function onClick() {\n\t\t\t\t\t\t\t\t\treturn props.setAttributes({ default: undefined });\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' }\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t__('Remove Image')\n\t\t\t\t\t\t)], wp.element.createElement(\n\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\tonClick: open,\n\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' },\n\t\t\t\t\t\t\t\tclassName: props.attributes.default === undefined && 'feedzy_image_upload'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t__('Upload Image')\n\t\t\t\t\t\t)];\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t), wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Thumbnails dimension.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.size,\n\t\t\t\tonChange: props.onSize\n\t\t\t})]\n\t\t), feedzyjs.isPro && wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Pro Features'), initialOpen: false },\n\t\t\twp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display price if available?'),\n\t\t\t\thelp: props.attributes.price && props.attributes.template === 'default' ? __('Choose a different template for this to work.') : null,\n\t\t\t\tchecked: !!props.attributes.price,\n\t\t\t\tonChange: props.togglePrice\n\t\t\t}),\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Referral URL parameters.'),\n\t\t\t\thelp: __('Without (\"?\")'),\n\t\t\t\tplaceholder: _('(eg. promo_code=feedzy_is_awesome)'),\n\t\t\t\tvalue: props.attributes.referral_url,\n\t\t\t\tonChange: props.onReferralURL\n\t\t\t}),\n\t\t\twp.element.createElement(RangeControl, {\n\t\t\t\tlabel: __('Columns'),\n\t\t\t\thelp: __('How many columns we should use to display the feed items?'),\n\t\t\t\tvalue: props.attributes.columns || 1,\n\t\t\t\tonChange: props.onColumns,\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 6,\n\t\t\t\tbeforeIcon: 'sort',\n\t\t\t\tallowReset: true\n\t\t\t}),\n\t\t\twp.element.createElement(__WEBPACK_IMPORTED_MODULE_0__radio_image_control___[\"a\" /* default */], {\n\t\t\t\tlabel: __('Feed Template'),\n\t\t\t\tselected: props.attributes.template,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Default'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-default-template.jpg',\n\t\t\t\t\tvalue: 'default'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Style 1'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-style1-template.jpg',\n\t\t\t\t\tvalue: 'style1'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Style 2'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-style2-template.jpg',\n\t\t\t\t\tvalue: 'style2'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onTemplate\n\t\t\t})\n\t\t)]\n\t);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Inspector);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2luc3BlY3Rvci5qcz83YTVmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGpzaGludCBpZ25vcmU6IHN0YXJ0XG5cbi8qKlxuICogQmxvY2sgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBSYWRpb0ltYWdlQ29udHJvbCBmcm9tICcuL3JhZGlvLWltYWdlLWNvbnRyb2wvJztcblxuLyoqXG4gKiBJbnRlcm5hbCBibG9jayBsaWJyYXJpZXNcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdG9yID0gd3AuZWRpdG9yLFxuICAgIEluc3BlY3RvckNvbnRyb2xzID0gX3dwJGVkaXRvci5JbnNwZWN0b3JDb250cm9scyxcbiAgICBNZWRpYVVwbG9hZCA9IF93cCRlZGl0b3IuTWVkaWFVcGxvYWQ7XG52YXIgX3dwJGNvbXBvbmVudHMgPSB3cC5jb21wb25lbnRzLFxuICAgIFBhbmVsQm9keSA9IF93cCRjb21wb25lbnRzLlBhbmVsQm9keSxcbiAgICBSYW5nZUNvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5SYW5nZUNvbnRyb2wsXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbCxcbiAgICBCdXR0b24gPSBfd3AkY29tcG9uZW50cy5CdXR0b24sXG4gICAgVG9nZ2xlQ29udHJvbCA9IF93cCRjb21wb25lbnRzLlRvZ2dsZUNvbnRyb2wsXG4gICAgU2VsZWN0Q29udHJvbCA9IF93cCRjb21wb25lbnRzLlNlbGVjdENvbnRyb2wsXG4gICAgUmVzcG9uc2l2ZVdyYXBwZXIgPSBfd3AkY29tcG9uZW50cy5SZXNwb25zaXZlV3JhcHBlcjtcblxuLyoqXG4qIENyZWF0ZSBhbiBJbnNwZWN0b3IgQ29udHJvbHMgd3JhcHBlciBDb21wb25lbnRcbiovXG5cbnZhciBJbnNwZWN0b3IgPSBmdW5jdGlvbiBJbnNwZWN0b3IocHJvcHMpIHtcblx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRJbnNwZWN0b3JDb250cm9scyxcblx0XHR7IGtleTogJ2luc3BlY3RvcicgfSxcblx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyAhPT0gMCAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRsYWJlbDogX18oJ0ZlZWQgU291cmNlJyksXG5cdFx0XHRjbGFzc05hbWU6ICdmZWVkenktc291cmNlJyxcblx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWRzLFxuXHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uQ2hhbmdlRmVlZHNcblx0XHR9KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0QnV0dG9uLFxuXHRcdFx0e1xuXHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHR0eXBlOiAnc3VibWl0Jyxcblx0XHRcdFx0b25DbGljazogcHJvcHMubG9hZEZlZWRcblx0XHRcdH0sXG5cdFx0XHRfXygnTG9hZCBGZWVkJylcblx0XHQpXSxcblx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyA9PT0gMiAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0UGFuZWxCb2R5LFxuXHRcdFx0e1xuXHRcdFx0XHR0aXRsZTogX18oJ0ZlZWQgU2V0dGluZ3MnKSxcblx0XHRcdFx0aW5pdGlhbE9wZW46IHRydWUgfSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChSYW5nZUNvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdOdW1iZXIgb2YgRmVlZHMnKSxcblx0XHRcdFx0dmFsdWU6IE51bWJlcihwcm9wcy5hdHRyaWJ1dGVzLm1heCkgfHwgNSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uQ2hhbmdlTWF4LFxuXHRcdFx0XHRtaW46IDEsXG5cdFx0XHRcdG1heDogcHJvcHMuYXR0cmlidXRlcy5mZWVkRGF0YVsnaXRlbXMnXS5sZW5ndGggfHwgMTAsXG5cdFx0XHRcdGJlZm9yZUljb246ICdzb3J0J1xuXHRcdFx0fSksXG5cdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydjaGFubmVsJ10gIT09IG51bGwgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRvZ2dsZUNvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdEaXNwbGF5IGZlZWQgdGl0bGU/JyksXG5cdFx0XHRcdGNoZWNrZWQ6ICEhcHJvcHMuYXR0cmlidXRlcy5mZWVkX3RpdGxlLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMudG9nZ2xlRmVlZFRpdGxlXG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTZWxlY3RDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRmVlZCBDYWNoaW5nIFRpbWUnKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMucmVmcmVzaCxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJzEgSG91cicpLFxuXHRcdFx0XHRcdHZhbHVlOiAnMV9ob3Vycydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnMiBIb3VycycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnM19ob3Vycydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnMTIgSG91cnMnKSxcblx0XHRcdFx0XHR2YWx1ZTogJzEyX2hvdXJzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcxIERheScpLFxuXHRcdFx0XHRcdHZhbHVlOiAnMV9kYXlzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCczIERheXMnKSxcblx0XHRcdFx0XHR2YWx1ZTogJzNfZGF5cydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnMTUgRGF5cycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnMTVfZGF5cydcblx0XHRcdFx0fV0sXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblJlZnJlc2hcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdTb3J0aW5nIE9yZGVyJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnNvcnQsXG5cdFx0XHRcdG9wdGlvbnM6IFt7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdEYXRlIERlc2NlbmRpbmcnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ2RhdGVfZGVzYydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnRGF0ZSBBc2NlbmRpbmcnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ2RhdGVfYXNjJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdUaXRsZSBEZXNjZW5kaW5nJyksXG5cdFx0XHRcdFx0dmFsdWU6ICd0aXRsZV9kZXNjJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdUaXRsZSBBc2NlbmRpbmcnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ3RpdGxlX2FzYydcblx0XHRcdFx0fV0sXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblNvcnRcblx0XHRcdH0pXG5cdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0UGFuZWxCb2R5LFxuXHRcdFx0eyB0aXRsZTogX18oJ0l0ZW0gT3B0aW9ucycpLCBpbml0aWFsT3BlbjogZmFsc2UgfSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTZWxlY3RDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnT3BlbiBMaW5rcyBJbicpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy50YXJnZXQsXG5cdFx0XHRcdG9wdGlvbnM6IFt7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdOZXcgVGFiJyksXG5cdFx0XHRcdFx0dmFsdWU6ICdfYmxhbmsnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1NhbWUgVGFiJyksXG5cdFx0XHRcdFx0dmFsdWU6ICdfc2VsZidcblx0XHRcdFx0fV0sXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblRhcmdldFxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdUaXRsZSBDaGFyYWN0ZXIgTGltaXQnKSxcblx0XHRcdFx0aGVscDogX18oJ0xlYXZlIGVtcHR5IHRvIHNob3cgZnVsbCB0aXRsZS4nKSxcblx0XHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnRpdGxlLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25UaXRsZVxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVG9nZ2xlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rpc3BsYXkgcG9zdCBkYXRlICYgYXV0aG9yPycpLFxuXHRcdFx0XHRjaGVja2VkOiAhIXByb3BzLmF0dHJpYnV0ZXMubWV0YSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLnRvZ2dsZU1ldGFcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRvZ2dsZUNvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdEaXNwbGF5IHBvc3QgZGVzY3JpcHRpb24/JyksXG5cdFx0XHRcdGNoZWNrZWQ6ICEhcHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5LFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMudG9nZ2xlU3VtbWFyeVxuXHRcdFx0fSksXG5cdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnkgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRGVzY3JpcHRpb24gQ2hhcmFjdGVyIExpbWl0JyksXG5cdFx0XHRcdGhlbHA6IF9fKCdMZWF2ZSBlbXB0eSB0byBzaG93IGZ1bGwgZGVzY3JpcHRpb24uJyksXG5cdFx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5bGVuZ3RoLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25TdW1tYXJ5TGVuZ3RoXG5cdFx0XHR9KSxcblx0XHRcdGZlZWR6eWpzLmlzUHJvICYmIFt3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdPbmx5IGRpc3BsYXkgaWYgdGl0bGUgY29udGFpbnM6JyksXG5cdFx0XHRcdGhlbHA6IF9fKCdDb21tYS1zZXBhcmF0ZWQgbGlzdC9jYXNlIHNlbnNpdGl2ZS4nKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMua2V5d29yZHNfdGl0bGUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vbktleXdvcmRzVGl0bGVcblx0XHRcdH0pLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdFeGNsdWRlIGlmIHRpdGxlIGNvbnRhaW5zOicpLFxuXHRcdFx0XHRoZWxwOiBfXygnQ29tbWEtc2VwYXJhdGVkIGxpc3QvY2FzZSBzZW5zaXRpdmUuJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmtleXdvcmRzX2Jhbixcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uS2V5d29yZHNCYW5cblx0XHRcdH0pXVxuXHRcdCksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFBhbmVsQm9keSxcblx0XHRcdHsgdGl0bGU6IF9fKCdJdGVtIEltYWdlIE9wdGlvbnMnKSwgaW5pdGlhbE9wZW46IGZhbHNlIH0sXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoU2VsZWN0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rpc3BsYXkgZmlyc3QgaW1hZ2UgaWYgYXZhaWxhYmxlPycpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy50aHVtYixcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ0F1dG8nKSxcblx0XHRcdFx0XHR2YWx1ZTogJ2F1dG8nXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1llcycpLFxuXHRcdFx0XHRcdHZhbHVlOiAneWVzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdObycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnbm8nXG5cdFx0XHRcdH1dLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25UaHVtYlxuXHRcdFx0fSksXG5cdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnRodW1iICE9PSAnbm8nICYmIFtwcm9wcy5hdHRyaWJ1dGVzLnRodW1iICE9PSAnYXV0bycgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0eyBjbGFzc05hbWU6ICdmZWVkenktYmxvY2tzLWJhc2UtY29udHJvbCcgfSxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdCdsYWJlbCcsXG5cdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdibG9ja3MtYmFzZS1jb250cm9sX19sYWJlbCcsICdmb3InOiAnaW5zcGVjdG9yLW1lZGlhLXVwbG9hZCcgfSxcblx0XHRcdFx0XHRfXygnRGVmYXVsdCB0aHVtYm5haWwgVVJMIGlmIG5vIGltYWdlIGlzIGZvdW5kLicpXG5cdFx0XHRcdCksXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChNZWRpYVVwbG9hZCwge1xuXHRcdFx0XHRcdHR5cGU6ICdpbWFnZScsXG5cdFx0XHRcdFx0aWQ6ICdpbnNwZWN0b3ItbWVkaWEtdXBsb2FkJyxcblx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0LFxuXHRcdFx0XHRcdG9uU2VsZWN0OiBwcm9wcy5vbkRlZmF1bHQsXG5cdFx0XHRcdFx0cmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoX3JlZikge1xuXHRcdFx0XHRcdFx0dmFyIG9wZW4gPSBfcmVmLm9wZW47XG5cdFx0XHRcdFx0XHRyZXR1cm4gW3Byb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdCAhPT0gdW5kZWZpbmVkICYmIFt3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFJlc3BvbnNpdmVXcmFwcGVyLFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0bmF0dXJhbFdpZHRoOiBwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQud2lkdGgsXG5cdFx0XHRcdFx0XHRcdFx0bmF0dXJhbEhlaWdodDogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0LmhlaWdodFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycsIHsgc3JjOiBwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQudXJsLCBhbHQ6IF9fKCdGZWF0dXJlZCBpbWFnZScpIH0pXG5cdFx0XHRcdFx0XHQpLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGlzTGFyZ2U6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0b25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgZGVmYXVsdDogdW5kZWZpbmVkIH0pO1xuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0c3R5bGU6IHsgbWFyZ2luVG9wOiAnMTBweCcgfVxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRfXygnUmVtb3ZlIEltYWdlJylcblx0XHRcdFx0XHRcdCldLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGlzTGFyZ2U6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0b25DbGljazogb3Blbixcblx0XHRcdFx0XHRcdFx0XHRzdHlsZTogeyBtYXJnaW5Ub3A6ICcxMHB4JyB9LFxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZTogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0ID09PSB1bmRlZmluZWQgJiYgJ2ZlZWR6eV9pbWFnZV91cGxvYWQnXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdF9fKCdVcGxvYWQgSW1hZ2UnKVxuXHRcdFx0XHRcdFx0KV07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnVGh1bWJuYWlscyBkaW1lbnNpb24uJyksXG5cdFx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5zaXplLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25TaXplXG5cdFx0XHR9KV1cblx0XHQpLCBmZWVkenlqcy5pc1BybyAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHR7IHRpdGxlOiBfXygnUHJvIEZlYXR1cmVzJyksIGluaXRpYWxPcGVuOiBmYWxzZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRvZ2dsZUNvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdEaXNwbGF5IHByaWNlIGlmIGF2YWlsYWJsZT8nKSxcblx0XHRcdFx0aGVscDogcHJvcHMuYXR0cmlidXRlcy5wcmljZSAmJiBwcm9wcy5hdHRyaWJ1dGVzLnRlbXBsYXRlID09PSAnZGVmYXVsdCcgPyBfXygnQ2hvb3NlIGEgZGlmZmVyZW50IHRlbXBsYXRlIGZvciB0aGlzIHRvIHdvcmsuJykgOiBudWxsLFxuXHRcdFx0XHRjaGVja2VkOiAhIXByb3BzLmF0dHJpYnV0ZXMucHJpY2UsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy50b2dnbGVQcmljZVxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdSZWZlcnJhbCBVUkwgcGFyYW1ldGVycy4nKSxcblx0XHRcdFx0aGVscDogX18oJ1dpdGhvdXQgKFwiP1wiKScpLFxuXHRcdFx0XHRwbGFjZWhvbGRlcjogXygnKGVnLiBwcm9tb19jb2RlPWZlZWR6eV9pc19hd2Vzb21lKScpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5yZWZlcnJhbF91cmwsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblJlZmVycmFsVVJMXG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChSYW5nZUNvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdDb2x1bW5zJyksXG5cdFx0XHRcdGhlbHA6IF9fKCdIb3cgbWFueSBjb2x1bW5zIHdlIHNob3VsZCB1c2UgdG8gZGlzcGxheSB0aGUgZmVlZCBpdGVtcz8nKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuY29sdW1ucyB8fCAxLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25Db2x1bW5zLFxuXHRcdFx0XHRtaW46IDEsXG5cdFx0XHRcdG1heDogNixcblx0XHRcdFx0YmVmb3JlSWNvbjogJ3NvcnQnLFxuXHRcdFx0XHRhbGxvd1Jlc2V0OiB0cnVlXG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChSYWRpb0ltYWdlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0ZlZWQgVGVtcGxhdGUnKSxcblx0XHRcdFx0c2VsZWN0ZWQ6IHByb3BzLmF0dHJpYnV0ZXMudGVtcGxhdGUsXG5cdFx0XHRcdG9wdGlvbnM6IFt7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdEZWZhdWx0JyksXG5cdFx0XHRcdFx0c3JjOiBmZWVkenlqcy5pbWFnZXBhdGggKyAnZmVlZHp5LWRlZmF1bHQtdGVtcGxhdGUuanBnJyxcblx0XHRcdFx0XHR2YWx1ZTogJ2RlZmF1bHQnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1N0eWxlIDEnKSxcblx0XHRcdFx0XHRzcmM6IGZlZWR6eWpzLmltYWdlcGF0aCArICdmZWVkenktc3R5bGUxLXRlbXBsYXRlLmpwZycsXG5cdFx0XHRcdFx0dmFsdWU6ICdzdHlsZTEnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1N0eWxlIDInKSxcblx0XHRcdFx0XHRzcmM6IGZlZWR6eWpzLmltYWdlcGF0aCArICdmZWVkenktc3R5bGUyLXRlbXBsYXRlLmpwZycsXG5cdFx0XHRcdFx0dmFsdWU6ICdzdHlsZTInXG5cdFx0XHRcdH1dLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25UZW1wbGF0ZVxuXHRcdFx0fSlcblx0XHQpXVxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vaW5jbHVkZXMvZ3V0ZW5iZXJnL3NyYy9pbnNwZWN0b3IuanNcbi8vIG1vZHVsZSBpZCA9IDQ4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///48\n"); + +/***/ }), +/* 49 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__style_scss__);\n// jshint ignore: start\n\n/**\n * Block dependencies\n */\n\n\n/**\n * Internal dependencies\n */\nvar _lodash = lodash,\n isEmpty = _lodash.isEmpty;\nvar _wp$components = wp.components,\n BaseControl = _wp$components.BaseControl,\n withInstanceId = _wp$components.withInstanceId;\n\n\nfunction RadioImageControl(_ref) {\n\tvar label = _ref.label,\n\t selected = _ref.selected,\n\t help = _ref.help,\n\t instanceId = _ref.instanceId,\n\t onChange = _ref.onChange,\n\t disabled = _ref.disabled,\n\t _ref$options = _ref.options,\n\t options = _ref$options === undefined ? [] : _ref$options;\n\n\tvar id = \"inspector-radio-image-control-\" + instanceId;\n\tvar onChangeValue = function onChangeValue(event) {\n\t\treturn onChange(event.target.value);\n\t};\n\n\treturn !isEmpty(options) && wp.element.createElement(\n\t\tBaseControl,\n\t\t{ label: label, id: id, help: help, className: \"components-radio-image-control\" },\n\t\twp.element.createElement(\n\t\t\t\"div\",\n\t\t\t{ className: \"components-radio-image-control__container\" },\n\t\t\toptions.map(function (option, index) {\n\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t\"div\",\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: id + \"-\" + index,\n\t\t\t\t\t\tclassName: \"components-radio-image-control__option\"\n\t\t\t\t\t},\n\t\t\t\t\twp.element.createElement(\"input\", {\n\t\t\t\t\t\tid: id + \"-\" + index,\n\t\t\t\t\t\tclassName: \"components-radio-image-control__input\",\n\t\t\t\t\t\ttype: \"radio\",\n\t\t\t\t\t\tname: id,\n\t\t\t\t\t\tvalue: option.value,\n\t\t\t\t\t\tonChange: onChangeValue,\n\t\t\t\t\t\tchecked: option.value === selected,\n\t\t\t\t\t\t\"aria-describedby\": !!help ? id + \"__help\" : undefined,\n\t\t\t\t\t\tdisabled: disabled\n\t\t\t\t\t}),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\"label\",\n\t\t\t\t\t\t{ htmlFor: id + \"-\" + index, title: option.label },\n\t\t\t\t\t\twp.element.createElement(\"img\", { src: option.src }),\n\t\t\t\t\t\twp.element.createElement(\"span\", { \"class\": \"image-clickable\" })\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (withInstanceId(RadioImageControl));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL3JhZGlvLWltYWdlLWNvbnRyb2wvaW5kZXguanM/N2M3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBqc2hpbnQgaWdub3JlOiBzdGFydFxuXG4vKipcbiAqIEJsb2NrIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgJy4vc3R5bGUuc2Nzcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbnZhciBfbG9kYXNoID0gbG9kYXNoLFxuICAgIGlzRW1wdHkgPSBfbG9kYXNoLmlzRW1wdHk7XG52YXIgX3dwJGNvbXBvbmVudHMgPSB3cC5jb21wb25lbnRzLFxuICAgIEJhc2VDb250cm9sID0gX3dwJGNvbXBvbmVudHMuQmFzZUNvbnRyb2wsXG4gICAgd2l0aEluc3RhbmNlSWQgPSBfd3AkY29tcG9uZW50cy53aXRoSW5zdGFuY2VJZDtcblxuXG5mdW5jdGlvbiBSYWRpb0ltYWdlQ29udHJvbChfcmVmKSB7XG5cdHZhciBsYWJlbCA9IF9yZWYubGFiZWwsXG5cdCAgICBzZWxlY3RlZCA9IF9yZWYuc2VsZWN0ZWQsXG5cdCAgICBoZWxwID0gX3JlZi5oZWxwLFxuXHQgICAgaW5zdGFuY2VJZCA9IF9yZWYuaW5zdGFuY2VJZCxcblx0ICAgIG9uQ2hhbmdlID0gX3JlZi5vbkNoYW5nZSxcblx0ICAgIGRpc2FibGVkID0gX3JlZi5kaXNhYmxlZCxcblx0ICAgIF9yZWYkb3B0aW9ucyA9IF9yZWYub3B0aW9ucyxcblx0ICAgIG9wdGlvbnMgPSBfcmVmJG9wdGlvbnMgPT09IHVuZGVmaW5lZCA/IFtdIDogX3JlZiRvcHRpb25zO1xuXG5cdHZhciBpZCA9IFwiaW5zcGVjdG9yLXJhZGlvLWltYWdlLWNvbnRyb2wtXCIgKyBpbnN0YW5jZUlkO1xuXHR2YXIgb25DaGFuZ2VWYWx1ZSA9IGZ1bmN0aW9uIG9uQ2hhbmdlVmFsdWUoZXZlbnQpIHtcblx0XHRyZXR1cm4gb25DaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcblx0fTtcblxuXHRyZXR1cm4gIWlzRW1wdHkob3B0aW9ucykgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdEJhc2VDb250cm9sLFxuXHRcdHsgbGFiZWw6IGxhYmVsLCBpZDogaWQsIGhlbHA6IGhlbHAsIGNsYXNzTmFtZTogXCJjb21wb25lbnRzLXJhZGlvLWltYWdlLWNvbnRyb2xcIiB9LFxuXHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFwiZGl2XCIsXG5cdFx0XHR7IGNsYXNzTmFtZTogXCJjb21wb25lbnRzLXJhZGlvLWltYWdlLWNvbnRyb2xfX2NvbnRhaW5lclwiIH0sXG5cdFx0XHRvcHRpb25zLm1hcChmdW5jdGlvbiAob3B0aW9uLCBpbmRleCkge1xuXHRcdFx0XHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFwiZGl2XCIsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0a2V5OiBpZCArIFwiLVwiICsgaW5kZXgsXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU6IFwiY29tcG9uZW50cy1yYWRpby1pbWFnZS1jb250cm9sX19vcHRpb25cIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuXHRcdFx0XHRcdFx0aWQ6IGlkICsgXCItXCIgKyBpbmRleCxcblx0XHRcdFx0XHRcdGNsYXNzTmFtZTogXCJjb21wb25lbnRzLXJhZGlvLWltYWdlLWNvbnRyb2xfX2lucHV0XCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcInJhZGlvXCIsXG5cdFx0XHRcdFx0XHRuYW1lOiBpZCxcblx0XHRcdFx0XHRcdHZhbHVlOiBvcHRpb24udmFsdWUsXG5cdFx0XHRcdFx0XHRvbkNoYW5nZTogb25DaGFuZ2VWYWx1ZSxcblx0XHRcdFx0XHRcdGNoZWNrZWQ6IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWQsXG5cdFx0XHRcdFx0XHRcImFyaWEtZGVzY3JpYmVkYnlcIjogISFoZWxwID8gaWQgKyBcIl9faGVscFwiIDogdW5kZWZpbmVkLFxuXHRcdFx0XHRcdFx0ZGlzYWJsZWQ6IGRpc2FibGVkXG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XCJsYWJlbFwiLFxuXHRcdFx0XHRcdFx0eyBodG1sRm9yOiBpZCArIFwiLVwiICsgaW5kZXgsIHRpdGxlOiBvcHRpb24ubGFiZWwgfSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiLCB7IHNyYzogb3B0aW9uLnNyYyB9KSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgeyBcImNsYXNzXCI6IFwiaW1hZ2UtY2xpY2thYmxlXCIgfSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9KVxuXHRcdClcblx0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aEluc3RhbmNlSWQoUmFkaW9JbWFnZUNvbnRyb2wpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vaW5jbHVkZXMvZ3V0ZW5iZXJnL3NyYy9yYWRpby1pbWFnZS1jb250cm9sL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///49\n"); + +/***/ }), +/* 50 */ +/***/ (function(module, exports) { + +eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL3JhZGlvLWltYWdlLWNvbnRyb2wvc3R5bGUuc2Nzcz9lNDE3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL3JhZGlvLWltYWdlLWNvbnRyb2wvc3R5bGUuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n"); + +/***/ }), +/* 51 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return unescapeHTML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return filterData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return inArray; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_array_from__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_array_from___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_array_from__);\n\n// jshint ignore: start\n\nvar unescapeHTML = function unescapeHTML(value) {\n\tvar htmlNode = document.createElement('div');\n\thtmlNode.innerHTML = value;\n\tif (htmlNode.innerText !== undefined) {\n\t\treturn htmlNode.innerText;\n\t}\n\treturn htmlNode.textContent;\n};\n\nvar filterData = function filterData(arr, sortType, allowedKeywords, bannedKeywords, maxSize) {\n\tarr = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_array_from___default()(arr).sort(function (a, b) {\n\t\tvar firstElement = void 0,\n\t\t secondElement = void 0;\n\t\tif (sortType === 'date_desc' || sortType === 'date_asc') {\n\t\t\tfirstElement = a.pubDate;\n\t\t\tsecondElement = b.pubDate;\n\t\t} else if (sortType === 'title_desc' || sortType === 'title_asc') {\n\t\t\tfirstElement = a.title.toUpperCase();\n\t\t\tsecondElement = b.title.toUpperCase();\n\t\t}\n\t\tif (firstElement < secondElement) {\n\t\t\tif (sortType === 'date_desc' || sortType === 'title_desc') {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t\tif (firstElement > secondElement) {\n\t\t\tif (sortType === 'date_desc' || sortType === 'title_desc') {\n\t\t\t\treturn -1;\n\t\t\t} else {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\t\t// names must be equal\n\t\treturn 0;\n\t}).filter(function (item) {\n\t\tif (allowedKeywords) {\n\t\t\treturn allowedKeywords.split(',').filter(function (item) {\n\t\t\t\treturn item.replace(/\\s/g, '') !== '';\n\t\t\t}).some(function (el) {\n\t\t\t\treturn item['title'].includes(el.trim());\n\t\t\t});\n\t\t}\n\t\treturn true;\n\t}).filter(function (item) {\n\t\tif (bannedKeywords) {\n\t\t\treturn bannedKeywords.split(',').filter(function (item) {\n\t\t\t\treturn item.replace(/\\s/g, '') !== '';\n\t\t\t}).every(function (el) {\n\t\t\t\treturn item['title'].includes(el.trim()) === false;\n\t\t\t});\n\t\t}\n\t\treturn true;\n\t}).slice(0, maxSize);\n\treturn arr;\n};\n\nvar inArray = function inArray(value, arr) {\n\tvar exists = false;\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tvar name = arr[i];\n\t\tif (name === value) {\n\t\t\texists = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn exists;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL3V0aWxzLmpzPzMyZGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9BcnJheSRmcm9tIGZyb20gJ2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9hcnJheS9mcm9tJztcbi8vIGpzaGludCBpZ25vcmU6IHN0YXJ0XG5cbmV4cG9ydCB2YXIgdW5lc2NhcGVIVE1MID0gZnVuY3Rpb24gdW5lc2NhcGVIVE1MKHZhbHVlKSB7XG5cdHZhciBodG1sTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXHRodG1sTm9kZS5pbm5lckhUTUwgPSB2YWx1ZTtcblx0aWYgKGh0bWxOb2RlLmlubmVyVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGh0bWxOb2RlLmlubmVyVGV4dDtcblx0fVxuXHRyZXR1cm4gaHRtbE5vZGUudGV4dENvbnRlbnQ7XG59O1xuXG5leHBvcnQgdmFyIGZpbHRlckRhdGEgPSBmdW5jdGlvbiBmaWx0ZXJEYXRhKGFyciwgc29ydFR5cGUsIGFsbG93ZWRLZXl3b3JkcywgYmFubmVkS2V5d29yZHMsIG1heFNpemUpIHtcblx0YXJyID0gX0FycmF5JGZyb20oYXJyKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG5cdFx0dmFyIGZpcnN0RWxlbWVudCA9IHZvaWQgMCxcblx0XHQgICAgc2Vjb25kRWxlbWVudCA9IHZvaWQgMDtcblx0XHRpZiAoc29ydFR5cGUgPT09ICdkYXRlX2Rlc2MnIHx8IHNvcnRUeXBlID09PSAnZGF0ZV9hc2MnKSB7XG5cdFx0XHRmaXJzdEVsZW1lbnQgPSBhLnB1YkRhdGU7XG5cdFx0XHRzZWNvbmRFbGVtZW50ID0gYi5wdWJEYXRlO1xuXHRcdH0gZWxzZSBpZiAoc29ydFR5cGUgPT09ICd0aXRsZV9kZXNjJyB8fCBzb3J0VHlwZSA9PT0gJ3RpdGxlX2FzYycpIHtcblx0XHRcdGZpcnN0RWxlbWVudCA9IGEudGl0bGUudG9VcHBlckNhc2UoKTtcblx0XHRcdHNlY29uZEVsZW1lbnQgPSBiLnRpdGxlLnRvVXBwZXJDYXNlKCk7XG5cdFx0fVxuXHRcdGlmIChmaXJzdEVsZW1lbnQgPCBzZWNvbmRFbGVtZW50KSB7XG5cdFx0XHRpZiAoc29ydFR5cGUgPT09ICdkYXRlX2Rlc2MnIHx8IHNvcnRUeXBlID09PSAndGl0bGVfZGVzYycpIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChmaXJzdEVsZW1lbnQgPiBzZWNvbmRFbGVtZW50KSB7XG5cdFx0XHRpZiAoc29ydFR5cGUgPT09ICdkYXRlX2Rlc2MnIHx8IHNvcnRUeXBlID09PSAndGl0bGVfZGVzYycpIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIG5hbWVzIG11c3QgYmUgZXF1YWxcblx0XHRyZXR1cm4gMDtcblx0fSkuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0aWYgKGFsbG93ZWRLZXl3b3Jkcykge1xuXHRcdFx0cmV0dXJuIGFsbG93ZWRLZXl3b3Jkcy5zcGxpdCgnLCcpLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHRyZXR1cm4gaXRlbS5yZXBsYWNlKC9cXHMvZywgJycpICE9PSAnJztcblx0XHRcdH0pLnNvbWUoZnVuY3Rpb24gKGVsKSB7XG5cdFx0XHRcdHJldHVybiBpdGVtWyd0aXRsZSddLmluY2x1ZGVzKGVsLnRyaW0oKSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0pLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuXHRcdGlmIChiYW5uZWRLZXl3b3Jkcykge1xuXHRcdFx0cmV0dXJuIGJhbm5lZEtleXdvcmRzLnNwbGl0KCcsJykuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0XHRcdHJldHVybiBpdGVtLnJlcGxhY2UoL1xccy9nLCAnJykgIT09ICcnO1xuXHRcdFx0fSkuZXZlcnkoZnVuY3Rpb24gKGVsKSB7XG5cdFx0XHRcdHJldHVybiBpdGVtWyd0aXRsZSddLmluY2x1ZGVzKGVsLnRyaW0oKSkgPT09IGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9KS5zbGljZSgwLCBtYXhTaXplKTtcblx0cmV0dXJuIGFycjtcbn07XG5cbmV4cG9ydCB2YXIgaW5BcnJheSA9IGZ1bmN0aW9uIGluQXJyYXkodmFsdWUsIGFycikge1xuXHR2YXIgZXhpc3RzID0gZmFsc2U7XG5cdGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIG5hbWUgPSBhcnJbaV07XG5cdFx0aWYgKG5hbWUgPT09IHZhbHVlKSB7XG5cdFx0XHRleGlzdHMgPSB0cnVlO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBleGlzdHM7XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vaW5jbHVkZXMvZ3V0ZW5iZXJnL3NyYy91dGlscy5qc1xuLy8gbW9kdWxlIGlkID0gNTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n"); + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = { \"default\": __webpack_require__(53), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL2FycmF5L2Zyb20uanM/NzNmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vYXJyYXkvZnJvbVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9hcnJheS9mcm9tLmpzXG4vLyBtb2R1bGUgaWQgPSA1MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n"); + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("__webpack_require__(54);\n__webpack_require__(63);\nmodule.exports = __webpack_require__(2).Array.from;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2FycmF5L2Zyb20uanM/ZTczNyJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LmFycmF5LmZyb20nKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLkFycmF5LmZyb207XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vYXJyYXkvZnJvbS5qc1xuLy8gbW9kdWxlIGlkID0gNTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///53\n"); + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar $at = __webpack_require__(55)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(56)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcz9jZDA0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///54\n"); + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var toInteger = __webpack_require__(13);\nvar defined = __webpack_require__(12);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3N0cmluZy1hdC5qcz84N2FlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbi8vIHRydWUgIC0+IFN0cmluZyNhdFxuLy8gZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBwb3MpIHtcbiAgICB2YXIgcyA9IFN0cmluZyhkZWZpbmVkKHRoYXQpKTtcbiAgICB2YXIgaSA9IHRvSW50ZWdlcihwb3MpO1xuICAgIHZhciBsID0gcy5sZW5ndGg7XG4gICAgdmFyIGEsIGI7XG4gICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGEgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgcmV0dXJuIGEgPCAweGQ4MDAgfHwgYSA+IDB4ZGJmZiB8fCBpICsgMSA9PT0gbCB8fCAoYiA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGIgPiAweGRmZmZcbiAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG4gICAgICA6IFRPX1NUUklORyA/IHMuc2xpY2UoaSwgaSArIDIpIDogKGEgLSAweGQ4MDAgPDwgMTApICsgKGIgLSAweGRjMDApICsgMHgxMDAwMDtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc3RyaW5nLWF0LmpzXG4vLyBtb2R1bGUgaWQgPSA1NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n"); + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar LIBRARY = __webpack_require__(25);\nvar $export = __webpack_require__(8);\nvar redefine = __webpack_require__(57);\nvar hide = __webpack_require__(3);\nvar Iterators = __webpack_require__(16);\nvar $iterCreate = __webpack_require__(58);\nvar setToStringTag = __webpack_require__(28);\nvar getPrototypeOf = __webpack_require__(62);\nvar ITERATOR = __webpack_require__(0)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGVmaW5lLmpzP2JjODAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyICRpdGVyQ3JlYXRlID0gcmVxdWlyZSgnLi9faXRlci1jcmVhdGUnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBCVUdHWSA9ICEoW10ua2V5cyAmJiAnbmV4dCcgaW4gW10ua2V5cygpKTsgLy8gU2FmYXJpIGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxudmFyIEZGX0lURVJBVE9SID0gJ0BAaXRlcmF0b3InO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQmFzZSwgTkFNRSwgQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gICRpdGVyQ3JlYXRlKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcbiAgdmFyIGdldE1ldGhvZCA9IGZ1bmN0aW9uIChraW5kKSB7XG4gICAgaWYgKCFCVUdHWSAmJiBraW5kIGluIHByb3RvKSByZXR1cm4gcHJvdG9ba2luZF07XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgfSByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgfTtcbiAgdmFyIFRBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIERFRl9WQUxVRVMgPSBERUZBVUxUID09IFZBTFVFUztcbiAgdmFyIFZBTFVFU19CVUcgPSBmYWxzZTtcbiAgdmFyIHByb3RvID0gQmFzZS5wcm90b3R5cGU7XG4gIHZhciAkbmF0aXZlID0gcHJvdG9bSVRFUkFUT1JdIHx8IHByb3RvW0ZGX0lURVJBVE9SXSB8fCBERUZBVUxUICYmIHByb3RvW0RFRkFVTFRdO1xuICB2YXIgJGRlZmF1bHQgPSAkbmF0aXZlIHx8IGdldE1ldGhvZChERUZBVUxUKTtcbiAgdmFyICRlbnRyaWVzID0gREVGQVVMVCA/ICFERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoJ2VudHJpZXMnKSA6IHVuZGVmaW5lZDtcbiAgdmFyICRhbnlOYXRpdmUgPSBOQU1FID09ICdBcnJheScgPyBwcm90by5lbnRyaWVzIHx8ICRuYXRpdmUgOiAkbmF0aXZlO1xuICB2YXIgbWV0aG9kcywga2V5LCBJdGVyYXRvclByb3RvdHlwZTtcbiAgLy8gRml4IG5hdGl2ZVxuICBpZiAoJGFueU5hdGl2ZSkge1xuICAgIEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoJGFueU5hdGl2ZS5jYWxsKG5ldyBCYXNlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgSXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoSXRlcmF0b3JQcm90b3R5cGUsIFRBRywgdHJ1ZSk7XG4gICAgICAvLyBmaXggZm9yIHNvbWUgb2xkIGVuZ2luZXNcbiAgICAgIGlmICghTElCUkFSWSAmJiB0eXBlb2YgSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIGhpZGUoSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICB9XG4gIH1cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGX1ZBTFVFUyAmJiAkbmF0aXZlICYmICRuYXRpdmUubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgVkFMVUVTX0JVRyA9IHRydWU7XG4gICAgJGRlZmF1bHQgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiAkbmF0aXZlLmNhbGwodGhpcyk7IH07XG4gIH1cbiAgLy8gRGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUxJQlJBUlkgfHwgRk9SQ0VEKSAmJiAoQlVHR1kgfHwgVkFMVUVTX0JVRyB8fCAhcHJvdG9bSVRFUkFUT1JdKSkge1xuICAgIGhpZGUocHJvdG8sIElURVJBVE9SLCAkZGVmYXVsdCk7XG4gIH1cbiAgLy8gUGx1ZyBmb3IgbGlicmFyeVxuICBJdGVyYXRvcnNbTkFNRV0gPSAkZGVmYXVsdDtcbiAgSXRlcmF0b3JzW1RBR10gPSByZXR1cm5UaGlzO1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiAkZW50cmllc1xuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChrZXkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKCEoa2V5IGluIHByb3RvKSkgcmVkZWZpbmUocHJvdG8sIGtleSwgbWV0aG9kc1trZXldKTtcbiAgICB9IGVsc2UgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoQlVHR1kgfHwgVkFMVUVTX0JVRyksIE5BTUUsIG1ldGhvZHMpO1xuICB9XG4gIHJldHVybiBtZXRob2RzO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gNTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///56\n"); + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(3);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzP2YzY2QiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19oaWRlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcmVkZWZpbmUuanNcbi8vIG1vZHVsZSBpZCA9IDU3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///57\n"); + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar create = __webpack_require__(59);\nvar descriptor = __webpack_require__(11);\nvar setToStringTag = __webpack_require__(28);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(3)(IteratorPrototype, __webpack_require__(0)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzP2Y3ODUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDU4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n"); + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(5);\nvar dPs = __webpack_require__(60);\nvar enumBugKeys = __webpack_require__(27);\nvar IE_PROTO = __webpack_require__(14)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(18)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(61).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanM/NjI4NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSlcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGRQcyA9IHJlcXVpcmUoJy4vX29iamVjdC1kcHMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2lmcmFtZScpO1xuICB2YXIgaSA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgdmFyIGx0ID0gJzwnO1xuICB2YXIgZ3QgPSAnPic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIHJlcXVpcmUoJy4vX2h0bWwnKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZSAoaS0tKSBkZWxldGUgY3JlYXRlRGljdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2ldXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkUHMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gNTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59\n"); + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var dP = __webpack_require__(4);\nvar anObject = __webpack_require__(5);\nvar getKeys = __webpack_require__(19);\n\nmodule.exports = __webpack_require__(6) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanM/YWEyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIFA7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkUC5mKE8sIFAgPSBrZXlzW2krK10sIFByb3BlcnRpZXNbUF0pO1xuICByZXR1cm4gTztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qc1xuLy8gbW9kdWxlIGlkID0gNjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///60\n"); + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var document = __webpack_require__(1).document;\nmodule.exports = document && document.documentElement;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanM/NDRmMiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbm1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanNcbi8vIG1vZHVsZSBpZCA9IDYxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n"); + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(7);\nvar toObject = __webpack_require__(15);\nvar IE_PROTO = __webpack_require__(14)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanM/M2YzYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSAvIDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZihPKVxudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ3BvLmpzXG4vLyBtb2R1bGUgaWQgPSA2MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///62\n"); + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar ctx = __webpack_require__(17);\nvar $export = __webpack_require__(8);\nvar toObject = __webpack_require__(15);\nvar call = __webpack_require__(64);\nvar isArrayIter = __webpack_require__(65);\nvar toLength = __webpack_require__(23);\nvar createProperty = __webpack_require__(66);\nvar getIterFn = __webpack_require__(67);\n\n$export($export.S + $export.F * !__webpack_require__(69)(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5LmZyb20uanM/YWIyMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4vX2l0ZXItY2FsbCcpO1xudmFyIGlzQXJyYXlJdGVyID0gcmVxdWlyZSgnLi9faXMtYXJyYXktaXRlcicpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuL19jcmVhdGUtcHJvcGVydHknKTtcbnZhciBnZXRJdGVyRm4gPSByZXF1aXJlKCcuL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19pdGVyLWRldGVjdCcpKGZ1bmN0aW9uIChpdGVyKSB7IEFycmF5LmZyb20oaXRlcik7IH0pLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMi4xIEFycmF5LmZyb20oYXJyYXlMaWtlLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZClcbiAgZnJvbTogZnVuY3Rpb24gZnJvbShhcnJheUxpa2UgLyogLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZCAqLykge1xuICAgIHZhciBPID0gdG9PYmplY3QoYXJyYXlMaWtlKTtcbiAgICB2YXIgQyA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXk7XG4gICAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBtYXBmbiA9IGFMZW4gPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICAgIHZhciBtYXBwaW5nID0gbWFwZm4gIT09IHVuZGVmaW5lZDtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBpdGVyRm4gPSBnZXRJdGVyRm4oTyk7XG4gICAgdmFyIGxlbmd0aCwgcmVzdWx0LCBzdGVwLCBpdGVyYXRvcjtcbiAgICBpZiAobWFwcGluZykgbWFwZm4gPSBjdHgobWFwZm4sIGFMZW4gPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgICAvLyBpZiBvYmplY3QgaXNuJ3QgaXRlcmFibGUgb3IgaXQncyBhcnJheSB3aXRoIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2Ugc2ltcGxlIGNhc2VcbiAgICBpZiAoaXRlckZuICE9IHVuZGVmaW5lZCAmJiAhKEMgPT0gQXJyYXkgJiYgaXNBcnJheUl0ZXIoaXRlckZuKSkpIHtcbiAgICAgIGZvciAoaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChPKSwgcmVzdWx0ID0gbmV3IEMoKTsgIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lOyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBjYWxsKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSkgOiBzdGVwLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgICAgZm9yIChyZXN1bHQgPSBuZXcgQyhsZW5ndGgpOyBsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgICBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGluZGV4LCBtYXBwaW5nID8gbWFwZm4oT1tpbmRleF0sIGluZGV4KSA6IE9baW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0Lmxlbmd0aCA9IGluZGV4O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5LmZyb20uanNcbi8vIG1vZHVsZSBpZCA9IDYzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///63\n"); + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(5);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qcz85YWM1Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgZW50cmllcykge1xuICB0cnkge1xuICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXQgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qc1xuLy8gbW9kdWxlIGlkID0gNjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///64\n"); + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// check on default Array iterator\nvar Iterators = __webpack_require__(16);\nvar ITERATOR = __webpack_require__(0)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LWl0ZXIuanM/MzIxYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBjaGVjayBvbiBkZWZhdWx0IEFycmF5IGl0ZXJhdG9yXG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBBcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgIT09IHVuZGVmaW5lZCAmJiAoSXRlcmF0b3JzLkFycmF5ID09PSBpdCB8fCBBcnJheVByb3RvW0lURVJBVE9SXSA9PT0gaXQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pcy1hcnJheS1pdGVyLmpzXG4vLyBtb2R1bGUgaWQgPSA2NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///65\n"); + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar $defineProperty = __webpack_require__(4);\nvar createDesc = __webpack_require__(11);\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NyZWF0ZS1wcm9wZXJ0eS5qcz83YzE0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciAkZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIGluZGV4LCB2YWx1ZSkge1xuICBpZiAoaW5kZXggaW4gb2JqZWN0KSAkZGVmaW5lUHJvcGVydHkuZihvYmplY3QsIGluZGV4LCBjcmVhdGVEZXNjKDAsIHZhbHVlKSk7XG4gIGVsc2Ugb2JqZWN0W2luZGV4XSA9IHZhbHVlO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jcmVhdGUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDY2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///66\n"); + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var classof = __webpack_require__(68);\nvar ITERATOR = __webpack_require__(0)('iterator');\nvar Iterators = __webpack_require__(16);\nmodule.exports = __webpack_require__(2).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzP2RkZmIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuL19jbGFzc29mJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fY29yZScpLmdldEl0ZXJhdG9yTWV0aG9kID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCAhPSB1bmRlZmluZWQpIHJldHVybiBpdFtJVEVSQVRPUl1cbiAgICB8fCBpdFsnQEBpdGVyYXRvciddXG4gICAgfHwgSXRlcmF0b3JzW2NsYXNzb2YoaXQpXTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9jb3JlLmdldC1pdGVyYXRvci1tZXRob2QuanNcbi8vIG1vZHVsZSBpZCA9IDY3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///67\n"); + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(22);\nvar TAG = __webpack_require__(0)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NsYXNzb2YuanM/NDU4ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZXR0aW5nIHRhZyBmcm9tIDE5LjEuMy42IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcoKVxudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xudmFyIFRBRyA9IHJlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpO1xuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBBUkcgPSBjb2YoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGl0W2tleV07XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIFQsIEI7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gJ1VuZGVmaW5lZCcgOiBpdCA9PT0gbnVsbCA/ICdOdWxsJ1xuICAgIC8vIEBAdG9TdHJpbmdUYWcgY2FzZVxuICAgIDogdHlwZW9mIChUID0gdHJ5R2V0KE8gPSBPYmplY3QoaXQpLCBUQUcpKSA9PSAnc3RyaW5nJyA/IFRcbiAgICAvLyBidWlsdGluVGFnIGNhc2VcbiAgICA6IEFSRyA/IGNvZihPKVxuICAgIC8vIEVTMyBhcmd1bWVudHMgZmFsbGJhY2tcbiAgICA6IChCID0gY29mKE8pKSA9PSAnT2JqZWN0JyAmJiB0eXBlb2YgTy5jYWxsZWUgPT0gJ2Z1bmN0aW9uJyA/ICdBcmd1bWVudHMnIDogQjtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY2xhc3NvZi5qc1xuLy8gbW9kdWxlIGlkID0gNjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///68\n"); + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var ITERATOR = __webpack_require__(0)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGV0ZWN0LmpzPzc1OGQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTtcbiAgcml0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24gKCkgeyBTQUZFX0NMT1NJTkcgPSB0cnVlOyB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7XG4gIGlmICghc2tpcENsb3NpbmcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBbN107XG4gICAgdmFyIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9O1xuICAgIGFycltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBzYWZlO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRldGVjdC5qc1xuLy8gbW9kdWxlIGlkID0gNjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///69\n"); + +/***/ }) +/******/ ]); \ No newline at end of file diff --git a/dist/includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php b/dist/includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php new file mode 100644 index 00000000..5bdb7224 --- /dev/null +++ b/dist/includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php @@ -0,0 +1,291 @@ + + */ +class Feedzy_Rss_Feeds_Gutenberg_Block { + + /** + * A reference to an instance of this class. + * + * @var Feedzy_Rss_Feeds_Gutenberg_Block The one Feedzy_Rss_Feeds_Gutenberg_Block instance. + */ + private static $instance; + + /** + * Feedzy RSS Feeds plugin version. + * + * @var string $version The current version of the plugin. + */ + protected $version; + + /** + * Returns an instance of this class. + */ + public static function get_instance() { + if ( null == self::$instance ) { + self::$instance = new Feedzy_Rss_Feeds_Gutenberg_Block(); + } + return self::$instance; + } + + /** + * Initializes the plugin by setting filters and administration functions. + */ + private function __construct() { + $this->version = Feedzy_Rss_Feeds::get_version(); + // Add a filter to load functions when all plugins have been loaded + add_action( 'enqueue_block_editor_assets', array( $this, 'feedzy_gutenberg_scripts' ) ); + add_action( 'rest_api_init', array( $this, 'feedzy_register_rest_route' ) ); + add_action( 'init', array( $this, 'feedzy_register_block_type' ) ); + } + + /** + * Enqueue front end and editor JavaScript and CSS + */ + public function feedzy_gutenberg_scripts() { + if ( FEEDZY_DISABLE_CACHE_FOR_TESTING ) { + $version = filemtime( FEEDZY_ABSPATH . '/includes/gutenberg/dist/block.js' ); + } else { + $version = $this->version; + } + + // Enqueue the bundled block JS file + wp_enqueue_script( 'feedzy-gutenberg-block-js', FEEDZY_ABSURL . 'includes/gutenberg/dist/block.js', array( 'wp-i18n', 'wp-blocks', 'wp-components', 'wp-api', 'lodash' ), $version ); + + // Pass in REST URL + wp_localize_script( + 'feedzy-gutenberg-block-js', 'feedzyjs', + array( + 'imagepath' => esc_url( FEEDZY_ABSURL . 'img/' ), + 'isPro' => feedzy_is_pro(), + ) + ); + + // Enqueue editor block styles + wp_enqueue_style( 'feedzy-gutenberg-block-css', FEEDZY_ABSURL . 'includes/gutenberg/dist/block.css', '', $version ); + } + + /** + * Hook server side rendering into render callback + */ + public function feedzy_register_block_type() { + register_block_type( + 'feedzy-rss-feeds/feedzy-block', array( + 'render_callback' => array( $this, 'feedzy_gutenberg_block_callback' ), + 'attributes' => array( + 'feeds' => array( + 'type' => 'string', + ), + 'max' => array( + 'type' => 'string', + 'default' => '5', + ), + 'feed_title' => array( + 'type' => 'boolean', + 'default' => true, + ), + 'refresh' => array( + 'type' => 'string', + 'default' => '12_hours', + ), + 'sort' => array( + 'type' => 'string', + 'default' => 'date_desc', + ), + 'target' => array( + 'type' => 'string', + 'default' => '_blank', + ), + 'title' => array( + 'type' => 'number', + ), + 'meta' => array( + 'type' => 'boolean', + 'default' => true, + ), + 'summary' => array( + 'type' => 'boolean', + 'default' => true, + ), + 'summarylength' => array( + 'type' => 'number', + ), + 'keywords_title' => array( + 'type' => 'string', + ), + 'keywords_ban' => array( + 'type' => 'string', + ), + 'thumb' => array( + 'type' => 'string', + 'default' => 'auto', + ), + 'default' => array( + 'type' => 'object', + ), + 'size' => array( + 'type' => 'number', + 'default' => 150, + ), + 'price' => array( + 'type' => 'boolean', + 'default' => true, + ), + 'referral_url' => array( + 'type' => 'string', + ), + 'columns' => array( + 'type' => 'number', + 'default' => 1, + ), + 'template' => array( + 'type' => 'string', + 'default' => 'default', + ), + ), + ) + ); + } + + /** + * Feedzy Gutenberg Block Callback Function + */ + public function feedzy_gutenberg_block_callback( $attr ) { + $attr['default'] = ( ! empty( $attr['default'] ) ? $attr['default']['url'] : '' ); + $paramss = wp_parse_args( $attr ); + return feedzy_rss( $paramss ); + } + + /** + * Register Rest Route for Feedzy + */ + public function feedzy_register_rest_route() { + register_rest_route( + 'feedzy/v1', '/feed/', array( + 'methods' => 'GET', + 'callback' => array( $this, 'feedzy_rest_route' ), + 'args' => array( + 'url' => array( + 'sanitize_callback' => array( $this, 'feedzy_sanitize_feeds' ), + ), + 'category' => array( + 'sanitize_callback' => array( $this, 'feedzy_sanitize_categories' ), + ), + ), + ) + ); + } + + /** + * Output Feed JSON + */ + public function feedzy_rest_route( $data ) { + + $feed = $data; + if ( ! empty( $data['url'] ) ) { + $feed = $data['url']; + } elseif ( ! empty( $data['category'] ) ) { + $feed = $data['category']; + } + + $metaArgs = array( + 'date_format' => get_option( 'date_format' ), + 'time_format' => get_option( 'time_format' ), + ); + + $instance = Feedzy_Rss_Feeds::instance(); + $admin = $instance->get_admin(); + $feed = $admin->fetch_feed( $feed, '12_hours', array( '' ) ); + + $feedy = array(); + + if ( ! $feed->init() ) { + $feedy['error'] = __( 'Invalid Feed URL', 'feedzy-rss-feeds' ); + header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) ); + return $feedy; + } + + if ( ( ! $feed->get_title() ) && ( ! $feed->get_title() ) && ( ! $feed->get_title() ) ) { + $feedy['channel'] = null; + } else { + $feedy['channel'] = array( + 'title' => ( ( $feed->get_title() ) ? $feed->get_title() : null ), + 'description' => ( ( $feed->get_description() ) ? $feed->get_description() : null ), + 'permalink' => ( ( $feed->get_permalink() ) ? $feed->get_permalink() : null ), + ); + } + + if ( feedzy_is_pro() ) { + $pro = new Feedzy_Rss_Feeds_Pro_Admin( $instance->get_plugin_name(), $instance->get_version() ); + } + + $feedy['items'] = array(); + $items = $feed->get_items(); + foreach ( $items as $item ) { + if ( feedzy_is_pro() ) { + $item_attrs = $pro->feedzy_pro_add_data_to_item( array(), $item ); + } + array_push( + $feedy['items'], array( + 'title' => ( ( $item->get_title() ) ? $item->get_title() : null ), + 'link' => ( ( $item->get_permalink() ) ? $item->get_permalink() : null ), + 'creator' => ( ( $item->get_author() ) ? $item->get_author()->get_name() : null ), + 'pubDate' => ( ( $item->get_date() ) ? $item->get_date( 'U' ) : null ), + 'date' => ( ( $item->get_date() ) ? date_i18n( $metaArgs['date_format'], $item->get_date( 'U' ) ) : null ), + 'time' => ( ( $item->get_date() ) ? date_i18n( $metaArgs['time_format'], $item->get_date( 'U' ) ) : null ), + 'description' => ( ( $item->get_description() ) ? $item->get_description() : null ), + 'thumbnail' => $admin->feedzy_retrieve_image( $item ), + 'price' => ( ( feedzy_is_pro() && $item_attrs['item_price'] ) ? $item_attrs['item_price'] : null ), + 'media' => ( ( feedzy_is_pro() && $item_attrs['item_media'] ) ? $item_attrs['item_media'] : null ), + ) + ); + } + + header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) ); + $output = $feedy; + return $output; + + } + + /** + * Sanitize Rest API Return + */ + public function feedzy_sanitize_feeds( $input ) { + if ( sizeof( $input ) === 1 ) { + $feed = esc_url( $input[0] ); + return $feed; + } else { + $feeds = array(); + foreach ( $input as $item ) { + $feeds[] = esc_url( $item ); + } + return $feeds; + } + } + + /** + * Sanitize Rest API Return + */ + public function feedzy_sanitize_categories( $input ) { + if ( $post = get_page_by_path( $input, OBJECT, 'feedzy_categories' ) ) { + $id = $post->ID; + $value = get_post_meta( $id, 'feedzy_category_feed', true ); + $value = trim( $value ); + $value = explode( ',', $value ); + if ( sizeof( $value ) === 1 ) { + $value = esc_url( $value[0] ); + return $value; + } else { + return $value; + } + } + } + +} diff --git a/dist/includes/layouts/css/upsell.css b/dist/includes/layouts/css/upsell.css new file mode 100644 index 00000000..f38e8dba --- /dev/null +++ b/dist/includes/layouts/css/upsell.css @@ -0,0 +1,236 @@ +/** + * upsell.css + * Feedzy RSS Feed Upsell Style + * + * @since 3.0.12 + * @package feedzy-rss-feeds + */ + +#fz-features .fz-features-header { + box-sizing: border-box; + padding: 20px 30px 30px; + border-top: 5px solid #252b37; + background: #fff; +} + +#fz-features .logo { + display: inline-block; + margin: 0 0 0 20px; + padding: 0 0 0 70px; + color: #3c3c3c; + background: url(../../../img/feedzy.svg) no-repeat left center; + background-size: 48px; + font-family: "Open Sans", sans-serif; + font-size: 28px; + font-weight: 700; + line-height: 60px; + letter-spacing: -1px; +} + +#fz-features .slogan { + display: inline-block; + margin: 0 0 0 8px; + padding: 0; + color: #858585; + font-family: "Open Sans", sans-serif; + font-size: 17px; + line-height: 1; + vertical-align: 4px; +} + +#fz-features .slogan a { + color: #858585; + font-weight: 600; + font-style: italic; + text-decoration: none; + -webkit-transition: all 0.250s ease-in-out; + transition: all 0.250s ease-in-out; +} + +#fz-features .slogan a:hover { + color: #ff6160; +} + +#fz-features .slogan a:focus { + outline: none; + box-shadow: none; +} + +#fz-features .header-btns { + float: right; + margin: 7px 20px; + text-align: right; +} + +#fz-features .header-btns .buy-now { + display: inline-block; + margin-top: 2px; + margin-right: 5px; + padding: 15px 25px; + border-radius: 3px; + border-radius: 3px; + color: #fff; + background: #e33b3f; + font-family: "Open Sans", sans-serif; + font-size: 18px; + font-weight: bold; + text-decoration: none; + text-transform: uppercase; + -webkit-transition: all 0.250s ease-in-out; + transition: all 0.250s ease-in-out; +} + +#fz-features .header-btns .buy-now:hover { + background: #252b37; +} + +#fz-features .header-btns .buy-now .dashicons { + padding-right: 3px; +} + +#fz-features { + padding: 0; +} + +#fz-features .fz-features-content { + width: 100%; + padding: 0; +} + +#fz-features .fz-features-header, +#fz-features .fz-feature { + display: table; + float: left; + box-sizing: border-box; + width: 100%; + margin: 30px 0 0; + padding: 30px; + background-color: #fff; + box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1); +} + +#fz-features .fz-feature .fz-feature-features, +#fz-features .fz-feature .fz-feature-image { + display: table-cell; + margin: 0; + vertical-align: middle; +} + +#fz-features .fz-feature .fz-feature-features { + box-sizing: border-box; + padding: 0 0 20px; +} + +#fz-features .fz-feature .fz-feature-image { + width: 470px; +} + +#fz-features .fz-feature .fz-feature-features h2 { + margin: 0 0 20px; + font-size: 28px; + font-weight: 700; + line-height: 1.2; +} + +#fz-features .fz-feature .fz-feature-features h4 { + margin: 0 0 10px; + font-size: 24px; +} + +#fz-features .fz-feature .fz-feature-features p { + margin: 0 0 15px; + font-size: 18px; + line-height: 1.5; +} + +#fz-features .fz-feature .fz-feature-image img { + width: 100%; + height: auto; +} + +@media screen and (min-width: 768px) { + #fz-features { + padding: 0 15px; + } +} + +@media screen and (min-width: 1200px) { + #fz-features .fz-feature { + padding: 30px 60px; + } + + #fz-features .fz-feature .fz-feature-features { + padding: 0 30px 0 0; + } + + #fz-features .fz-feature .fz-feature-features h2 { + font-size: 30px; + } + + #fz-features .fz-feature .fz-feature-features p { + font-size: 20px; + } +} + +@media screen and (min-width: 1500px) { + #fz-features .fz-feature .fz-feature-features { + padding: 0 120px 0 0; + } +} + +@media screen and (max-width: 1100px) { + #fz-features { + text-align: center; + } + + #fz-features .logo { + margin-left: 0; + } + + #fz-features .header-btns { + display: block; + float: none; + margin: 10px 0 0; + text-align: center; + } +} + +@media screen and (max-width: 1200px) { + #fz-features .fz-feature .fz-feature-features, + #fz-features .fz-feature .fz-feature-image { + display: block; + } + + #fz-features .fz-feature .fz-feature-image { + display: inline-block; + max-width: 100%; + margin: 0 auto 30px; + } + + #fz-features .slogan { + display: none; + } +} + +#fz-features.fz-settings .fz-feature { + margin-top: 0; + border: none; +} + +#fz-features.fz-settings .nav-tab-wrapper { + border-bottom: none; +} + +#fz-features.fz-settings .nav-tab-wrapper a.nav-tab-active, +#fz-features.fz-settings .nav-tab-wrapper a:hover { + background: #fff; +} + +#fz-features.fz-settings .nav-tab-wrapper a { + margin-top: 10px; + padding: 10px 20px; + border: 0; + color: #000; + background: #e0e0e0; + box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1); +} diff --git a/dist/includes/layouts/feedzy-upsell.php b/dist/includes/layouts/feedzy-upsell.php new file mode 100644 index 00000000..f94f885c --- /dev/null +++ b/dist/includes/layouts/feedzy-upsell.php @@ -0,0 +1,47 @@ + +
+ + + +
+ +
+
+

Feed to post

+

Insert into your site, content from various RSS sources. Feedzy will automatically filter the feed items and place the content wherever you want in your WordPress instance with no hassle.

+
+
+ Feed to post +
+
+
+
+

Feed templates

+

Use the style that best fits your website design with three available templates. For fzduct related + feeds, the plugin fetches and displays the price separately.

+
+
+ Feed templates +
+
+
+
+

Affiliate ready

+

Make some extra money by featuring affiliate links on your site. Feedzy RSS plugin automatically + includes your referral/affiliate ID to the feed links.

+
+
+ Affiliate ready +
+
+ + + +
+ +
diff --git a/dist/includes/layouts/header.php b/dist/includes/layouts/header.php new file mode 100644 index 00000000..008954b9 --- /dev/null +++ b/dist/includes/layouts/header.php @@ -0,0 +1,25 @@ + +
+ + by ThemeIsle +
+ + + Upgrade + +
+
diff --git a/dist/includes/layouts/settings.php b/dist/includes/layouts/settings.php new file mode 100644 index 00000000..e6e3d8bc --- /dev/null +++ b/dist/includes/layouts/settings.php @@ -0,0 +1,122 @@ +
+ + + + + + + + notice ) { ?> +

notice; ?>

+ + + error ) { ?> +

error; ?>

+ + +
+
+
+ +
+ +

+
+ +
+
+ +
+ +

+
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ + + + + + + +
+
+
+
+ +
diff --git a/dist/includes/util/feedzy-rss-feeds-util-simplepie.php b/dist/includes/util/feedzy-rss-feeds-util-simplepie.php new file mode 100644 index 00000000..60b3f3e0 --- /dev/null +++ b/dist/includes/util/feedzy-rss-feeds-util-simplepie.php @@ -0,0 +1,85 @@ + + */ +class Feedzy_Rss_Feeds_Util_SimplePie extends SimplePie { + + /** + * The shortcode attributes. + * + * @access private + * @var array $sc The shortcode attributes. + */ + private static $sc; + + /** + * Whether custom sorting is enabled. + * + * @access private + * @var bool $custom_sorting Whether custom sorting is enabled. + */ + private static $custom_sorting = false; + + /** + * Initialize the class and set its properties. + * + * @access public + * + * @param array $sc The shortcode attributes. + */ + public function __construct( $sc ) { + self::$sc = $sc; + if ( array_key_exists( 'sort', self::$sc ) && ! empty( self::$sc['sort'] ) ) { + if ( 'date_desc' === self::$sc['sort'] ) { + $this->enable_order_by_date( true ); + } else { + self::$custom_sorting = true; + } + } + parent::__construct(); + } + + /** + * Sorting callback for items + * + * @access public + * @param SimplePie $a The SimplePieItem. + * @param SimplePie $b The SimplePieItem. + * @return boolean + */ + public static function sort_items( $a, $b ) { + if ( self::$custom_sorting ) { + switch ( self::$sc['sort'] ) { + case 'title_desc': + return $a->get_title() <= $b->get_title(); + case 'title_asc': + return $a->get_title() > $b->get_title(); + case 'date_asc': + return $a->get_date( 'U' ) > $b->get_date( 'U' ); + } + } + return parent::sort_items( $a, $b ); + } +} diff --git a/dist/index.php b/dist/index.php new file mode 100644 index 00000000..a5b751e1 --- /dev/null +++ b/dist/index.php @@ -0,0 +1,9 @@ +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 literal 0 HcmV?d00001 diff --git a/dist/languages/feedzy-rss-feeds-de_DE.po b/dist/languages/feedzy-rss-feeds-de_DE.po new file mode 100644 index 00000000..e8f078a2 --- /dev/null +++ b/dist/languages/feedzy-rss-feeds-de_DE.po @@ -0,0 +1,141 @@ +msgid "" +msgstr "" +"Project-Id-Version: FEEDZY RSS Feeds by b*web\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: Fri Jul 17 2015 11:41:38 GMT+0200\n" +"PO-Revision-Date: Fri Jul 17 2015 11:59:48 GMT+0200\n" +"Last-Translator: Ralf Steck \n" +"Language-Team: \n" +"Language: German\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" +"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;" +"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;" +"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;" +"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;" +"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n" +"X-Loco-Target-Locale: de_DE\n" +"X-Generator: Loco - https://localise.biz/" + +#: ../feedzy-rss-feed.php:52 ../feedzy-rss-feed.php:52 +msgid "Documentation and examples" +msgstr "Dokumentation und Beispiele" + +#: ../feedzy-rss-feed.php:53 ../feedzy-rss-feed.php:53 +msgid "More b*web Plugins" +msgstr "Weitere b*web Plugins" + +#: ../feedzy-rss-feed.php:54 ../feedzy-rss-feed.php:54 +msgid "Donate to this plugin »" +msgstr "Spenden Sie für dieses Plugin »" + +#: ../feedzy-rss-feeds-widget.php:18 +msgid "Feedzy RSS Feeds" +msgstr "Feedzy RSS Feeds" + +#: ../feedzy-rss-feeds-widget.php:57 +msgid "Widget Title" +msgstr "Widget-Titel" + +#: ../feedzy-rss-feeds-widget.php:61 +msgid "Intro text" +msgstr "Einleitungstext" + +#: ../feedzy-rss-feeds-widget.php:65 ../feedzy-rss-feeds-ui-lang.php:20 +msgid "The feed(s) URL (comma-separated list)." +msgstr "Feed URLs (kommaseparierte Liste)." + +#: ../feedzy-rss-feeds-widget.php:69 ../feedzy-rss-feeds-ui-lang.php:21 +msgid "Number of items to display." +msgstr "Anzahl der darzustellenden Elemente" + +#: ../feedzy-rss-feeds-widget.php:73 ../feedzy-rss-feeds-ui-lang.php:23 +msgid "Links may be opened in the same window or a new tab." +msgstr "Links können im selben Fenster oder einem neuen Tab geöffnet werden" + +#: ../feedzy-rss-feeds-widget.php:84 ../feedzy-rss-feeds-ui-lang.php:24 +msgid "Trim the title of the item after X characters." +msgstr "Titel nach X Zeichen abschneiden" + +#: ../feedzy-rss-feeds-widget.php:89 ../feedzy-rss-feeds-ui-lang.php:25 +msgid "Should we display the date of publication and the author name?" +msgstr "Veröffentlichungsdatum und Autorname anzeigen?" + +#: ../feedzy-rss-feeds-widget.php:93 ../feedzy-rss-feeds-ui-lang.php:26 +msgid "Should we display a description (abstract) of the retrieved item?" +msgstr "Kurzbeschreibung (Zusammenfassung) des Elements anzeigen?" + +#: ../feedzy-rss-feeds-widget.php:96 ../feedzy-rss-feeds-ui-lang.php:27 +msgid "Crop description (summary) of the element after X characters." +msgstr "Kurzbeschreibung (Zusammenfassung) nach X Zeichen abschneiden" + +#: ../feedzy-rss-feeds-widget.php:100 ../feedzy-rss-feeds-ui-lang.php:28 +msgid "Should we display the first image of the content if it is available?" +msgstr "Erstes Bild - wenn vorhanden - des Inhalts anzeigen?" + +#: ../feedzy-rss-feeds-widget.php:111 ../feedzy-rss-feeds-ui-lang.php:33 +msgid "No" +msgstr "Nein" + +#: ../feedzy-rss-feeds-widget.php:112 ../feedzy-rss-feeds-ui-lang.php:34 +msgid "Yes" +msgstr "Ja" + +#: ../feedzy-rss-feeds-widget.php:113 ../feedzy-rss-feeds-ui-lang.php:35 +msgid "Auto" +msgstr "Auto" + +#: ../feedzy-rss-feeds-widget.php:123 ../feedzy-rss-feeds-ui-lang.php:29 +msgid "Default thumbnail URL if no image is found." +msgstr "Standard-Thumnail-Bild, wenn kein Bild im Text vorhanden ist." + +#: ../feedzy-rss-feeds-widget.php:127 ../feedzy-rss-feeds-ui-lang.php:30 +msgid "Thumblails dimension. Do not include \"px\". Eg: 150" +msgstr "Thumbnail-Größe. Bitte ohne \"px\" angeben, z.B. 150" + +#: ../feedzy-rss-feeds-widget.php:131 ../feedzy-rss-feeds-ui-lang.php:31 +msgid "" +"Only display item if title contains specific keyword(s) (comma-separated " +"list/case sensitive)." +msgstr "" +"Elemente nur anzeigen, wenn sie folgende Keywords enthalten (Kommaseparierte " +"Liste)." + +#: ../feedzy-rss-feeds-ui-lang.php:19 +msgid "Insert FEEDZY RSS Feeds Shortcode" +msgstr "FEEDZY RSS Feeds Shortcode einfügen" + +#: ../feedzy-rss-feeds-ui-lang.php:22 +msgid "Should we display the RSS title?" +msgstr "RSS-Titel darstellen?" + +#: ../feedzy-rss-feeds-ui-lang.php:32 +msgid "Do not specify" +msgstr "nicht angeben" + +#: ../feedzy-rss-feeds-shortcode.php:98 +msgid "Sorry, this feed is currently unavailable or does not exists anymore." +msgstr "" +"Tut uns leid, dieser Feed ist derzeit nicht verfügbar oder existiert nicht " +"mehr." + +#: ../feedzy-rss-feeds-shortcode.php:205 +msgid "Posted" +msgstr "Veröffentlicht" + +#: ../feedzy-rss-feeds-shortcode.php:216 +msgid "by" +msgstr "von" + +#: ../feedzy-rss-feeds-shortcode.php:222 +msgid "on" +msgstr "am" + +#: ../feedzy-rss-feeds-shortcode.php:222 +msgid "at" +msgstr "um" diff --git a/dist/languages/feedzy-rss-feeds-es_ES.mo b/dist/languages/feedzy-rss-feeds-es_ES.mo new file mode 100644 index 0000000000000000000000000000000000000000..fe0e4c0c09878b5fef831a581421f67ebc537d3b GIT binary patch literal 3968 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\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n>1;\n" +"X-Generator: CSL v1.x\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: FRANCE\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes" + +#: feedzy-rss-feeds-functions.php:26 +#@ feedzy-rss-feeds +msgid "Sorry, this feed is currently unavailable or does not exists anymore." +msgstr "Désolé, ce flux est actuellement indisponible ou n'existe plus." + +#: feedzy-rss-feeds-shortcode.php:228 +#@ feedzy-rss-feeds +msgid "on" +msgstr "le" + +#: feedzy-rss-feeds-shortcode.php:230 +#@ feedzy-rss-feeds +msgid "at" +msgstr "à" + +#: feedzy-rss-feed.php:52 +#@ feedzy-rss-feeds +msgid "Documentation and examples" +msgstr "Documentation et exemples" + +#: feedzy-rss-feed.php:53 +#@ feedzy-rss-feeds +msgid "More b*web Plugins" +msgstr "Plus de plugins b*web" + +#: feedzy-rss-feeds-ui-lang.php:19 +#@ feedzy-rss-feeds +msgid "Insert FEEDZY RSS Feeds Shortcode" +msgstr "Insérer un shortcode FEEDZY RSS Feeds" + +#: feedzy-rss-feeds-ui-lang.php:21 +#: feedzy-rss-feeds-widget.php:69 +#@ feedzy-rss-feeds +msgid "Number of items to display." +msgstr "Nombre d’éléments à remonter." + +#: feedzy-rss-feeds-ui-lang.php:23 +#: feedzy-rss-feeds-widget.php:73 +#@ feedzy-rss-feeds +msgid "Links may be opened in the same window or a new tab." +msgstr "Les liens peuvent être ouverts dans la même fenêtre ou dans un nouvel onglet." + +#: feedzy-rss-feeds-ui-lang.php:24 +#: feedzy-rss-feeds-widget.php:84 +#@ feedzy-rss-feeds +msgid "Trim the title of the item after X characters." +msgstr "Rogner le titre de l’élément après X caractères." + +#: feedzy-rss-feeds-ui-lang.php:25 +#: feedzy-rss-feeds-widget.php:89 +#@ feedzy-rss-feeds +msgid "Should we display the date of publication and the author name?" +msgstr "Doit-on afficher la date de publication ainsi que le nom de l’auteur de l’élément ?" + +#: feedzy-rss-feeds-ui-lang.php:26 +#: feedzy-rss-feeds-widget.php:93 +#@ feedzy-rss-feeds +msgid "Should we display a description (abstract) of the retrieved item?" +msgstr "Doit-on afficher la description (le résumé) de l’élément ?" + +#: feedzy-rss-feeds-ui-lang.php:27 +#: feedzy-rss-feeds-widget.php:96 +#@ feedzy-rss-feeds +msgid "Crop description (summary) of the element after X characters." +msgstr "Rogner la description (le résumé) de l’élément après X caractères." + +#: feedzy-rss-feeds-ui-lang.php:28 +#: feedzy-rss-feeds-widget.php:100 +#@ feedzy-rss-feeds +msgid "Should we display the first image of the content if it is available?" +msgstr "Doit-on afficher la première image du contenu si elle est disponible ?" + +#: feedzy-rss-feeds-ui-lang.php:29 +#: feedzy-rss-feeds-widget.php:123 +#@ feedzy-rss-feeds +msgid "Default thumbnail URL if no image is found." +msgstr "URL de la miniature par défaut si aucune image n’est trouvée." + +#: feedzy-rss-feeds-ui-lang.php:30 +#: feedzy-rss-feeds-widget.php:127 +#@ feedzy-rss-feeds +msgid "Thumblails dimension. Do not include \"px\". Eg: 150" +msgstr "Dimensions de la miniature. Ne pas inclure “px”. Ex : 150" + +#: feedzy-rss-feeds-ui-lang.php:31 +#: feedzy-rss-feeds-widget.php:131 +#@ feedzy-rss-feeds +msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)." +msgstr "Afficher un élément seulement si son titre contient l’un des mots clés spécifiés (liste séparée par des virgules/sensible à la case)" + +#: feedzy-rss-feeds-ui-lang.php:32 +#@ feedzy-rss-feeds +msgid "Do not specify" +msgstr "Ne pas préciser" + +#: feedzy-rss-feeds-ui-lang.php:33 +#: feedzy-rss-feeds-widget.php:111 +#@ feedzy-rss-feeds +msgid "No" +msgstr "Non" + +#: feedzy-rss-feeds-ui-lang.php:34 +#: feedzy-rss-feeds-widget.php:112 +#@ feedzy-rss-feeds +msgid "Yes" +msgstr "Oui" + +#: feedzy-rss-feeds-ui-lang.php:20 +#: feedzy-rss-feeds-widget.php:65 +#@ feedzy-rss-feeds +msgid "The feed(s) URL (comma-separated list)." +msgstr "URL(s) du(des) flux RSS (liste séparée par des virgules)." + +#: feedzy-rss-feeds-ui-lang.php:22 +#@ feedzy-rss-feeds +msgid "Should we display the RSS title?" +msgstr "Doit-on afficher le titre du flux RSS ?" + +#. translators: plugin header field 'Name' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "FEEDZY RSS Feeds by b*web" +msgstr "" + +#. translators: plugin header field 'Description' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes." +msgstr "FEEDZY RSS Feeds est un petit plugin léger, rapide et très simple d'utilisation qui vous permet d'agréger des flux RSS dans votre site WordPress grâce à des shortcodes entièrement paramétrables." + +#. translators: plugin header field 'Author' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "Brice CAPOBIANCO" +msgstr "" + +#. translators: plugin header field 'AuthorURI' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "http://b-website.com/" +msgstr "" + +#. translators: plugin header field 'PluginURI' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie" +msgstr "http://b-website.com/feedzy-rss-feeds-plugin-wordpress-gratuit-utilisant-simplepie" + +#: feedzy-rss-feeds-widget.php:18 +#@ feedzy_wp_widget +msgid "Feedzy RSS Feeds" +msgstr "" + +#: feedzy-rss-feeds-widget.php:57 +#@ feedzy-rss-feeds +msgid "Widget Title" +msgstr "Titre du Widget" + +#: feedzy-rss-feeds-widget.php:61 +#@ feedzy-rss-feeds +msgid "Intro text" +msgstr "Texte d'intro" + +#: feedzy-rss-feed.php:54 +#@ default +msgid "Donate to this plugin »" +msgstr "" + +#: feedzy-rss-feeds-shortcode.php:211 +#@ feedzy-rss-feeds +msgid "Posted" +msgstr "Posté" + +#: feedzy-rss-feeds-shortcode.php:222 +#@ feedzy-rss-feeds +msgid "by" +msgstr "par" + +#. translators: plugin header field 'Version' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "2.7" +msgstr "" + +#: feedzy-rss-feeds-ui-lang.php:20 +#@ feedzy-rss-feeds +msgid "If your feed is not valid, it won't work." +msgstr "Si votre flux n'est pas valide, cela ne fonctionnera pas." + +#: feedzy-rss-feeds-ui-lang.php:35 +#: feedzy-rss-feeds-widget.php:113 +#@ feedzy-rss-feeds +msgid "Auto" +msgstr "" + diff --git a/dist/languages/feedzy-rss-feeds-ja.mo b/dist/languages/feedzy-rss-feeds-ja.mo new file mode 100644 index 0000000000000000000000000000000000000000..b5878aacda46d7c38766d3a52bc8726d31f30cc7 GIT binary patch literal 3790 zcmchY-*X#R6~`}a$`1pjl$M_XZo>cx^~$m*ZjIao62}G)PU5ju+A>2utJRgXjkK%T zyRxM`S*xUW;-qe9{i7t%BqZ3bdxL*Hw>JvgqCEID7 z7arKr>a%-)p7TBD-2KbrJH{BUUATARuKyTg4d8PR;Sbk`;KSfQz{kLUgZsco(fBmj z1wINE!LNctAgyy5{0g`P(guG5X}-OKv8TX6unxQo?gi(-$HBjXwDsS>uYn(eFN04! z!q~?_2_68CgB-jA?g#%29s+k_P&=rD-vy_@Ch!kn1bpZdjC}@d1Yr`}57K@It853K z#QTrI4)En_`&F<91E)cn_peWd{`?30Cf*-|GtYui@N-}W{4!VszYU%PNssqH1^yBI z5_t2|j5UM52WkAnFpkFU1WCtdKy1N!K}=yk2hV|-YWqJy(sjpY8T%smBuMtugS1W; zNP48ePVgE?cK#hCyCMi4mSAxZ5-}YlJu+1u14$1HBt1@4+kXclRf4?1V=#xtk{&*PsoA^XV}NFCS&1iAGDNI62+H*k~P95-DQ6S|%X z!H_l^*CTi$jXsH+a*E=^nj%f?pko?>w;kv{da(1rk+!3(&9U=5DWu_;dDpZpzFQV@ zIo&Dk;dY9<8No$XsNJ>?3AzsQY@?&t=dWrQ6PDZP+&F|LqHSh|_z&-Zk3GsP{N zn>jr#xG8zcE?7y7wbANwnHPqcD&f^A(7JlCt8OK^DC)ULn&-Y8yQA*A&QU=>sX~6!WUt2*haHSW-6*}rG~a~D!nW= zmrxZ2B~io?UM)7$GO~rF;Jfn0T@l`%j`7CkD2qF0E=Zv;!c~_@;cbij1v8lzE{{_> zu$NGuy2}zJmT}#Dtf3*Hq4uZpmLS z+8hzYT|0za2->tB(QneS)uyIsW3v{0Mr&%}(U#cWrl+Idk4Edda6o8rN4I2FcWo!e zdo!kG8W|H6+KU$c9O_VSZvLT>lL@;Rc_qIebF6ehPYW$B^c?m&+sf8pk#lyEs{vt#z;$~5k29n){8^U5N$Zxv3ZOa z+!S`-=>17p@v;jk8smL^t$m`kug^kOkm<3;`li-CE5t@?pJm(mYS)%$qrT5FVtbAH zU{a9=7+9|MU==s|tYSDV91COO*ehx0Ad}Wx$Wx?ayd>m?+%cYV`Z{_x&F&StV`RE@ zH={*kJW{v)7jSLn#_GEZs(jra9#YxGE8|1{+{DV*LX54xdE2jys`43Cen*v0 z_!r;xUmwPBRT)y1G3Cvu%B-pkEAOVNTvU~_%DaM=7+X0rv<=d10!*@@W=lum(Jf_N{Yqu9+ zw5oh$@hMe)OAUJKvy#du^5PPPt&G2~Ja2X3l7Ds*y{e2Ke8vEHJFhBt$Ol^L zn({F6W?(AZm{s0;flKI`r783}6^w^2a5b1n!|*zS<2n%TH?{Wb{^)D#=U-i!d3&w0 zsJvgSEiL+|F9yop4ei|e72P^_%Qt^(GvD5T+RCgdF(ObwKwhP=z@N%6V)PFA;m!Le zDa7mJBdUBBs>Imx?Qt|zzp8--o3TO!Ye8PSG`)J|R+u-Z-VfprHLwX3s0oNn@|LR7 zkzBL>>-fK`JhYFjUp%>b{yGU>UJ4iEyVtG^VZ|_?R^CEP=KU*EVTK~k;R9q_IWf96 zHyPOSTje1qA^flXGq=LL-h+%hJ+?Z%v@&s(RdXJK1opoBfm5paEteRoBi< zEH7SI8$3x7s!m(EFz65e3f5MOWV5H1)F_aRIM1(+-t{j``@=J\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n>1;\n" +"X-Generator: Poedit 1.8.1\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Textdomain-Support: yes\n" +"Language: fr_FR\n" +"X-Poedit-SearchPath-0: .\n" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-shortcode.php:120 +msgid "Sorry, this feed is currently unavailable or does not exists anymore." +msgstr "このフィードは現在利用できないか存在しません。" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-shortcode.php:298 +msgid "on" +msgstr "on" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-shortcode.php:298 +msgid "at" +msgstr "at" + +# @ feedzy-rss-feeds +#: feedzy-rss-feed.php:37 +msgid "Documentation and examples" +msgstr "ドキュメントと例" + +# @ feedzy-rss-feeds +#: feedzy-rss-feed.php:38 +msgid "More b*web Plugins" +msgstr "他の b*web プラグイン" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:19 +msgid "Insert FEEDZY RSS Feeds Shortcode" +msgstr "FEEDZY RSSフィード ショートコードを追加" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:21 feedzy-rss-feeds-widget.php:69 +msgid "Number of items to display." +msgstr "表示数:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:23 feedzy-rss-feeds-widget.php:73 +msgid "Links may be opened in the same window or a new tab." +msgstr "リンク先の開き方:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:24 feedzy-rss-feeds-widget.php:84 +msgid "Trim the title of the item after X characters." +msgstr "タイトルの切り取り文字数:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:25 feedzy-rss-feeds-widget.php:89 +msgid "Should we display the date of publication and the author name?" +msgstr "公開日と著作者を表示:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:26 feedzy-rss-feeds-widget.php:93 +msgid "Should we display a description (abstract) of the retrieved item?" +msgstr "詳細を表示:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:27 feedzy-rss-feeds-widget.php:96 +msgid "Crop description (summary) of the element after X characters." +msgstr "詳細の切り取り文字数:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:28 feedzy-rss-feeds-widget.php:101 +msgid "Should we display the first image of the content if it is available?" +msgstr "最初の画像を表示:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:29 feedzy-rss-feeds-widget.php:104 +msgid "Default thumbnail URL if no image is found." +msgstr "画像がない場合のデフォルトサムネイル:" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:30 feedzy-rss-feeds-widget.php:108 +msgid "Thumblails dimension. Do not include \"px\". Eg: 150" +msgstr "サムネイルのサイズ(\"px\"はなし 例:150):" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:31 feedzy-rss-feeds-widget.php:112 +msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)." +msgstr "特定なキーワードがタイトルに含まれる項目のみ表示 (複数指定時は大文字小文字を意識してカンマ区切り):" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:32 +msgid "Do not specify" +msgstr "指定しない" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:33 +msgid "No" +msgstr "しない" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:34 +msgid "Yes" +msgstr "する" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:20 feedzy-rss-feeds-widget.php:65 +msgid "The feed(s) URL (comma-separated list)." +msgstr "フィードアドレス (複数指定する場合はカンマ区切り):" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-ui-lang.php:22 +msgid "Should we display the RSS title?" +msgstr "タイトルを表示:" + +# @ feedzy-rss-feeds +#. translators: plugin header field 'Name' +#: feedzy-rss-feed.php:0 +msgid "FEEDZY RSS Feeds by b*web" +msgstr "FEEDZY RSS Feeds by b*web" + +# @ feedzy-rss-feeds +#. translators: plugin header field 'Description' +#: feedzy-rss-feed.php:0 +msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes." +msgstr "FEEDZY RSS Feeds は小さく軽いプラグインです。高速で使い方も簡単。あなたのワードプレスサイトにシンプルなショートコードによるRSSフィードの収集機能を追加します。" + +# @ feedzy-rss-feeds +#. translators: plugin header field 'Author' +#: feedzy-rss-feed.php:0 +msgid "Brice CAPOBIANCO" +msgstr "Brice CAPOBIANCO" + +# @ feedzy-rss-feeds +#. translators: plugin header field 'AuthorURI' +#: feedzy-rss-feed.php:0 +msgid "http://b-website.com/" +msgstr "http://b-website.com/" + +# @ feedzy-rss-feeds +#. translators: plugin header field 'PluginURI' +#: feedzy-rss-feed.php:0 +msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie" +msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie" + +# @ feedzy_wp_widget +#: feedzy-rss-feeds-widget.php:18 +msgid "Feedzy RSS Feeds" +msgstr "Feedzy RSS フィード" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-widget.php:57 +msgid "Widget Title" +msgstr "タイトル" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-widget.php:61 +msgid "Intro text" +msgstr "イントロテキスト" + +# @ default +#: feedzy-rss-feed.php:39 +msgid "Donate to this plugin »" +msgstr "このプラグインに寄付 »" + +# @ feedzy-rss-feeds +#. translators: plugin header field 'Version' +#: feedzy-rss-feed.php:0 +msgid "2.2" +msgstr "2.2" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-shortcode.php:289 +msgid "Posted" +msgstr "投稿日" + +# @ feedzy-rss-feeds +#: feedzy-rss-feeds-shortcode.php:294 +msgid "by" +msgstr "by" diff --git a/dist/languages/feedzy-rss-feeds-sr_RS.mo b/dist/languages/feedzy-rss-feeds-sr_RS.mo new file mode 100644 index 0000000000000000000000000000000000000000..63b1c25b62d1373f548ce232298d7782ed76c6d7 GIT binary patch literal 3120 zcmb7`+iPT17RI-CjjfFBeVog(5ll4aBo(^{ttO-0xk#g(gzj|PN+ay5v#YYJ&e{90 zFDI#b7FvZy6b8kI0iWi1=FJD&mjnby@J;Z+r(w{4z$X#Eb*hrkCJ_uIzuM>Q+gj^e zU+TN#xBo-n=dbwv6Mi4Mg-1dhyLF#`z{mSAo(KN|J_}w2?+4!o{|J5vJ`Vl|7i!FRwp@ZVqx{tr9`K8Ve*r67>cduq(5!G|$^23!VT8b7}V{)F+nAjf^}E+J;X zk3f$93-AH(&bx(p6nqT)GdK%=46cADz#l+9|JXf3oCO~T9|5m|d=C$D+!eS5egJZw z?!}+KfscT^&-wAV1Yg4VU*H1xJ;?W(zIPP&Rd5R9_du@8ry!s61;{1+ay{$5_G`T+ZI{Z265G;&~56g!6u@e^iwq1wkUt%Rf#GG+%4BW%(SIP$jTrSx>8fA zShF541tN@jMw@EyD0#D(WXlIu%buE?3QntvgT|d-JY)yf9GAYn>`@ak+>HY-V=LF~ zeGTzq83Phe2H8Anc}F{lVx-Wq%sDG8bEFB{U|m(vvux$OiFIx;jT*6rNN7ghmw}hr}5^v~6G0Syu&GXE})1(Qz_})HJ?HYGlxIrIEI77d7spMldyhD?v`ZKcS-cxbdyoHlv)XE#G11`)egzIEV&H( zKv>O#O|#qURL!MxX=7q-HMyWF&9jq5RJ}=avyD^9Y$ItrM~xSnr%pDXd*Rtx{7jrb zcYbMq=SDg^u`nuXvOXxWko#{2?V-)-+QqyI^Ox3_ljry6Ica=Hxn#+pw-G>-o^R0 z=Z!sB0K_!u_0A17wd=K#O6$?7SE!FJ?89qiDp)e5&72&>;YG<&vt)(!ED?*OYngBTi0ilq%swc<2+*^gz8gSpjNLW!*udX_4=^U1Hh zHx3bbVYjdC?`Jfuc-LRCmJ?)D?bN^F!Rgi3y8|mi2`n8cLtr3ggVxuSfp8eI2##=e<~eKmo67nzUJkX2Of1bZQ7Eo3W5{-h(~Y zSyWth6ackh4d7OAmep2IRymegIEHFTm^)?T%Rzs*#Z79=Y-=8zh4mW69r65PDTt4>?4)1>4i39vh2M?&TOt+fDNB$^1`| z6S~O$Jmg?@doiWD)9~LZLijAIkyEdfF0HNlVju1Ra~\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-Language: \n" +"X-Poedit-Country: \n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes" + +#: feedzy-rss-feeds-shortcode.php:120 +#@ feedzy-rss-feeds +msgid "Sorry, this feed is currently unavailable or does not exists anymore." +msgstr "Žao nam je, ovo polje trenutno nije dostupno ili više ne postoji." + +#: feedzy-rss-feeds-shortcode.php:298 +#@ feedzy-rss-feeds +msgid "on" +msgstr "na" + +#: feedzy-rss-feeds-shortcode.php:298 +#@ feedzy-rss-feeds +msgid "at" +msgstr "u" + +#: feedzy-rss-feed.php:37 +#@ feedzy-rss-feeds +msgid "Documentation and examples" +msgstr "Dokumentacija i primeri" + +#: feedzy-rss-feed.php:38 +#@ feedzy-rss-feeds +msgid "More b*web Plugins" +msgstr "Više b*web Plugin-ova" + +#: feedzy-rss-feeds-ui-lang.php:19 +#@ feedzy-rss-feeds +msgid "Insert FEEDZY RSS Feeds Shortcode" +msgstr "Unesite FEEDZY RSS Feeds Shortcode" + +#: feedzy-rss-feeds-ui-lang.php:21 +#: feedzy-rss-feeds-widget.php:69 +#@ feedzy-rss-feeds +msgid "Number of items to display." +msgstr "Broj stavki za prikazivanje" + +#: feedzy-rss-feeds-ui-lang.php:23 +#: feedzy-rss-feeds-widget.php:73 +#@ feedzy-rss-feeds +msgid "Links may be opened in the same window or a new tab." +msgstr "Linkovi mogu biti otvoreni u istom prozoru ili u novom tabulatoru." + +#: feedzy-rss-feeds-ui-lang.php:24 +#: feedzy-rss-feeds-widget.php:84 +#@ feedzy-rss-feeds +msgid "Trim the title of the item after X characters." +msgstr "Skratite naslov stavke posle X karaktera." + +#: feedzy-rss-feeds-ui-lang.php:25 +#: feedzy-rss-feeds-widget.php:89 +#@ feedzy-rss-feeds +msgid "Should we display the date of publication and the author name?" +msgstr "Treba li da prikažemo datum publikacije i ime autora?" + +#: feedzy-rss-feeds-ui-lang.php:26 +#: feedzy-rss-feeds-widget.php:93 +#@ feedzy-rss-feeds +msgid "Should we display a description (abstract) of the retrieved item?" +msgstr "Treba li da prikažemo opis (siže) dobavljene stavke?" + +#: feedzy-rss-feeds-ui-lang.php:27 +#: feedzy-rss-feeds-widget.php:96 +#@ feedzy-rss-feeds +msgid "Crop description (summary) of the element after X characters." +msgstr "Kropuj opis (siže) elementa posle X karaktera." + +#: feedzy-rss-feeds-ui-lang.php:28 +#: feedzy-rss-feeds-widget.php:101 +#@ feedzy-rss-feeds +msgid "Should we display the first image of the content if it is available?" +msgstr "Treba li da prikažemo prvu sliku sadržaja ako je raspoloživa?" + +#: feedzy-rss-feeds-ui-lang.php:29 +#: feedzy-rss-feeds-widget.php:104 +#@ feedzy-rss-feeds +msgid "Default thumbnail URL if no image is found." +msgstr "URL podrazumevane sličice ako nije pronađena nijedna slika." + +#: feedzy-rss-feeds-ui-lang.php:30 +#: feedzy-rss-feeds-widget.php:108 +#@ feedzy-rss-feeds +msgid "Thumblails dimension. Do not include \"px\". Eg: 150" +msgstr "Dimenzije sličice. Nemojte unositi \"px\". Npr. 150" + +#: feedzy-rss-feeds-ui-lang.php:31 +#: feedzy-rss-feeds-widget.php:112 +#@ feedzy-rss-feeds +msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)." +msgstr "Prikaži stavku samo ako naslov sadrži specifične ključne reči (odvojene zarezima/osetljive na velika i mala slova)." + +#: feedzy-rss-feeds-ui-lang.php:32 +#@ feedzy-rss-feeds +msgid "Do not specify" +msgstr "Nemoj određivati" + +#: feedzy-rss-feeds-ui-lang.php:33 +#@ feedzy-rss-feeds +msgid "No" +msgstr "Ne" + +#: feedzy-rss-feeds-ui-lang.php:34 +#@ feedzy-rss-feeds +msgid "Yes" +msgstr "Da" + +#: feedzy-rss-feeds-ui-lang.php:20 +#: feedzy-rss-feeds-widget.php:65 +#@ feedzy-rss-feeds +msgid "The feed(s) URL (comma-separated list)." +msgstr "URL feed-ova (odvojenih zarezima ako je lista)." + +#: feedzy-rss-feeds-ui-lang.php:22 +#@ feedzy-rss-feeds +msgid "Should we display the RSS title?" +msgstr "Treba li da prikažemo RSS naslov?" + +#. translators: plugin header field 'Name' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "FEEDZY RSS Feeds by b*web" +msgstr "FEEDZY RSS Feeds, autor b*web" + +#. translators: plugin header field 'Description' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes." +msgstr "FEEDZY RSS Feeds je mali i lagan plugin. Brz i jednostavan za upotrebu, sakuplja RSS feed-ove na vaš WordPress site uz pomoć jednostavnih shortcode-ova." + +#. translators: plugin header field 'Author' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "Brice CAPOBIANCO" +msgstr "Brice CAPOBIANCO" + +#. translators: plugin header field 'AuthorURI' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "http://b-website.com/" +msgstr "http://b-website.com/" + +#. translators: plugin header field 'PluginURI' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie" +msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie" + +#. translators: plugin header field 'Version' +#: feedzy-rss-feed.php:0 +#@ feedzy-rss-feeds +msgid "2.2.1" +msgstr "" + +#: feedzy-rss-feed.php:39 +#@ default +msgid "Donate to this plugin »" +msgstr "" + +#: feedzy-rss-feeds-shortcode.php:289 +#@ feedzy-rss-feeds +msgid "Posted" +msgstr "Objavljeno" + +#: feedzy-rss-feeds-shortcode.php:294 +#@ feedzy-rss-feeds +msgid "by" +msgstr "po" + +#: feedzy-rss-feeds-widget.php:18 +#@ feedzy_wp_widget +msgid "Feedzy RSS Feeds" +msgstr "" + +#: feedzy-rss-feeds-widget.php:57 +#@ feedzy-rss-feeds +msgid "Widget Title" +msgstr "dodatak Naslov" + +#: feedzy-rss-feeds-widget.php:61 +#@ feedzy-rss-feeds +msgid "Intro text" +msgstr "Uvodni tekst" + diff --git a/dist/languages/feedzy-rss-feeds.pot b/dist/languages/feedzy-rss-feeds.pot new file mode 100644 index 00000000..fe6463e5 --- /dev/null +++ b/dist/languages/feedzy-rss-feeds.pot @@ -0,0 +1,459 @@ +# Copyright (C) 2018 Themeisle +# This file is distributed under the GPL-2.0+. +msgid "" +msgstr "" +"Project-Id-Version: Feedzy RSS Feeds Lite 3.2.8\n" +"Report-Msgid-Bugs-To: https://github.com/Codeinwp/feedzy-rss-feeds/issues\n" +"POT-Creation-Date: 2018-03-07 09:46:44+00:00\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n" +"Last-Translator: Themeisle Translate Team \n" +"Language-Team: Themeisle Translate \n" +"X-Generator: grunt-wp-i18n 0.5.4\n" +"X-Poedit-KeywordsList: " +"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_" +"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Country: United States\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-Basepath: ../\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-Bookmarks: \n" +"X-Textdomain-Support: yes\n" + +#: form/form.php:44 +msgid "Premium" +msgstr "" + +#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:57 +msgid "Sorry, this feed is currently unavailable or does not exists anymore." +msgstr "" + +#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:485 +#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:492 +msgid "Feed URL: %s not valid and removed from fetch." +msgstr "" + +#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:784 +msgid "by" +msgstr "" + +#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:790 +msgid "on" +msgstr "" + +#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:792 +msgid "at" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:142 +msgid "Feed Categories" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:143 +msgid "Feed Category" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:144 +#: includes/admin/feedzy-rss-feeds-admin.php:145 +msgid "Add Category" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:146 +msgid "Edit Category" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:147 +msgid "New Feed Category" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:148 +msgid "View Category" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:149 +msgid "Search Category" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:150 +msgid "No categories found" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:151 +msgid "No categories in the trash" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:181 +msgid "Category Feeds" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:187 +msgid "Increase your social media presence" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:217 +msgid "Place your URL's here followed by a comma." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:278 +msgid "Category Title" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:279 +#: includes/admin/feedzy-rss-feeds-admin.php:282 +msgid "Slug" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:306 +msgid "Undefined" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:331 +msgid "Documentation and examples" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:332 +msgid "More Plugins" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:332 +#: includes/admin/feedzy-rss-feeds-admin.php:351 +msgid "More Features" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:348 +#: includes/admin/feedzy-wp-widget.php:40 +msgid "Feedzy RSS Feeds" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:348 +msgid "Feedzy RSS" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:361 +msgid "Import Posts" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:365 +msgid "Settings" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-admin.php:380 +msgid "Your settings were saved." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:52 +msgid "Feedzy Lite" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:53 +msgid "Insert Feedzy RSS Feeds Shortcode" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:54 +msgid "Use Image" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:55 +msgid "Insert Shortcode" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:56 +msgid "Cancel" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:57 +msgid "Get Feedzy RSS Feeds Premium" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:93 +msgid "Feed Source" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:96 +msgid "The feed(s) URL (comma-separated list)." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:96 +msgid "Check feed before insert." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:97 +msgid "Feed URL" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:102 +msgid "Number of items to display." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:103 +msgid "(eg: 5)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:108 +msgid "Should we display the RSS title?" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:113 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:202 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:217 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:261 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:298 +msgid "Yes" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:117 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:206 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:221 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:265 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:302 +msgid "No" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:123 +msgid "For how long we will cache the feed results." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:124 +msgid "(eg: 1_days, defaults: 12_hours)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:129 +msgid "Hour" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:133 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:137 +msgid "Hours" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:141 +msgid "Day" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:145 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:149 +msgid "Days" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:157 +msgid "Item Options" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:160 +msgid "Links may be opened in the same window or a new tab." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:165 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:257 +msgid "Auto" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:169 +msgid "_blank" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:173 +msgid "_self" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:177 +msgid "_parent" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:181 +msgid "_top" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:185 +msgid "framename" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:191 +msgid "Trim the title of the item after X characters." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:192 +#: includes/admin/feedzy-rss-feeds-ui-lang.php:229 +msgid "(eg: 160)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:197 +msgid "Should we display the date of publication and the author name?" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:212 +msgid "Should we display a description (abstract) of the retrieved item?" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:227 +msgid "Crop description (summary) of the element after X characters." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:233 +msgid "" +"Only display item if title contains specific keyword(s) (comma-separated " +"list/case sensitive)." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:234 +msgid "(eg: news, sports etc.)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:240 +msgid "" +"Exclude items if title or content contains specific keyword(s) " +"(comma-separated list/case sensitive). " +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:241 +msgid "(eg: politics, gossip etc.)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:249 +msgid "Item Image Options" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:252 +msgid "Should we display the first image of the content if it is available?" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:271 +msgid "Default thumbnail URL if no image is found." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:272 +msgid "Image URL" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:276 +msgid "Select from Gallery" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:280 +msgid "Thumbnails dimension. Do not include \"px\". Eg: 150" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:281 +msgid "(eg: 150)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:288 +msgid "PRO Options" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:289 +msgid "" +"Get access to more options and customizations with full version of Feedzy " +"RSS Feeds . Use existing templates or extend them and make them your own." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:289 +msgid "See more features of Feedzy RSS Feeds " +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:292 +msgid "Should we display the price from the feed if it is available?" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:308 +msgid "Referral URL parameters (w/o \"?\")." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:309 +msgid "(eg. promo_code=feedzy_is_awesome)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:315 +msgid "How many columns we should use to display the feed items" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:316 +msgid "(eg. 1, 2, ..., 6)" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:322 +msgid "Template to use when displaying the feed." +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:328 +msgid "Default" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:332 +msgid "Style 1" +msgstr "" + +#: includes/admin/feedzy-rss-feeds-ui-lang.php:336 +msgid "Style 2" +msgstr "" + +#: includes/admin/feedzy-wp-widget.php:88 +msgid "Widget Title" +msgstr "" + +#: includes/admin/feedzy-wp-widget.php:92 +msgid "Intro text" +msgstr "" + +#: includes/layouts/settings.php:12 includes/layouts/settings.php:45 +msgid "Headers" +msgstr "" + +#: includes/layouts/settings.php:14 +msgid "Proxy" +msgstr "" + +#: includes/layouts/settings.php:47 +msgid "User Agent to use when accessing the feed" +msgstr "" + +#: includes/layouts/settings.php:58 +msgid "Proxy Settings" +msgstr "" + +#: includes/layouts/settings.php:60 +msgid "Host" +msgstr "" + +#: includes/layouts/settings.php:68 +msgid "Port" +msgstr "" + +#: includes/layouts/settings.php:76 +msgid "Username" +msgstr "" + +#: includes/layouts/settings.php:84 +msgid "Password" +msgstr "" + +#: includes/layouts/settings.php:113 +msgid "Save" +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "Feedzy RSS Feeds Lite" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://themeisle.com/plugins/feedzy-rss-feeds-lite/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"A small and lightweight RSS aggregator plugin. Fast and very easy to use, " +"it allows you to aggregate multiple RSS feeds into your WordPress site " +"through fully customizable shortcodes & widgets." +msgstr "" + +#. Author of the plugin/theme +msgid "Themeisle" +msgstr "" + +#. Author URI of the plugin/theme +msgid "http://themeisle.com" +msgstr "" \ No newline at end of file diff --git a/dist/readme.md b/dist/readme.md new file mode 100644 index 00000000..fbe18a00 --- /dev/null +++ b/dist/readme.md @@ -0,0 +1,695 @@ +# FEEDZY RSS Feeds Lite # +**Contributors:** [themeisle](https://profiles.wordpress.org/themeisle), [codeinwp](https://profiles.wordpress.org/codeinwp), [hardeepasrani](https://profiles.wordpress.org/hardeepasrani) +**Tags:** RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress, widget, importer, XML, ATOM, API, parser +**Requires at least:** 3.7 +**Tested up to:** 4.9 +**Stable tag:** trunk +**License:** GPLv2 or later +**License URI:** http://www.gnu.org/licenses/gpl-2.0.html + + +FEEDZY RSS Feeds is a small & lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your site with shortcodes & widgets. + + +## Description ## + +FEEDZY RSS Feeds is a small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets. + +> **Time-saving features available in the FULL version:** +> +> * Integration with WordAI to avoid duplicate content +> * Audio playback template +> * Convert feed items to WordPress posts/pages/any +> * Multiple templates for feed items +> * Automatically build affiliate links +> * Parse price from product feeds +> * Blacklist specific keywords from feeds +> * Priority email support from the developer of the plugin +> * Support and updates for 12 months +> +> **[Learn more about Feedzy Full version]( https://themeisle.com/plugins/feedzy-rss-feeds/ )** + + +The plugin uses the SimplePie php CLASS natively included in WordPress. SimplePie is a RSS parser that can read the information contained in a feed, process it, and finally display it. + +**Full cache control** + +Choose right from the shortcode how often do you want your content from feeds to get updated. + +**Feed Categories** + +You can now group feeds into categories and reuse them across your content without worrying of their url. + + +FEEDZY RSS Feeds therefore supports any additional library and uses only the bare minimum to ensure good performance (minimalistic CSS + cache). This will ensure compatibility with any hosting provider that supports WordPress, but if for any reason it doesn't work for yours feel free to contact us. + + + = See how Feedzy can integrate with your website = + +* [Audio playback template](https://demo.themeisle.com/feedzy-rss-feeds/audio-feed-template/) +* [Shop feed – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/shop-feed/) +* [Feed categories – 1 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/group-feeds-categories/) +* [Large image square grid – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/2-columns-large-images-square-grid/) +* [Square grid template – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/square-template/) +* [Round grid templates – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/round-grid-template/) +* [Standard grid layout – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/grid-layout-feed-items/) +* [Blog layout – 1 column layout](https://demo.themeisle.com/feedzy-rss-feeds/blog-layout/) + + +You may use this plugin in your widgets and your pages and reuse the shortcode + widget several times within the same page. + +By activating this plugin, your cover picture will be inserted into your RSS feeds. By doing so, you'll make it will easier for external sites to retrieve images from your feeds. + +**Please ask for help or report bugs if anything goes wrong. It is the best way to make the community benefit!** + + + = Shortcode Parameters = + + + * feeds + * max + * feed_title + * target + * title + * meta + * summary + * summarylength + * thumb + * default + * refresh + * size + * keywords_title + + + +**Plugin is now using the TinyMCE API to improve UI and makes it easy to insert shortcodes!** + + +### Basic example ### + +`[feedzy-rss feeds="http://themeisle.com/feed"]` + + +### Advanced example ### + +`[feedzy-rss feeds="http://themeisle.com/feed" max="2" feed_title="yes" target="_blank" refresh="12_hours" title="50" meta="yes" summary="yes" summarylength="300" thumb="yes" size="100" default="http://your-site/default-image.jpg" keywords_title="WordPress"]` + + +### Available Hooks ### + + + * feedzy_feed_items + * feedzy_item_keyword + * feedzy_item_attributes + * feedzy_thumb_output + * feedzy_title_output + * feedzy_meta_args + * feedzy_meta_output + * feedzy_summary_input + * feedzy_summary_output + * feedzy_global_output + * feedzy_thumb_sizes + * feedzy_feed_blacklist_images + * feedzy_default_image + * feedzy_default_error + * feedzy_item_filter + * feedzy_author_url + * feedzy_item_url_filter + * feedzy_feed_timestamp + * shortcode_atts_feedzy_default + +This plugin is maintained and supported by Themeisle, check out some of the other WordPress plugins and free themes we've developed. + +### Languages ### + +* English +* French +* Serbian [Borisa Djuraskovic](http://www.webhostinghub.com/ "Borisa Djuraskovic") +* Japanese [sama55](http://askive.cmsbox.jp/ "sama55") +* German [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck") +* Spanish [Angel Calzado](http://sintaxisweb.es "Angel Calzado") + +Become a translator and send me your translation! [Contact-me](http://themeisle.com/contact "Contact") + +## Installation ## + +1. Upload and activate the plugin (or install it through the WP admin console) +2. Insert shortcode ! ;-) + +## Frequently Asked Questions ## + + + + + + +### Is it responsive friendly? ### + +Yes it is. + +### My feed is not displayed and the following message appears "Sorry, this feed is currently unavailable or does not exists anymore." ### + +You have to check first if your feed is valid. Please test it here: https://validator.w3.org/feed/ + +### Where do i find the plugin documentation ### +[http://docs.themeisle.com/article/658-feedzy-rss-feeds](http://docs.themeisle.com/article/658-feedzy-rss-feeds) + +### How to fix images that are not showing in the feed ### +[http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed](http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed) + +### How to change cache lifetime for a specific feed ### +[http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed](http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed) + +### How to change thumbs size and aspect ratio ### +[http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio](http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio) + +### What hooks and filters are available in Feedzy ### +[http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy](http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy) + +### How to change the blacklist image name ### +[http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name](http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name) + +### How to decode item title ### +[http://docs.themeisle.com/article/548-how-to-decode-item-title-with](http://docs.themeisle.com/article/548-how-to-decode-item-title-with) + +### How to remove featured image from blog feed ### +[http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed](http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed) + +### How to keep html in feed items content ### +[http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content](http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content) + +### How to remove plugin css ### +[http://docs.themeisle.com/article/545-how-to-remove-plugin-css](http://docs.themeisle.com/article/545-how-to-remove-plugin-css) + +### How to remove links ### +[http://docs.themeisle.com/article/541-how-to-remove-links](http://docs.themeisle.com/article/541-how-to-remove-links) + +### How to add a read more link ### +[http://docs.themeisle.com/article/544-how-to-add-a-read-more-link](http://docs.themeisle.com/article/544-how-to-add-a-read-more-link) + +### How to remove time from publication date ### +[http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date](http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date) + +### How to handle publication date and author content ### +[http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content](http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content) + +### How to use your own inline css ### +[http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css](http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css) + +### How to remove the end hellip ### +[http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip) + +### How to display items in a random order ### +[http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order](http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order) + +### How to sort items alphabetically by their title ### +[http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title](http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title) + +### How to display RSS feed time and date in local time ### +[http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time](http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time) + +### How to change author url ### +[http://docs.themeisle.com/article/636-how-to-change-author-url](http://docs.themeisle.com/article/636-how-to-change-author-url) + +### How remove feed items duplicates by url ### +[http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item) + +### How to use feedzy categories ### +[http://docs.themeisle.com/article/640-how-to-use-feedzy-categories](http://docs.themeisle.com/article/640-how-to-use-feedzy-categories) + +### How to add a read more link to Feedzy ### + [http://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy](http://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy) + + = How to move Feedzy templates to your theme = + [http://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme](http://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme) + + = How to eliminate duplicate feed items. = + [http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items) + + = How to check whether the RSS feed is valid or not in Feedzy = + [http://docs.themeisle.com/article/716-feedzy-how-to-check-whether-the-rss-feed-is-valid-or-not](http://docs.themeisle.com/article/716-feedzy-how-to-check-whether-the-rss-feed-is-valid-or-not) + + = How to change user agent in Feedzy = + [http://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy](http://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy) + + = How to use proxy settings in Feedzy = + [http://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feezy](http://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feezy) + + = How to import posts from feeds in Feedzy = + [http://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy](http://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy) + + = Where can I find the import posts options in Feedzy = + [http://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy](http://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy) + + = How to use WordAI to Rephrase RSS content in Feedzy = + [http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy) + + = Install and use the premium version of Feedzy RSS Feeds = + [http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds](http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds) + + = Feedzy RSS Feeds Documentation = + [https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation](https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation) + + = What actions and filters are available in Feedzy = + [https://docs.themeisle.com/article/540-what-actions-and-filters-are-available-in-feedzy](https://docs.themeisle.com/article/540-what-actions-and-filters-are-available-in-feedzy) + + = How to change thumbs size and aspect ratio Feedzy = + [https://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio-feedzy](https://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio-feedzy) + + = How to display RSS feed time and date in local time = + [https://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time](https://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time) + + = How to add a read more link to Feedzy = + [https://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy](https://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy) + + = How to use feedzy categories = + [https://docs.themeisle.com/article/640-how-to-use-feedzy-categories](https://docs.themeisle.com/article/640-how-to-use-feedzy-categories) + + = How to use your own inline css = + [https://docs.themeisle.com/article/546-how-to-use-your-own-inline-css](https://docs.themeisle.com/article/546-how-to-use-your-own-inline-css) + + = How to change cache lifetime for a specific feed = + [https://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed](https://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed) + + = How to remove featured image from blog feed = + [https://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed](https://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed) + + = How to handle publication date and author content = + [https://docs.themeisle.com/article/549-how-to-handle-publication-date-and-author-content](https://docs.themeisle.com/article/549-how-to-handle-publication-date-and-author-content) + + = How to keep html in feed items content = + [https://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content](https://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content) + + = How to fix images that are not showing in the feed = + [https://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed](https://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed) + + = How to display items in a random order = + [https://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order](https://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order) + + = How to remove links = + [https://docs.themeisle.com/article/541-how-to-remove-links](https://docs.themeisle.com/article/541-how-to-remove-links) + + = How to move Feedzy templates to your theme = + [https://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme](https://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme) + + = How to remove plugin css = + [https://docs.themeisle.com/article/545-how-to-remove-plugin-css](https://docs.themeisle.com/article/545-how-to-remove-plugin-css) + + = How to remove time from publication date = + [https://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date](https://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date) + + = How to remove the end hellip = + [https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip) + + = How to decode item title = + [https://docs.themeisle.com/article/548-how-to-decode-item-title](https://docs.themeisle.com/article/548-how-to-decode-item-title) + + = How to sort feed items by title = + [https://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title](https://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title) + + = How to import posts from feeds in Feedzy = + [https://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy](https://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy) + + = How to change author url = + [https://docs.themeisle.com/article/636-how-to-change-author-url](https://docs.themeisle.com/article/636-how-to-change-author-url) + + = How to eliminate duplicate feed items. = + [https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items) + + = How to check whether the RSS feed is valid or not in Feedzy = + [https://docs.themeisle.com/article/716-how-to-check-whether-the-rss-feed-is-valid-or-not-in-feedzy](https://docs.themeisle.com/article/716-how-to-check-whether-the-rss-feed-is-valid-or-not-in-feedzy) + + = How to change the blacklist image name = + [https://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name](https://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name) + + = How to use proxy settings in Feedzy = + [https://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feedzy](https://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feedzy) + + = Where can I find the import posts options in Feedzy = + [https://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy](https://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy) + + = How to change user agent in Feedzy = + [https://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy](https://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy) + + = How to use WordAI to Rephrase RSS content in Feedzy = + [https://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](https://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy) + + = Install and use the premium version of Feedzy RSS Feeds = + [https://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds](https://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds) + + = How to sort feed items by date = + [https://docs.themeisle.com/article/817-how-to-sort-feed-items-by-date](https://docs.themeisle.com/article/817-how-to-sort-feed-items-by-date) + + = How to add rel="nofollow" to feed links = + [https://docs.themeisle.com/article/839-how-to-add-relnofollow-to-feed-links](https://docs.themeisle.com/article/839-how-to-add-relnofollow-to-feed-links) + + = What to do when you get Warning: ./cache is not writeable = + [https://docs.themeisle.com/article/840-what-to-do-when-you-get-warning-cache-is-not-writeable](https://docs.themeisle.com/article/840-what-to-do-when-you-get-warning-cache-is-not-writeable) + + = How to exclude feeds with certain words in it = + [https://docs.themeisle.com/article/850-how-to-exclude-feeds-with-certain-words-in-it](https://docs.themeisle.com/article/850-how-to-exclude-feeds-with-certain-words-in-it) + + = How to add canonical tags for imported posts = + [https://docs.themeisle.com/article/841-how-to-add-canonical-tags-for-imported-posts](https://docs.themeisle.com/article/841-how-to-add-canonical-tags-for-imported-posts) + + == Screenshots == + +1. Simple example +2. Inserting a shortcode in the WYSIWYG +3. Widget admin +4. Widget render + + +## Changelog ## +### 3.2.11 - 2018-06-26 ### + +* New Gutenberg block for Feedzy RSS Feeds +* Fixed curl SSL problem with Feeds with HTTPS +* Fix content type, conflicting with Gutenberg +* Added compatibility with the pro version for full text import + + +### 3.2.10 - 2018-04-02 ### + +* Adds shortcode attribute for feed items order ( title ASC/DESC, date ASC/DESC). +* Improve documentation and examples. + + +### 3.2.9 - 2018-03-07 ### + +* Automatically fix deprecated google news feeds. +* Improve compatibility with the pro version. + + +### 3.2.8 - 2018-02-20 ### + +* Fix issue with medium feeds. +* Improves extensibility using various hooks. +* Fix feeds without schema protocol. + + +### 3.2.7 - 2018-01-05 ### + +* Fix compatibility with SiteOrigin Page Builder. +* Adds full content import from feed. +* Fix issue with img scraped from articles. + + +### 3.2.6 - 2017-11-16 ### + +* Adds compatibility with WordPress 4.9 + + +### 3.2.5 - 2017-11-03 ### + * Fix for double slash issue in image path. + * Fix for private ips when proxy is used. + * Add FAQ in sync with helpscout docs. + + + +### 3.2.4 - 2017-10-13 ### + +* Fix for assets enqueue, loading them where are needed only. +* Removes duplicates readme.md files. + + +### 3.2.1 - 2017-10-12 ### + +* Adds global settings page. +* Adds User Agent and Proxy settings. +* Fix for some edge cases regarding images in the feed. + + +### 3.2.0 - 2017-08-17 ### + +* Fix for image URL issue following some strange patterns. +* Added fallback for broken feed, now if one feed from the list is not working, others will will be used. +* Added shortcode parameter for feed cache control. + + +### 3.1.10 - 2017-08-03 ### + +* Fixed typos in shortcode builder. +* Fixed image encoding issue. + + +### 3.1.9 - 2017-07-21 ### + +* Fixed issue with fetching images containg GET parameters. + + +### 3.1.8 - 2017-07-17 ### + +* Fixed image fetching issues. +* Fixed link opening behaviour +* Improved description ( Thanks to @chesio ) + + +### 3.1.7 ### + +* Added new sdk logic. +* Improved compatibility with the pro version. + + + +### 3.1.5 - 30/05/2017 ### +* Fixed issues with sdk notifications. +* Added more compatibility with pro version. + +### 3.1.4 - 29/05/2017 ### +* Added new doc on how to use feedzy categories. + +### 3.1.3 - 29/05/2017 ### +* Added new SDK features. +* Fixed some edge case issues on image parsing. + +### 3.1.2 - 22/05/2017 ### +* Fixed author protocol. +* Added core fetch_feed method. + +### 3.1.1 - 22/05/2017 ### +* Fixed span alt tag, replaced with title. + +### 3.1.0 - 17/05/2017 ### +* Added feed categories for grouping urls. +* Added support for feed to post feature. +* Fixed regex for jpeg image ( Reported by @piccart ) +* Added filter for author url ( Thanks to @piccart ) + +### 3.0.10 - 24/04/2017 ### +* Fixed wrong image regex. +* Fixed image compression. + +### 3.0.9 - 21/02/2017 ### +* Added wrong feed title check. + +### 3.0.8 - 20/02/2017 ### +* Added $sizes param to feedzy_thumb_output. +* Added check when title is empty. +* Fixed image encoding url. + +### 3.0.6 - 27/01/2017 ### +* Added feedzy_feed_timestamp filter. +* Fixed issue with edge cases feed urls. +* Fixed error when using [] on string vars. + + +### 3.0.5 - 06/01/2017 ### +* Fixed issue with google news feed + +### 3.0.4 - 06/01/2017 ### +* Fixed thumb='auto' behaviour + +### 3.0.3 - 06/01/2017 ### +* Fixed blog feed feature image filter +* Improved documentation and examples + +### 3.0.2 - 06/01/2017 ### +* Fixed default class back + +### 3.0.1 - 05/01/2017 ### +* Fixed html markup error which was breaking user websites + +### 3.0.0 - 10/11/2016 ### +* Refactored code base from 2.8.1 to OOP style +* Added support for PRO version +* Added new hooks feedzy_item_filter, feedzy_item_url_filter + + +### 2.8 - 04/14/2016 ### +* Tested on WP 4.5 with success! +* themeisle added as plugin author +* Fix a PHP7 warning in the widget contructor regarding [this topic](https://wordpress.org/support/topic/php7-debug-error?replies=1) + +### 2.7.1 ### +* Remove unnecessary and redundant feedzy_wp_widget_box div container in the widget's body +* Best compliance with WordPress coding standards +* Fix a PHP warning on SimplePie error display & log +* Readme.txt update + +### 2.7 ### +* Better displaying of fetching feeds errors (see error message div error-attr). +* Write errors in the WP log file +* New hook: feedzy_default_error to filter error message +* New hook: shortcode_atts_feedzy_default to filter default shortcode attibutes +* Add a link to validate feed in the TinyMCE popup modal +* French translation update +* Remove unnecessary functions +* New constant FEEDZY_VERSION +* readme.txt and hooks documentation update + +### 2.6.2 ### +* Spanish translation thanks to [Angel Calzado](http://sintaxisweb.es "Angel Calzado") +* PHP issue fix in feedzy_returnImage() "strpos() expects parameter 1 to be string" +* Remove SSL from feeds URL to prevent fetching errors +* New hook: feedzy_default_image +* readme.txt and hooks documentation update + +### 2.6.1 ### +* Replace jQuery live() function by on() function to prevent JS error (fix the issue with Visual composer) +* Improve image's fetching on itunes feeds +* New feature: default WP smilies are now blacklisted from image fetching +* New hook: feedzy_feed_blacklist_images +* Tested on WP 4.3 with success! + +### 2.6 ### +* Fix a conflict with PageBuilder where Feedzy button does not show up in the visual editor +* Fix a typo in feedzy-rss-feeds-shortcode.php on the thumbnails span +* Replace WP_Widget by __construct() to initiate the widget because it has been deprecated since version 4.3.0 +* German translation thanks to [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck") +* Tested on WP 4.3 with success! + +### 2.5.1 ### +* Japanese translation thanks to [sama55](http://askive.cmsbox.jp/ "sama55") +* Image optimisation (feedzy-default.jpg) +* Improve image's fetching to avoid catching audio or video files from item description + +### 2.5 ### +* Improve author name fetching +* Better HTML marckup +* Fix PHP warning within the widget +* Fix CSS on IE when displaying images as a fallback +* CSS stylesheet update +* New hook: feedzy_item_attributes + +### 2.4.3 ### +* Improve image fetching (again...) +* Fix an issue on files encoding (UTF8) +* Minor PHP improvements on the main shortcode's function + +### 2.4.2 ### +* Minor fix on already encoded images names + +### 2.4.1 ### +* Fix an issue on img url encode +* Retrive img url in url parameters +* Fix minor PHP warning +* New hook: feedzy_add_classes_item + +### 2.4 ### +* New feature: 'auto' thumbs option added +* New hook: feedzy_thumb_sizes +* Fix issue on max number of feeds to display +* Fix HTML decode in the feed's title +* Minor PHP improvements +* readme.txt and hooks documentation update + +### 2.3 ### +* New hook: feedzy_feed_items +* New hook: feedzy_item_keyword +* Introduce SimplePie native strip_htmltags() method +* Use PNG icon as SVG fallback on the visual editor button +* Improve plugin's files structure +* readme.txt and hooks documentation update + +### 2.2.2 ### +* New hook: feedzy_meta_args + +### 2.2.1 ### +* Minor security improvements +* Better WordPress coding standard respect +* Minor fix if does not provide item's author +* Translations update + +### 2.2 ### +* Minor PHP improvements +* Remove logo from plugin meta +* New hook: feedzy_summary_input +* $feedURL argument added on every available hooks +* French translation update +* readme.txt and hooks documentation update + +### 2.1 ### +* internationalization of feeds dates and times (date_i18n) + +### 2.0 ### +* Widget added +* Translation update +* Better plugin file structure +* Improve image fetching with multiple enclosures +* Tested on WP 4.1 with success! + +### 1.7.1 ### +* Fix typo in PHP which cause issue on fetching images + +### 1.7 ### +* Minor Template and CSS changes +* New hook: feedzy_thumb_output +* New hook: feedzy_title_output +* New hook: feedzy_meta_output +* New hook: feedzy_summary_output +* New hook: feedzy_global_output +* readme.txt update + +### 1.6 ### +* Minor CSS fix +* Add actions: add_action('rss_item', 'feedzy_include_thumbnail_RSS'); & add_action('rss2_item', 'feedzy_include_thumbnail_RSS') + +### 1.5.4 ### +* Plugin meta translation +* Remove unnecessary spaces + +### 1.5.3 ### +* TinyMCE UI translation +* Better fetching image +* Space between items is calculated based on thumbs size + +### 1.5.2 ### +* Plugin meta update + +### 1.5.1 ### +* New logo +* Minor CSS fixes + +### 1.5 ### +* New param added to filter item with keywords +* Default thumb added +* Fix minor php issue +* Rename files of the plugin +* New logo + screenshot (assets) + +### 1.4 ### +* Add "default" parameter to fill image container if no image is fetch or if it is offline +* Add more control over numeric format in max, size, title & summarylength parameters + +### 1.03 ### +* Shortcode can now be displayed everywhere in the page (CSS is loaded via global var) + +### 1.02 ### +* Error on svn tag + +### 1.01 ### +* Minor CSS fix. +* Minor PHP changes. +* Readme.txt updated + +### 1.0 ### +* First release. + +## Upgrade Notice ## + +### 1.5 ### +* IMPORTANT: You have to reactivate the plugin after its update! + +### 1.0 ### +* First release. diff --git a/dist/readme.txt b/dist/readme.txt new file mode 100644 index 00000000..81473788 --- /dev/null +++ b/dist/readme.txt @@ -0,0 +1,702 @@ +=== FEEDZY RSS Feeds Lite === +Contributors: themeisle,codeinwp,hardeepasrani +Tags: RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress, widget, importer, XML, ATOM, API, parser +Requires at least: 3.7 +Tested up to: 4.9 +Stable tag: trunk +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html + + +FEEDZY RSS Feeds is a small & lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your site with shortcodes & widgets. + + +== Description == + +FEEDZY RSS Feeds is a small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets. + +> **Time-saving features available in the FULL version:** +> +> * Integration with WordAI to avoid duplicate content +> * Audio playback template +> * Convert feed items to WordPress posts/pages/any +> * Multiple templates for feed items +> * Automatically build affiliate links +> * Parse price from product feeds +> * Blacklist specific keywords from feeds +> * Priority email support from the developer of the plugin +> * Support and updates for 12 months +> +> **[Learn more about Feedzy Full version]( https://themeisle.com/plugins/feedzy-rss-feeds/ )** + + +The plugin uses the SimplePie php CLASS natively included in WordPress. SimplePie is a RSS parser that can read the information contained in a feed, process it, and finally display it. + +**Full cache control** + +Choose right from the shortcode how often do you want your content from feeds to get updated. + +**Feed Categories** + +You can now group feeds into categories and reuse them across your content without worrying of their url. + + +FEEDZY RSS Feeds therefore supports any additional library and uses only the bare minimum to ensure good performance (minimalistic CSS + cache). This will ensure compatibility with any hosting provider that supports WordPress, but if for any reason it doesn't work for yours feel free to contact us. + + + = See how Feedzy can integrate with your website = + +* [Audio playback template](https://demo.themeisle.com/feedzy-rss-feeds/audio-feed-template/) +* [Shop feed – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/shop-feed/) +* [Feed categories – 1 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/group-feeds-categories/) +* [Large image square grid – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/2-columns-large-images-square-grid/) +* [Square grid template – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/square-template/) +* [Round grid templates – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/round-grid-template/) +* [Standard grid layout – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/grid-layout-feed-items/) +* [Blog layout – 1 column layout](https://demo.themeisle.com/feedzy-rss-feeds/blog-layout/) + + +You may use this plugin in your widgets and your pages and reuse the shortcode + widget several times within the same page. + +By activating this plugin, your cover picture will be inserted into your RSS feeds. By doing so, you'll make it will easier for external sites to retrieve images from your feeds. + +**Please ask for help or report bugs if anything goes wrong. It is the best way to make the community benefit!** + + + = Shortcode Parameters = + +` +* feeds +* max +* feed_title +* target +* title +* meta +* summary +* summarylength +* thumb +* default +* refresh +* size +* keywords_title +` + + +**Plugin is now using the TinyMCE API to improve UI and makes it easy to insert shortcodes!** + + += Basic example = + +`[feedzy-rss feeds="http://themeisle.com/feed"]` + + += Advanced example = + +`[feedzy-rss feeds="http://themeisle.com/feed" max="2" feed_title="yes" target="_blank" refresh="12_hours" title="50" meta="yes" summary="yes" summarylength="300" thumb="yes" size="100" default="http://your-site/default-image.jpg" keywords_title="WordPress"]` + + += Available Hooks = + +` +* feedzy_feed_items +* feedzy_item_keyword +* feedzy_item_attributes +* feedzy_thumb_output +* feedzy_title_output +* feedzy_meta_args +* feedzy_meta_output +* feedzy_summary_input +* feedzy_summary_output +* feedzy_global_output +* feedzy_thumb_sizes +* feedzy_feed_blacklist_images +* feedzy_default_image +* feedzy_default_error +* feedzy_item_filter +* feedzy_author_url +* feedzy_item_url_filter +* feedzy_feed_timestamp +* shortcode_atts_feedzy_default +` +This plugin is maintained and supported by Themeisle, check out some of the other WordPress plugins and free themes we've developed. + += Languages = + +* English +* French +* Serbian [Borisa Djuraskovic](http://www.webhostinghub.com/ "Borisa Djuraskovic") +* Japanese [sama55](http://askive.cmsbox.jp/ "sama55") +* German [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck") +* Spanish [Angel Calzado](http://sintaxisweb.es "Angel Calzado") + +Become a translator and send me your translation! [Contact-me](http://themeisle.com/contact "Contact") + +== Installation == + +1. Upload and activate the plugin (or install it through the WP admin console) +2. Insert shortcode ! ;-) + +== Frequently Asked Questions == + + + + + + + += Is it responsive friendly? = + +Yes it is. + += My feed is not displayed and the following message appears "Sorry, this feed is currently unavailable or does not exists anymore." = + +You have to check first if your feed is valid. Please test it here: https://validator.w3.org/feed/ + += Where do i find the plugin documentation = +[http://docs.themeisle.com/article/658-feedzy-rss-feeds](http://docs.themeisle.com/article/658-feedzy-rss-feeds) + += How to fix images that are not showing in the feed = +[http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed](http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed) + += How to change cache lifetime for a specific feed = +[http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed](http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed) + += How to change thumbs size and aspect ratio = +[http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio](http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio) + += What hooks and filters are available in Feedzy = +[http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy](http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy) + += How to change the blacklist image name = +[http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name](http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name) + += How to decode item title = +[http://docs.themeisle.com/article/548-how-to-decode-item-title-with](http://docs.themeisle.com/article/548-how-to-decode-item-title-with) + += How to remove featured image from blog feed = +[http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed](http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed) + += How to keep html in feed items content = +[http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content](http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content) + += How to remove plugin css = +[http://docs.themeisle.com/article/545-how-to-remove-plugin-css](http://docs.themeisle.com/article/545-how-to-remove-plugin-css) + += How to remove links = +[http://docs.themeisle.com/article/541-how-to-remove-links](http://docs.themeisle.com/article/541-how-to-remove-links) + += How to add a read more link = +[http://docs.themeisle.com/article/544-how-to-add-a-read-more-link](http://docs.themeisle.com/article/544-how-to-add-a-read-more-link) + += How to remove time from publication date = +[http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date](http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date) + += How to handle publication date and author content = +[http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content](http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content) + += How to use your own inline css = +[http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css](http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css) + += How to remove the end hellip = +[http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip) + += How to display items in a random order = +[http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order](http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order) + += How to sort items alphabetically by their title = +[http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title](http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title) + += How to display RSS feed time and date in local time = +[http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time](http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time) + += How to change author url = +[http://docs.themeisle.com/article/636-how-to-change-author-url](http://docs.themeisle.com/article/636-how-to-change-author-url) + += How remove feed items duplicates by url = +[http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item) + += How to use feedzy categories = +[http://docs.themeisle.com/article/640-how-to-use-feedzy-categories](http://docs.themeisle.com/article/640-how-to-use-feedzy-categories) + += How to add a read more link to Feedzy = + [http://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy](http://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy) + + = How to move Feedzy templates to your theme = + [http://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme](http://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme) + + = How to eliminate duplicate feed items. = + [http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items) + + = How to check whether the RSS feed is valid or not in Feedzy = + [http://docs.themeisle.com/article/716-feedzy-how-to-check-whether-the-rss-feed-is-valid-or-not](http://docs.themeisle.com/article/716-feedzy-how-to-check-whether-the-rss-feed-is-valid-or-not) + + = How to change user agent in Feedzy = + [http://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy](http://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy) + + = How to use proxy settings in Feedzy = + [http://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feezy](http://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feezy) + + = How to import posts from feeds in Feedzy = + [http://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy](http://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy) + + = Where can I find the import posts options in Feedzy = + [http://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy](http://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy) + + = How to use WordAI to Rephrase RSS content in Feedzy = + [http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy) + + = Install and use the premium version of Feedzy RSS Feeds = + [http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds](http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds) + + = Feedzy RSS Feeds Documentation = + [https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation](https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation) + + = What actions and filters are available in Feedzy = + [https://docs.themeisle.com/article/540-what-actions-and-filters-are-available-in-feedzy](https://docs.themeisle.com/article/540-what-actions-and-filters-are-available-in-feedzy) + + = How to change thumbs size and aspect ratio Feedzy = + [https://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio-feedzy](https://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio-feedzy) + + = How to display RSS feed time and date in local time = + [https://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time](https://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time) + + = How to add a read more link to Feedzy = + [https://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy](https://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy) + + = How to use feedzy categories = + [https://docs.themeisle.com/article/640-how-to-use-feedzy-categories](https://docs.themeisle.com/article/640-how-to-use-feedzy-categories) + + = How to use your own inline css = + [https://docs.themeisle.com/article/546-how-to-use-your-own-inline-css](https://docs.themeisle.com/article/546-how-to-use-your-own-inline-css) + + = How to change cache lifetime for a specific feed = + [https://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed](https://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed) + + = How to remove featured image from blog feed = + [https://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed](https://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed) + + = How to handle publication date and author content = + [https://docs.themeisle.com/article/549-how-to-handle-publication-date-and-author-content](https://docs.themeisle.com/article/549-how-to-handle-publication-date-and-author-content) + + = How to keep html in feed items content = + [https://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content](https://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content) + + = How to fix images that are not showing in the feed = + [https://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed](https://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed) + + = How to display items in a random order = + [https://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order](https://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order) + + = How to remove links = + [https://docs.themeisle.com/article/541-how-to-remove-links](https://docs.themeisle.com/article/541-how-to-remove-links) + + = How to move Feedzy templates to your theme = + [https://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme](https://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme) + + = How to remove plugin css = + [https://docs.themeisle.com/article/545-how-to-remove-plugin-css](https://docs.themeisle.com/article/545-how-to-remove-plugin-css) + + = How to remove time from publication date = + [https://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date](https://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date) + + = How to remove the end hellip = + [https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip) + + = How to decode item title = + [https://docs.themeisle.com/article/548-how-to-decode-item-title](https://docs.themeisle.com/article/548-how-to-decode-item-title) + + = How to sort feed items by title = + [https://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title](https://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title) + + = How to import posts from feeds in Feedzy = + [https://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy](https://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy) + + = How to change author url = + [https://docs.themeisle.com/article/636-how-to-change-author-url](https://docs.themeisle.com/article/636-how-to-change-author-url) + + = How to eliminate duplicate feed items. = + [https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items) + + = How to check whether the RSS feed is valid or not in Feedzy = + [https://docs.themeisle.com/article/716-how-to-check-whether-the-rss-feed-is-valid-or-not-in-feedzy](https://docs.themeisle.com/article/716-how-to-check-whether-the-rss-feed-is-valid-or-not-in-feedzy) + + = How to change the blacklist image name = + [https://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name](https://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name) + + = How to use proxy settings in Feedzy = + [https://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feedzy](https://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feedzy) + + = Where can I find the import posts options in Feedzy = + [https://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy](https://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy) + + = How to change user agent in Feedzy = + [https://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy](https://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy) + + = How to use WordAI to Rephrase RSS content in Feedzy = + [https://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](https://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy) + + = Install and use the premium version of Feedzy RSS Feeds = + [https://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds](https://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds) + + = How to sort feed items by date = + [https://docs.themeisle.com/article/817-how-to-sort-feed-items-by-date](https://docs.themeisle.com/article/817-how-to-sort-feed-items-by-date) + + = How to add rel="nofollow" to feed links = + [https://docs.themeisle.com/article/839-how-to-add-relnofollow-to-feed-links](https://docs.themeisle.com/article/839-how-to-add-relnofollow-to-feed-links) + + = What to do when you get Warning: ./cache is not writeable = + [https://docs.themeisle.com/article/840-what-to-do-when-you-get-warning-cache-is-not-writeable](https://docs.themeisle.com/article/840-what-to-do-when-you-get-warning-cache-is-not-writeable) + + = How to exclude feeds with certain words in it = + [https://docs.themeisle.com/article/850-how-to-exclude-feeds-with-certain-words-in-it](https://docs.themeisle.com/article/850-how-to-exclude-feeds-with-certain-words-in-it) + + = How to add canonical tags for imported posts = + [https://docs.themeisle.com/article/841-how-to-add-canonical-tags-for-imported-posts](https://docs.themeisle.com/article/841-how-to-add-canonical-tags-for-imported-posts) + + = How to display thumbnail image from the feeds = + [https://docs.themeisle.com/article/871-how-to-display-thumbnail-image-from-the-feeds](https://docs.themeisle.com/article/871-how-to-display-thumbnail-image-from-the-feeds) + + = How to change feed items order = + [https://docs.themeisle.com/article/864-how-to-change-feed-items-order](https://docs.themeisle.com/article/864-how-to-change-feed-items-order) + + == Screenshots == + +1. Simple example +2. Inserting a shortcode in the WYSIWYG +3. Widget admin +4. Widget render + + +== Changelog == += 3.2.11 - 2018-06-26 = + +* New Gutenberg block for Feedzy RSS Feeds +* Fixed curl SSL problem with Feeds with HTTPS +* Fix content type, conflicting with Gutenberg +* Added compatibility with the pro version for full text import + + += 3.2.10 - 2018-04-02 = + +* Adds shortcode attribute for feed items order ( title ASC/DESC, date ASC/DESC). +* Improve documentation and examples. + + += 3.2.9 - 2018-03-07 = + +* Automatically fix deprecated google news feeds. +* Improve compatibility with the pro version. + + += 3.2.8 - 2018-02-20 = + +* Fix issue with medium feeds. +* Improves extensibility using various hooks. +* Fix feeds without schema protocol. + + += 3.2.7 - 2018-01-05 = + +* Fix compatibility with SiteOrigin Page Builder. +* Adds full content import from feed. +* Fix issue with img scraped from articles. + + += 3.2.6 - 2017-11-16 = + +* Adds compatibility with WordPress 4.9 + + += 3.2.5 - 2017-11-03 = + * Fix for double slash issue in image path. + * Fix for private ips when proxy is used. + * Add FAQ in sync with helpscout docs. + + + += 3.2.4 - 2017-10-13 = + +* Fix for assets enqueue, loading them where are needed only. +* Removes duplicates readme.md files. + + += 3.2.1 - 2017-10-12 = + +* Adds global settings page. +* Adds User Agent and Proxy settings. +* Fix for some edge cases regarding images in the feed. + + += 3.2.0 - 2017-08-17 = + +* Fix for image URL issue following some strange patterns. +* Added fallback for broken feed, now if one feed from the list is not working, others will will be used. +* Added shortcode parameter for feed cache control. + + += 3.1.10 - 2017-08-03 = + +* Fixed typos in shortcode builder. +* Fixed image encoding issue. + + += 3.1.9 - 2017-07-21 = + +* Fixed issue with fetching images containg GET parameters. + + += 3.1.8 - 2017-07-17 = + +* Fixed image fetching issues. +* Fixed link opening behaviour +* Improved description ( Thanks to @chesio ) + + += 3.1.7 = + +* Added new sdk logic. +* Improved compatibility with the pro version. + + + += 3.1.5 - 30/05/2017 = +* Fixed issues with sdk notifications. +* Added more compatibility with pro version. + += 3.1.4 - 29/05/2017 = +* Added new doc on how to use feedzy categories. + += 3.1.3 - 29/05/2017 = +* Added new SDK features. +* Fixed some edge case issues on image parsing. + += 3.1.2 - 22/05/2017 = +* Fixed author protocol. +* Added core fetch_feed method. + += 3.1.1 - 22/05/2017 = +* Fixed span alt tag, replaced with title. + += 3.1.0 - 17/05/2017 = +* Added feed categories for grouping urls. +* Added support for feed to post feature. +* Fixed regex for jpeg image ( Reported by @piccart ) +* Added filter for author url ( Thanks to @piccart ) + += 3.0.10 - 24/04/2017 = +* Fixed wrong image regex. +* Fixed image compression. + += 3.0.9 - 21/02/2017 = +* Added wrong feed title check. + += 3.0.8 - 20/02/2017 = +* Added $sizes param to feedzy_thumb_output. +* Added check when title is empty. +* Fixed image encoding url. + += 3.0.6 - 27/01/2017 = +* Added feedzy_feed_timestamp filter. +* Fixed issue with edge cases feed urls. +* Fixed error when using [] on string vars. + + += 3.0.5 - 06/01/2017 = +* Fixed issue with google news feed + += 3.0.4 - 06/01/2017 = +* Fixed thumb='auto' behaviour + += 3.0.3 - 06/01/2017 = +* Fixed blog feed feature image filter +* Improved documentation and examples + += 3.0.2 - 06/01/2017 = +* Fixed default class back + += 3.0.1 - 05/01/2017 = +* Fixed html markup error which was breaking user websites + += 3.0.0 - 10/11/2016 = +* Refactored code base from 2.8.1 to OOP style +* Added support for PRO version +* Added new hooks feedzy_item_filter, feedzy_item_url_filter + + += 2.8 - 04/14/2016 = +* Tested on WP 4.5 with success! +* themeisle added as plugin author +* Fix a PHP7 warning in the widget contructor regarding [this topic](https://wordpress.org/support/topic/php7-debug-error?replies=1) + += 2.7.1 = +* Remove unnecessary and redundant feedzy_wp_widget_box div container in the widget's body +* Best compliance with WordPress coding standards +* Fix a PHP warning on SimplePie error display & log +* Readme.txt update + += 2.7 = +* Better displaying of fetching feeds errors (see error message div error-attr). +* Write errors in the WP log file +* New hook: feedzy_default_error to filter error message +* New hook: shortcode_atts_feedzy_default to filter default shortcode attibutes +* Add a link to validate feed in the TinyMCE popup modal +* French translation update +* Remove unnecessary functions +* New constant FEEDZY_VERSION +* readme.txt and hooks documentation update + += 2.6.2 = +* Spanish translation thanks to [Angel Calzado](http://sintaxisweb.es "Angel Calzado") +* PHP issue fix in feedzy_returnImage() "strpos() expects parameter 1 to be string" +* Remove SSL from feeds URL to prevent fetching errors +* New hook: feedzy_default_image +* readme.txt and hooks documentation update + += 2.6.1 = +* Replace jQuery live() function by on() function to prevent JS error (fix the issue with Visual composer) +* Improve image's fetching on itunes feeds +* New feature: default WP smilies are now blacklisted from image fetching +* New hook: feedzy_feed_blacklist_images +* Tested on WP 4.3 with success! + += 2.6 = +* Fix a conflict with PageBuilder where Feedzy button does not show up in the visual editor +* Fix a typo in feedzy-rss-feeds-shortcode.php on the thumbnails span +* Replace WP_Widget by __construct() to initiate the widget because it has been deprecated since version 4.3.0 +* German translation thanks to [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck") +* Tested on WP 4.3 with success! + += 2.5.1 = +* Japanese translation thanks to [sama55](http://askive.cmsbox.jp/ "sama55") +* Image optimisation (feedzy-default.jpg) +* Improve image's fetching to avoid catching audio or video files from item description + += 2.5 = +* Improve author name fetching +* Better HTML marckup +* Fix PHP warning within the widget +* Fix CSS on IE when displaying images as a fallback +* CSS stylesheet update +* New hook: feedzy_item_attributes + += 2.4.3 = +* Improve image fetching (again...) +* Fix an issue on files encoding (UTF8) +* Minor PHP improvements on the main shortcode's function + += 2.4.2 = +* Minor fix on already encoded images names + += 2.4.1 = +* Fix an issue on img url encode +* Retrive img url in url parameters +* Fix minor PHP warning +* New hook: feedzy_add_classes_item + += 2.4 = +* New feature: 'auto' thumbs option added +* New hook: feedzy_thumb_sizes +* Fix issue on max number of feeds to display +* Fix HTML decode in the feed's title +* Minor PHP improvements +* readme.txt and hooks documentation update + += 2.3 = +* New hook: feedzy_feed_items +* New hook: feedzy_item_keyword +* Introduce SimplePie native strip_htmltags() method +* Use PNG icon as SVG fallback on the visual editor button +* Improve plugin's files structure +* readme.txt and hooks documentation update + += 2.2.2 = +* New hook: feedzy_meta_args + += 2.2.1 = +* Minor security improvements +* Better WordPress coding standard respect +* Minor fix if does not provide item's author +* Translations update + += 2.2 = +* Minor PHP improvements +* Remove logo from plugin meta +* New hook: feedzy_summary_input +* $feedURL argument added on every available hooks +* French translation update +* readme.txt and hooks documentation update + += 2.1 = +* internationalization of feeds dates and times (date_i18n) + += 2.0 = +* Widget added +* Translation update +* Better plugin file structure +* Improve image fetching with multiple enclosures +* Tested on WP 4.1 with success! + += 1.7.1 = +* Fix typo in PHP which cause issue on fetching images + += 1.7 = +* Minor Template and CSS changes +* New hook: feedzy_thumb_output +* New hook: feedzy_title_output +* New hook: feedzy_meta_output +* New hook: feedzy_summary_output +* New hook: feedzy_global_output +* readme.txt update + += 1.6 = +* Minor CSS fix +* Add actions: add_action('rss_item', 'feedzy_include_thumbnail_RSS'); & add_action('rss2_item', 'feedzy_include_thumbnail_RSS') + += 1.5.4 = +* Plugin meta translation +* Remove unnecessary spaces + += 1.5.3 = +* TinyMCE UI translation +* Better fetching image +* Space between items is calculated based on thumbs size + += 1.5.2 = +* Plugin meta update + += 1.5.1 = +* New logo +* Minor CSS fixes + += 1.5 = +* New param added to filter item with keywords +* Default thumb added +* Fix minor php issue +* Rename files of the plugin +* New logo + screenshot (assets) + += 1.4 = +* Add "default" parameter to fill image container if no image is fetch or if it is offline +* Add more control over numeric format in max, size, title & summarylength parameters + += 1.03 = +* Shortcode can now be displayed everywhere in the page (CSS is loaded via global var) + += 1.02 = +* Error on svn tag + += 1.01 = +* Minor CSS fix. +* Minor PHP changes. +* Readme.txt updated + += 1.0 = +* First release. + +== Upgrade Notice == + += 1.5 = +* IMPORTANT: You have to reactivate the plugin after its update! + += 1.0 = +* First release. diff --git a/dist/themeisle-hash.json b/dist/themeisle-hash.json new file mode 100644 index 00000000..1eb3fda5 --- /dev/null +++ b/dist/themeisle-hash.json @@ -0,0 +1 @@ +{"feedzy-rss-feed.php":"8f4e02e35d30683463729e6c5b036940","index.php":"71c0755260138a4b7b2182c3c61179f6","uninstall.php":"0ef18b49fd2c8fa27b1c1ee8fe679428","webpack.config.js":"e75f6dcbcad317c084d886958012687c"} \ No newline at end of file diff --git a/dist/uninstall.php b/dist/uninstall.php new file mode 100644 index 00000000..e40db284 --- /dev/null +++ b/dist/uninstall.php @@ -0,0 +1,24 @@ +