FEEDZY RSS Feeds Lite - Version 3.2.12

Version Description

  • 2018-08-16
Download this release

Release Info

Developer codeinwp
Plugin Icon 128x128 FEEDZY RSS Feeds Lite
Version 3.2.12
Comparing to
See all releases

Code changes from version 3.2.11 to 3.2.12

Files changed (87) hide show
  1. CHANGELOG.md +7 -0
  2. css/feedzy-rss-feeds.css +1 -1
  3. dist/CHANGELOG.md +220 -0
  4. dist/LICENSE.txt +339 -0
  5. dist/css/feedzy-rss-feeds.css +523 -0
  6. dist/css/form.css +725 -0
  7. dist/css/metabox-settings.css +2025 -0
  8. dist/feedzy-rss-feed.php +156 -0
  9. dist/form/form.php +135 -0
  10. dist/img/features-affiliate-ready.jpg +0 -0
  11. dist/img/features-caching.jpg +0 -0
  12. dist/img/features-feed-to-post.jpg +0 -0
  13. dist/img/features-templates.jpg +0 -0
  14. dist/img/features-widgets-support.jpg +0 -0
  15. dist/img/feedzy-default-template.jpg +0 -0
  16. dist/img/feedzy-default.jpg +0 -0
  17. dist/img/feedzy-style1-template.jpg +0 -0
  18. dist/img/feedzy-style2-template.jpg +0 -0
  19. dist/img/feedzy.png +0 -0
  20. dist/img/feedzy.svg +1 -0
  21. dist/includes/abstract/feedzy-rss-feeds-admin-abstract.php +1098 -0
  22. dist/includes/admin/feedzy-rss-feeds-admin.php +534 -0
  23. dist/includes/admin/feedzy-rss-feeds-options.php +84 -0
  24. dist/includes/admin/feedzy-rss-feeds-ui-lang.php +392 -0
  25. dist/includes/admin/feedzy-rss-feeds-ui.php +146 -0
  26. dist/includes/admin/feedzy-rss-feeds-upgrader.php +68 -0
  27. dist/includes/admin/feedzy-wp-widget.php +249 -0
  28. dist/includes/feedzy-rss-feeds-activator.php +49 -0
  29. dist/includes/feedzy-rss-feeds-deactivator.php +36 -0
  30. dist/includes/feedzy-rss-feeds-feed-tweaks.php +66 -0
  31. dist/includes/feedzy-rss-feeds-i18n.php +49 -0
  32. dist/includes/feedzy-rss-feeds-loader.php +155 -0
  33. dist/includes/feedzy-rss-feeds.php +259 -0
  34. dist/includes/gutenberg/dist/block.css +2 -0
  35. dist/includes/gutenberg/dist/block.js +502 -0
  36. dist/includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php +291 -0
  37. dist/includes/layouts/css/upsell.css +236 -0
  38. dist/includes/layouts/feedzy-upsell.php +47 -0
  39. dist/includes/layouts/header.php +25 -0
  40. dist/includes/layouts/settings.php +122 -0
  41. dist/includes/util/feedzy-rss-feeds-util-simplepie.php +85 -0
  42. dist/index.php +9 -0
  43. dist/js/feedzy-rss-feeds-ui-mce.js +96 -0
  44. dist/languages/feedzy-rss-feeds-de_DE.mo +0 -0
  45. dist/languages/feedzy-rss-feeds-de_DE.po +141 -0
  46. dist/languages/feedzy-rss-feeds-es_ES.mo +0 -0
  47. dist/languages/feedzy-rss-feeds-es_ES.po +163 -0
  48. dist/languages/feedzy-rss-feeds-fr_FR.mo +0 -0
  49. dist/languages/feedzy-rss-feeds-fr_FR.po +217 -0
  50. dist/languages/feedzy-rss-feeds-ja.mo +0 -0
  51. dist/languages/feedzy-rss-feeds-ja.po +189 -0
  52. dist/languages/feedzy-rss-feeds-sr_RS.mo +0 -0
  53. dist/languages/feedzy-rss-feeds-sr_RS.po +204 -0
  54. dist/languages/feedzy-rss-feeds.pot +459 -0
  55. dist/readme.md +695 -0
  56. dist/readme.txt +702 -0
  57. dist/themeisle-hash.json +1 -0
  58. dist/uninstall.php +24 -0
  59. dist/webpack.config.js +68 -0
  60. feedzy-rss-feed.php +1 -1
  61. img/Protect-your-Brand.jpg +0 -0
  62. img/Unlimited-Content.jpg +0 -0
  63. img/World-class-support.jpg +0 -0
  64. img/feedzy-rss-feeds-wordai.jpg +0 -0
  65. includes/abstract/feedzy-rss-feeds-admin-abstract.php +11 -0
  66. includes/admin/feedzy-rss-feeds-admin.php +3 -0
  67. includes/admin/feedzy-wp-widget.php +1 -0
  68. includes/feedzy-rss-feeds-feed-tweaks.php +12 -6
  69. includes/feedzy-rss-feeds.php +1 -1
  70. includes/gutenberg/dist/block.css +1 -1
  71. includes/gutenberg/dist/block.js +3 -3
  72. includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php +1 -1
  73. includes/layouts/css/upsell.css +5 -3
  74. includes/layouts/feedzy-upsell.php +70 -11
  75. includes/layouts/header.php +0 -11
  76. includes/layouts/settings.php +19 -1
  77. readme.md +15 -0
  78. readme.txt +18 -0
  79. themeisle-hash.json +1 -1
  80. vendor/autoload.php +1 -1
  81. vendor/autoload_52.php +1 -1
  82. vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php +3 -0
  83. vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget-dashboard-blog.php +16 -1
  84. vendor/codeinwp/themeisle-sdk/load.php +1 -1
  85. vendor/composer/autoload_real.php +5 -5
  86. vendor/composer/autoload_real_52.php +3 -3
  87. vendor/composer/installed.json +4 -4
CHANGELOG.md CHANGED
@@ -1,4 +1,11 @@
1
 
 
 
 
 
 
 
 
2
  ### v3.2.11 - 2018-06-26
3
  **Changes:**
4
  * New Gutenberg block for Feedzy RSS Feeds
1
 
2
+ ### v3.2.12 - 2018-08-16
3
+ **Changes:**
4
+ * Fixed compatibility with the Gutenberg block
5
+ * Added option to disable the featured image from being added to the website RSS feed
6
+ * Fixed problem with excluding keywords not working
7
+ * Updated the readme file
8
+
9
  ### v3.2.11 - 2018-06-26
10
  **Changes:**
11
  * New Gutenberg block for Feedzy RSS Feeds
css/feedzy-rss-feeds.css CHANGED
@@ -2,7 +2,7 @@
2
  * feedzy-rss-feeds.css
3
  * Feedzy RSS Feed
4
  * Copyright: (c) 2016 Themeisle, themeisle.com
5
- * Version: 3.2.11
6
  * Plugin Name: FEEDZY RSS Feeds
7
  * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
8
  * Author: Themeisle
2
  * feedzy-rss-feeds.css
3
  * Feedzy RSS Feed
4
  * Copyright: (c) 2016 Themeisle, themeisle.com
5
+ * Version: 3.2.12
6
  * Plugin Name: FEEDZY RSS Feeds
7
  * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
8
  * Author: Themeisle
dist/CHANGELOG.md ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ ### v3.2.12 - 2018-08-16
3
+ **Changes:**
4
+ * Fixed compatibility with the Gutenberg block
5
+ * Added option to disable the featured image from being added to the website RSS feed
6
+ * Fixed problem with excluding keywords not working
7
+ * Updated the readme file
8
+
9
+ ### v3.2.11 - 2018-06-26
10
+ **Changes:**
11
+ * New Gutenberg block for Feedzy RSS Feeds
12
+ * Fixed curl SSL problem with Feeds with HTTPS
13
+ * Fix content type, conflicting with Gutenberg
14
+ * Added compatibility with the pro version for full text import
15
+
16
+ ### v3.2.10 - 2018-04-02
17
+ **Changes:**
18
+ * Adds shortcode attribute for feed items order ( title ASC/DESC, date ASC/DESC).
19
+ * Improve documentation and examples.
20
+
21
+ ### v3.2.9 - 2018-03-07
22
+ **Changes:**
23
+ * Automatically fix deprecated google news feeds.
24
+ * Improve compatibility with the pro version.
25
+
26
+ ### v3.2.8 - 2018-02-20
27
+ **Changes:**
28
+ * Fix issue with medium feeds.
29
+ * Improves extensibility using various hooks.
30
+ * Fix feeds without schema protocol.
31
+
32
+ ### v3.2.7 - 2018-01-05
33
+ **Changes:**
34
+ * Fix compatibility with SiteOrigin Page Builder.
35
+ * Adds full content import from feed.
36
+ * Fix issue with img scraped from articles.
37
+
38
+ ### v3.2.6 - 2017-11-16
39
+ **Changes:**
40
+ * Adds compatibility with WordPress 4.9
41
+
42
+ ### v3.2.5 - 2017-11-03
43
+ **Changes:**
44
+ * Fix for double slash issue in image path.
45
+ * Fix for private ips when proxy is used.
46
+ * Add FAQ in sync with helpscout docs.
47
+
48
+ ### v3.2.4 - 2017-10-13
49
+ **Changes:**
50
+ * Fix for assets enqueue, loading them where are needed only.
51
+ * Removes duplicates readme.md files.
52
+
53
+ ### v3.2.1 - 2017-10-12
54
+ **Changes:**
55
+ * Adds global settings page.
56
+ * Adds User Agent and Proxy settings.
57
+ * Fix for some edge cases regarding images in the feed.
58
+
59
+ ### v3.2.0 - 2017-08-17
60
+ **Changes:**
61
+ * Fix for image URL issue following some strange patterns.
62
+ * Added fallback for broken feed, now if one feed from the list is not working, others will will be used.
63
+ * Added shortcode parameter for feed cache control.
64
+
65
+ ### v3.1.10 - 2017-08-03
66
+ **Changes:**
67
+ * Fixed typos in shortcode builder.
68
+ * Fixed image encoding issue.
69
+
70
+ ### v3.1.9 - 2017-07-21
71
+ **Changes:**
72
+ * Fixed issue with fetching images containg GET parameters.
73
+
74
+ ### v3.1.8 - 2017-07-17
75
+ **Changes:**
76
+ * Fixed image fetching issues.
77
+ * Fixed link opening behaviour
78
+ * Improved description ( Thanks to @chesio )
79
+
80
+ ### v3.1.7 - 2017-06-21
81
+ **Changes:**
82
+ * Added new sdk logic.
83
+ * Improved compatibility with the pro version.
84
+
85
+ ### v3.1.6 - 2017-06-02
86
+ **Changes:**
87
+ - Added sdk test.
88
+
89
+ ### v3.1.5 - 2017-05-31
90
+ **Changes:**
91
+ - Fixed sdk notifications issues.
92
+ - Added compatibility with pro version.
93
+
94
+ ### v3.1.4 - 2017-05-30
95
+ **Changes:**
96
+ - Added new doc for feedzy categories.
97
+ - Bump themeisle-sdk version.
98
+
99
+ ### v3.1.3 - 2017-05-29
100
+ **Changes:**
101
+ - * Added new SDK features.
102
+ - * Fixed some edge case issues on image parsing.
103
+
104
+ ### v3.1.2 - 2017-05-25
105
+ **Changes:**
106
+ - Release 3.1.2
107
+
108
+ ### v3.1.1 - 2017-05-22
109
+ **Changes:**
110
+ - Replace alt in span with title
111
+
112
+ ### v3.1.0 - 2017-05-17
113
+ **Changes:**
114
+ - Added feed to post compatibility
115
+ - Added categories to group urls
116
+ - Added filter for author url
117
+ - Fixed regex for jpeg images.
118
+
119
+ ### v3.0.12 - 2017-04-24
120
+ **Changes:**
121
+ - Fixed svn commit.
122
+
123
+ ### v3.0.11 - 2017-04-24
124
+ **Changes:**
125
+ - Changed deploy mechanism.
126
+
127
+
128
+ ### 3.0.10 - 24/04/2017
129
+
130
+ **Changes:**
131
+
132
+ - Fixed wrong image regex.
133
+ - Fixed image compression.
134
+ - Added wraith.
135
+
136
+
137
+ ### 3.0.9 - 21/02/2017
138
+
139
+ **Changes:**
140
+
141
+ - Fixed wrong empty title check.
142
+
143
+
144
+ ### 3.0.8 - 20/02/2017
145
+
146
+ **Changes:**
147
+
148
+ - Added sizes param to feedzy_thumb_output.
149
+
150
+ - Dont show items with empty title.
151
+
152
+
153
+ ### 3.0.7 - 03/02/2017
154
+
155
+ **Changes:**
156
+
157
+ - Fixed is_new when pro is active.
158
+
159
+ - Fixed redundant auto options.
160
+
161
+ - Fixed auto option in widget for image option.
162
+
163
+
164
+ ### 3.0.6 - 27/01/2017
165
+
166
+ **Changes:**
167
+
168
+ -
169
+
170
+ - Added feedzy_feed_timestamp filter.
171
+
172
+ - Fixed issue with edge cases feed urls.
173
+
174
+ - Fixed error when using [] on string vars.
175
+
176
+
177
+ ### 3.0.5 - 13/01/2017
178
+
179
+ **Changes:**
180
+
181
+ - Fixed issue with google news feeds
182
+
183
+
184
+ ### 3.0.4 - 11/01/2017
185
+
186
+ **Changes:**
187
+
188
+ - Release 3.0.4
189
+
190
+
191
+ ### 3.0.3 - 10/01/2017
192
+
193
+ **Changes:**
194
+
195
+ - Added compatibility with the new pro options
196
+
197
+ - Added new documentation help
198
+
199
+ - Added legacy filters and functions
200
+
201
+
202
+ ### 3.0.2 - 06/01/2017
203
+
204
+ **Changes:**
205
+
206
+ - Added default image class back
207
+
208
+
209
+ ### 3.0.1 - 05/01/2017
210
+
211
+ **Changes:**
212
+
213
+ - Fixed html markup error
214
+
215
+
216
+ ### 3.0.0 - 03/01/2017
217
+
218
+ **Changes:**
219
+
220
+ - Release 3.0.0 version
dist/LICENSE.txt ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ <one line to give the program's name and a brief idea of what it does.>
294
+ Copyright (C) <year> <name of author>
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ <signature of Ty Coon>, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
dist/css/feedzy-rss-feeds.css ADDED
@@ -0,0 +1,523 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * feedzy-rss-feeds.css
3
+ * Feedzy RSS Feed
4
+ * Copyright: (c) 2016 Themeisle, themeisle.com
5
+ * Version: 3.2.12
6
+ * Plugin Name: FEEDZY RSS Feeds
7
+ * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
8
+ * Author: Themeisle
9
+ */
10
+ .feedzy-rss > ul {
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+
15
+ /*noinspection CssUnusedSymbol*/
16
+ .feedzy-rss .rss_item {
17
+ border-bottom: 1px solid #eee;
18
+ list-style: none;
19
+ }
20
+
21
+ .feedzy-rss .rss_item .title {
22
+ font-weight: bold;
23
+ }
24
+
25
+ /*noinspection CssUnusedSymbol*/
26
+ .feedzy-rss .rss_item:after {
27
+ display: block;
28
+ clear: both;
29
+ content: "";
30
+ }
31
+
32
+ /*noinspection CssUnusedSymbol*/
33
+ .feedzy-rss .rss_item .rss_image {
34
+ float: left;
35
+ position: relative;
36
+ border: none;
37
+ text-decoration: none;
38
+ }
39
+
40
+ .feedzy-rss .rss_item .rss_image span {
41
+ display: inline-block;
42
+ position: absolute;
43
+ width: 100%;
44
+ height: 100%;
45
+ background-position: 50%;
46
+ background-size: cover;
47
+ }
48
+
49
+ /*noinspection CssUnusedSymbol*/
50
+ .feedzy-rss .rss_item .rss_image .fetched {
51
+ z-index: 9;
52
+ }
53
+
54
+ .feedzy-rss .rss_item .rss_image {
55
+ margin: 0.3em 1em 0 0;
56
+ }
57
+
58
+ .feedzy-rss .rss_item .rss_content small {
59
+ display: block;
60
+ font-size: 0.9em;
61
+ font-style: italic;
62
+ }
63
+
64
+ /*TinyMce UI button*/
65
+ /*noinspection CssUnusedSymbol*/
66
+ i.mce-i-feedzy-icon {
67
+ background-image: none, url("../img/feedzy.svg"), url("../img/feedzy.png");
68
+ }
69
+
70
+ #feedzy-rss-button-insert {
71
+ border-color: #4cae4c;
72
+ color: #fff;
73
+ background-color: #5cb85c;
74
+ }
75
+
76
+ #feedzy-rss-button-insert button {
77
+ color: #fff;
78
+ }
79
+
80
+ #feedzy-rss-button-insert:hover,
81
+ #feedzy-rss-button-insert:focus {
82
+ border-color: #398439;
83
+ color: #fff;
84
+ background-color: #449d44;
85
+ }
86
+
87
+ #feedzy-rss-button-cancel {
88
+ border-color: #ccc;
89
+ color: #333;
90
+ background-color: #fff;
91
+ }
92
+
93
+ #feedzy-rss-button-cancel button {
94
+ color: #333;
95
+ }
96
+
97
+ #feedzy-rss-button-cancel:hover,
98
+ #feedzy-rss-button-cancel:focus {
99
+ border-color: #adadad;
100
+ color: #333;
101
+ background-color: #e6e6e6;
102
+ }
103
+
104
+ #feedzy-rss-button-pro {
105
+ position: absolute;
106
+ left: 10px !important;
107
+ border-color: #46b8da;
108
+ color: #fff;
109
+ background-color: #5bc0de;
110
+ }
111
+
112
+ #feedzy-rss-button-pro button {
113
+ color: #fff;
114
+ }
115
+
116
+ #feedzy-rss-button-pro:hover,
117
+ #feedzy-rss-button-pro:focus {
118
+ border-color: #269abc;
119
+ color: #fff;
120
+ background-color: #31b0d5;
121
+ }
122
+
123
+ #feedzy-rss-insert-dialog-title {
124
+ font-weight: 300;
125
+ text-align: center;
126
+ }
127
+
128
+ /* PRO */
129
+ .feedzy-rss ul {
130
+ margin: 0 -2%;
131
+ }
132
+
133
+ .feedzy-rss ul:before,
134
+ .feedzy-rss ul:after {
135
+ display: table;
136
+ content: " ";
137
+ }
138
+
139
+ .feedzy-rss ul:after {
140
+ clear: both;
141
+ }
142
+
143
+ .feedzy-rss .rss_item {
144
+ margin: 2%;
145
+ padding: 0;
146
+ }
147
+
148
+ /* Default */
149
+ /*
150
+ .feedzy-rss .feedzy-default .rss_image,
151
+ .feedzy-rss .feedzy-default .rss_content_wrap {
152
+ display: inline-block;
153
+ width: 100%;
154
+ }
155
+
156
+ .feedzy-rss .feedzy-default .rss_image {
157
+ float: none;
158
+ padding: 0;
159
+ text-align: center;
160
+ width: 100%;
161
+ }
162
+
163
+ .feedzy-rss .feedzy-default .rss_content_wrap {
164
+ margin: 10px 0 0;
165
+ padding: 0;
166
+ }*/
167
+
168
+ /* Style1 */
169
+ .feedzy-rss .feedzy-style1 .rss_image,
170
+ .feedzy-rss .feedzy-style1 .rss_content_wrap {
171
+ display: inline-block;
172
+ width: 100%;
173
+ }
174
+
175
+ .feedzy-rss .feedzy-style1 .rss_item .rss_image span {
176
+ width: 100%;
177
+ }
178
+
179
+ .feedzy-rss .feedzy-style1 .rss_content_wrap {
180
+ text-align: left;
181
+ }
182
+
183
+ .feedzy-rss .feedzy-style1 .rss_item {
184
+ text-align: center;
185
+ }
186
+
187
+ .feedzy-rss .feedzy-style2 .rss_item .rss_image {
188
+ float: none;
189
+ }
190
+
191
+ .feedzy-rss .feedzy-style2 .rss_item .rss_image span {
192
+ width: 100%;
193
+ }
194
+
195
+ .feedzy-rss .feedzy-style2 .rss_content_wrap {
196
+ text-align: left;
197
+ }
198
+
199
+ .feedzy-rss .feedzy-style2 .rss_item {
200
+ text-align: center;
201
+ }
202
+
203
+ .feedzy-rss .feedzy-style1 .rss_image {
204
+ float: none;
205
+ width: 100%;
206
+ padding: 0;
207
+ text-align: center;
208
+ -webkit-transition: 0.75s ease;
209
+ transition: 0.75s ease;
210
+ }
211
+
212
+ .feedzy-rss .feedzy-style1 .rss_image a {
213
+ border: 3px solid transparent;
214
+ border-radius: 50%;
215
+ -webkit-transition: 0.5s ease;
216
+ transition: 0.5s ease;
217
+ }
218
+
219
+ .feedzy-rss .feedzy-style1 .rss_image a span {
220
+ display: inline-block;
221
+ left: 0;
222
+ border-radius: 50%;
223
+ }
224
+
225
+ .feedzy-rss .feedzy-style1 .rss_item:hover .rss_image a {
226
+ box-shadow: 0 0 10px rgba(0,0,0,0.25);
227
+ }
228
+
229
+ .feedzy-rss .feedzy-style1 .rss_content_wrap {
230
+ margin: 10px 0 0;
231
+ padding: 0;
232
+ }
233
+
234
+ .feedzy-rss .feedzy-style1 .rss_content_wrap .title a {
235
+ text-decoration: none;
236
+ }
237
+
238
+ .feedzy-rss .feedzy-style1 .rss_content_wrap .title a:hover {
239
+ text-decoration: underline;
240
+ }
241
+
242
+ .feedzy-rss .feedzy-style1 .rss_content .description {
243
+ margin: 0;
244
+ padding: 0;
245
+ font-size: 90%;
246
+ }
247
+
248
+ .feedzy-rss .feedzy-style1 .rss_content .price-wrap {
249
+ margin: 10px 0 0;
250
+ text-align: center;
251
+ }
252
+
253
+ .feedzy-rss .feedzy-style1 .rss_content .price {
254
+ display: inline-block;
255
+ padding: 5px 10px;
256
+ border-radius: 5px;
257
+ color: #fff;
258
+ background: #4f6d8d;
259
+ font-weight: 700;
260
+ }
261
+
262
+ /* Style2 */
263
+ .feedzy-rss .feedzy-style2 .rss_item {
264
+ padding: 0 !important;
265
+ border: 1px solid #e3edeb;
266
+ border-radius: 5px;
267
+ }
268
+
269
+ .feedzy-rss .feedzy-style2 .rss_image span {
270
+ left: 0;
271
+ }
272
+
273
+ .feedzy-rss .feedzy-style2 .rss_image,
274
+ .feedzy-rss .feedzy-style2 .rss_content_wrap {
275
+ display: inline-block;
276
+ width: 100%;
277
+ }
278
+
279
+ .feedzy-rss .feedzy-style2 .rss_image {
280
+ overflow: hidden;
281
+ width: 100%;
282
+ padding: 0;
283
+ border-bottom: 7px solid #355c7d;
284
+ line-height: 0;
285
+ text-align: center;
286
+ }
287
+
288
+ .feedzy-rss .feedzy-style2 .rss_image a span {
289
+ display: inline-block;
290
+ -webkit-transition: 0.3s ease;
291
+ transition: 0.3s ease;
292
+ }
293
+
294
+ .feedzy-rss .feedzy-style2 .rss_item:hover .rss_image a span {
295
+ -webkit-transform: scale(1.2);
296
+ -ms-transform: scale(1.2);
297
+ transform: scale(1.2);
298
+ }
299
+
300
+ .feedzy-rss .feedzy-style2 .rss_content_wrap {
301
+ margin: 0;
302
+ padding: 0;
303
+ letter-spacing: 0;
304
+ }
305
+
306
+ .feedzy-rss .feedzy-style2 .rss_content_wrap .title {
307
+ display: block;
308
+ padding: 10px 15px;
309
+ }
310
+
311
+ .feedzy-rss .feedzy-style2 .rss_content_wrap .title a {
312
+ /*color: #355c7d;*/
313
+ text-decoration: none;
314
+ }
315
+
316
+ .feedzy-rss .feedzy-style2 .rss_content_wrap .title a:hover {
317
+ text-decoration: underline;
318
+ }
319
+
320
+ .feedzy-rss .feedzy-style2 .rss_content .meta {
321
+ padding: 10px 15px;
322
+ border-top: 1px solid #e3edeb;
323
+ border-bottom: 1px solid #e3edeb;
324
+ background-color: #f1f5f4;
325
+ }
326
+
327
+ .feedzy-rss .feedzy-style2 .rss_content .description {
328
+ margin: 0;
329
+ padding: 10px 15px;
330
+ font-size: 90%;
331
+ line-height: 1.5;
332
+ }
333
+
334
+ .feedzy-rss .feedzy-style2 .rss_content .price-wrap {
335
+ margin: 10px 0 15px;
336
+ text-align: center;
337
+ }
338
+
339
+ .feedzy-rss .feedzy-style2 .rss_content .price {
340
+ display: inline-block;
341
+ padding: 8px 15px;
342
+ color: #fff;
343
+ background: #355c7d;
344
+ font-weight: 700;
345
+ }
346
+
347
+ /* Columns */
348
+ .feedzy-rss .feedzy-rss-col-1 {
349
+ width: 96%;
350
+ }
351
+
352
+ /* SCHIMBAT DIN ID in CLASA */
353
+ .feedzy-rss .feedzy-rss-col-2,
354
+ .feedzy-rss .feedzy-rss-col-3,
355
+ .feedzy-rss .feedzy-rss-col-4,
356
+ .feedzy-rss .feedzy-rss-col-5,
357
+ .feedzy-rss .feedzy-rss-col-6 {
358
+ float: left;
359
+ width: 96%;
360
+ }
361
+
362
+ @media screen and (min-width: 768px) {
363
+ .feedzy-rss .feedzy-rss-col-2,
364
+ .feedzy-rss .feedzy-rss-col-3,
365
+ .feedzy-rss .feedzy-rss-col-4,
366
+ .feedzy-rss .feedzy-rss-col-5,
367
+ .feedzy-rss .feedzy-rss-col-6 {
368
+ width: 46%;
369
+ }
370
+
371
+ .feedzy-rss .feedzy-rss-col-2:nth-child(2n+1),
372
+ .feedzy-rss .feedzy-rss-col-3:nth-child(2n+1),
373
+ .feedzy-rss .feedzy-rss-col-4:nth-child(2n+1),
374
+ .feedzy-rss .feedzy-rss-col-5:nth-child(2n+1),
375
+ .feedzy-rss .feedzy-rss-col-6:nth-child(2n+1) {
376
+ clear: both;
377
+ }
378
+ }
379
+
380
+ @media screen and (min-width: 992px) {
381
+ .feedzy-rss .feedzy-rss-col-3,
382
+ .feedzy-rss .feedzy-rss-col-4,
383
+ .feedzy-rss .feedzy-rss-col-5,
384
+ .feedzy-rss .feedzy-rss-col-6 {
385
+ width: 29.33333%;
386
+ }
387
+
388
+ .feedzy-rss .feedzy-rss-col-3:nth-child(2n+1),
389
+ .feedzy-rss .feedzy-rss-col-4:nth-child(2n+1),
390
+ .feedzy-rss .feedzy-rss-col-5:nth-child(2n+1),
391
+ .feedzy-rss .feedzy-rss-col-6:nth-child(2n+1) {
392
+ clear: none;
393
+ }
394
+
395
+ .feedzy-rss .feedzy-rss-col-3:nth-child(3n+1),
396
+ .feedzy-rss .feedzy-rss-col-4:nth-child(3n+1),
397
+ .feedzy-rss .feedzy-rss-col-5:nth-child(3n+1),
398
+ .feedzy-rss .feedzy-rss-col-6:nth-child(3n+1) {
399
+ clear: both;
400
+ }
401
+ }
402
+
403
+ @media screen and (min-width: 1200px) {
404
+ .feedzy-rss .feedzy-rss-col-4 {
405
+ width: 21%;
406
+ }
407
+
408
+ .feedzy-rss .feedzy-rss-col-5 {
409
+ width: 16%;
410
+ }
411
+
412
+ .feedzy-rss .feedzy-rss-col-6 {
413
+ width: 12.66666%;
414
+ }
415
+
416
+ .feedzy-rss .feedzy-rss-col-4:nth-child(3n+1),
417
+ .feedzy-rss .feedzy-rss-col-5:nth-child(3n+1),
418
+ .feedzy-rss .feedzy-rss-col-6:nth-child(3n+1) {
419
+ clear: none;
420
+ }
421
+
422
+ .feedzy-rss .feedzy-rss-col-4:nth-child(4n+1),
423
+ .feedzy-rss .feedzy-rss-col-5:nth-child(5n+1),
424
+ .feedzy-rss .feedzy-rss-col-6:nth-child(6n+1) {
425
+ /* PANA AICI INCLUSIV */
426
+ clear: both;
427
+ }
428
+ }
429
+
430
+ /* The switch - the box around the slider */
431
+ .feedzy-switch {
432
+ display: inline-block;
433
+ position: relative;
434
+ width: 30px;
435
+ height: 18px;
436
+ margin-left: 20px;
437
+ }
438
+
439
+ /* Hide default HTML checkbox */
440
+ .feedzy-switch input {
441
+ display: none;
442
+ }
443
+
444
+ /* The slider */
445
+ .feedzy-tracking sup {
446
+ vertical-align: 3px;
447
+ }
448
+
449
+ .feedzy-track {
450
+ position: absolute;
451
+ top: 0;
452
+ right: 0;
453
+ bottom: 0;
454
+ left: 0;
455
+ background-color: #ccc;
456
+ cursor: pointer;
457
+ -webkit-transition: 0.4s;
458
+ transition: 0.4s;
459
+ }
460
+
461
+ .feedzy-track:before {
462
+ position: absolute;
463
+ bottom: 1.5px;
464
+ left: 2px;
465
+ width: 15px;
466
+ height: 15px;
467
+ background-color: white;
468
+ content: "";
469
+ -webkit-transition: 0.4s;
470
+ transition: 0.4s;
471
+ }
472
+
473
+ input:checked + .feedzy-track {
474
+ background-color: #0085ba;
475
+ }
476
+
477
+ input:focus + .feedzy-track {
478
+ box-shadow: 0 0 1px #0085ba;
479
+ }
480
+
481
+ input:checked + .feedzy-track:before {
482
+ -webkit-transform: translateX(11px);
483
+ -ms-transform: translateX(11px);
484
+ transform: translateX(11px);
485
+ }
486
+
487
+ /* Rounded sliders */
488
+ .feedzy-track.visualizer-round {
489
+ border-radius: 34px;
490
+ }
491
+
492
+ .feedzy-track.visualizer-round:before {
493
+ border-radius: 50%;
494
+ }
495
+
496
+ .feedzy-tracking p small sup {
497
+ margin-left: -3px;
498
+ }
499
+
500
+ .feedzy-tracking p {
501
+ padding-left: 14px;
502
+ color: #23282d;
503
+ font-size: 12px;
504
+ line-height: 12px;
505
+ text-align: left;
506
+ }
507
+
508
+ .feedzy-tracking span {
509
+ margin-left: 10px;
510
+ color: #23282d;
511
+ background: none;
512
+ font-size: 14px;
513
+ font-weight: bold;
514
+ }
515
+
516
+ .post-type-feedzy_categories .postbox-container div#submitdiv,
517
+ .post-type-feedzy_categories #feedzy_category_feeds_rn {
518
+ display: block !important;
519
+ }
520
+
521
+ .post-type-feedzy_categories .postbox-container > div > .postbox:not(#feedzy_category_feeds) {
522
+ display: none;
523
+ }
dist/css/form.css ADDED
@@ -0,0 +1,725 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * form.css
3
+ * Feedzy RSS Feeds Form CSS
4
+ */
5
+
6
+ html {
7
+ box-sizing: border-box;
8
+ font-size: 62.5%;
9
+ }
10
+
11
+ body {
12
+ color: #606c76;
13
+ font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
14
+ font-size: 1.6em;
15
+ font-weight: 300;
16
+ line-height: 1.6;
17
+ letter-spacing: 0.01em;
18
+ }
19
+
20
+ *,
21
+ *:after,
22
+ *:before {
23
+ box-sizing: inherit;
24
+ }
25
+
26
+ .button,
27
+ button,
28
+ input[type="button"],
29
+ input[type="reset"],
30
+ input[type="submit"] {
31
+ display: inline-block;
32
+ height: 3.8rem;
33
+ padding: 0 3.0rem;
34
+ border: 0.1rem solid #31b0d5;
35
+ border-radius: 0.4rem;
36
+ color: #fff;
37
+ background-color: #31b0d5;
38
+ font-size: 1.1rem;
39
+ font-weight: 700;
40
+ line-height: 3.8rem;
41
+ text-align: center;
42
+ white-space: nowrap;
43
+ text-decoration: none;
44
+ letter-spacing: 0.1rem;
45
+ text-transform: uppercase;
46
+ cursor: pointer;
47
+ }
48
+
49
+ .button:focus,
50
+ .button:hover,
51
+ button:focus,
52
+ button:hover,
53
+ input[type="button"]:focus,
54
+ input[type="button"]:hover,
55
+ input[type="reset"]:focus,
56
+ input[type="reset"]:hover,
57
+ input[type="submit"]:focus,
58
+ input[type="submit"]:hover {
59
+ border-color: #606c76;
60
+ outline: 0;
61
+ color: #fff;
62
+ background-color: #606c76;
63
+ }
64
+
65
+ .button[disabled],
66
+ button[disabled],
67
+ input[type="button"][disabled],
68
+ input[type="reset"][disabled],
69
+ input[type="submit"][disabled] {
70
+ opacity: 0.5;
71
+ cursor: default;
72
+ }
73
+
74
+ .button[disabled]:focus,
75
+ .button[disabled]:hover,
76
+ button[disabled]:focus,
77
+ button[disabled]:hover,
78
+ input[type="button"][disabled]:focus,
79
+ input[type="button"][disabled]:hover,
80
+ input[type="reset"][disabled]:focus,
81
+ input[type="reset"][disabled]:hover,
82
+ input[type="submit"][disabled]:focus,
83
+ input[type="submit"][disabled]:hover {
84
+ border-color: #31b0d5;
85
+ background-color: #31b0d5;
86
+ }
87
+
88
+ .button.button-outline,
89
+ button.button-outline,
90
+ input[type="button"].button-outline,
91
+ input[type="reset"].button-outline,
92
+ input[type="submit"].button-outline {
93
+ color: #31b0d5;
94
+ background-color: transparent;
95
+ }
96
+
97
+ .button.button-outline:focus,
98
+ .button.button-outline:hover,
99
+ button.button-outline:focus,
100
+ button.button-outline:hover,
101
+ input[type="button"].button-outline:focus,
102
+ input[type="button"].button-outline:hover,
103
+ input[type="reset"].button-outline:focus,
104
+ input[type="reset"].button-outline:hover,
105
+ input[type="submit"].button-outline:focus,
106
+ input[type="submit"].button-outline:hover {
107
+ border-color: #606c76;
108
+ color: #606c76;
109
+ background-color: transparent;
110
+ }
111
+
112
+ .button.button-outline[disabled]:focus,
113
+ .button.button-outline[disabled]:hover,
114
+ button.button-outline[disabled]:focus,
115
+ button.button-outline[disabled]:hover,
116
+ input[type="button"].button-outline[disabled]:focus,
117
+ input[type="button"].button-outline[disabled]:hover,
118
+ input[type="reset"].button-outline[disabled]:focus,
119
+ input[type="reset"].button-outline[disabled]:hover,
120
+ input[type="submit"].button-outline[disabled]:focus,
121
+ input[type="submit"].button-outline[disabled]:hover {
122
+ border-color: inherit;
123
+ color: #31b0d5;
124
+ }
125
+
126
+ .button.button-clear,
127
+ button.button-clear,
128
+ input[type="button"].button-clear,
129
+ input[type="reset"].button-clear,
130
+ input[type="submit"].button-clear {
131
+ border-color: transparent;
132
+ color: #31b0d5;
133
+ background-color: transparent;
134
+ }
135
+
136
+ .button.button-clear:focus,
137
+ .button.button-clear:hover,
138
+ button.button-clear:focus,
139
+ button.button-clear:hover,
140
+ input[type="button"].button-clear:focus,
141
+ input[type="button"].button-clear:hover,
142
+ input[type="reset"].button-clear:focus,
143
+ input[type="reset"].button-clear:hover,
144
+ input[type="submit"].button-clear:focus,
145
+ input[type="submit"].button-clear:hover {
146
+ border-color: transparent;
147
+ color: #606c76;
148
+ background-color: transparent;
149
+ }
150
+
151
+ .button.button-clear[disabled]:focus,
152
+ .button.button-clear[disabled]:hover,
153
+ button.button-clear[disabled]:focus,
154
+ button.button-clear[disabled]:hover,
155
+ input[type="button"].button-clear[disabled]:focus,
156
+ input[type="button"].button-clear[disabled]:hover,
157
+ input[type="reset"].button-clear[disabled]:focus,
158
+ input[type="reset"].button-clear[disabled]:hover,
159
+ input[type="submit"].button-clear[disabled]:focus,
160
+ input[type="submit"].button-clear[disabled]:hover {
161
+ color: #31b0d5;
162
+ }
163
+
164
+ hr {
165
+ margin: 3.0rem 0;
166
+ border: 0;
167
+ border-top: 0.1rem solid #f4f5f6;
168
+ }
169
+
170
+ input[type="email"],
171
+ input[type="number"],
172
+ input[type="password"],
173
+ input[type="search"],
174
+ input[type="tel"],
175
+ input[type="text"],
176
+ input[type="url"],
177
+ textarea,
178
+ select {
179
+ box-sizing: inherit;
180
+ width: 100%;
181
+ height: 3.8rem;
182
+ padding: 0.6rem 1.0rem;
183
+ border: 0.1rem solid #d1d1d1;
184
+ border-radius: 0.4rem;
185
+ background-color: transparent;
186
+ box-shadow: none;
187
+
188
+ -webkit-appearance: none;
189
+ -moz-appearance: none;
190
+ appearance: none;
191
+ }
192
+
193
+ input[type="email"]:focus,
194
+ input[type="number"]:focus,
195
+ input[type="password"]:focus,
196
+ input[type="search"]:focus,
197
+ input[type="tel"]:focus,
198
+ input[type="text"]:focus,
199
+ input[type="url"]:focus,
200
+ textarea:focus,
201
+ select:focus {
202
+ border-color: #31b0d5;
203
+ outline: 0;
204
+ }
205
+
206
+ select {
207
+ padding-right: 3.0rem;
208
+ background: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"14\" viewBox=\"0 0 29 14\" width=\"29\"><path fill=\"#d1d1d1\" d=\"M9.37727 3.625l5.08154 6.93523L19.54036 3.625\"/></svg>") center right no-repeat;
209
+ }
210
+
211
+ select:focus {
212
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"14\" viewBox=\"0 0 29 14\" width=\"29\"><path fill=\"#31b0d5\" d=\"M9.37727 3.625l5.08154 6.93523L19.54036 3.625\"/></svg>");
213
+ }
214
+
215
+ textarea {
216
+ min-height: 6.5rem;
217
+ }
218
+
219
+ label,
220
+ legend {
221
+ display: block;
222
+ margin-bottom: 0.5rem;
223
+ font-size: 1.2rem;
224
+ font-weight: 300;
225
+ }
226
+
227
+ fieldset {
228
+ padding: 0;
229
+ border-width: 0;
230
+ }
231
+
232
+ input[type="checkbox"],
233
+ input[type="radio"] {
234
+ display: inline;
235
+ }
236
+
237
+ .label-inline {
238
+ display: inline-block;
239
+ margin-left: 0.5rem;
240
+ font-weight: normal;
241
+ }
242
+
243
+ .container {
244
+ position: relative;
245
+ width: 100%;
246
+ max-width: 112.0rem;
247
+ margin: 0 auto;
248
+ padding: 0 2.0rem;
249
+ }
250
+
251
+ .row {
252
+ display: -webkit-box;
253
+ display: -webkit-flex;
254
+ display: -ms-flexbox;
255
+ display: flex;
256
+ flex-direction: column;
257
+ width: 100%;
258
+ padding: 0;
259
+
260
+ -webkit-box-direction: normal;
261
+ -webkit-box-orient: vertical;
262
+ -webkit-flex-direction: column;
263
+ -ms-flex-direction: column;
264
+ }
265
+
266
+ .row.row-no-padding {
267
+ padding: 0;
268
+ }
269
+
270
+ .row.row-no-padding > .column {
271
+ padding: 0;
272
+ }
273
+
274
+ .row.row-wrap {
275
+ -webkit-flex-wrap: wrap;
276
+ -ms-flex-wrap: wrap;
277
+ flex-wrap: wrap;
278
+ }
279
+
280
+ .row.row-top {
281
+ -webkit-align-items: flex-start;
282
+ align-items: flex-start;
283
+ -webkit-box-align: start;
284
+ -ms-flex-align: start;
285
+ }
286
+
287
+ .row.row-bottom {
288
+ -webkit-align-items: flex-end;
289
+ align-items: flex-end;
290
+ -webkit-box-align: end;
291
+ -ms-flex-align: end;
292
+ }
293
+
294
+ .row.row-center {
295
+ -webkit-align-items: center;
296
+ align-items: center;
297
+ -webkit-box-align: center;
298
+ -ms-flex-align: center;
299
+ }
300
+
301
+ .row.row-stretch {
302
+ -webkit-align-items: stretch;
303
+ align-items: stretch;
304
+ -webkit-box-align: stretch;
305
+ -ms-flex-align: stretch;
306
+ }
307
+
308
+ .row.row-baseline {
309
+ -webkit-align-items: baseline;
310
+ align-items: baseline;
311
+ -webkit-box-align: baseline;
312
+ -ms-flex-align: baseline;
313
+ }
314
+
315
+ .row .column {
316
+ display: block;
317
+ width: 100%;
318
+ max-width: 100%;
319
+ margin-left: 0;
320
+
321
+ -webkit-box-flex: 1;
322
+ -webkit-flex: 1;
323
+ -ms-flex: 1;
324
+ flex: 1;
325
+ }
326
+
327
+ .row .column.column-offset-10 {
328
+ margin-left: 10%;
329
+ }
330
+
331
+ .row .column.column-offset-20 {
332
+ margin-left: 20%;
333
+ }
334
+
335
+ .row .column.column-offset-25 {
336
+ margin-left: 25%;
337
+ }
338
+
339
+ .row .column.column-offset-33,
340
+ .row .column.column-offset-34 {
341
+ margin-left: 33.3333%;
342
+ }
343
+
344
+ .row .column.column-offset-50 {
345
+ margin-left: 50%;
346
+ }
347
+
348
+ .row .column.column-offset-66,
349
+ .row .column.column-offset-67 {
350
+ margin-left: 66.6666%;
351
+ }
352
+
353
+ .row .column.column-offset-75 {
354
+ margin-left: 75%;
355
+ }
356
+
357
+ .row .column.column-offset-80 {
358
+ margin-left: 80%;
359
+ }
360
+
361
+ .row .column.column-offset-90 {
362
+ margin-left: 90%;
363
+ }
364
+
365
+ .row .column.column-10 {
366
+ max-width: 10%;
367
+
368
+ -webkit-box-flex: 0;
369
+ -webkit-flex: 0 0 10%;
370
+ -ms-flex: 0 0 10%;
371
+ flex: 0 0 10%;
372
+ }
373
+
374
+ .row .column.column-20 {
375
+ max-width: 20%;
376
+
377
+ -webkit-box-flex: 0;
378
+ -webkit-flex: 0 0 20%;
379
+ -ms-flex: 0 0 20%;
380
+ flex: 0 0 20%;
381
+ }
382
+
383
+ .row .column.column-25 {
384
+ max-width: 25%;
385
+
386
+ -webkit-box-flex: 0;
387
+ -webkit-flex: 0 0 25%;
388
+ -ms-flex: 0 0 25%;
389
+ flex: 0 0 25%;
390
+ }
391
+
392
+ .row .column.column-33,
393
+ .row .column.column-34 {
394
+ max-width: 33.3333%;
395
+
396
+ -webkit-box-flex: 0;
397
+ -webkit-flex: 0 0 33.3333%;
398
+ -ms-flex: 0 0 33.3333%;
399
+ flex: 0 0 33.3333%;
400
+ }
401
+
402
+ .row .column.column-40 {
403
+ max-width: 40%;
404
+
405
+ -webkit-box-flex: 0;
406
+ -webkit-flex: 0 0 40%;
407
+ -ms-flex: 0 0 40%;
408
+ flex: 0 0 40%;
409
+ }
410
+
411
+ .row .column.column-50 {
412
+ max-width: 50%;
413
+
414
+ -webkit-box-flex: 0;
415
+ -webkit-flex: 0 0 50%;
416
+ -ms-flex: 0 0 50%;
417
+ flex: 0 0 50%;
418
+ }
419
+
420
+ .row .column.column-60 {
421
+ max-width: 60%;
422
+
423
+ -webkit-box-flex: 0;
424
+ -webkit-flex: 0 0 60%;
425
+ -ms-flex: 0 0 60%;
426
+ flex: 0 0 60%;
427
+ }
428
+
429
+ .row .column.column-66,
430
+ .row .column.column-67 {
431
+ max-width: 66.6666%;
432
+
433
+ -webkit-box-flex: 0;
434
+ -webkit-flex: 0 0 66.6666%;
435
+ -ms-flex: 0 0 66.6666%;
436
+ flex: 0 0 66.6666%;
437
+ }
438
+
439
+ .row .column.column-75 {
440
+ max-width: 75%;
441
+
442
+ -webkit-box-flex: 0;
443
+ -webkit-flex: 0 0 75%;
444
+ -ms-flex: 0 0 75%;
445
+ flex: 0 0 75%;
446
+ }
447
+
448
+ .row .column.column-80 {
449
+ max-width: 80%;
450
+
451
+ -webkit-box-flex: 0;
452
+ -webkit-flex: 0 0 80%;
453
+ -ms-flex: 0 0 80%;
454
+ flex: 0 0 80%;
455
+ }
456
+
457
+ .row .column.column-90 {
458
+ max-width: 90%;
459
+
460
+ -webkit-box-flex: 0;
461
+ -webkit-flex: 0 0 90%;
462
+ -ms-flex: 0 0 90%;
463
+ flex: 0 0 90%;
464
+ }
465
+
466
+ .row .column .column-top {
467
+ -webkit-align-self: flex-start;
468
+ align-self: flex-start;
469
+ -ms-flex-item-align: start;
470
+ }
471
+
472
+ .row .column .column-bottom {
473
+ -webkit-align-self: flex-end;
474
+ align-self: flex-end;
475
+ -ms-flex-item-align: end;
476
+ }
477
+
478
+ .row .column .column-center {
479
+ -webkit-align-self: center;
480
+ align-self: center;
481
+ -ms-flex-item-align: center;
482
+ -ms-grid-row-align: center;
483
+ }
484
+
485
+ @media (min-width: 40rem) {
486
+ .row {
487
+ flex-direction: row;
488
+ width: -webkit-calc(100% + 2.0rem);
489
+ width: calc(100% + 2.0rem);
490
+ margin-left: -1.0rem;
491
+
492
+ -webkit-box-direction: normal;
493
+ -webkit-box-orient: horizontal;
494
+ -webkit-flex-direction: row;
495
+ -ms-flex-direction: row;
496
+ }
497
+
498
+ .row .column {
499
+ margin-bottom: inherit;
500
+ padding: 0 1.0rem;
501
+ }
502
+ }
503
+
504
+ a {
505
+ color: #31b0d5;
506
+ text-decoration: none;
507
+ }
508
+
509
+ a:focus,
510
+ a:hover {
511
+ color: #606c76;
512
+ }
513
+
514
+ dl,
515
+ ol,
516
+ ul {
517
+ margin-top: 0;
518
+ padding-left: 0;
519
+ list-style: none;
520
+ }
521
+
522
+ dl dl,
523
+ dl ol,
524
+ dl ul,
525
+ ol dl,
526
+ ol ol,
527
+ ol ul,
528
+ ul dl,
529
+ ul ol,
530
+ ul ul {
531
+ margin: 1.5rem 0 1.5rem 3.0rem;
532
+ font-size: 90%;
533
+ }
534
+
535
+ ol {
536
+ list-style: decimal inside;
537
+ }
538
+
539
+ ul {
540
+ list-style: circle inside;
541
+ }
542
+
543
+ .button,
544
+ button,
545
+ dd,
546
+ dt,
547
+ li {
548
+ margin-bottom: 1.0rem;
549
+ }
550
+
551
+ fieldset,
552
+ input,
553
+ select,
554
+ textarea {
555
+ margin-bottom: 1.5rem;
556
+ }
557
+
558
+ blockquote,
559
+ dl,
560
+ figure,
561
+ form,
562
+ ol,
563
+ p,
564
+ pre,
565
+ table,
566
+ ul {
567
+ margin-bottom: 2.5rem;
568
+ }
569
+
570
+ table {
571
+ width: 100%;
572
+ }
573
+
574
+ td,
575
+ th {
576
+ padding: 1.2rem 1.5rem;
577
+ border-bottom: 0.1rem solid #e1e1e1;
578
+ text-align: left;
579
+ }
580
+
581
+ td:first-child,
582
+ th:first-child {
583
+ padding-left: 0;
584
+ }
585
+
586
+ td:last-child,
587
+ th:last-child {
588
+ padding-right: 0;
589
+ }
590
+
591
+ p {
592
+ margin-top: 0;
593
+ font-size: 1.4rem;
594
+ }
595
+
596
+ h1,
597
+ h2,
598
+ h3,
599
+ h4,
600
+ h5,
601
+ h6 {
602
+ margin-top: 0;
603
+ margin-bottom: 2.0rem;
604
+ font-weight: 300;
605
+ letter-spacing: -0.1rem;
606
+ }
607
+
608
+ h1 {
609
+ font-size: 4.0rem;
610
+ line-height: 1.2;
611
+ }
612
+
613
+ h2 {
614
+ font-size: 3.6rem;
615
+ line-height: 1.25;
616
+ }
617
+
618
+ h3 {
619
+ font-size: 3.0rem;
620
+ line-height: 1.3;
621
+ }
622
+
623
+ h4 {
624
+ font-size: 2.4rem;
625
+ line-height: 1.35;
626
+ letter-spacing: -0.08rem;
627
+ }
628
+
629
+ h5 {
630
+ border-bottom: 1px solid #31b0d5;
631
+ font-size: 1.8rem;
632
+ line-height: 1.5;
633
+ letter-spacing: -0.05rem;
634
+ }
635
+
636
+ h6 {
637
+ font-size: 1.6rem;
638
+ line-height: 1.4;
639
+ letter-spacing: 0;
640
+ }
641
+
642
+ @media (min-width: 40rem) {
643
+ h1 {
644
+ font-size: 5.0rem;
645
+ }
646
+
647
+ h2 {
648
+ font-size: 4.2rem;
649
+ }
650
+
651
+ h3 {
652
+ font-size: 3.6rem;
653
+ }
654
+
655
+ h4 {
656
+ font-size: 3.0rem;
657
+ }
658
+
659
+ h5 {
660
+ font-size: 2.4rem;
661
+ }
662
+
663
+ h6 {
664
+ font-size: 1.5rem;
665
+ }
666
+ }
667
+
668
+ img {
669
+ max-width: 100%;
670
+ }
671
+
672
+ .clearfix:after {
673
+ display: table;
674
+ clear: both;
675
+ content: " ";
676
+ }
677
+
678
+ .float-left {
679
+ float: left;
680
+ }
681
+
682
+ .float-right {
683
+ float: right;
684
+ }
685
+
686
+ .feedzy_section_pro {
687
+ background-color: #fefefe;
688
+ }
689
+
690
+ .feedzy_section_pro h5 {
691
+ border-bottom-color: #d9a404;
692
+ color: #d9a404;
693
+ }
694
+
695
+ .feedzy_pro_tag {
696
+ margin-left: 10px;
697
+ padding: 3px 6px;
698
+ border-radius: 3px;
699
+ color: #fff;
700
+ background-color: #d9a404;
701
+ }
702
+
703
+ .feedzy-radio-image {
704
+ display: inline-block;
705
+ width: 100px;
706
+ margin-right: 20px;
707
+ padding-bottom: 60px;
708
+ }
709
+
710
+ .feedzy-template-default {
711
+ background: url(../img/feedzy-default-template.jpg) no-repeat bottom center;
712
+ }
713
+
714
+ .feedzy-template-style1 {
715
+ background: url(../img/feedzy-style1-template.jpg) no-repeat bottom center;
716
+ }
717
+
718
+ .feedzy-template-style2 {
719
+ background: url(../img/feedzy-style2-template.jpg) no-repeat bottom center;
720
+ }
721
+
722
+ input[disabled],
723
+ select[disabled] {
724
+ cursor: not-allowed;
725
+ }
dist/css/metabox-settings.css ADDED
@@ -0,0 +1,2025 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * import-metabox-edit.css
3
+ *
4
+ * @since 1.2.0
5
+ * @package feedzy-rss-feeds-pro
6
+ */
7
+ .fz-form-control {
8
+ display: block;
9
+ width: 100%;
10
+ height: 34px;
11
+ padding: 6px 12px;
12
+ border: 1px solid #ccc;
13
+ border-radius: 4px;
14
+ color: #555;
15
+ background-color: #fff;
16
+ background-image: none;
17
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
18
+ font-size: 14px;
19
+ line-height: 1.42857143;
20
+ -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;
21
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
22
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
23
+ }
24
+
25
+ .fz-form-control:focus {
26
+ border-color: #66afe9;
27
+ outline: 0;
28
+ box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(102, 175, 233, 0.6);
29
+ }
30
+
31
+ .fz-form-control::-moz-placeholder {
32
+ opacity: 1;
33
+ color: #999;
34
+ }
35
+
36
+ .fz-form-control:-ms-input-placeholder {
37
+ color: #999;
38
+ }
39
+
40
+ .fz-form-control::-webkit-input-placeholder {
41
+ color: #999;
42
+ }
43
+
44
+ .fz-form-control::-ms-expand {
45
+ border: 0;
46
+ background-color: transparent;
47
+ }
48
+
49
+ .fz-form-control[disabled],
50
+ .fz-form-control[readonly],
51
+ fieldset[disabled] .fz-form-control {
52
+ opacity: 1;
53
+ background-color: #eee;
54
+ }
55
+
56
+ .fz-form-control[disabled],
57
+ fieldset[disabled] .fz-form-control {
58
+ cursor: not-allowed;
59
+ }
60
+
61
+ textarea.fz-form-control {
62
+ height: auto;
63
+ }
64
+
65
+ input[type="search"] {
66
+ -webkit-appearance: none;
67
+ }
68
+
69
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
70
+ input[type="date"].fz-form-control,
71
+ input[type="time"].fz-form-control,
72
+ input[type="datetime-local"].fz-form-control,
73
+ input[type="month"].fz-form-control {
74
+ line-height: 34px;
75
+ }
76
+
77
+ input[type="date"].input-sm,
78
+ input[type="time"].input-sm,
79
+ input[type="datetime-local"].input-sm,
80
+ input[type="month"].input-sm,
81
+ .fz-input-group-sm input[type="date"],
82
+ .fz-input-group-sm input[type="time"],
83
+ .fz-input-group-sm input[type="datetime-local"],
84
+ .fz-input-group-sm input[type="month"] {
85
+ line-height: 30px;
86
+ }
87
+
88
+ input[type="date"].input-lg,
89
+ input[type="time"].input-lg,
90
+ input[type="datetime-local"].input-lg,
91
+ input[type="month"].input-lg,
92
+ .fz-input-group-lg input[type="date"],
93
+ .fz-input-group-lg input[type="time"],
94
+ .fz-input-group-lg input[type="datetime-local"],
95
+ .fz-input-group-lg input[type="month"] {
96
+ line-height: 46px;
97
+ }
98
+ }
99
+
100
+ .fz-form-group {
101
+ margin-bottom: 15px;
102
+ }
103
+
104
+ .radio,
105
+ .checkbox {
106
+ display: block;
107
+ position: relative;
108
+ margin-top: 10px;
109
+ margin-bottom: 10px;
110
+ }
111
+
112
+ .radio label,
113
+ .checkbox label {
114
+ min-height: 20px;
115
+ margin-bottom: 0;
116
+ padding-left: 20px;
117
+ font-weight: normal;
118
+ cursor: pointer;
119
+ }
120
+
121
+ .radio input[type="radio"],
122
+ .radio-inline input[type="radio"],
123
+ .checkbox input[type="checkbox"],
124
+ .checkbox-inline input[type="checkbox"] {
125
+ position: absolute;
126
+ margin-top: 4px \9;
127
+ margin-left: -20px;
128
+ }
129
+
130
+ .radio + .radio,
131
+ .checkbox + .checkbox {
132
+ margin-top: -5px;
133
+ }
134
+
135
+ .radio-inline,
136
+ .checkbox-inline {
137
+ display: inline-block;
138
+ position: relative;
139
+ margin-bottom: 0;
140
+ padding-left: 20px;
141
+ font-weight: normal;
142
+ vertical-align: middle;
143
+ cursor: pointer;
144
+ }
145
+
146
+ .radio-inline + .radio-inline,
147
+ .checkbox-inline + .checkbox-inline {
148
+ margin-top: 0;
149
+ margin-left: 10px;
150
+ }
151
+
152
+ input[type="radio"][disabled],
153
+ input[type="checkbox"][disabled],
154
+ input[type="radio"].disabled,
155
+ input[type="checkbox"].disabled,
156
+ fieldset[disabled] input[type="radio"],
157
+ fieldset[disabled] input[type="checkbox"] {
158
+ cursor: not-allowed;
159
+ }
160
+
161
+ .radio-inline.disabled,
162
+ .checkbox-inline.disabled,
163
+ fieldset[disabled] .radio-inline,
164
+ fieldset[disabled] .checkbox-inline {
165
+ cursor: not-allowed;
166
+ }
167
+
168
+ .radio.disabled label,
169
+ .checkbox.disabled label,
170
+ fieldset[disabled] .radio label,
171
+ fieldset[disabled] .checkbox label {
172
+ cursor: not-allowed;
173
+ }
174
+
175
+ .fz-form-control-static {
176
+ min-height: 34px;
177
+ margin-bottom: 0;
178
+ padding-top: 7px;
179
+ padding-bottom: 7px;
180
+ }
181
+
182
+ .fz-form-control-static.input-lg,
183
+ .fz-form-control-static.input-sm {
184
+ padding-right: 0;
185
+ padding-left: 0;
186
+ }
187
+
188
+ .input-sm {
189
+ height: 30px;
190
+ padding: 5px 10px;
191
+ border-radius: 3px;
192
+ font-size: 12px;
193
+ line-height: 1.5;
194
+ }
195
+
196
+ select.input-sm {
197
+ height: 30px;
198
+ line-height: 30px;
199
+ }
200
+
201
+ textarea.input-sm,
202
+ select[multiple].input-sm {
203
+ height: auto;
204
+ }
205
+
206
+ .fz-form-group-sm .fz-form-control {
207
+ height: 30px;
208
+ padding: 5px 10px;
209
+ border-radius: 3px;
210
+ font-size: 12px;
211
+ line-height: 1.5;
212
+ }
213
+
214
+ .fz-form-group-sm select.fz-form-control {
215
+ height: 30px;
216
+ line-height: 30px;
217
+ }
218
+
219
+ .fz-form-group-sm textarea.fz-form-control,
220
+ .fz-form-group-sm select[multiple].fz-form-control {
221
+ height: auto;
222
+ }
223
+
224
+ .fz-form-group-sm .fz-form-control-static {
225
+ height: 30px;
226
+ min-height: 32px;
227
+ padding: 6px 10px;
228
+ font-size: 12px;
229
+ line-height: 1.5;
230
+ }
231
+
232
+ .input-lg {
233
+ height: 46px;
234
+ padding: 10px 16px;
235
+ border-radius: 6px;
236
+ font-size: 18px;
237
+ line-height: 1.3333333;
238
+ }
239
+
240
+ select.input-lg {
241
+ height: 46px;
242
+ line-height: 46px;
243
+ }
244
+
245
+ textarea.input-lg,
246
+ select[multiple].input-lg {
247
+ height: auto;
248
+ }
249
+
250
+ .fz-form-group-lg .fz-form-control {
251
+ height: 46px;
252
+ padding: 10px 16px;
253
+ border-radius: 6px;
254
+ font-size: 18px;
255
+ line-height: 1.3333333;
256
+ }
257
+
258
+ .fz-form-group-lg select.fz-form-control {
259
+ height: 46px;
260
+ line-height: 46px;
261
+ }
262
+
263
+ .fz-form-group-lg textarea.fz-form-control,
264
+ .fz-form-group-lg select[multiple].fz-form-control {
265
+ height: auto;
266
+ }
267
+
268
+ .fz-form-group-lg .fz-form-control-static {
269
+ height: 46px;
270
+ min-height: 38px;
271
+ padding: 11px 16px;
272
+ font-size: 18px;
273
+ line-height: 1.3333333;
274
+ }
275
+
276
+ .has-feedback {
277
+ position: relative;
278
+ }
279
+
280
+ .has-feedback .fz-form-control {
281
+ padding-right: 42.5px;
282
+ }
283
+
284
+ .fz-form-control-feedback {
285
+ display: block;
286
+ position: absolute;
287
+ z-index: 2;
288
+ top: 0;
289
+ right: 0;
290
+ width: 34px;
291
+ height: 34px;
292
+ line-height: 34px;
293
+ text-align: center;
294
+ pointer-events: none;
295
+ }
296
+
297
+ .input-lg + .fz-form-control-feedback,
298
+ .fz-input-group-lg + .fz-form-control-feedback,
299
+ .fz-form-group-lg .fz-form-control + .fz-form-control-feedback {
300
+ width: 46px;
301
+ height: 46px;
302
+ line-height: 46px;
303
+ }
304
+
305
+ .input-sm + .fz-form-control-feedback,
306
+ .fz-input-group-sm + .fz-form-control-feedback,
307
+ .fz-form-group-sm .fz-form-control + .fz-form-control-feedback {
308
+ width: 30px;
309
+ height: 30px;
310
+ line-height: 30px;
311
+ }
312
+
313
+ .has-success .help-block,
314
+ .has-success .control-label,
315
+ .has-success .radio,
316
+ .has-success .checkbox,
317
+ .has-success .radio-inline,
318
+ .has-success .checkbox-inline,
319
+ .has-success.radio label,
320
+ .has-success.checkbox label,
321
+ .has-success.radio-inline label,
322
+ .has-success.checkbox-inline label {
323
+ color: #3c763d;
324
+ }
325
+
326
+ .has-success .fz-form-control {
327
+ border-color: #3c763d;
328
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
329
+ }
330
+
331
+ .has-success .fz-form-control:focus {
332
+ border-color: #2b542c;
333
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
334
+ }
335
+
336
+ .has-success .fz-input-group-addon {
337
+ border-color: #3c763d;
338
+ color: #3c763d;
339
+ background-color: #dff0d8;
340
+ }
341
+
342
+ .has-success .fz-form-control-feedback {
343
+ color: #3c763d;
344
+ }
345
+
346
+ .has-warning .help-block,
347
+ .has-warning .control-label,
348
+ .has-warning .radio,
349
+ .has-warning .checkbox,
350
+ .has-warning .radio-inline,
351
+ .has-warning .checkbox-inline,
352
+ .has-warning.radio label,
353
+ .has-warning.checkbox label,
354
+ .has-warning.radio-inline label,
355
+ .has-warning.checkbox-inline label {
356
+ color: #8a6d3b;
357
+ }
358
+
359
+ .has-warning .fz-form-control {
360
+ border-color: #8a6d3b;
361
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
362
+ }
363
+
364
+ .has-warning .fz-form-control:focus {
365
+ border-color: #66512c;
366
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
367
+ }
368
+
369
+ .has-warning .fz-input-group-addon {
370
+ border-color: #8a6d3b;
371
+ color: #8a6d3b;
372
+ background-color: #fcf8e3;
373
+ }
374
+
375
+ .has-warning .fz-form-control-feedback {
376
+ color: #8a6d3b;
377
+ }
378
+
379
+ .has-error .help-block,
380
+ .has-error .control-label,
381
+ .has-error .radio,
382
+ .has-error .checkbox,
383
+ .has-error .radio-inline,
384
+ .has-error .checkbox-inline,
385
+ .has-error.radio label,
386
+ .has-error.checkbox label,
387
+ .has-error.radio-inline label,
388
+ .has-error.checkbox-inline label {
389
+ color: #a94442;
390
+ }
391
+
392
+ .has-error .fz-form-control {
393
+ border-color: #a94442;
394
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
395
+ }
396
+
397
+ .has-error .fz-form-control:focus {
398
+ border-color: #843534;
399
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
400
+ }
401
+
402
+ .has-error .fz-input-group-addon {
403
+ border-color: #a94442;
404
+ color: #a94442;
405
+ background-color: #f2dede;
406
+ }
407
+
408
+ .has-error .fz-form-control-feedback {
409
+ color: #a94442;
410
+ }
411
+
412
+ .has-feedback label ~ .fz-form-control-feedback {
413
+ top: 25px;
414
+ }
415
+
416
+ .has-feedback label.feedzy-sr-only ~ .fz-form-control-feedback {
417
+ top: 0;
418
+ }
419
+
420
+ .help-block {
421
+ display: block;
422
+ margin-top: 5px;
423
+ margin-bottom: 10px;
424
+ color: #737373;
425
+ }
426
+
427
+ @media (min-width: 768px) {
428
+ .form-inline .fz-form-group {
429
+ display: inline-block;
430
+ margin-bottom: 0;
431
+ vertical-align: middle;
432
+ }
433
+
434
+ .form-inline .fz-form-control {
435
+ display: inline-block;
436
+ width: auto;
437
+ vertical-align: middle;
438
+ }
439
+
440
+ .form-inline .fz-form-control-static {
441
+ display: inline-block;
442
+ }
443
+
444
+ .form-inline .fz-input-group {
445
+ display: inline-table;
446
+ vertical-align: middle;
447
+ }
448
+
449
+ .form-inline .fz-input-group .fz-input-group-addon,
450
+ .form-inline .fz-input-group .fz-input-group-btn,
451
+ .form-inline .fz-input-group .fz-form-control {
452
+ width: auto;
453
+ }
454
+
455
+ .form-inline .fz-input-group > .fz-form-control {
456
+ width: 100%;
457
+ }
458
+
459
+ .form-inline .control-label {
460
+ margin-bottom: 0;
461
+ vertical-align: middle;
462
+ }
463
+
464
+ .form-inline .radio,
465
+ .form-inline .checkbox {
466
+ display: inline-block;
467
+ margin-top: 0;
468
+ margin-bottom: 0;
469
+ vertical-align: middle;
470
+ }
471
+
472
+ .form-inline .radio label,
473
+ .form-inline .checkbox label {
474
+ padding-left: 0;
475
+ }
476
+
477
+ .form-inline .radio input[type="radio"],
478
+ .form-inline .checkbox input[type="checkbox"] {
479
+ position: relative;
480
+ margin-left: 0;
481
+ }
482
+
483
+ .form-inline .has-feedback .fz-form-control-feedback {
484
+ top: 0;
485
+ }
486
+ }
487
+
488
+ .form-horizontal .radio,
489
+ .form-horizontal .checkbox,
490
+ .form-horizontal .radio-inline,
491
+ .form-horizontal .checkbox-inline {
492
+ margin-top: 0;
493
+ margin-bottom: 0;
494
+ padding-top: 7px;
495
+ }
496
+
497
+ .form-horizontal .radio,
498
+ .form-horizontal .checkbox {
499
+ min-height: 27px;
500
+ }
501
+
502
+ .form-horizontal .fz-form-group {
503
+ margin-right: -15px;
504
+ margin-left: -15px;
505
+ }
506
+
507
+ @media (min-width: 768px) {
508
+ .form-horizontal .control-label {
509
+ margin-bottom: 0;
510
+ padding-top: 7px;
511
+ text-align: right;
512
+ }
513
+ }
514
+
515
+ .form-horizontal .has-feedback .fz-form-control-feedback {
516
+ right: 15px;
517
+ }
518
+
519
+ @media (min-width: 768px) {
520
+ .form-horizontal .fz-form-group-lg .control-label {
521
+ padding-top: 11px;
522
+ font-size: 18px;
523
+ }
524
+ }
525
+
526
+ @media (min-width: 768px) {
527
+ .form-horizontal .fz-form-group-sm .control-label {
528
+ padding-top: 6px;
529
+ font-size: 12px;
530
+ }
531
+ }
532
+
533
+ .fz-btn {
534
+ display: inline-block;
535
+ margin-bottom: 0;
536
+ padding: 6px 12px;
537
+ border: 1px solid transparent;
538
+ border-radius: 4px;
539
+ background-image: none;
540
+ font-size: 14px;
541
+ font-weight: normal;
542
+ line-height: 1.42857143;
543
+ text-align: center;
544
+ vertical-align: middle;
545
+ white-space: nowrap;
546
+ cursor: pointer;
547
+ -webkit-user-select: none;
548
+ -moz-user-select: none;
549
+ -ms-user-select: none;
550
+ user-select: none;
551
+
552
+ -ms-touch-action: manipulation;
553
+ touch-action: manipulation;
554
+ }
555
+
556
+ .fz-btn:focus,
557
+ .fz-btn:active:focus,
558
+ .fz-btn.active:focus,
559
+ .fz-btn.focus,
560
+ .fz-btn:active.focus,
561
+ .fz-btn.active.focus {
562
+ outline: 5px auto -webkit-focus-ring-color;
563
+ outline-offset: -2px;
564
+ }
565
+
566
+ .fz-btn:hover,
567
+ .fz-btn:focus,
568
+ .fz-btn.focus {
569
+ color: #333;
570
+ text-decoration: none;
571
+ }
572
+
573
+ .fz-btn:active,
574
+ .fz-btn.active {
575
+ outline: 0;
576
+ background-image: none;
577
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
578
+ }
579
+
580
+ .fz-btn.disabled,
581
+ .fz-btn[disabled],
582
+ fieldset[disabled] .fz-btn {
583
+ opacity: 0.65;
584
+ box-shadow: none;
585
+ cursor: not-allowed;
586
+
587
+ filter: alpha(opacity=65);
588
+ }
589
+
590
+ a.fz-btn.disabled,
591
+ fieldset[disabled] a.fz-btn {
592
+ pointer-events: none;
593
+ }
594
+
595
+ .fz-btn-default {
596
+ border-color: #ccc;
597
+ color: #333;
598
+ background-color: #fff;
599
+ }
600
+
601
+ .fz-btn-default:focus,
602
+ .fz-btn-default.focus {
603
+ border-color: #8c8c8c;
604
+ color: #333;
605
+ background-color: #e6e6e6;
606
+ }
607
+
608
+ .fz-btn-default:hover {
609
+ border-color: #adadad;
610
+ color: #333;
611
+ background-color: #e6e6e6;
612
+ }
613
+
614
+ .fz-btn-default:active,
615
+ .fz-btn-default.active,
616
+ .open > .dropdown-toggle.fz-btn-default {
617
+ border-color: #adadad;
618
+ color: #333;
619
+ background-color: #e6e6e6;
620
+ }
621
+
622
+ .fz-btn-default:active:hover,
623
+ .fz-btn-default.active:hover,
624
+ .open > .dropdown-toggle.fz-btn-default:hover,
625
+ .fz-btn-default:active:focus,
626
+ .fz-btn-default.active:focus,
627
+ .open > .dropdown-toggle.fz-btn-default:focus,
628
+ .fz-btn-default:active.focus,
629
+ .fz-btn-default.active.focus,
630
+ .open > .dropdown-toggle.fz-btn-default.focus {
631
+ border-color: #8c8c8c;
632
+ color: #333;
633
+ background-color: #d4d4d4;
634
+ }
635
+
636
+ .fz-btn-default:active,
637
+ .fz-btn-default.active,
638
+ .open > .dropdown-toggle.fz-btn-default {
639
+ background-image: none;
640
+ }
641
+
642
+ .fz-btn-default.disabled:hover,
643
+ .fz-btn-default[disabled]:hover,
644
+ fieldset[disabled] .fz-btn-default:hover,
645
+ .fz-btn-default.disabled:focus,
646
+ .fz-btn-default[disabled]:focus,
647
+ fieldset[disabled] .fz-btn-default:focus,
648
+ .fz-btn-default.disabled.focus,
649
+ .fz-btn-default[disabled].focus,
650
+ fieldset[disabled] .fz-btn-default.focus {
651
+ border-color: #ccc;
652
+ background-color: #fff;
653
+ }
654
+
655
+ .fz-btn-default .badge {
656
+ color: #fff;
657
+ background-color: #333;
658
+ }
659
+
660
+ .fz-btn-primary {
661
+ border-color: #2e6da4;
662
+ color: #fff;
663
+ background-color: #337ab7;
664
+ }
665
+
666
+ .fz-btn-primary:focus,
667
+ .fz-btn-primary.focus {
668
+ border-color: #122b40;
669
+ color: #fff;
670
+ background-color: #286090;
671
+ }
672
+
673
+ .fz-btn-primary:hover {
674
+ border-color: #204d74;
675
+ color: #fff;
676
+ background-color: #286090;
677
+ }
678
+
679
+ .fz-btn-primary:active,
680
+ .fz-btn-primary.active,
681
+ .open > .dropdown-toggle.fz-btn-primary {
682
+ border-color: #204d74;
683
+ color: #fff;
684
+ background-color: #286090;
685
+ }
686
+
687
+ .fz-btn-primary:active:hover,
688
+ .fz-btn-primary.active:hover,
689
+ .open > .dropdown-toggle.fz-btn-primary:hover,
690
+ .fz-btn-primary:active:focus,
691
+ .fz-btn-primary.active:focus,
692
+ .open > .dropdown-toggle.fz-btn-primary:focus,
693
+ .fz-btn-primary:active.focus,
694
+ .fz-btn-primary.active.focus,
695
+ .open > .dropdown-toggle.fz-btn-primary.focus {
696
+ border-color: #122b40;
697
+ color: #fff;
698
+ background-color: #204d74;
699
+ }
700
+
701
+ .fz-btn-primary:active,
702
+ .fz-btn-primary.active,
703
+ .open > .dropdown-toggle.fz-btn-primary {
704
+ background-image: none;
705
+ }
706
+
707
+ .fz-btn-primary.disabled:hover,
708
+ .fz-btn-primary[disabled]:hover,
709
+ fieldset[disabled] .fz-btn-primary:hover,
710
+ .fz-btn-primary.disabled:focus,
711
+ .fz-btn-primary[disabled]:focus,
712
+ fieldset[disabled] .fz-btn-primary:focus,
713
+ .fz-btn-primary.disabled.focus,
714
+ .fz-btn-primary[disabled].focus,
715
+ fieldset[disabled] .fz-btn-primary.focus {
716
+ border-color: #2e6da4;
717
+ background-color: #337ab7;
718
+ }
719
+
720
+ .fz-btn-primary .badge {
721
+ color: #337ab7;
722
+ background-color: #fff;
723
+ }
724
+
725
+ .fz-btn-success {
726
+ border-color: #4cae4c;
727
+ color: #fff;
728
+ background-color: #5cb85c;
729
+ }
730
+
731
+ .fz-btn-success:focus,
732
+ .fz-btn-success.focus {
733
+ border-color: #255625;
734
+ color: #fff;
735
+ background-color: #449d44;
736
+ }
737
+
738
+ .fz-btn-success:hover {
739
+ border-color: #398439;
740
+ color: #fff;
741
+ background-color: #449d44;
742
+ }
743
+
744
+ .fz-btn-success:active,
745
+ .fz-btn-success.active,
746
+ .open > .dropdown-toggle.fz-btn-success {
747
+ border-color: #398439;
748
+ color: #fff;
749
+ background-color: #449d44;
750
+ }
751
+
752
+ .fz-btn-success:active:hover,
753
+ .fz-btn-success.active:hover,
754
+ .open > .dropdown-toggle.fz-btn-success:hover,
755
+ .fz-btn-success:active:focus,
756
+ .fz-btn-success.active:focus,
757
+ .open > .dropdown-toggle.fz-btn-success:focus,
758
+ .fz-btn-success:active.focus,
759
+ .fz-btn-success.active.focus,
760
+ .open > .dropdown-toggle.fz-btn-success.focus {
761
+ border-color: #255625;
762
+ color: #fff;
763
+ background-color: #398439;
764
+ }
765
+
766
+ .fz-btn-success:active,
767
+ .fz-btn-success.active,
768
+ .open > .dropdown-toggle.fz-btn-success {
769
+ background-image: none;
770
+ }
771
+
772
+ .fz-btn-success.disabled:hover,
773
+ .fz-btn-success[disabled]:hover,
774
+ fieldset[disabled] .fz-btn-success:hover,
775
+ .fz-btn-success.disabled:focus,
776
+ .fz-btn-success[disabled]:focus,
777
+ fieldset[disabled] .fz-btn-success:focus,
778
+ .fz-btn-success.disabled.focus,
779
+ .fz-btn-success[disabled].focus,
780
+ fieldset[disabled] .fz-btn-success.focus {
781
+ border-color: #4cae4c;
782
+ background-color: #5cb85c;
783
+ }
784
+
785
+ .fz-btn-success .badge {
786
+ color: #5cb85c;
787
+ background-color: #fff;
788
+ }
789
+
790
+ .fz-btn-info {
791
+ border-color: #46b8da;
792
+ color: #fff;
793
+ background-color: #5bc0de;
794
+ }
795
+
796
+ .fz-btn-info:focus,
797
+ .fz-btn-info.focus {
798
+ border-color: #1b6d85;
799
+ color: #fff;
800
+ background-color: #31b0d5;
801
+ }
802
+
803
+ .fz-btn-info:hover {
804
+ border-color: #269abc;
805
+ color: #fff;
806
+ background-color: #31b0d5;
807
+ }
808
+
809
+ .fz-btn-info:active,
810
+ .fz-btn-info.active,
811
+ .open > .dropdown-toggle.fz-btn-info {
812
+ border-color: #269abc;
813
+ color: #fff;
814
+ background-color: #31b0d5;
815
+ }
816
+
817
+ .fz-btn-info:active:hover,
818
+ .fz-btn-info.active:hover,
819
+ .open > .dropdown-toggle.fz-btn-info:hover,
820
+ .fz-btn-info:active:focus,
821
+ .fz-btn-info.active:focus,
822
+ .open > .dropdown-toggle.fz-btn-info:focus,
823
+ .fz-btn-info:active.focus,
824
+ .fz-btn-info.active.focus,
825
+ .open > .dropdown-toggle.fz-btn-info.focus {
826
+ border-color: #1b6d85;
827
+ color: #fff;
828
+ background-color: #269abc;
829
+ }
830
+
831
+ .fz-btn-info:active,
832
+ .fz-btn-info.active,
833
+ .open > .dropdown-toggle.fz-btn-info {
834
+ background-image: none;
835
+ }
836
+
837
+ .fz-btn-info.disabled:hover,
838
+ .fz-btn-info[disabled]:hover,
839
+ fieldset[disabled] .fz-btn-info:hover,
840
+ .fz-btn-info.disabled:focus,
841
+ .fz-btn-info[disabled]:focus,
842
+ fieldset[disabled] .fz-btn-info:focus,
843
+ .fz-btn-info.disabled.focus,
844
+ .fz-btn-info[disabled].focus,
845
+ fieldset[disabled] .fz-btn-info.focus {
846
+ border-color: #46b8da;
847
+ background-color: #5bc0de;
848
+ }
849
+
850
+ .fz-btn-info .badge {
851
+ color: #5bc0de;
852
+ background-color: #fff;
853
+ }
854
+
855
+ .fz-btn-warning {
856
+ border-color: #eea236;
857
+ color: #fff;
858
+ background-color: #f0ad4e;
859
+ }
860
+
861
+ .fz-btn-warning:focus,
862
+ .fz-btn-warning.focus {
863
+ border-color: #985f0d;
864
+ color: #fff;
865
+ background-color: #ec971f;
866
+ }
867
+
868
+ .fz-btn-warning:hover {
869
+ border-color: #d58512;
870
+ color: #fff;
871
+ background-color: #ec971f;
872
+ }
873
+
874
+ .fz-btn-warning:active,
875
+ .fz-btn-warning.active,
876
+ .open > .dropdown-toggle.fz-btn-warning {
877
+ border-color: #d58512;
878
+ color: #fff;
879
+ background-color: #ec971f;
880
+ }
881
+
882
+ .fz-btn-warning:active:hover,
883
+ .fz-btn-warning.active:hover,
884
+ .open > .dropdown-toggle.fz-btn-warning:hover,
885
+ .fz-btn-warning:active:focus,
886
+ .fz-btn-warning.active:focus,
887
+ .open > .dropdown-toggle.fz-btn-warning:focus,
888
+ .fz-btn-warning:active.focus,
889
+ .fz-btn-warning.active.focus,
890
+ .open > .dropdown-toggle.fz-btn-warning.focus {
891
+ border-color: #985f0d;
892
+ color: #fff;
893
+ background-color: #d58512;
894
+ }
895
+
896
+ .fz-btn-warning:active,
897
+ .fz-btn-warning.active,
898
+ .open > .dropdown-toggle.fz-btn-warning {
899
+ background-image: none;
900
+ }
901
+
902
+ .fz-btn-warning.disabled:hover,
903
+ .fz-btn-warning[disabled]:hover,
904
+ fieldset[disabled] .fz-btn-warning:hover,
905
+ .fz-btn-warning.disabled:focus,
906
+ .fz-btn-warning[disabled]:focus,
907
+ fieldset[disabled] .fz-btn-warning:focus,
908
+ .fz-btn-warning.disabled.focus,
909
+ .fz-btn-warning[disabled].focus,
910
+ fieldset[disabled] .fz-btn-warning.focus {
911
+ border-color: #eea236;
912
+ background-color: #f0ad4e;
913
+ }
914
+
915
+ .fz-btn-warning .badge {
916
+ color: #f0ad4e;
917
+ background-color: #fff;
918
+ }
919
+
920
+ .fz-btn-danger {
921
+ border-color: #d43f3a;
922
+ color: #fff;
923
+ background-color: #d9534f;
924
+ }
925
+
926
+ .fz-btn-danger:focus,
927
+ .fz-btn-danger.focus {
928
+ border-color: #761c19;
929
+ color: #fff;
930
+ background-color: #c9302c;
931
+ }
932
+
933
+ .fz-btn-danger:hover {
934
+ border-color: #ac2925;
935
+ color: #fff;
936
+ background-color: #c9302c;
937
+ }
938
+
939
+ .fz-btn-danger:active,
940
+ .fz-btn-danger.active,
941
+ .open > .dropdown-toggle.fz-btn-danger {
942
+ border-color: #ac2925;
943
+ color: #fff;
944
+ background-color: #c9302c;
945
+ }
946
+
947
+ .fz-btn-danger:active:hover,
948
+ .fz-btn-danger.active:hover,
949
+ .open > .dropdown-toggle.fz-btn-danger:hover,
950
+ .fz-btn-danger:active:focus,
951
+ .fz-btn-danger.active:focus,
952
+ .open > .dropdown-toggle.fz-btn-danger:focus,
953
+ .fz-btn-danger:active.focus,
954
+ .fz-btn-danger.active.focus,
955
+ .open > .dropdown-toggle.fz-btn-danger.focus {
956
+ border-color: #761c19;
957
+ color: #fff;
958
+ background-color: #ac2925;
959
+ }
960
+
961
+ .fz-btn-danger:active,
962
+ .fz-btn-danger.active,
963
+ .open > .dropdown-toggle.fz-btn-danger {
964
+ background-image: none;
965
+ }
966
+
967
+ .fz-btn-danger.disabled:hover,
968
+ .fz-btn-danger[disabled]:hover,
969
+ fieldset[disabled] .fz-btn-danger:hover,
970
+ .fz-btn-danger.disabled:focus,
971
+ .fz-btn-danger[disabled]:focus,
972
+ fieldset[disabled] .fz-btn-danger:focus,
973
+ .fz-btn-danger.disabled.focus,
974
+ .fz-btn-danger[disabled].focus,
975
+ fieldset[disabled] .fz-btn-danger.focus {
976
+ border-color: #d43f3a;
977
+ background-color: #d9534f;
978
+ }
979
+
980
+ .fz-btn-danger .badge {
981
+ color: #d9534f;
982
+ background-color: #fff;
983
+ }
984
+
985
+ .fz-btn-link {
986
+ border-radius: 0;
987
+ color: #337ab7;
988
+ font-weight: normal;
989
+ }
990
+
991
+ .fz-btn-link,
992
+ .fz-btn-link:active,
993
+ .fz-btn-link.active,
994
+ .fz-btn-link[disabled],
995
+ fieldset[disabled] .fz-btn-link {
996
+ background-color: transparent;
997
+ box-shadow: none;
998
+ }
999
+
1000
+ .fz-btn-link,
1001
+ .fz-btn-link:hover,
1002
+ .fz-btn-link:focus,
1003
+ .fz-btn-link:active {
1004
+ border-color: transparent;
1005
+ }
1006
+
1007
+ .fz-btn-link:hover,
1008
+ .fz-btn-link:focus {
1009
+ color: #23527c;
1010
+ background-color: transparent;
1011
+ text-decoration: underline;
1012
+ }
1013
+
1014
+ .fz-btn-link[disabled]:hover,
1015
+ fieldset[disabled] .fz-btn-link:hover,
1016
+ .fz-btn-link[disabled]:focus,
1017
+ fieldset[disabled] .fz-btn-link:focus {
1018
+ color: #777;
1019
+ text-decoration: none;
1020
+ }
1021
+
1022
+ .fz-btn-lg,
1023
+ .fz-btn-group-lg > .fz-btn {
1024
+ padding: 10px 16px;
1025
+ border-radius: 6px;
1026
+ font-size: 18px;
1027
+ line-height: 1.3333333;
1028
+ }
1029
+
1030
+ .fz-btn-sm,
1031
+ .fz-btn-group-sm > .fz-btn {
1032
+ padding: 5px 10px;
1033
+ border-radius: 3px;
1034
+ font-size: 12px;
1035
+ line-height: 1.5;
1036
+ }
1037
+
1038
+ .fz-btn-xs,
1039
+ .fz-btn-group-xs > .fz-btn {
1040
+ padding: 1px 5px;
1041
+ border-radius: 3px;
1042
+ font-size: 12px;
1043
+ line-height: 1.5;
1044
+ }
1045
+
1046
+ .fz-btn-block {
1047
+ display: block;
1048
+ width: 100%;
1049
+ }
1050
+
1051
+ .fz-btn-block + .fz-btn-block {
1052
+ margin-top: 5px;
1053
+ }
1054
+
1055
+ input[type="submit"].fz-btn-block,
1056
+ input[type="reset"].fz-btn-block,
1057
+ input[type="button"].fz-btn-block {
1058
+ width: 100%;
1059
+ }
1060
+
1061
+ .caret {
1062
+ display: inline-block;
1063
+ width: 0;
1064
+ height: 0;
1065
+ margin-left: 2px;
1066
+ border-top: 4px dashed;
1067
+ border-top: 4px solid \9;
1068
+ border-right: 4px solid transparent;
1069
+ border-left: 4px solid transparent;
1070
+ vertical-align: middle;
1071
+ }
1072
+
1073
+ .dropup,
1074
+ .dropdown {
1075
+ position: relative;
1076
+ }
1077
+
1078
+ .dropdown-toggle:focus {
1079
+ outline: 0;
1080
+ }
1081
+
1082
+ .dropdown-menu {
1083
+ display: none;
1084
+ float: left;
1085
+ position: absolute;
1086
+ z-index: 1000;
1087
+ top: 40px;
1088
+ left: 0;
1089
+ min-width: 160px;
1090
+ /* fallback if 100% not supported */
1091
+ min-width: 100%;
1092
+ margin: 2px 0 0;
1093
+ padding: 5px 0;
1094
+ border: 1px solid #ccc;
1095
+ border: 1px solid rgba(0, 0, 0, 0.15);
1096
+ border-radius: 4px;
1097
+ background-color: #fff;
1098
+ background-clip: padding-box;
1099
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
1100
+ font-size: 14px;
1101
+ text-align: left;
1102
+ list-style: none;
1103
+ }
1104
+
1105
+ .dropdown-menu.pull-right {
1106
+ right: 0;
1107
+ left: auto;
1108
+ }
1109
+
1110
+ .dropdown-menu .divider {
1111
+ overflow: hidden;
1112
+ height: 1px;
1113
+ margin: 9px 0;
1114
+ background-color: #e5e5e5;
1115
+ }
1116
+
1117
+ .dropdown-menu > li > a {
1118
+ display: block;
1119
+ clear: both;
1120
+ padding: 3px 20px;
1121
+ color: #333;
1122
+ font-weight: normal;
1123
+ line-height: 1.42857143;
1124
+ white-space: nowrap;
1125
+ }
1126
+
1127
+ .dropdown-menu > li > a:hover,
1128
+ .dropdown-menu > li > a:focus {
1129
+ color: #262626;
1130
+ background-color: #f5f5f5;
1131
+ text-decoration: none;
1132
+ }
1133
+
1134
+ .dropdown-menu > .active > a,
1135
+ .dropdown-menu > .active > a:hover,
1136
+ .dropdown-menu > .active > a:focus {
1137
+ outline: 0;
1138
+ color: #fff;
1139
+ background-color: #337ab7;
1140
+ text-decoration: none;
1141
+ }
1142
+
1143
+ .dropdown-menu > .disabled > a,
1144
+ .dropdown-menu > .disabled > a:hover,
1145
+ .dropdown-menu > .disabled > a:focus {
1146
+ color: #777;
1147
+ }
1148
+
1149
+ .dropdown-menu > .disabled > a:hover,
1150
+ .dropdown-menu > .disabled > a:focus {
1151
+ background-color: transparent;
1152
+ background-image: none;
1153
+ text-decoration: none;
1154
+ cursor: not-allowed;
1155
+
1156
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
1157
+ }
1158
+
1159
+ .open > .dropdown-menu {
1160
+ display: block;
1161
+ }
1162
+
1163
+ .open > a {
1164
+ outline: 0;
1165
+ }
1166
+
1167
+ .dropdown-menu-right {
1168
+ right: 0;
1169
+ left: auto;
1170
+ }
1171
+
1172
+ .dropdown-menu-left {
1173
+ right: auto;
1174
+ left: 0;
1175
+ }
1176
+
1177
+ .dropdown-header {
1178
+ display: block;
1179
+ padding: 3px 20px;
1180
+ color: #777;
1181
+ font-size: 12px;
1182
+ line-height: 1.42857143;
1183
+ white-space: nowrap;
1184
+ }
1185
+
1186
+ .dropdown-backdrop {
1187
+ position: fixed;
1188
+ z-index: 990;
1189
+ top: 0;
1190
+ right: 0;
1191
+ bottom: 0;
1192
+ left: 0;
1193
+ }
1194
+
1195
+ .pull-right > .dropdown-menu {
1196
+ right: 0;
1197
+ left: auto;
1198
+ }
1199
+
1200
+ .dropup .caret,
1201
+ .navbar-fixed-bottom .dropdown .caret {
1202
+ border-top: 0;
1203
+ border-bottom: 4px dashed;
1204
+ border-bottom: 4px solid \9;
1205
+ content: "";
1206
+ }
1207
+
1208
+ .dropup .dropdown-menu,
1209
+ .navbar-fixed-bottom .dropdown .dropdown-menu {
1210
+ top: auto;
1211
+ bottom: 100%;
1212
+ margin-bottom: 2px;
1213
+ }
1214
+
1215
+ @media (min-width: 768px) {
1216
+ .navbar-right .dropdown-menu {
1217
+ right: 0;
1218
+ left: auto;
1219
+ }
1220
+
1221
+ .navbar-right .dropdown-menu-left {
1222
+ right: auto;
1223
+ left: 0;
1224
+ }
1225
+ }
1226
+
1227
+ .fz-btn-group,
1228
+ .fz-btn-group-vertical {
1229
+ display: inline-block;
1230
+ position: relative;
1231
+ vertical-align: middle;
1232
+ }
1233
+
1234
+ .fz-btn-group > .fz-btn,
1235
+ .fz-btn-group-vertical > .fz-btn {
1236
+ float: left;
1237
+ position: relative;
1238
+ }
1239
+
1240
+ .fz-btn-group > .fz-btn:hover,
1241
+ .fz-btn-group-vertical > .fz-btn:hover,
1242
+ .fz-btn-group > .fz-btn:focus,
1243
+ .fz-btn-group-vertical > .fz-btn:focus,
1244
+ .fz-btn-group > .fz-btn:active,
1245
+ .fz-btn-group-vertical > .fz-btn:active,
1246
+ .fz-btn-group > .fz-btn.active,
1247
+ .fz-btn-group-vertical > .fz-btn.active {
1248
+ z-index: 2;
1249
+ }
1250
+
1251
+ .fz-btn-group .fz-btn + .fz-btn,
1252
+ .fz-btn-group .fz-btn + .fz-btn-group,
1253
+ .fz-btn-group .fz-btn-group + .fz-btn,
1254
+ .fz-btn-group .fz-btn-group + .fz-btn-group {
1255
+ margin-left: -1px;
1256
+ }
1257
+
1258
+ .fz-btn-toolbar {
1259
+ margin-left: -5px;
1260
+ }
1261
+
1262
+ .fz-btn-toolbar .fz-btn,
1263
+ .fz-btn-toolbar .fz-btn-group,
1264
+ .fz-btn-toolbar .fz-input-group {
1265
+ float: left;
1266
+ }
1267
+
1268
+ .fz-btn-toolbar > .fz-btn,
1269
+ .fz-btn-toolbar > .fz-btn-group,
1270
+ .fz-btn-toolbar > .fz-input-group {
1271
+ margin-left: 5px;
1272
+ }
1273
+
1274
+ .fz-btn-group > .fz-btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
1275
+ border-radius: 0;
1276
+ }
1277
+
1278
+ .fz-btn-group > .fz-btn:first-child {
1279
+ margin-left: 0;
1280
+ }
1281
+
1282
+ .fz-btn-group > .fz-btn:first-child:not(:last-child):not(.dropdown-toggle) {
1283
+ border-top-right-radius: 0;
1284
+ border-bottom-right-radius: 0;
1285
+ }
1286
+
1287
+ .fz-btn-group > .fz-btn:last-child:not(:first-child),
1288
+ .fz-btn-group > .dropdown-toggle:not(:first-child) {
1289
+ border-top-left-radius: 0;
1290
+ border-bottom-left-radius: 0;
1291
+ }
1292
+
1293
+ .fz-btn-group > .fz-btn-group {
1294
+ float: left;
1295
+ }
1296
+
1297
+ .fz-btn-group > .fz-btn-group:not(:first-child):not(:last-child) > .fz-btn {
1298
+ border-radius: 0;
1299
+ }
1300
+
1301
+ .fz-btn-group > .fz-btn-group:first-child:not(:last-child) > .fz-btn:last-child,
1302
+ .fz-btn-group > .fz-btn-group:first-child:not(:last-child) > .dropdown-toggle {
1303
+ border-top-right-radius: 0;
1304
+ border-bottom-right-radius: 0;
1305
+ }
1306
+
1307
+ .fz-btn-group > .fz-btn-group:last-child:not(:first-child) > .fz-btn:first-child {
1308
+ border-top-left-radius: 0;
1309
+ border-bottom-left-radius: 0;
1310
+ }
1311
+
1312
+ .fz-btn-group .dropdown-toggle:active,
1313
+ .fz-btn-group.open .dropdown-toggle {
1314
+ outline: 0;
1315
+ }
1316
+
1317
+ .fz-btn-group > .fz-btn + .dropdown-toggle {
1318
+ padding-right: 8px;
1319
+ padding-left: 8px;
1320
+ }
1321
+
1322
+ .fz-btn-group > .fz-btn-lg + .dropdown-toggle {
1323
+ padding-right: 12px;
1324
+ padding-left: 12px;
1325
+ }
1326
+
1327
+ .fz-btn-group.open .dropdown-toggle {
1328
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1329
+ }
1330
+
1331
+ .fz-btn-group.open .dropdown-toggle.fz-btn-link {
1332
+ box-shadow: none;
1333
+ }
1334
+
1335
+ .fz-btn .caret {
1336
+ margin-left: 0;
1337
+ }
1338
+
1339
+ .fz-btn-lg .caret {
1340
+ border-width: 5px 5px 0;
1341
+ border-bottom-width: 0;
1342
+ }
1343
+
1344
+ .dropup .fz-btn-lg .caret {
1345
+ border-width: 0 5px 5px;
1346
+ }
1347
+
1348
+ .fz-btn-group-vertical > .fz-btn,
1349
+ .fz-btn-group-vertical > .fz-btn-group,
1350
+ .fz-btn-group-vertical > .fz-btn-group > .fz-btn {
1351
+ display: block;
1352
+ float: none;
1353
+ width: 100%;
1354
+ max-width: 100%;
1355
+ }
1356
+
1357
+ .fz-btn-group-vertical > .fz-btn-group > .fz-btn {
1358
+ float: none;
1359
+ }
1360
+
1361
+ .fz-btn-group-vertical > .fz-btn + .fz-btn,
1362
+ .fz-btn-group-vertical > .fz-btn + .fz-btn-group,
1363
+ .fz-btn-group-vertical > .fz-btn-group + .fz-btn,
1364
+ .fz-btn-group-vertical > .fz-btn-group + .fz-btn-group {
1365
+ margin-top: -1px;
1366
+ margin-left: 0;
1367
+ }
1368
+
1369
+ .fz-btn-group-vertical > .fz-btn:not(:first-child):not(:last-child) {
1370
+ border-radius: 0;
1371
+ }
1372
+
1373
+ .fz-btn-group-vertical > .fz-btn:first-child:not(:last-child) {
1374
+ border-top-left-radius: 4px;
1375
+ border-top-right-radius: 4px;
1376
+ border-bottom-right-radius: 0;
1377
+ border-bottom-left-radius: 0;
1378
+ }
1379
+
1380
+ .fz-btn-group-vertical > .fz-btn:last-child:not(:first-child) {
1381
+ border-top-left-radius: 0;
1382
+ border-top-right-radius: 0;
1383
+ border-bottom-right-radius: 4px;
1384
+ border-bottom-left-radius: 4px;
1385
+ }
1386
+
1387
+ .fz-btn-group-vertical > .fz-btn-group:not(:first-child):not(:last-child) > .fz-btn {
1388
+ border-radius: 0;
1389
+ }
1390
+
1391
+ .fz-btn-group-vertical > .fz-btn-group:first-child:not(:last-child) > .fz-btn:last-child,
1392
+ .fz-btn-group-vertical > .fz-btn-group:first-child:not(:last-child) > .dropdown-toggle {
1393
+ border-bottom-right-radius: 0;
1394
+ border-bottom-left-radius: 0;
1395
+ }
1396
+
1397
+ .fz-btn-group-vertical > .fz-btn-group:last-child:not(:first-child) > .fz-btn:first-child {
1398
+ border-top-left-radius: 0;
1399
+ border-top-right-radius: 0;
1400
+ }
1401
+
1402
+ .fz-btn-group-justified {
1403
+ display: table;
1404
+ width: 100%;
1405
+ table-layout: fixed;
1406
+ border-collapse: separate;
1407
+ }
1408
+
1409
+ .fz-btn-group-justified > .fz-btn,
1410
+ .fz-btn-group-justified > .fz-btn-group {
1411
+ display: table-cell;
1412
+ float: none;
1413
+ width: 1%;
1414
+ }
1415
+
1416
+ .fz-btn-group-justified > .fz-btn-group .fz-btn {
1417
+ width: 100%;
1418
+ }
1419
+
1420
+ .fz-btn-group-justified > .fz-btn-group .dropdown-menu {
1421
+ left: auto;
1422
+ }
1423
+
1424
+ [data-toggle="buttons"] > .fz-btn input[type="radio"],
1425
+ [data-toggle="buttons"] > .fz-btn-group > .fz-btn input[type="radio"],
1426
+ [data-toggle="buttons"] > .fz-btn input[type="checkbox"],
1427
+ [data-toggle="buttons"] > .fz-btn-group > .fz-btn input[type="checkbox"] {
1428
+ clip: rect(0, 0, 0, 0);
1429
+ position: absolute;
1430
+ pointer-events: none;
1431
+ }
1432
+
1433
+ .fz-input-group {
1434
+ display: table;
1435
+ position: relative;
1436
+ border-collapse: separate;
1437
+ }
1438
+
1439
+ .fz-input-group[class*="col-"] {
1440
+ float: none;
1441
+ padding-right: 0;
1442
+ padding-left: 0;
1443
+ }
1444
+
1445
+ .fz-input-group .fz-form-control {
1446
+ float: left;
1447
+ position: relative;
1448
+ z-index: 2;
1449
+ width: 100%;
1450
+ margin-bottom: 0;
1451
+ }
1452
+
1453
+ .fz-input-group .fz-form-control:focus {
1454
+ z-index: 3;
1455
+ }
1456
+
1457
+ .fz-input-group-lg > .fz-form-control,
1458
+ .fz-input-group-lg > .fz-input-group-addon,
1459
+ .fz-input-group-lg > .fz-input-group-btn > .fz-btn {
1460
+ height: 46px;
1461
+ padding: 10px 16px;
1462
+ border-radius: 6px;
1463
+ font-size: 18px;
1464
+ line-height: 1.3333333;
1465
+ }
1466
+
1467
+ select.fz-input-group-lg > .fz-form-control,
1468
+ select.fz-input-group-lg > .fz-input-group-addon,
1469
+ select.fz-input-group-lg > .fz-input-group-btn > .fz-btn {
1470
+ height: 46px;
1471
+ line-height: 46px;
1472
+ }
1473
+
1474
+ textarea.fz-input-group-lg > .fz-form-control,
1475
+ textarea.fz-input-group-lg > .fz-input-group-addon,
1476
+ textarea.fz-input-group-lg > .fz-input-group-btn > .fz-btn,
1477
+ select[multiple].fz-input-group-lg > .fz-form-control,
1478
+ select[multiple].fz-input-group-lg > .fz-input-group-addon,
1479
+ select[multiple].fz-input-group-lg > .fz-input-group-btn > .fz-btn {
1480
+ height: auto;
1481
+ }
1482
+
1483
+ .fz-input-group-sm > .fz-form-control,
1484
+ .fz-input-group-sm > .fz-input-group-addon,
1485
+ .fz-input-group-sm > .fz-input-group-btn > .fz-btn {
1486
+ height: 30px;
1487
+ padding: 5px 10px;
1488
+ border-radius: 3px;
1489
+ font-size: 12px;
1490
+ line-height: 1.5;
1491
+ }
1492
+
1493
+ select.fz-input-group-sm > .fz-form-control,
1494
+ select.fz-input-group-sm > .fz-input-group-addon,
1495
+ select.fz-input-group-sm > .fz-input-group-btn > .fz-btn {
1496
+ height: 30px;
1497
+ line-height: 30px;
1498
+ }
1499
+
1500
+ textarea.fz-input-group-sm > .fz-form-control,
1501
+ textarea.fz-input-group-sm > .fz-input-group-addon,
1502
+ textarea.fz-input-group-sm > .fz-input-group-btn > .fz-btn,
1503
+ select[multiple].fz-input-group-sm > .fz-form-control,
1504
+ select[multiple].fz-input-group-sm > .fz-input-group-addon,
1505
+ select[multiple].fz-input-group-sm > .fz-input-group-btn > .fz-btn {
1506
+ height: auto;
1507
+ }
1508
+
1509
+ .fz-input-group-addon,
1510
+ .fz-input-group-btn,
1511
+ .fz-input-group .fz-form-control {
1512
+ display: table-cell;
1513
+ }
1514
+
1515
+ .fz-input-group-addon:not(:first-child):not(:last-child),
1516
+ .fz-input-group-btn:not(:first-child):not(:last-child),
1517
+ .fz-input-group .fz-form-control:not(:first-child):not(:last-child) {
1518
+ border-radius: 0;
1519
+ }
1520
+
1521
+ .fz-input-group-addon,
1522
+ .fz-input-group-btn {
1523
+ width: 1%;
1524
+ vertical-align: top;
1525
+ white-space: nowrap;
1526
+ }
1527
+
1528
+ .fz-input-group-addon {
1529
+ padding: 6px 12px;
1530
+ border: 1px solid #ccc;
1531
+ border-radius: 4px;
1532
+ color: #555;
1533
+ background-color: #eee;
1534
+ font-size: 14px;
1535
+ font-weight: normal;
1536
+ line-height: 1;
1537
+ text-align: center;
1538
+ }
1539
+
1540
+ .fz-input-group-addon.input-sm {
1541
+ padding: 5px 10px;
1542
+ border-radius: 3px;
1543
+ font-size: 12px;
1544
+ }
1545
+
1546
+ .fz-input-group-addon.input-lg {
1547
+ padding: 10px 16px;
1548
+ border-radius: 6px;
1549
+ font-size: 18px;
1550
+ }
1551
+
1552
+ .fz-input-group-addon input[type="radio"],
1553
+ .fz-input-group-addon input[type="checkbox"] {
1554
+ margin-top: 0;
1555
+ }
1556
+
1557
+ .fz-input-group .fz-form-control:first-child,
1558
+ .fz-input-group-addon:first-child,
1559
+ .fz-input-group-btn:first-child > .fz-btn,
1560
+ .fz-input-group-btn:first-child > .fz-btn-group > .fz-btn,
1561
+ .fz-input-group-btn:first-child > .dropdown-toggle,
1562
+ .fz-input-group-btn:last-child > .fz-btn:not(:last-child):not(.dropdown-toggle),
1563
+ .fz-input-group-btn:last-child > .fz-btn-group:not(:last-child) > .fz-btn {
1564
+ border-top-right-radius: 0;
1565
+ border-bottom-right-radius: 0;
1566
+ }
1567
+
1568
+ .fz-input-group-addon:first-child {
1569
+ border-right: 0;
1570
+ }
1571
+
1572
+ .fz-input-group .fz-form-control:last-child,
1573
+ .fz-input-group-addon:last-child,
1574
+ .fz-input-group-btn:last-child > .fz-btn,
1575
+ .fz-input-group-btn:last-child > .fz-btn-group > .fz-btn,
1576
+ .fz-input-group-btn:last-child > .dropdown-toggle,
1577
+ .fz-input-group-btn:first-child > .fz-btn:not(:first-child),
1578
+ .fz-input-group-btn:first-child > .fz-btn-group:not(:first-child) > .fz-btn {
1579
+ border-top-left-radius: 0;
1580
+ border-bottom-left-radius: 0;
1581
+ }
1582
+
1583
+ .fz-input-group-addon:last-child {
1584
+ border-left: 0;
1585
+ }
1586
+
1587
+ .fz-input-group-btn {
1588
+ position: relative;
1589
+ font-size: 0;
1590
+ white-space: nowrap;
1591
+ }
1592
+
1593
+ .fz-input-group-btn > .fz-btn {
1594
+ position: relative;
1595
+ }
1596
+
1597
+ .fz-input-group-btn > .fz-btn + .fz-btn {
1598
+ margin-left: -1px;
1599
+ }
1600
+
1601
+ .fz-input-group-btn > .fz-btn:hover,
1602
+ .fz-input-group-btn > .fz-btn:focus,
1603
+ .fz-input-group-btn > .fz-btn:active {
1604
+ z-index: 2;
1605
+ }
1606
+
1607
+ .fz-input-group-btn:first-child > .fz-btn,
1608
+ .fz-input-group-btn:first-child > .fz-btn-group {
1609
+ margin-right: -1px;
1610
+ }
1611
+
1612
+ .fz-input-group-btn:last-child > .fz-btn,
1613
+ .fz-input-group-btn:last-child > .fz-btn-group {
1614
+ z-index: 2;
1615
+ margin-left: -1px;
1616
+ }
1617
+
1618
+ .col-left,
1619
+ .col-right {
1620
+ display: inline-block;
1621
+ float: left;
1622
+ position: relative;
1623
+ width: -webkit-calc( 50% - 34px );
1624
+ width: calc( 50% - 34px );
1625
+ min-height: 36px;
1626
+ }
1627
+
1628
+ .col-left::after {
1629
+ position: absolute;
1630
+ top: calc( 50% - 18px );
1631
+ top: -webkit-calc( 50% - 18px );
1632
+ left: -webkit-calc( 100% + 5px );
1633
+ left: calc( 100% + 5px );
1634
+ left: -webkit-calc( 100% + 8px );
1635
+ width: 36px;
1636
+ height: 36px;
1637
+ color: #ccc;
1638
+ font-family: "dashicons";
1639
+ font-size: 36px;
1640
+ line-height: 36px;
1641
+ content: "\f503";
1642
+ }
1643
+
1644
+ .col-left.fields::after {
1645
+ content: "\f229";
1646
+ }
1647
+
1648
+ .col-left {
1649
+ padding: 8px 8px 8px 0;
1650
+ border-right: 1px solid #ccc;
1651
+ }
1652
+
1653
+ .col-right {
1654
+ margin-left: 50px;
1655
+ padding: 8px 0 8px 8px;
1656
+ border-left: 1px solid #ccc;
1657
+ }
1658
+
1659
+ .label_description,
1660
+ .form_item {
1661
+ margin-top: 8px;
1662
+ margin-bottom: 8px;
1663
+ }
1664
+
1665
+ .label_description {
1666
+ border-bottom: 1px solid #efefef;
1667
+ }
1668
+
1669
+ .form_item {
1670
+ padding-top: 12px;
1671
+ }
1672
+
1673
+ a.dropdown-item {
1674
+ display: block;
1675
+ padding: 5px 8px;
1676
+ color: #f35b3f;
1677
+ text-align: center;
1678
+ text-decoration: none;
1679
+ }
1680
+
1681
+ a:hover.dropdown-item,
1682
+ a:focus.dropdown-item {
1683
+ color: #f89c8b;
1684
+ background-color: #f8f8f8;
1685
+ }
1686
+
1687
+ .fz-btn.fz-btn-add-fields {
1688
+ background-color: #099bb2;
1689
+ }
1690
+
1691
+ .fz-btn.fz-btn-add-fields:hover {
1692
+ background-color: #14b2cc;
1693
+ }
1694
+
1695
+ .fz-btn.fz-btn-remove-fields {
1696
+ color: #f35b3f;
1697
+ }
1698
+
1699
+ .fz-btn.fz-btn-remove-fields:hover {
1700
+ color: #f89c8b;
1701
+ }
1702
+
1703
+ .fz-btn > span.dashicons {
1704
+ vertical-align: middle;
1705
+ }
1706
+
1707
+ .f1 {
1708
+ padding: 25px;
1709
+ border-radius: 4px;
1710
+ background: #fff;
1711
+ }
1712
+
1713
+ .f1 h3 {
1714
+ margin-top: 0;
1715
+ margin-bottom: 5px;
1716
+ text-transform: uppercase;
1717
+ }
1718
+
1719
+ .f1-steps {
1720
+ overflow: hidden;
1721
+ position: relative;
1722
+ margin-top: 20px;
1723
+ }
1724
+
1725
+ .f1-progress {
1726
+ position: absolute;
1727
+ top: 24px;
1728
+ left: 0;
1729
+ width: 100%;
1730
+ height: 1px;
1731
+ background: #ddd;
1732
+ }
1733
+
1734
+ .f1-progress-line {
1735
+ position: absolute;
1736
+ top: 0;
1737
+ left: 0;
1738
+ height: 1px;
1739
+ background: #f35b3f;
1740
+ }
1741
+
1742
+ .f1-step {
1743
+ display: inline-block;
1744
+ position: relative;
1745
+ width: calc(100%/3 - 10px);
1746
+ width: -webkit-calc(100%/3 - 10px);
1747
+ text-align: center;
1748
+ }
1749
+
1750
+ .f1-step-icon {
1751
+ display: inline-block;
1752
+ width: 40px;
1753
+ height: 40px;
1754
+ margin-top: 4px;
1755
+ border-radius: 50%;
1756
+ color: #fff;
1757
+ background: #ddd;
1758
+ font-size: 16px;
1759
+ line-height: 40px;
1760
+ }
1761
+
1762
+ .f1-step-icon span {
1763
+ display: inline-block;
1764
+ width: 18px;
1765
+ height: 18px;
1766
+ padding: 11px;
1767
+ font-size: 18px;
1768
+ }
1769
+
1770
+ .f1-step.activated .f1-step-icon span {
1771
+ width: 20px;
1772
+ height: 20px;
1773
+ margin-top: -2px;
1774
+ margin-left: -1px;
1775
+ padding: 12px;
1776
+ font-size: 20px;
1777
+ }
1778
+
1779
+ .f1-step.active .f1-step-icon span {
1780
+ width: 24px;
1781
+ height: 24px;
1782
+ padding: 12px;
1783
+ font-size: 24px;
1784
+ }
1785
+
1786
+ .f1-step.activated .f1-step-icon {
1787
+ border: 1px solid #f35b3f;
1788
+ color: #f35b3f;
1789
+ background: #fff;
1790
+ line-height: 48px;
1791
+ }
1792
+
1793
+ .f1-step.active .f1-step-icon {
1794
+ width: 48px;
1795
+ height: 48px;
1796
+ margin-top: 0;
1797
+ background: #f35b3f;
1798
+ font-size: 22px;
1799
+ line-height: 48px;
1800
+ }
1801
+
1802
+ .f1-step p {
1803
+ color: #ccc;
1804
+ }
1805
+
1806
+ .f1-step.activated p {
1807
+ color: #f35b3f;
1808
+ }
1809
+
1810
+ .f1-step.active p {
1811
+ color: #f35b3f;
1812
+ }
1813
+
1814
+ .f1 fieldset {
1815
+ display: none;
1816
+ text-align: left;
1817
+ }
1818
+
1819
+ .f1-buttons {
1820
+ text-align: right;
1821
+ }
1822
+
1823
+ .f1 .input-error {
1824
+ border-color: #f35b3f;
1825
+ }
1826
+
1827
+ input[type="password"].fz-form-control,
1828
+ textarea.fz-form-control {
1829
+ width: 100%;
1830
+ height: 44px;
1831
+ margin: 0;
1832
+ padding: 0 20px;
1833
+ border: 1px solid #ddd;
1834
+ border-radius: 4px;
1835
+ color: #888;
1836
+ background: #fff;
1837
+ box-shadow: none;
1838
+ font-family: "Roboto", sans-serif;
1839
+ font-size: 16px;
1840
+ font-weight: 300;
1841
+ line-height: 44px;
1842
+ vertical-align: middle;
1843
+ -webkit-transition: all 0.3s;
1844
+ transition: all 0.3s;
1845
+ }
1846
+
1847
+ textarea.fz-form-control {
1848
+ height: 90px;
1849
+ padding-top: 8px;
1850
+ padding-bottom: 8px;
1851
+ line-height: 30px;
1852
+ }
1853
+
1854
+ textarea.fz-form-control:focus {
1855
+ border: 1px solid #ccc;
1856
+ outline: 0;
1857
+ background: #fff;
1858
+ box-shadow: none;
1859
+ }
1860
+
1861
+ textarea.fz-form-control:-moz-placeholder {
1862
+ color: #888;
1863
+ }
1864
+
1865
+ textarea.fz-form-control:-ms-input-placeholder {
1866
+ color: #888;
1867
+ }
1868
+
1869
+ textarea.fz-form-control::-webkit-input-placeholder {
1870
+ color: #888;
1871
+ }
1872
+
1873
+ button.fz-btn {
1874
+ min-width: 105px;
1875
+ height: 44px;
1876
+ margin: 0;
1877
+ padding: 0 20px;
1878
+ border: 0;
1879
+ border-radius: 4px;
1880
+ color: #fff;
1881
+ box-shadow: none;
1882
+ text-shadow: none;
1883
+ font-family: "Roboto", sans-serif;
1884
+ font-size: 16px;
1885
+ font-weight: 300;
1886
+ line-height: 40px;
1887
+ vertical-align: middle;
1888
+ -webkit-transition: all 0.3s;
1889
+ transition: all 0.3s;
1890
+ }
1891
+
1892
+ button.fz-btn:hover {
1893
+ opacity: 0.6;
1894
+ color: #fff;
1895
+ }
1896
+
1897
+ button.fz-btn:active {
1898
+ outline: 0;
1899
+ opacity: 0.6;
1900
+ color: #fff;
1901
+ box-shadow: none;
1902
+ }
1903
+
1904
+ button.fz-btn:focus,
1905
+ button.fz-btn:active:focus,
1906
+ button.fz-btn.active:focus {
1907
+ outline: 0;
1908
+ opacity: 0.6;
1909
+ color: #fff;
1910
+ }
1911
+
1912
+ button.fz-btn.fz-btn-next,
1913
+ button.fz-btn.fz-btn-next:focus,
1914
+ button.fz-btn.fz-btn-next:active:focus,
1915
+ button.fz-btn.fz-btn-next.active:focus {
1916
+ background: #f35b3f;
1917
+ }
1918
+
1919
+ button.fz-btn.fz-btn-submit,
1920
+ button.fz-btn.fz-btn-submit:focus,
1921
+ button.fz-btn.fz-btn-submit:active:focus,
1922
+ button.fz-btn.fz-btn-submit.active:focus {
1923
+ background: #f35b3f;
1924
+ }
1925
+
1926
+ button.fz-btn.fz-btn-previous,
1927
+ button.fz-btn.fz-btn-previous:focus,
1928
+ button.fz-btn.fz-btn-previous:active:focus,
1929
+ button.fz-btn.fz-btn-previous.active:focus {
1930
+ background: #bbb;
1931
+ }
1932
+
1933
+ button.fz-btn.fz-btn-submit.fz-btn-activate,
1934
+ button.fz-btn.fz-btn-submit.fz-btn-activate:focus,
1935
+ button.fz-btn.fz-btn-submit.fz-btn-activate:active:focus,
1936
+ button.fz-btn.fz-btn-submit.fz-btn-activate.active:focus {
1937
+ background: #8ce196;
1938
+ }
1939
+
1940
+ /*
1941
+ Toggle switches
1942
+ */
1943
+ .feedzy-toggle {
1944
+ visibility: hidden;
1945
+ position: absolute;
1946
+ margin-left: -9999px;
1947
+ }
1948
+
1949
+ .feedzy-toggle + label {
1950
+ display: block;
1951
+ position: relative;
1952
+ outline: none;
1953
+ cursor: pointer;
1954
+ -webkit-user-select: none;
1955
+ -moz-user-select: none;
1956
+ -ms-user-select: none;
1957
+ user-select: none;
1958
+ }
1959
+
1960
+ input.feedzy-toggle-round + label {
1961
+ padding: 2px;
1962
+ background-color: #ddd;
1963
+ }
1964
+
1965
+ input.feedzy-toggle-round + label:before,
1966
+ input.feedzy-toggle-round + label:after {
1967
+ display: block;
1968
+ position: absolute;
1969
+ top: 1px;
1970
+ bottom: 1px;
1971
+ left: 1px;
1972
+ content: "";
1973
+ }
1974
+
1975
+ input.feedzy-toggle-round + label:before {
1976
+ right: 1px;
1977
+ border-radius: 15px;
1978
+ background-color: #f1f1f1;
1979
+ -webkit-transition: background 0.4s;
1980
+ transition: background 0.4s;
1981
+ }
1982
+
1983
+ input.feedzy-toggle-round + label:after {
1984
+ width: 28px;
1985
+ border-radius: 100%;
1986
+ background-color: #fff;
1987
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
1988
+ -webkit-transition: margin 0.4s;
1989
+ transition: margin 0.4s;
1990
+ }
1991
+
1992
+ input.feedzy-toggle-round:checked + label:before {
1993
+ background-color: #8ce196;
1994
+ }
1995
+
1996
+ input.feedzy-toggle-round:checked + label:after {
1997
+ margin-left: 34px;
1998
+ }
1999
+
2000
+ /*
2001
+ !!! CAUTION -- Hides Core WordPress Post Elements
2002
+ */
2003
+
2004
+ .post-type-feedzy_imports #poststuff #post-body.columns-2 {
2005
+ margin-right: 0;
2006
+ }
2007
+
2008
+ .post-type-feedzy_imports div#side-sortables {
2009
+ display: none;
2010
+ }
2011
+
2012
+ .post-type-feedzy_imports #titlediv .inside {
2013
+ display: none;
2014
+ }
2015
+
2016
+ .post-type-feedzy_imports div#advanced-sortables {
2017
+ display: none;
2018
+ }
2019
+
2020
+ .fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate,
2021
+ .fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate:focus,
2022
+ .fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate:active:focus,
2023
+ .fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate.active:focus {
2024
+ background-color: #62c370;
2025
+ }
dist/feedzy-rss-feed.php ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The plugin bootstrap file
4
+ *
5
+ * This file is read by WordPress to generate the plugin information in the plugin
6
+ * admin area. This file also includes all of the dependencies used by the plugin,
7
+ * registers the activation and deactivation functions, and defines a function
8
+ * that starts the plugin.
9
+ *
10
+ * @link http://themeisle.com
11
+ * @since 3.0.0
12
+ * @package feedzy-rss-feeds
13
+ *
14
+ * @wordpress-plugin
15
+ * Plugin Name: Feedzy RSS Feeds Lite
16
+ * Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
17
+ * Description: 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.
18
+ * Version: 3.2.11
19
+ * Author: Themeisle
20
+ * Author URI: http://themeisle.com
21
+ * License: GPL-2.0+
22
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
23
+ * Text Domain: feedzy-rss-feeds
24
+ * Domain Path: /languages
25
+ * WordPress Available: yes
26
+ * Pro Slug: feedzy-rss-feeds-pro
27
+ * Requires License: no
28
+ */
29
+ // If this file is called directly, abort.
30
+ if ( ! defined( 'WPINC' ) ) {
31
+ die;
32
+ }
33
+ /**
34
+ * The code that runs during plugin activation.
35
+ * This action is documented in includes/feedzy-rss-feeds-activator.php
36
+ */
37
+ function activate_feedzy_rss_feeds() {
38
+ Feedzy_Rss_Feeds_Activator::activate();
39
+ }
40
+
41
+ /**
42
+ * The code that runs during plugin deactivation.
43
+ * This action is documented in includes/feedzy-rss-feeds-deactivator.php
44
+ *
45
+ * @since 3.0.0
46
+ */
47
+ function deactivate_feedzy_rss_feeds() {
48
+ Feedzy_Rss_Feeds_Deactivator::deactivate();
49
+ }
50
+
51
+ register_activation_hook( __FILE__, 'activate_feedzy_rss_feeds' );
52
+ register_deactivation_hook( __FILE__, 'deactivate_feedzy_rss_feeds' );
53
+ /**
54
+ * The function that will handle the queue for autoloader.
55
+ *
56
+ * @since 3.0.0
57
+ */
58
+ function feedzy_rss_feeds_autoload( $class ) {
59
+ $namespaces = array( 'Feedzy_Rss_Feeds' );
60
+ foreach ( $namespaces as $namespace ) {
61
+ if ( substr( $class, 0, strlen( $namespace ) ) == $namespace ) {
62
+ $filename = plugin_dir_path( __FILE__ ) . 'includes/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
63
+ if ( is_readable( $filename ) ) {
64
+ require_once $filename;
65
+
66
+ return true;
67
+ }
68
+ $filename = plugin_dir_path( __FILE__ ) . 'includes/abstract/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
69
+ if ( is_readable( $filename ) ) {
70
+ require_once $filename;
71
+
72
+ return true;
73
+ }
74
+ $filename = plugin_dir_path( __FILE__ ) . 'includes/admin/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
75
+ if ( is_readable( $filename ) ) {
76
+ require_once $filename;
77
+
78
+ return true;
79
+ }
80
+ $filename = plugin_dir_path( __FILE__ ) . 'includes/gutenberg/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
81
+ if ( is_readable( $filename ) ) {
82
+ require_once $filename;
83
+
84
+ return true;
85
+ }
86
+ $filename = plugin_dir_path( __FILE__ ) . 'includes/util/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
87
+ if ( is_readable( $filename ) ) {
88
+ require_once $filename;
89
+
90
+ return true;
91
+ }
92
+ }
93
+ }
94
+ if ( is_readable( plugin_dir_path( __FILE__ ) . 'includes/admin/feedzy-wp-widget.php' ) ) {
95
+ require_once plugin_dir_path( __FILE__ ) . 'includes/admin/feedzy-wp-widget.php';
96
+
97
+ return true;
98
+ }
99
+
100
+ return false;
101
+ }
102
+
103
+ /**
104
+ * Begins execution of the plugin.
105
+ *
106
+ * Since everything within the plugin is registered via hooks,
107
+ * then kicking off the plugin from this point in the file does
108
+ * not affect the page life cycle.
109
+ *
110
+ * @since 3.0.0
111
+ */
112
+ function run_feedzy_rss_feeds() {
113
+ define( 'FEEDZY_BASEFILE', __FILE__ );
114
+ define( 'FEEDZY_ABSURL', plugins_url( '/', __FILE__ ) );
115
+ define( 'FEEDZY_ABSPATH', dirname( __FILE__ ) );
116
+ define( 'FEEDZY_UPSELL_LINK', 'https://themeisle.com/plugins/feedzy-rss-feeds/' );
117
+ define( 'FEEDZY_NAME', 'Feedzy RSS Feeds' );
118
+ define( 'FEEDZY_USER_AGENT', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36' );
119
+ define( 'FEEDZY_ALLOW_HTTPS', true );
120
+
121
+ // always make this true before testing
122
+ define( 'FEEDZY_DISABLE_CACHE_FOR_TESTING', false );
123
+ $feedzy = Feedzy_Rss_Feeds::instance();
124
+ $feedzy->run();
125
+ $vendor_file = FEEDZY_ABSPATH . '/vendor/autoload_52.php';
126
+ if ( is_readable( $vendor_file ) ) {
127
+ require_once $vendor_file;
128
+ }
129
+
130
+ add_filter( 'themeisle_sdk_products', 'feedzy_register_sdk', 10, 1 );
131
+ add_filter( 'pirate_parrot_log', 'feedzy_register_parrot', 10, 1 );
132
+
133
+ }
134
+
135
+ /**
136
+ * Registers with the SDK
137
+ *
138
+ * @since 1.0.0
139
+ */
140
+ function feedzy_register_sdk( $products ) {
141
+ $products[] = FEEDZY_BASEFILE;
142
+ return $products;
143
+ }
144
+
145
+ /**
146
+ * Registers with the parrot plugin
147
+ *
148
+ * @since 1.0.0
149
+ */
150
+ function feedzy_register_parrot( $plugins ) {
151
+ $plugins[] = FEEDZY_NAME;
152
+ return $plugins;
153
+ }
154
+
155
+ spl_autoload_register( 'feedzy_rss_feeds_autoload' );
156
+ run_feedzy_rss_feeds();
dist/form/form.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The file that defines the core plugin class
4
+ *
5
+ * A class definition that includes attributes and functions used across both the
6
+ * public-facing side of the site and the admin area.
7
+ *
8
+ * @link http://themeisle.com
9
+ * @since 3.0.0
10
+ *
11
+ * @package feedzy-rss-feeds
12
+ * @subpackage feedzy-rss-feeds/form
13
+ */
14
+
15
+ $html_parts = Feedzy_Rss_Feeds_Ui_Lang::get_form_elements();
16
+ ?>
17
+ <!DOCTYPE html>
18
+ <html>
19
+ <head>
20
+ <!-- Disable browser caching of dialog window -->
21
+ <meta http-equiv="cache-control" content="no-cache"/>
22
+ <meta http-equiv="expires" content="0"/>
23
+ <meta http-equiv="pragma" content="no-cache"/>
24
+ <link rel="stylesheet" href="<?php echo FEEDZY_ABSURL . 'css/form.css?h=' . date( 'dmYHis' ); ?>" type="text/css" media="all"/>
25
+ </head>
26
+ <body>
27
+ <div class="feedzy-popup-form container">
28
+ <?php
29
+ $output = '';
30
+ if ( ! empty( $html_parts ) ) {
31
+ foreach ( $html_parts as $item => $section ) {
32
+ $output .= '<div class="container feedzy_' . $item . '">';
33
+ $output .= '<h5>' . $section['title'] . '</h5>';
34
+ if ( isset( $section['description'] ) ) {
35
+ $output .= '<p>' . $section['description'] . '</p>';
36
+ }
37
+ if ( ! empty( $section['elements'] ) ) {
38
+ foreach ( $section['elements'] as $name => $props ) {
39
+ $element = '';
40
+ $disabled = '';
41
+ $badge = '';
42
+ if ( isset( $props['disabled'] ) && $props['disabled'] ) {
43
+ $disabled = 'disabled="true"';
44
+ $badge = '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy-rss-feeds' ) . '</small>';
45
+ }
46
+ switch ( $props['type'] ) {
47
+ case 'select':
48
+ $element = '<select name="' . $name . '" data-feedzy="' . $name . '" ' . $disabled . ' >';
49
+ foreach ( $props['opts'] as $opt => $values ) {
50
+ $checked = '';
51
+ if ( $props['value'] == $values['value'] ) {
52
+ $checked = 'selected';
53
+ }
54
+ $element .= '<option value="' . $values['value'] . '" ' . $checked . ' > ' . $values['label'] . '</option>';
55
+ }
56
+ $element .= '</select>';
57
+ break;
58
+ case 'radio':
59
+ foreach ( $props['opts'] as $opt => $values ) {
60
+ $checked = '';
61
+ if ( $props['value'] == $values['value'] ) {
62
+ $checked = 'checked="checked"';
63
+ }
64
+ $element .= '<label class="feedzy-radio-image feedzy-template-' . $values['value']
65
+ . '"><input type="radio" name="' . $name . '" data-feedzy="' . $name . '" value="' . $values['value'] . '" ' . $checked . ' ' . $disabled . ' />' .
66
+ $values['label'] . '</label>';
67
+ }
68
+ break;
69
+ case 'checkbox':
70
+ foreach ( $props['opts'] as $opt => $values ) {
71
+ $checked = '';
72
+ if ( $props['value'] == $values['value'] ) {
73
+ $checked = 'checked="checked"';
74
+ }
75
+ $element .= '<input type="checkbox" name="' . $name . '" data-feedzy="' . $name . '" value="' . $values['value'] . '" ' . $checked . ' ' . $disabled . ' /> ' . $values['label'];
76
+ }
77
+ break;
78
+ case 'file':
79
+ $element = '
80
+ <input type="text" class="column column-50 float-left" name="' . $name . '" data-feedzy="' . $name . '" id="feedzy_image_url" placeholder="' . $props['placeholder'] . '" value="' . $props['value'] . '">
81
+ <input type="button" class="column column-50 float-right button-outline" name="upload-btn" id="feedzy_upload_btn" value="' . $props['button']['button_text'] . '">
82
+ ';
83
+ break;
84
+ default:
85
+ $element = '<input type="text" name="' . $name . '" data-feedzy="' . $name . '" value="' . $props['value'] . '" placeholder="' . $props['placeholder'] . '" ' . $disabled . ' />';
86
+ break;
87
+ } // End switch().
88
+ $output .= '
89
+ <div class="row feedzy_element_' . $name . '">
90
+ <div class="column column-50">
91
+ <label for="' . $name . '">' . $props['label'] . $badge . '</label>
92
+ </div>
93
+ <div class="column column-50">
94
+ ' . $element . '
95
+ </div>
96
+ <hr/>
97
+ </div>
98
+ ';
99
+ } // End foreach().
100
+ } // End if().
101
+ $output .= '</div>';
102
+ } // End foreach().
103
+ } // End if().
104
+ echo $output;
105
+ ?>
106
+ </div>
107
+ <script type="text/javascript">
108
+ var args = top.tinymce.activeEditor.windowManager.getParams();
109
+ var $ = args.jquery;
110
+ var editor = args.editor;
111
+ var wp = args.wp;
112
+ var custom_uploader;
113
+ $(document).ready(function ($) {
114
+ $(document).on('click', '#feedzy_upload_btn', function (e) {
115
+ e.preventDefault();
116
+ var upload_button = $(this);
117
+ custom_uploader = wp.media.frames.file_frame = wp.media({
118
+ title: editor.getLang('feedzy_tinymce_plugin.image_button'),
119
+ button: {
120
+ text: editor.getLang('feedzy_tinymce_plugin.image_button')
121
+ },
122
+ multiple: false
123
+ });
124
+
125
+ custom_uploader.on('select', function () {
126
+ var attachment = custom_uploader.state().get('selection').first().toJSON();
127
+ upload_button.siblings('input[type="text"]').val(attachment.url);
128
+ });
129
+
130
+ custom_uploader.open();
131
+ });
132
+ });
133
+ </script>
134
+ </body>
135
+ </html>
dist/img/features-affiliate-ready.jpg ADDED
Binary file
dist/img/features-caching.jpg ADDED
Binary file
dist/img/features-feed-to-post.jpg ADDED
Binary file
dist/img/features-templates.jpg ADDED
Binary file
dist/img/features-widgets-support.jpg ADDED
Binary file
dist/img/feedzy-default-template.jpg ADDED
Binary file
dist/img/feedzy-default.jpg ADDED
Binary file
dist/img/feedzy-style1-template.jpg ADDED
Binary file
dist/img/feedzy-style2-template.jpg ADDED
Binary file
dist/img/feedzy.png ADDED
Binary file
dist/img/feedzy.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="850.39" height="850.39"><path fill="#DB3939" d="M425.2 2C190.36 2 0 191.92 0 426.2c0 234.27 190.37 424.2 425.2 424.2 234.82 0 425.2-189.93 425.2-424.2C850.4 191.9 660 2 425.2 2zm-46.55 668.66h-91.58v-57.1L237.5 564.1h-57.26v-91.24h95.25l103.15 102.8v95zm152.52 0H439.6v-133.3L313.85 411.94h-133.6v-91.36H351.7L531.18 499.6v171.06zm152.55 0h-91.58V461.2L390.06 259.74H180.24v-91.36h247.8l255.68 255.07v247.22z"/></svg>
dist/includes/abstract/feedzy-rss-feeds-admin-abstract.php ADDED
@@ -0,0 +1,1098 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Abstract class with reusable functionality of the plugin.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/abstract
10
+ */
11
+
12
+ /**
13
+ * The Feedzy RSS functions of the plugin.
14
+ *
15
+ * Abstract class containing functions for the Feedzy Admin Class
16
+ *
17
+ * @package feedzy-rss-feeds
18
+ * @subpackage feedzy-rss-feeds/includes/abstract
19
+ * @author Themeisle <friends@themeisle.com>
20
+ * @abstract
21
+ */
22
+ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
23
+
24
+ /**
25
+ * Defines the default image to use on RSS Feeds
26
+ *
27
+ * @since 3.0.0
28
+ * @access public
29
+ *
30
+ * @param string $imageSrc The image source, currently not used.
31
+ *
32
+ * @return string
33
+ */
34
+ public function feedzy_define_default_image( $imageSrc ) {
35
+ $defaultImg = FEEDZY_ABSURL . '/img/feedzy-default.jpg';
36
+
37
+ return apply_filters( 'feedzy_define_default_image_filter', $defaultImg );
38
+ }
39
+
40
+ /**
41
+ * Defines the default error notice
42
+ *
43
+ * Logs error to the log file
44
+ * Returns the error message
45
+ *
46
+ * @since 3.0.0
47
+ * @access public
48
+ *
49
+ * @param object $error The error Object.
50
+ * @param string $feedURL The feed URL.
51
+ *
52
+ * @return string
53
+ */
54
+ public function feedzy_default_error_notice( $error, $feedURL ) {
55
+ error_log( 'Feedzy RSS Feeds - related feed: ' . print_r( $feedURL, true ) . ' - Error message: ' . $this->feedzy_array_obj_string( $error ) );
56
+
57
+ return '<div id="message" class="error" data-error"' . esc_attr( $this->feedzy_array_obj_string( $error ) ) . '"><p>' . __( 'Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy-rss-feeds' ) . '</p></div>';
58
+ }
59
+
60
+ /**
61
+ * Converts an object to string
62
+ *
63
+ * @since 3.0.0
64
+ * @access public
65
+ *
66
+ * @param object $error The error Object.
67
+ *
68
+ * @return string
69
+ */
70
+ public function feedzy_array_obj_string( $error ) {
71
+ if ( is_array( $error ) || is_object( $error ) ) {
72
+ return print_r( $error, true );
73
+ } else {
74
+ return $error;
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Padding ratio based on image size
80
+ *
81
+ * @since 3.0.0
82
+ * @access public
83
+ *
84
+ * @param string $itemAttr The item attribute.
85
+ * @param array $sizes An array with the current sizes.
86
+ *
87
+ * @return string
88
+ */
89
+ public function feedzy_add_item_padding( $itemAttr, $sizes ) {
90
+ $paddinTop = number_format( ( 15 / 150 ) * $sizes['height'], 0 );
91
+ $paddinBottom = number_format( ( 25 / 150 ) * $sizes['height'], 0 );
92
+ $stylePadding = ' style="padding: ' . $paddinTop . 'px 0 ' . $paddinBottom . 'px"';
93
+
94
+ return $itemAttr . $stylePadding;
95
+ }
96
+
97
+ /**
98
+ * Appends classes to the feed item
99
+ *
100
+ * @since 3.0.0
101
+ * @access public
102
+ *
103
+ * @param string $itemAttr The item attribute.
104
+ * @param string $sizes The item sizes.
105
+ * @param string $item The feed item.
106
+ * @param string $feedURL The feed URL.
107
+ * @param string $sc The short code attributes.
108
+ *
109
+ * @return string
110
+ */
111
+ public function feedzy_classes_item( $itemAttr = '', $sizes = '', $item = '', $feedURL = '', $sc = '' ) {
112
+ $classes = array( 'rss_item' );
113
+ $classes = apply_filters( 'feedzy_add_classes_item', $classes, $sc );
114
+ $classes = ' class="' . implode( ' ', $classes ) . '"';
115
+
116
+ return $itemAttr . $classes;
117
+ }
118
+
119
+ /**
120
+ * Filter feed description input
121
+ *
122
+ * @since 3.0.0
123
+ * @access public
124
+ *
125
+ * @param string $description The feed description.
126
+ * @param string $content The feed description.
127
+ * @param string $feedURL The feed URL.
128
+ *
129
+ * @return string
130
+ */
131
+ public function feedzy_summary_input_filter( $description, $content, $feedURL ) {
132
+ $description = trim( strip_tags( $description ) );
133
+ $description = trim( chop( $description, '[&hellip;]' ) );
134
+
135
+ return $description;
136
+ }
137
+
138
+ /**
139
+ * Check title for keywords
140
+ *
141
+ * @since 3.0.0
142
+ * @access public
143
+ *
144
+ * @param boolean $continue A boolean to stop the script.
145
+ * @param array $sc The shortcode attributes.
146
+ * @param object $item The feed item.
147
+ * @param string $feedURL The feed URL.
148
+ *
149
+ * @return boolean
150
+ */
151
+ public function feedzy_feed_item_keywords_title( $continue, $sc, $item, $feedURL ) {
152
+ if ( feedzy_is_new() && ! feedzy_is_pro() ) {
153
+ return true;
154
+ }
155
+ $keywords_title = $sc['keywords_title'];
156
+ if ( ! empty( $keywords_title ) ) {
157
+ $continue = false;
158
+ foreach ( $keywords_title as $keyword ) {
159
+ if ( strpos( $item->get_title(), $keyword ) !== false ) {
160
+ $continue = true;
161
+ }
162
+ }
163
+ }
164
+
165
+ return $continue;
166
+ }
167
+
168
+ /**
169
+ * Include cover picture (medium) to rss feed enclosure
170
+ * and media:content
171
+ *
172
+ * @since 3.0.0
173
+ * @access public
174
+ */
175
+ public function feedzy_include_thumbnail_rss() {
176
+ global $post;
177
+ if ( has_post_thumbnail( $post->ID ) ) {
178
+ $postThumbnailId = get_post_thumbnail_id( $post->ID );
179
+ $attachmentMeta = wp_get_attachment_metadata( $postThumbnailId );
180
+ $imageUrl = wp_get_attachment_image_src( $postThumbnailId, 'medium' );
181
+ echo '<enclosure url="' . $imageUrl[0] . '" length="' . filesize( get_attached_file( $postThumbnailId ) ) . '" type="image/jpg" />';
182
+ echo '<media:content url="' . $imageUrl[0] . '" width="' . $attachmentMeta['sizes']['medium']['width'] . '" height="' . $attachmentMeta['sizes']['medium']['height'] . '" medium="image" type="' . $attachmentMeta['sizes']['medium']['mime-type'] . '" />';
183
+
184
+ }
185
+ }
186
+
187
+ /**
188
+ * Utility method to check if source is a URL's string
189
+ * or if is a post type slug.
190
+ *
191
+ * @since 3.0.12
192
+ * @access public
193
+ *
194
+ * @param string $src The feeds source string.
195
+ *
196
+ * @return bool|string
197
+ */
198
+ public function process_feed_source( $src ) {
199
+ $regex = '((https?|ftp)\:\/\/)?'; // Contains Protocol
200
+ $regex .= '([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?'; // Uses User and Pass
201
+ $regex .= '([a-z0-9-.]*)\.([a-z]{2,3})'; // Has Host or IP
202
+ $regex .= '(\:[0-9]{2,5})?'; // Uses Port
203
+ $regex .= '(\/([a-z0-9+\$_-]\.?)+)*\/?'; // Has Path
204
+ $regex .= '(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?'; // Has GET Query
205
+ $regex .= '(#[a-z_.-][a-z0-9+\$_.-]*)?'; // Uses Anchor
206
+ if ( preg_match( "/^$regex$/", $src ) ) {
207
+ // If it matches Regex ( it's not a slug ) so return the sources.
208
+ return $src;
209
+ } else {
210
+ $src = trim( $src );
211
+ if ( $post = get_page_by_path( $src, OBJECT, 'feedzy_categories' ) ) {
212
+ return trim( preg_replace( '/\s+/', ' ', get_post_meta( $post->ID, 'feedzy_category_feed', true ) ) );
213
+ } else {
214
+ return $src;
215
+ }
216
+ }
217
+
218
+ }
219
+
220
+ /**
221
+ * Main shortcode function
222
+ *
223
+ * @since 3.0.0
224
+ * @access public
225
+ *
226
+ * @param array $atts Shortcode attributes.
227
+ * @param string $content The item feed content.
228
+ *
229
+ * @return mixed
230
+ */
231
+ public function feedzy_rss( $atts, $content = '' ) {
232
+ $sc = $this->get_short_code_attributes( $atts );
233
+ $feedURL = $this->normalize_urls( $sc['feeds'] );
234
+ $cache = $sc['refresh'];
235
+ $feed = $this->fetch_feed( $feedURL, $cache, $sc );
236
+ if ( is_string( $feed ) ) {
237
+ return $feed;
238
+ }
239
+ $sc = $this->sanitize_attr( $sc, $feedURL );
240
+ $content = $this->render_content( $sc, $feed, $content, $feedURL );
241
+
242
+ return $content;
243
+ }
244
+
245
+ /**
246
+ * Returns the attributes of the shortcode
247
+ *
248
+ * @since 3.0.0
249
+ * @access public
250
+ *
251
+ * @param array $atts The attributes passed by WordPress.
252
+ *
253
+ * @return array
254
+ */
255
+ public function get_short_code_attributes( $atts ) {
256
+ // Retrieve & extract shorcode parameters
257
+ $sc = shortcode_atts(
258
+ array(
259
+ 'feeds' => '',
260
+ // comma separated feeds url
261
+ 'max' => '5',
262
+ // number of feeds items (0 for unlimited)
263
+ 'feed_title' => 'yes',
264
+ // display feed title yes/no
265
+ 'target' => '_blank',
266
+ // _blank, _self
267
+ 'title' => '',
268
+ // strip title after X char
269
+ 'meta' => 'yes',
270
+ // yes, no
271
+ 'summary' => 'yes',
272
+ // strip title
273
+ 'summarylength' => '',
274
+ // strip summary after X char
275
+ 'thumb' => 'auto',
276
+ // yes, no, auto
277
+ 'default' => '',
278
+ // default thumb URL if no image found (only if thumb is set to yes or auto)
279
+ 'size' => '',
280
+ // thumbs pixel size
281
+ 'keywords_title' => '',
282
+ // cache refresh
283
+ 'refresh' => '12_hours',
284
+ // sorting.
285
+ 'sort' => '',
286
+ // only display item if title contains specific keywords (comma-separated list/case sensitive)
287
+ ), $atts, 'feedzy_default'
288
+ );
289
+ $sc = array_merge( $sc, apply_filters( 'feedzy_get_short_code_attributes_filter', $atts ) );
290
+
291
+ return $sc;
292
+ }
293
+
294
+ /**
295
+ * Validate feeds attribute.
296
+ *
297
+ * @since 3.0.0
298
+ * @updated 3.1.7 Take into account $feedURL as array from PRO version.
299
+ *
300
+ * @param string $raw Url or list of urls.
301
+ *
302
+ * @return mixed|void Urls of the feeds.
303
+ */
304
+ public function normalize_urls( $raw ) {
305
+ $feeds = apply_filters( 'feedzy_process_feed_source', $raw );
306
+ $feedURL = apply_filters( 'feedzy_get_feed_url', $feeds );
307
+ if ( is_array( $feedURL ) ) {
308
+ foreach ( $feedURL as $index => $url ) {
309
+ $feedURL[ $index ] = $this->smart_convert( $url );
310
+ }
311
+ } else {
312
+ $feedURL = $this->smart_convert( $feedURL );
313
+ }
314
+
315
+ return $feedURL;
316
+ }
317
+
318
+ /**
319
+ * Converts the feed URL.
320
+ *
321
+ * @param string $url The feed url.
322
+ */
323
+ private function smart_convert( $url ) {
324
+
325
+ $url = htmlspecialchars_decode( $url );
326
+
327
+ // Automatically fix deprecated google news feeds.
328
+ if ( false !== strpos( $url, 'news.google.' ) ) {
329
+
330
+ $parts = parse_url( $url );
331
+ parse_str( $parts['query'], $query );
332
+
333
+ if ( isset( $query['q'] ) ) {
334
+ $search_query = $query['q'];
335
+ unset( $query['q'] );
336
+ $url = sprintf( 'https://news.google.com/news/rss/search/section/q/%s/%s?%s', $search_query, $search_query, http_build_query( $query ) );
337
+
338
+ }
339
+ }
340
+
341
+ return apply_filters( 'feedzy_alter_feed_url', $url );
342
+ }
343
+
344
+ /**
345
+ * Fetch the content feed from a group of urls.
346
+ *
347
+ * @since 3.0.0
348
+ * @access public
349
+ * @updated 3.2.0
350
+ *
351
+ * @param array $feedURL The feeds urls to fetch content from.
352
+ * @param string $cache The cache string (eg. 1_hour, 30_min etc.).
353
+ * @param array $sc The shortcode attributes.
354
+ *
355
+ * @return SimplePie|string|void|WP_Error The feed resource.
356
+ */
357
+ public function fetch_feed( $feedURL, $cache = '12_hours', $sc ) {
358
+ // Load SimplePie if not already
359
+ do_action( 'feedzy_pre_http_setup', $feedURL );
360
+
361
+ // Load SimplePie Instance
362
+ $feed = $this->init_feed( $feedURL, $cache, $sc ); // Not used as log as #41304 is Opened.
363
+
364
+ // Report error when is an error loading the feed
365
+ if ( is_wp_error( $feed ) ) {
366
+ // Fallback for different edge cases.
367
+ if ( is_array( $feedURL ) ) {
368
+ $feedURL = array_map( 'html_entity_decode', $feedURL );
369
+ } else {
370
+ $feedURL = html_entity_decode( $feedURL );
371
+ }
372
+
373
+ $feedURL = $this->get_valid_feed_urls( $feedURL, $cache );
374
+
375
+ $feed = $this->init_feed( $feedURL, $cache, $sc ); // Not used as log as #41304 is Opened.
376
+
377
+ }
378
+
379
+ do_action( 'feedzy_post_http_teardown', $feedURL );
380
+
381
+ // var_dump( $feed );
382
+ return $feed;
383
+ }
384
+
385
+ /**
386
+ *
387
+ * Method to avoid using core implementation in order
388
+ * order to fix issues reported here: https://core.trac.wordpress.org/ticket/41304
389
+ * Bug: #41304 with WP wp_kses sanitizer used by WP SimplePie implementation.
390
+ *
391
+ * NOTE: This is temporary should be removed as soon as #41304 is patched.
392
+ *
393
+ * @since 3.1.7
394
+ * @access private
395
+ *
396
+ * @param string $feedURL The feed URL.
397
+ * @param string $cache The cache string (eg. 1_hour, 30_min etc.).
398
+ * @param array $sc The shortcode attributes.
399
+ *
400
+ * @return SimplePie
401
+ */
402
+ private function init_feed( $feedURL, $cache, $sc ) {
403
+ $unit_defaults = array(
404
+ 'mins' => MINUTE_IN_SECONDS,
405
+ 'hours' => HOUR_IN_SECONDS,
406
+ 'days' => DAY_IN_SECONDS,
407
+ );
408
+ $cache_time = 12 * HOUR_IN_SECONDS;
409
+ if ( isset( $cache ) && $cache != '' ) {
410
+ list( $value, $unit ) = explode( '_', $cache );
411
+ if ( isset( $value ) && is_numeric( $value ) && $value >= 1 && $value <= 100 ) {
412
+ if ( isset( $unit ) && in_array( strtolower( $unit ), array( 'mins', 'hours', 'days' ) ) ) {
413
+ $cache_time = $value * $unit_defaults[ $unit ];
414
+ }
415
+ }
416
+ }
417
+
418
+ $feed = new Feedzy_Rss_Feeds_Util_SimplePie( $sc );
419
+ if ( ! FEEDZY_ALLOW_HTTPS ) {
420
+ $feed->set_curl_options(
421
+ array(
422
+ CURLOPT_SSL_VERIFYHOST => false,
423
+ CURLOPT_SSL_VERIFYPEER => false,
424
+ )
425
+ );
426
+ }
427
+ $feed->set_file_class( 'WP_SimplePie_File' );
428
+ $default_agent = $this->get_default_user_agent( $feedURL );
429
+ $feed->set_useragent( apply_filters( 'http_headers_useragent', $default_agent ) );
430
+ if ( ! FEEDZY_DISABLE_CACHE_FOR_TESTING ) {
431
+ $feed->set_cache_class( 'WP_Feed_Cache' );
432
+ $feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', $cache_time, $feedURL ) );
433
+ }
434
+ $feed->set_feed_url( $feedURL );
435
+ $feed->force_feed( apply_filters( 'feedzy_force_feed', true ) );
436
+ do_action( 'feedzy_modify_feed_config', $feed );
437
+ $feed->init();
438
+
439
+ return $feed;
440
+ }
441
+
442
+ /**
443
+ * Change the default user agent based on the feed url.
444
+ *
445
+ * @param string|array $urls Feed urls.
446
+ *
447
+ * @return string Optimal User Agent
448
+ */
449
+ private function get_default_user_agent( $urls ) {
450
+
451
+ $set = array();
452
+ if ( ! is_array( $urls ) ) {
453
+ $set[] = $urls;
454
+ }
455
+ foreach ( $set as $url ) {
456
+ if ( strpos( $url, 'medium.com' ) !== false ) {
457
+ return FEEDZY_USER_AGENT;
458
+ }
459
+ }
460
+
461
+ return SIMPLEPIE_USERAGENT;
462
+ }
463
+
464
+ /**
465
+ * Returns only valid URLs for fetching.
466
+ *
467
+ * @since 3.2.0
468
+ * @access private
469
+ *
470
+ * @param array|string $feedURL The feeds URL/s.
471
+ * @param string $cache The cache string (eg. 1_hour, 30_min etc.).
472
+ *
473
+ * @return array
474
+ */
475
+ private function get_valid_feed_urls( $feedURL, $cache ) {
476
+ $validFeedURL = array();
477
+ if ( is_array( $feedURL ) ) {
478
+ foreach ( $feedURL as $url ) {
479
+ if ( $this->check_valid_xml( $url, $cache ) ) {
480
+ $validFeedURL[] = $url;
481
+ } else {
482
+ echo sprintf( __( 'Feed URL: %s not valid and removed from fetch.', 'feedzy-rss-feeds' ), '<b>' . $url . '</b>' );
483
+ }
484
+ }
485
+ } else {
486
+ if ( $this->check_valid_xml( $feedURL, $cache ) ) {
487
+ $validFeedURL[] = $feedURL;
488
+ } else {
489
+ echo sprintf( __( 'Feed URL: %s not valid and removed from fetch.', 'feedzy-rss-feeds' ), '<b>' . $feedURL . '</b>' );
490
+ }
491
+ }
492
+
493
+ return $validFeedURL;
494
+ }
495
+
496
+ /**
497
+ * Checks if a url is a valid feed.
498
+ *
499
+ * @since 3.2.0
500
+ * @access private
501
+ *
502
+ * @param string $url The URL to validate.
503
+ * @param string $cache The cache string (eg. 1_hour, 30_min etc.).
504
+ *
505
+ * @return bool
506
+ */
507
+ private function check_valid_xml( $url, $cache ) {
508
+ $feed = $this->init_feed( $url, $cache );
509
+ if ( $feed->error() ) {
510
+ return false;
511
+ }
512
+
513
+ return true;
514
+ }
515
+
516
+ /**
517
+ * Sanitizes the shortcode array and sets the defaults
518
+ *
519
+ * @since 3.0.0
520
+ * @access public
521
+ *
522
+ * @param array $sc The shorcode attributes array.
523
+ * @param string $feedURL The feed url.
524
+ *
525
+ * @return mixed
526
+ */
527
+ public function sanitize_attr( $sc, $feedURL ) {
528
+ if ( $sc['max'] == '0' ) {
529
+ $sc['max'] = '999';
530
+ } elseif ( empty( $sc['max'] ) || ! ctype_digit( $sc['max'] ) ) {
531
+ $sc['max'] = '5';
532
+ }
533
+ if ( empty( $sc['size'] ) || ! ctype_digit( $sc['size'] ) ) {
534
+ $sc['size'] = '150';
535
+ }
536
+ if ( ! empty( $sc['title'] ) && ! ctype_digit( $sc['title'] ) ) {
537
+ $sc['title'] = '';
538
+ }
539
+ if ( ! empty( $sc['keywords_title'] ) ) {
540
+ $sc['keywords_title'] = rtrim( $sc['keywords_title'], ',' );
541
+ $sc['keywords_title'] = array_map( 'trim', explode( ',', $sc['keywords_title'] ) );
542
+ }
543
+ if ( ! empty( $sc['keywords_ban'] ) ) {
544
+ $sc['keywords_ban'] = rtrim( $sc['keywords_ban'], ',' );
545
+ $sc['keywords_ban'] = array_map( 'trim', explode( ',', $sc['keywords_ban'] ) );
546
+ }
547
+ if ( ! empty( $sc['summarylength'] ) && ! ctype_digit( $sc['summarylength'] ) ) {
548
+ $sc['summarylength'] = '';
549
+ }
550
+ if ( empty( $sc['default'] ) ) {
551
+ $sc['default'] = apply_filters( 'feedzy_default_image', $sc['default'], $feedURL );
552
+ }
553
+
554
+ return $sc;
555
+ }
556
+
557
+ /**
558
+ * Render the content to be displayed
559
+ *
560
+ * @since 3.0.0
561
+ * @access public
562
+ *
563
+ * @param array $sc The shorcode attributes array.
564
+ * @param object $feed The feed object.
565
+ * @param string $content The original content.
566
+ * @param string $feedURL The feed url.
567
+ *
568
+ * @return string
569
+ */
570
+ public function render_content( $sc, $feed, $content = '', $feedURL ) {
571
+ $count = 0;
572
+ $sizes = array(
573
+ 'width' => $sc['size'],
574
+ 'height' => $sc['size'],
575
+ );
576
+ $sizes = apply_filters( 'feedzy_thumb_sizes', $sizes, $feedURL );
577
+ $feed_title['use_title'] = false;
578
+ if ( $sc['feed_title'] == 'yes' ) {
579
+ $feed_title = $this->get_feed_title_filter( $feed );
580
+ $feed_title['use_title'] = true;
581
+ }
582
+ // Display the error message
583
+ if ( $feed->error() ) {
584
+ $content .= apply_filters( 'feedzy_default_error', $feed->error(), $feedURL );
585
+ }
586
+ $feed_items = apply_filters( 'feedzy_get_feed_array', array(), $sc, $feed, $feedURL, $sizes );
587
+ $content = '<div class="feedzy-rss">';
588
+ if ( $feed_title['use_title'] ) {
589
+ $content .= '<div class="rss_header">';
590
+ $content .= '<h2><a href="' . $feed->get_permalink() . '" class="rss_title">' . html_entity_decode( $feed->get_title() ) . '</a> <span class="rss_description"> ' . $feed->get_description() . '</span></h2>';
591
+ $content .= '</div>';
592
+ }
593
+ $content .= '<ul>';
594
+ foreach ( $feed_items as $item ) {
595
+ $content .= '
596
+ <li ' . $item['itemAttr'] . '>
597
+ ' . ( ( ! empty( $item['item_img'] ) && $sc['thumb'] != 'no' ) ? '
598
+ <div class="' . $item['item_img_class'] . '" style="' . $item['item_img_style'] . '">
599
+ <a href="' . $item['item_url'] . '" target="' . $item['item_url_target'] . '" title="' . $item['item_url_title'] . '" style="' . $item['item_img_style'] . '">
600
+ ' . $item['item_img'] . '
601
+ </a>
602
+ </div>' : '' ) . '
603
+ <span class="title">
604
+ <a href="' . $item['item_url'] . '" target="' . $item['item_url_target'] . '">
605
+ ' . $item['item_title'] . '
606
+ </a>
607
+ </span>
608
+ <div class="' . $item['item_content_class'] . '" style="' . $item['item_content_style'] . '">
609
+ ' . ( ! empty( $item['item_meta'] ) ? '<small>
610
+ ' . $item['item_meta'] . '
611
+ </small>' : '' ) . '
612
+ ' . ( ! empty( $item['item_description'] ) ? '<p>' . $item['item_description'] . '</p>' : '' ) . '
613
+ </div>
614
+ </li>
615
+ ';
616
+ }
617
+ $content .= '</ul> </div>';
618
+ $content = apply_filters( 'feedzy_global_output', $content, $sc, $feed_title, $feed_items );
619
+
620
+ return $content;
621
+ }
622
+
623
+ /**
624
+ * Retrive the filter rss title array
625
+ *
626
+ * @since 3.0.0
627
+ * @access private
628
+ *
629
+ * @param object $feed The feed object.
630
+ *
631
+ * @return array
632
+ */
633
+ private function get_feed_title_filter( $feed ) {
634
+ return array(
635
+ 'rss_url' => $feed->get_permalink(),
636
+ 'rss_title_class' => 'rss_title',
637
+ 'rss_title' => html_entity_decode( $feed->get_title() ),
638
+ 'rss_description_class' => 'rss_description',
639
+ 'rss_description' => $feed->get_description(),
640
+ );
641
+ }
642
+
643
+ /**
644
+ * Get the feed url based on the feeds passed from the shortcode attribute.
645
+ *
646
+ * @since 3.0.0
647
+ * @access public
648
+ *
649
+ * @param string $feeds The feeds from the shortcode attribute.
650
+ *
651
+ * @return array|mixed
652
+ */
653
+ public function get_feed_url( $feeds ) {
654
+ $feedURL = '';
655
+ if ( ! empty( $feeds ) ) {
656
+ $feeds = rtrim( $feeds, ',' );
657
+ $feeds = explode( ',', $feeds );
658
+ $feedURL = array();
659
+ // Remove SSL from HTTP request to prevent fetching errors
660
+ foreach ( $feeds as $feed ) {
661
+ if ( FEEDZY_ALLOW_HTTPS ) {
662
+ $feedURL[] = $feed;
663
+ } else {
664
+ $feedURL[] = preg_replace( '/^https:/i', 'http:', $feed );
665
+ }
666
+ // scheme-less URLs.
667
+ if ( strpos( $feed, 'http' ) !== 0 ) {
668
+ $feed = 'http://' . $feed;
669
+ }
670
+ }
671
+ if ( count( $feedURL ) === 1 ) {
672
+ $feedURL = $feedURL[0];
673
+ }
674
+ }
675
+
676
+ return $feedURL;
677
+ }
678
+
679
+ /**
680
+ * Utility method to return feed in array format
681
+ * before content render.
682
+ *
683
+ * @since 3.0.12
684
+ * @access public
685
+ *
686
+ * @param array $feed_items The feed items array.
687
+ * @param array $sc The short code attributes.
688
+ * @param object $feed The feed object.
689
+ * @param string $feedURL The feed URL source/s.
690
+ * @param array $sizes Sizes array.
691
+ *
692
+ * @return array
693
+ */
694
+ public function get_feed_array( $feed_items, $sc, $feed, $feedURL, $sizes ) {
695
+ $count = 0;
696
+ $items = apply_filters( 'feedzy_feed_items', $feed->get_items(), $feedURL );
697
+ foreach ( (array) $items as $item ) {
698
+ if ( trim( $item->get_title() ) != '' ) {
699
+ $continue = apply_filters( 'feedzy_item_keyword', true, $sc, $item, $feedURL );
700
+ if ( $continue == true ) {
701
+ // Count items. This should be > and not >= because max, when not defined and empty, becomes 0.
702
+ if ( $count >= $sc['max'] ) {
703
+ break;
704
+ }
705
+ $itemAttr = apply_filters( 'feedzy_item_attributes', $itemAttr = '', $sizes, $item, $feedURL, $sc );
706
+ $feed_items[ $count ] = $this->get_feed_item_filter( $sc, $sizes, $item, $feedURL );
707
+ $feed_items[ $count ]['itemAttr'] = $itemAttr;
708
+ $count ++;
709
+ }
710
+ }
711
+ }
712
+
713
+ return $feed_items;
714
+ }
715
+
716
+ /**
717
+ * Retrive the filter item array
718
+ *
719
+ * @since 3.0.0
720
+ * @access private
721
+ *
722
+ * @param array $sc The shorcode attributes array.
723
+ * @param array $sizes The sizes array.
724
+ * @param object $item The feed item object.
725
+ * @param string $feedURL The feed url.
726
+ *
727
+ * @return array
728
+ */
729
+ private function get_feed_item_filter( $sc, $sizes, $item, $feedURL ) {
730
+ $itemLink = $item->get_permalink();
731
+ $newLink = apply_filters( 'feedzy_item_url_filter', $itemLink, $sc, $item );
732
+ // Fetch image thumbnail
733
+ if ( $sc['thumb'] == 'yes' || $sc['thumb'] == 'auto' ) {
734
+ $theThumbnail = $this->feedzy_retrieve_image( $item );
735
+ }
736
+ if ( $sc['thumb'] == 'yes' || $sc['thumb'] == 'auto' ) {
737
+ $contentThumb = '';
738
+ if ( ( ! empty( $theThumbnail ) && $sc['thumb'] == 'auto' ) || $sc['thumb'] == 'yes' ) {
739
+ if ( ! empty( $theThumbnail ) ) {
740
+ $theThumbnail = $this->feedzy_image_encode( $theThumbnail );
741
+ $contentThumb .= '<span class="fetched" style="background-image: url(\'' . $theThumbnail . '\');" title="' . esc_html( $item->get_title() ) . '"></span>';
742
+ }
743
+ if ( $sc['thumb'] == 'yes' ) {
744
+ $contentThumb .= '<span class="default" style="background-image:url(' . $sc['default'] . ');" title="' . esc_html( $item->get_title() ) . '"></span>';
745
+ }
746
+ }
747
+ $contentThumb = apply_filters( 'feedzy_thumb_output', $contentThumb, $feedURL, $sizes, $item );
748
+ } else {
749
+ $contentThumb = '';
750
+ $contentThumb .= '<span class="default" style="width:' . $sizes['width'] . 'px; height:' . $sizes['height'] . 'px; background-image:url(' . $sc['default'] . ');" title="' . $item->get_title() . '"></span>';
751
+ $contentThumb = apply_filters( 'feedzy_thumb_output', $contentThumb, $feedURL, $sizes, $item );
752
+ }
753
+ $contentTitle = '';
754
+ if ( is_numeric( $sc['title'] ) && strlen( $item->get_title() ) > $sc['title'] ) {
755
+ $contentTitle .= preg_replace( '/\s+?(\S+)?$/', '', substr( $item->get_title(), 0, $sc['title'] ) ) . '...';
756
+ } else {
757
+ $contentTitle .= $item->get_title();
758
+ }
759
+ $contentTitle = apply_filters( 'feedzy_title_output', $contentTitle, $feedURL, $item );
760
+ // Define Meta args
761
+ $metaArgs = array(
762
+ 'author' => true,
763
+ 'date' => true,
764
+ 'date_format' => get_option( 'date_format' ),
765
+ 'time_format' => get_option( 'time_format' ),
766
+ );
767
+ // Filter: feedzy_meta_args
768
+ $metaArgs = apply_filters( 'feedzy_meta_args', $metaArgs, $feedURL, $item );
769
+ $contentMeta = '';
770
+ if ( $sc['meta'] == 'yes' && ( $metaArgs['author'] || $metaArgs['date'] ) ) {
771
+ $contentMeta = '';
772
+ if ( $item->get_author() && $metaArgs['author'] ) {
773
+ $author = $item->get_author();
774
+ if ( ! $authorName = $author->get_name() ) {
775
+ $authorName = $author->get_email();
776
+ }
777
+
778
+ $authorName = apply_filters( 'feedzy_author_name', $authorName, $feedURL, $item );
779
+
780
+ if ( $authorName ) {
781
+ $domain = parse_url( $newLink );
782
+ $authorURL = '//' . $domain['host'];
783
+ $authorURL = apply_filters( 'feedzy_author_url', $authorURL, $authorName, $feedURL, $item );
784
+ $contentMeta .= __( 'by', 'feedzy-rss-feeds' ) . ' <a href="' . $authorURL . '" target="' . $sc['target'] . '" title="' . $domain['host'] . '" >' . $authorName . '</a> ';
785
+ }
786
+ }
787
+ if ( $metaArgs['date'] ) {
788
+ $date_time = $item->get_date( 'U' );
789
+ $date_time = apply_filters( 'feedzy_feed_timestamp', $date_time, $feedURL, $item );
790
+ if ( ! empty( $metaArgs['date_format'] ) ) {
791
+ $contentMeta .= __( 'on', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['date_format'], $date_time );
792
+ $contentMeta .= ' ';
793
+ }
794
+ if ( ! empty( $metaArgs['time_format'] ) ) {
795
+ $contentMeta .= __( 'at', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['time_format'], $date_time );
796
+ }
797
+ }
798
+ }
799
+ $contentMeta = apply_filters( 'feedzy_meta_output', $contentMeta, $feedURL, $item );
800
+ $contentSummary = '';
801
+ if ( $sc['summary'] == 'yes' ) {
802
+ $contentSummary = '';
803
+ $description = $item->get_description();
804
+ $description = apply_filters( 'feedzy_summary_input', $description, $item->get_content(), $feedURL, $item );
805
+ if ( is_numeric( $sc['summarylength'] ) && strlen( $description ) > $sc['summarylength'] ) {
806
+ $contentSummary .= preg_replace( '/\s+?(\S+)?$/', '', substr( $description, 0, $sc['summarylength'] ) ) . ' […]';
807
+ } else {
808
+ $contentSummary .= $description . ' […]';
809
+ }
810
+ $contentSummary = apply_filters( 'feedzy_summary_output', $contentSummary, $newLink, $feedURL, $item );
811
+ }
812
+ $itemArray = array(
813
+ 'item_img_class' => 'rss_image',
814
+ 'item_img_style' => 'width:' . $sizes['width'] . 'px; height:' . $sizes['height'] . 'px;',
815
+ 'item_url' => $newLink,
816
+ 'item_url_target' => $sc['target'],
817
+ 'item_url_title' => $item->get_title(),
818
+ 'item_img' => $contentThumb,
819
+ 'item_img_path' => $this->feedzy_retrieve_image( $item ),
820
+ 'item_title' => $contentTitle,
821
+ 'item_content_class' => 'rss_content',
822
+ 'item_content_style' => '',
823
+ 'item_meta' => $contentMeta,
824
+ 'item_date' => $item->get_date( 'U' ),
825
+ 'item_author' => $item->get_author(),
826
+ 'item_description' => $contentSummary,
827
+ 'item_content' => apply_filters( 'feedzy_content', $item->get_content( false ), $item ),
828
+ );
829
+ $itemArray = apply_filters( 'feedzy_item_filter', $itemArray, $item );
830
+
831
+ return $itemArray;
832
+ }
833
+
834
+ /**
835
+ * Retrive image from the item object
836
+ *
837
+ * @since 3.0.0
838
+ * @access public
839
+ *
840
+ * @param object $item The item object.
841
+ *
842
+ * @return string
843
+ */
844
+ public function feedzy_retrieve_image( $item ) {
845
+ $theThumbnail = '';
846
+ if ( $enclosures = $item->get_enclosures() ) {
847
+ foreach ( (array) $enclosures as $enclosure ) {
848
+ // Item thumbnail
849
+ if ( $thumbnail = $enclosure->get_thumbnail() ) {
850
+ $theThumbnail = $thumbnail;
851
+ }
852
+ if ( isset( $enclosure->thumbnails ) ) {
853
+ foreach ( (array) $enclosure->thumbnails as $thumbnail ) {
854
+ $theThumbnail = $thumbnail;
855
+ }
856
+ }
857
+ if ( $thumbnail = $enclosure->embed() ) {
858
+ $pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpeg|JPEG|jpe|JPE|gif|GIF|png|PNG)/i';
859
+ if ( preg_match( $pattern, $thumbnail, $matches ) ) {
860
+ $theThumbnail = $matches[0];
861
+ }
862
+ }
863
+ foreach ( (array) $enclosure->get_link() as $thumbnail ) {
864
+ $pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpeg|JPEG|jpe|JPE|gif|GIF|png|PNG)/i';
865
+ $imgsrc = $thumbnail;
866
+ if ( preg_match( $pattern, $imgsrc, $matches ) ) {
867
+ $theThumbnail = $thumbnail;
868
+ break;
869
+ }
870
+ }
871
+ // Break loop if thumbnail is found
872
+ if ( ! empty( $theThumbnail ) ) {
873
+ break;
874
+ }
875
+ }
876
+ }
877
+ // xmlns:itunes podcast
878
+ if ( empty( $theThumbnail ) ) {
879
+ $data = $item->get_item_tags( 'http://www.itunes.com/dtds/podcast-1.0.dtd', 'image' );
880
+ if ( isset( $data['0']['attribs']['']['href'] ) && ! empty( $data['0']['attribs']['']['href'] ) ) {
881
+ $theThumbnail = $data['0']['attribs']['']['href'];
882
+ }
883
+ }
884
+ // Content image
885
+ if ( empty( $theThumbnail ) ) {
886
+ $feedDescription = $item->get_content();
887
+ $theThumbnail = $this->feedzy_return_image( $feedDescription );
888
+ }
889
+ // Description image
890
+ if ( empty( $theThumbnail ) ) {
891
+ $feedDescription = $item->get_description();
892
+ $theThumbnail = $this->feedzy_return_image( $feedDescription );
893
+ }
894
+
895
+ $theThumbnail = apply_filters( 'feedzy_retrieve_image', $theThumbnail, $item );
896
+
897
+ return $theThumbnail;
898
+ }
899
+
900
+ /**
901
+ * Get an image from a string
902
+ *
903
+ * @since 3.0.0
904
+ * @access public
905
+ *
906
+ * @param string $string A string with an <img/> tag.
907
+ *
908
+ * @return string
909
+ */
910
+ public function feedzy_return_image( $string ) {
911
+ $img = html_entity_decode( $string, ENT_QUOTES, 'UTF-8' );
912
+ $pattern = '/<img[^>]+\>/i';
913
+ preg_match_all( $pattern, $img, $matches );
914
+
915
+ $image = null;
916
+ if ( isset( $matches[0] ) ) {
917
+ foreach ( $matches[0] as $match ) {
918
+ $link = $this->feedzy_scrape_image( $match );
919
+ $blacklist = $this->feedzy_blacklist_images();
920
+ $is_blacklist = false;
921
+ foreach ( $blacklist as $string ) {
922
+ if ( strpos( (string) $link, $string ) !== false ) {
923
+ $is_blacklist = true;
924
+ break;
925
+ }
926
+ }
927
+ if ( ! $is_blacklist ) {
928
+ $image = $link;
929
+ break;
930
+ }
931
+ }
932
+ }
933
+
934
+ return $image;
935
+ }
936
+
937
+ /**
938
+ * Scrape an image for link from a string with an <img/>
939
+ *
940
+ * @since 3.0.0
941
+ * @access public
942
+ *
943
+ * @param string $string A string with an <img/> tag.
944
+ * @param string $link The link to search for.
945
+ *
946
+ * @return string
947
+ */
948
+ public function feedzy_scrape_image( $string, $link = '' ) {
949
+ $pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
950
+ $match = $link;
951
+ preg_match( $pattern, $string, $link );
952
+ if ( ! empty( $link ) && isset( $link[1] ) ) {
953
+ $match = $link[1];
954
+ }
955
+
956
+ return $match;
957
+ }
958
+
959
+ /**
960
+ * List blacklisted images to prevent fetching emoticons
961
+ *
962
+ * @since 3.0.0
963
+ * @access public
964
+ *
965
+ * @return array
966
+ */
967
+ public function feedzy_blacklist_images() {
968
+ $blacklist = array(
969
+ 'frownie.png',
970
+ 'icon_arrow.gif',
971
+ 'icon_biggrin.gif',
972
+ 'icon_confused.gif',
973
+ 'icon_cool.gif',
974
+ 'icon_cry.gif',
975
+ 'icon_eek.gif',
976
+ 'icon_evil.gif',
977
+ 'icon_exclaim.gif',
978
+ 'icon_idea.gif',
979
+ 'icon_lol.gif',
980
+ 'icon_mad.gif',
981
+ 'icon_mrgreen.gif',
982
+ 'icon_neutral.gif',
983
+ 'icon_question.gif',
984
+ 'icon_razz.gif',
985
+ 'icon_redface.gif',
986
+ 'icon_rolleyes.gif',
987
+ 'icon_sad.gif',
988
+ 'icon_smile.gif',
989
+ 'icon_surprised.gif',
990
+ 'icon_twisted.gif',
991
+ 'icon_wink.gif',
992
+ 'mrgreen.png',
993
+ 'rolleyes.png',
994
+ 'simple-smile.png',
995
+ );
996
+
997
+ return apply_filters( 'feedzy_feed_blacklist_images', $blacklist );
998
+ }
999
+
1000
+ /**
1001
+ * Image name encoder and url retrive if in url param
1002
+ *
1003
+ * @since 3.0.0
1004
+ * @access public
1005
+ *
1006
+ * @param string $string A string containing the image URL.
1007
+ *
1008
+ * @return string
1009
+ */
1010
+ public function feedzy_image_encode( $string ) {
1011
+ // Check if img url is set as an URL parameter
1012
+ $url_tab = parse_url( $string );
1013
+ if ( isset( $url_tab['query'] ) ) {
1014
+ preg_match_all( '/(http|https):\/\/[^ ]+(\.gif|\.GIF|\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG)/', $url_tab['query'], $imgUrl );
1015
+ if ( isset( $imgUrl[0][0] ) ) {
1016
+ $string = $imgUrl[0][0];
1017
+ }
1018
+ }
1019
+ // Encode image name only en keep extra parameters
1020
+ $query = '';
1021
+ if ( isset( $url_tab['query'] ) ) {
1022
+ $query = '?' . $url_tab['query'];
1023
+ }
1024
+ $path = ltrim( $url_tab['path'], '/' );
1025
+
1026
+ if ( substr( $path, 0, 0 ) !== '/' ) {
1027
+ $path = '/' . $path;
1028
+ }
1029
+
1030
+ // Return a well encoded image url
1031
+ return $url_tab['scheme'] . '://' . $url_tab['host'] . $path . $query;
1032
+ }
1033
+
1034
+ /**
1035
+ * Render the form template for tinyMCE popup.
1036
+ * Called via ajax.
1037
+ *
1038
+ * @since 3.0.0
1039
+ * @access public
1040
+ */
1041
+ public function get_tinymce_form() {
1042
+ die( include FEEDZY_ABSPATH . '/form/form.php' );
1043
+ }
1044
+
1045
+ /**
1046
+ * Method used to render upsell page.
1047
+ *
1048
+ * @since 3.0.12
1049
+ * @access public
1050
+ */
1051
+ public function render_upsell() {
1052
+ $this->load_layout( 'feedzy-upsell' );
1053
+ }
1054
+
1055
+ /**
1056
+ * Method used to render pages
1057
+ *
1058
+ * @since 3.0.12
1059
+ * @access public
1060
+ *
1061
+ * @param string $layout_name The name of the layout.
1062
+ *
1063
+ * @return mixed
1064
+ */
1065
+ public function load_layout( $layout_name ) {
1066
+ include( FEEDZY_ABSPATH . '/includes/layouts/' . $layout_name . '.php' );
1067
+ }
1068
+
1069
+ /**
1070
+ * Utility method to insert before specific key
1071
+ * in an associative array.
1072
+ *
1073
+ * @since 3.0.12
1074
+ * @access public
1075
+ *
1076
+ * @param string $key The key before to insert.
1077
+ * @param array $array The array in which to insert the new key.
1078
+ * @param string $new_key The new key name.
1079
+ * @param mixed $new_value The new key value.
1080
+ *
1081
+ * @return array|bool
1082
+ */
1083
+ protected function array_insert_before( $key, &$array, $new_key, $new_value ) {
1084
+ if ( array_key_exists( $key, $array ) ) {
1085
+ $new = array();
1086
+ foreach ( $array as $k => $value ) {
1087
+ if ( $k === $key ) {
1088
+ $new[ $new_key ] = $new_value;
1089
+ }
1090
+ $new[ $k ] = $value;
1091
+ }
1092
+
1093
+ return $new;
1094
+ }
1095
+
1096
+ return false;
1097
+ }
1098
+ }
dist/includes/admin/feedzy-rss-feeds-admin.php ADDED
@@ -0,0 +1,534 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The admin-specific functionality of the plugin.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/admin
10
+ */
11
+ /**
12
+ * The admin-specific functionality of the plugin.
13
+ *
14
+ * Defines the plugin name, version, and two examples hooks for how to
15
+ * enqueue the admin-specific stylesheet and JavaScript.
16
+ *
17
+ * @package feedzy-rss-feeds
18
+ * @subpackage feedzy-rss-feeds/includes/admin
19
+ * @author Themeisle <friends@themeisle.com>
20
+ */
21
+
22
+ /**
23
+ * Class Feedzy_Rss_Feeds_Admin
24
+ */
25
+ class Feedzy_Rss_Feeds_Admin extends Feedzy_Rss_Feeds_Admin_Abstract {
26
+
27
+ /**
28
+ * Any notice we want to show in the settings screen.
29
+ *
30
+ * @access public
31
+ * @var string $notice The notice.
32
+ */
33
+ public $notice;
34
+ /**
35
+ * Any error we want to show in the settings screen.
36
+ *
37
+ * @access public
38
+ * @var string $error The error.
39
+ */
40
+ public $error;
41
+ /**
42
+ * The version of this plugin.
43
+ *
44
+ * @since 3.0.0
45
+ * @access protected
46
+ * @var string $version The current version of this plugin.
47
+ */
48
+ protected $version;
49
+ /**
50
+ * The ID of this plugin.
51
+ *
52
+ * @since 3.0.0
53
+ * @access private
54
+ * @var string $plugin_name The ID of this plugin.
55
+ */
56
+ private $plugin_name;
57
+
58
+ /**
59
+ * Initialize the class and set its properties.
60
+ *
61
+ * @since 3.0.0
62
+ * @access public
63
+ *
64
+ * @param string $plugin_name The name of this plugin.
65
+ * @param string $version The version of this plugin.
66
+ */
67
+ public function __construct( $plugin_name, $version ) {
68
+ $this->plugin_name = $plugin_name;
69
+ $this->version = $version;
70
+ }
71
+
72
+ /**
73
+ * Register the stylesheets for the admin area.
74
+ *
75
+ * @since 3.0.0
76
+ * @access public
77
+ */
78
+ public function enqueue_styles() {
79
+ /**
80
+ * This function is provided for demonstration purposes only.
81
+ *
82
+ * An instance of this class should be passed to the run() function
83
+ * defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined
84
+ * in that particular class.
85
+ *
86
+ * The Feedzy_Rss_Feeds_Loader will then create the relationship
87
+ * between the defined hooks and the functions defined in this
88
+ * class.
89
+ */
90
+
91
+ wp_enqueue_style( $this->plugin_name, FEEDZY_ABSURL . 'css/feedzy-rss-feeds.css', array(), $this->version, 'all' );
92
+ if ( ! is_admin() ) {
93
+ return;
94
+ }
95
+ $screen = get_current_screen();
96
+ if ( empty( $screen ) ) {
97
+ return;
98
+ }
99
+ if ( ! isset( $screen->base ) ) {
100
+ return;
101
+ }
102
+
103
+ $upsell_screens = array( 'feedzy-rss_page_feedzy-settings', 'feedzy-rss_page_feedzy-admin-menu-pro-upsell' );
104
+
105
+ if ( ! in_array( $screen->base, $upsell_screens ) && strpos( $screen->id, 'feedzy' ) === false ) {
106
+ return;
107
+ }
108
+ wp_enqueue_style( $this->plugin_name . '-upsell', FEEDZY_ABSURL . 'includes/layouts/css/upsell.css' );
109
+ wp_enqueue_style( $this->plugin_name . '-settings', FEEDZY_ABSURL . 'css/metabox-settings.css', array( $this->plugin_name . '-upsell' ) );
110
+ }
111
+
112
+ /**
113
+ * Register the JavaScript for the admin area.
114
+ *
115
+ * @since 3.0.0
116
+ * @access public
117
+ */
118
+ public function enqueue_scripts() {
119
+
120
+ /**
121
+ * This function is provided for demonstration purposes only.
122
+ *
123
+ * An instance of this class should be passed to the run() function
124
+ * defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined
125
+ * in that particular class.
126
+ *
127
+ * The Feedzy_Rss_Feeds_Loader will then create the relationship
128
+ * between the defined hooks and the functions defined in this
129
+ * class.
130
+ */
131
+ }
132
+
133
+ /**
134
+ * Method to register custom post type for
135
+ * Feedzy RSS Feeds Categories.
136
+ *
137
+ * @since 3.0.12
138
+ * @access public
139
+ */
140
+ public function register_post_type() {
141
+ $labels = array(
142
+ 'name' => __( 'Feed Categories', 'feedzy-rss-feeds' ),
143
+ 'singular_name' => __( 'Feed Category', 'feedzy-rss-feeds' ),
144
+ 'add_new' => __( 'Add Category', 'feedzy-rss-feeds' ),
145
+ 'add_new_item' => __( 'Add Category', 'feedzy-rss-feeds' ),
146
+ 'edit_item' => __( 'Edit Category', 'feedzy-rss-feeds' ),
147
+ 'new_item' => __( 'New Feed Category', 'feedzy-rss-feeds' ),
148
+ 'view_item' => __( 'View Category', 'feedzy-rss-feeds' ),
149
+ 'search_items' => __( 'Search Category', 'feedzy-rss-feeds' ),
150
+ 'not_found' => __( 'No categories found', 'feedzy-rss-feeds' ),
151
+ 'not_found_in_trash' => __( 'No categories in the trash', 'feedzy-rss-feeds' ),
152
+ );
153
+ $supports = array(
154
+ 'title',
155
+ );
156
+ $args = array(
157
+ 'labels' => $labels,
158
+ 'supports' => $supports,
159
+ 'public' => true,
160
+ 'exclude_from_search' => true,
161
+ 'publicly_queryable' => false,
162
+ 'show_in_nav_menus' => false,
163
+ 'capability_type' => 'post',
164
+ 'rewrite' => array( 'slug' => 'feedzy-category' ),
165
+ 'show_in_menu' => 'feedzy-admin-menu',
166
+ 'register_meta_box_cb' => array( $this, 'add_feedzy_post_type_metaboxes' ),
167
+ 'show_in_rest' => true,
168
+ 'rest_base' => 'feedzy_categories',
169
+ 'rest_controller_class' => 'WP_REST_Posts_Controller',
170
+ );
171
+ $args = apply_filters( 'feedzy_post_type_args', $args );
172
+ register_post_type( 'feedzy_categories', $args );
173
+ }
174
+
175
+ /**
176
+ * Method to add a meta box to `feedzy_categories`
177
+ * custom post type.
178
+ *
179
+ * @since 3.0.12
180
+ * @access public
181
+ */
182
+ public function add_feedzy_post_type_metaboxes() {
183
+ add_meta_box(
184
+ 'feedzy_category_feeds', __( 'Category Feeds', 'feedzy-rss-feeds' ), array(
185
+ $this,
186
+ 'feedzy_category_feed',
187
+ ), 'feedzy_categories', 'normal', 'high'
188
+ );
189
+ add_meta_box(
190
+ 'feedzy_category_feeds_rn', __( 'Increase your social media presence', 'feedzy-rss-feeds' ), array(
191
+ $this,
192
+ 'render_upsell_rn',
193
+ ), 'feedzy_categories', 'side', 'low'
194
+ );
195
+ }
196
+
197
+ /**
198
+ * Render RN upsell metabox.
199
+ */
200
+ public function render_upsell_rn() {
201
+ echo '<p>Learn how you can connect with people by sharing content from RSS feeds on your social media accounts. </p>';
202
+ echo '<a class="button button-primary " href="https://revive.social/plugins/revive-network/" target="_blank">View more details</a>';
203
+
204
+ }
205
+
206
+ /**
207
+ * Meta box callback function to display a textarea
208
+ * inside the custom post edit page.
209
+ *
210
+ * @since 3.0.12
211
+ * @access public
212
+ * @return mixed
213
+ */
214
+ public function feedzy_category_feed() {
215
+ global $post;
216
+ $nonce = wp_create_nonce( FEEDZY_BASEFILE );
217
+ $feed = get_post_meta( $post->ID, 'feedzy_category_feed', true );
218
+ $output = '
219
+ <input type="hidden" name="feedzy_category_meta_noncename" id="feedzy_category_meta_noncename" value="' . $nonce . '" />
220
+ <textarea name="feedzy_category_feed" rows="15" class="widefat" placeholder="' . __( 'Place your URL\'s here followed by a comma.', 'feedzy-rss-feeds' ) . '" >' . $feed . '</textarea>
221
+ ';
222
+ echo $output;
223
+ }
224
+
225
+ /**
226
+ * Utility method to save metabox data to
227
+ * custom post type.
228
+ *
229
+ * @since 3.0.12
230
+ * @access public
231
+ *
232
+ * @param integer $post_id The active post ID.
233
+ * @param object $post The post object.
234
+ *
235
+ * @return mixed|integer
236
+ */
237
+ public function save_feedzy_post_type_meta( $post_id, $post ) {
238
+ if (
239
+ empty( $_POST ) ||
240
+ ( isset( $_POST['feedzy_category_meta_noncename'] ) && ! wp_verify_nonce( $_POST['feedzy_category_meta_noncename'], FEEDZY_BASEFILE ) ) ||
241
+ ! current_user_can( 'edit_post', $post_id )
242
+ ) {
243
+ return $post_id;
244
+ }
245
+ $category_meta['feedzy_category_feed'] = array();
246
+ if ( isset( $_POST['feedzy_category_feed'] ) ) {
247
+ $category_meta['feedzy_category_feed'] = $_POST['feedzy_category_feed'];
248
+ }
249
+ if ( $post->post_type == 'revision' ) {
250
+ return true;
251
+ } else {
252
+ foreach ( $category_meta as $key => $value ) {
253
+ $value = implode( ',', (array) $value );
254
+ if ( get_post_meta( $post_id, $key, false ) ) {
255
+ update_post_meta( $post_id, $key, $value );
256
+ } else {
257
+ add_post_meta( $post_id, $key, $value );
258
+ }
259
+ if ( ! $value ) {
260
+ delete_post_meta( $post_id, $key );
261
+ }
262
+ }
263
+
264
+ return true;
265
+ }
266
+ }
267
+
268
+ /**
269
+ * Method for adding `slug` column to post type
270
+ * table and internalize the `title`. Used for
271
+ * table head.
272
+ *
273
+ * @since 3.0.12
274
+ * @access public
275
+ *
276
+ * @param array $columns The default columns array.
277
+ *
278
+ * @return array
279
+ */
280
+ public function feedzy_category_columns( $columns ) {
281
+ $columns['title'] = __( 'Category Title', 'feedzy-rss-feeds' );
282
+ if ( $new_columns = $this->array_insert_before( 'date', $columns, 'slug', __( 'Slug', 'feedzy-rss-feeds' ) ) ) {
283
+ $columns = $new_columns;
284
+ } else {
285
+ $columns['slug'] = __( 'Slug', 'feedzy-rss-feeds' );
286
+ }
287
+
288
+ return $columns;
289
+ }
290
+
291
+ /**
292
+ * Method for displaying post type data in custom
293
+ * added columns.
294
+ *
295
+ * @since 3.0.12
296
+ * @access public
297
+ *
298
+ * @param string $column The column string.
299
+ * @param integer $post_id The active post ID.
300
+ *
301
+ * @return mixed
302
+ */
303
+ public function manage_feedzy_category_columns( $column, $post_id ) {
304
+ global $post;
305
+ switch ( $column ) {
306
+ case 'slug':
307
+ $slug = $post->post_name;
308
+ if ( empty( $slug ) ) {
309
+ echo __( 'Undefined', 'feedzy-rss-feeds' );
310
+ } else {
311
+ echo '<code>' . $slug . '</code>';
312
+ }
313
+ break;
314
+ default:
315
+ break;
316
+ }
317
+ }
318
+
319
+ /**
320
+ * The custom plugin_row_meta function
321
+ * Adds additional links on the plugins page for this plugin
322
+ *
323
+ * @since 3.0.0
324
+ * @access public
325
+ *
326
+ * @param array $links The array having default links for the plugin.
327
+ * @param string $file The name of the plugin file.
328
+ *
329
+ * @return array
330
+ */
331
+ public function feedzy_filter_plugin_row_meta( $links, $file ) {
332
+ if ( strpos( $file, 'feedzy-rss-feed.php' ) !== false ) {
333
+ $new_links = array(
334
+ 'doc' => '<a href="https://docs.themeisle.com/article/658-feedzy-rss-feeds" target="_blank" title="' . __( 'Documentation and examples', 'feedzy-rss-feeds' ) . '">' . __( 'Documentation and examples', 'feedzy-rss-feeds' ) . '</a>',
335
+ 'more_features' => '<a href="' . FEEDZY_UPSELL_LINK . '" target="_blank" title="' . __( 'More Plugins', 'feedzy-rss-feeds' ) . '">' . __( 'More Features', 'feedzy-rss-feeds' ) . '<i style="width: 17px; height: 17px; margin-left: 4px; color: #ffca54; font-size: 17px; vertical-align: -3px;" class="dashicons dashicons-unlock more-features-icon"></i></a>',
336
+ );
337
+ $links = array_merge( $links, $new_links );
338
+ }
339
+
340
+ return $links;
341
+ }
342
+
343
+ /**
344
+ * Method to register pages for admin menu.
345
+ *
346
+ * @since 3.0.12
347
+ * @access public
348
+ */
349
+ public function feedzy_menu_pages() {
350
+ $svg_base64_icon = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NTAuMzkiIGhlaWdodD0iODUwLjM5Ij48cGF0aCBmaWxsPSIjREIzOTM5IiBkPSJNNDI1LjIgMkMxOTAuMzYgMiAwIDE5MS45MiAwIDQyNi4yYzAgMjM0LjI3IDE5MC4zNyA0MjQuMiA0MjUuMiA0MjQuMiAyMzQuODIgMCA0MjUuMi0xODkuOTMgNDI1LjItNDI0LjJDODUwLjQgMTkxLjkgNjYwIDIgNDI1LjIgMnptLTQ2LjU1IDY2OC42NmgtOTEuNTh2LTU3LjFMMjM3LjUgNTY0LjFoLTU3LjI2di05MS4yNGg5NS4yNWwxMDMuMTUgMTAyLjh2OTV6bTE1Mi41MiAwSDQzOS42di0xMzMuM0wzMTMuODUgNDExLjk0aC0xMzMuNnYtOTEuMzZIMzUxLjdMNTMxLjE4IDQ5OS42djE3MS4wNnptMTUyLjU1IDBoLTkxLjU4VjQ2MS4yTDM5MC4wNiAyNTkuNzRIMTgwLjI0di05MS4zNmgyNDcuOGwyNTUuNjggMjU1LjA3djI0Ny4yMnoiLz48L3N2Zz4=';
351
+ add_menu_page( __( 'Feedzy RSS Feeds', 'feedzy-rss-feeds' ), __( 'Feedzy RSS', 'feedzy-rss-feeds' ), 'manage_options', 'feedzy-admin-menu', '', $svg_base64_icon, 98.7666 );
352
+ if ( ! class_exists( 'Feedzy_Rss_Feeds_Pro' ) ) {
353
+ add_submenu_page(
354
+ 'feedzy-admin-menu', __( 'More Features', 'feedzy-rss-feeds' ), __( 'More Features', 'feedzy-rss-feeds' ) . '<span class="dashicons
355
+ dashicons-star-filled more-features-icon" style="width: 17px; height: 17px; margin-left: 4px; color: #ffca54; font-size: 17px; vertical-align: -3px;"></span>', 'manage_options', 'feedzy-admin-menu-pro-upsell',
356
+ array(
357
+ $this,
358
+ 'render_upsell',
359
+ )
360
+ );
361
+ } else {
362
+ $is_business = apply_filters( 'feedzy_is_business_filter', false );
363
+ if ( $is_business != false ) {
364
+ add_submenu_page( 'feedzy-admin-menu', __( 'Import Posts', 'feedzy-rss-feeds' ), __( 'Import Posts', 'feedzy-rss-feeds' ), 'manage_options', 'edit.php?post_type=feedzy_imports' );
365
+ }
366
+ }
367
+ add_submenu_page(
368
+ 'feedzy-admin-menu', __( 'Settings', 'feedzy-rss-feeds' ), __( 'Settings', 'feedzy-rss-feeds' ), 'manage_options', 'feedzy-settings', array(
369
+ $this,
370
+ 'feedzy_settings_page',
371
+ )
372
+ );
373
+ }
374
+
375
+ /**
376
+ * Method to register the settings page.
377
+ *
378
+ * @access public
379
+ */
380
+ public function feedzy_settings_page() {
381
+ if ( isset( $_POST['feedzy-settings-submit'] ) && isset( $_POST['tab'] ) && wp_verify_nonce( $_POST['nonce'], $_POST['tab'] ) ) {
382
+ $this->save_settings();
383
+ $this->notice = __( 'Your settings were saved.', 'feedzy-rss-feeds' );
384
+ }
385
+
386
+ $settings = apply_filters( 'feedzy_get_settings', array() );
387
+ include( FEEDZY_ABSPATH . '/includes/layouts/settings.php' );
388
+ }
389
+
390
+ /**
391
+ * Method to save the settings.
392
+ *
393
+ * @access private
394
+ */
395
+ private function save_settings() {
396
+ $settings = apply_filters( 'feedzy_get_settings', array() );
397
+ switch ( $_POST['tab'] ) {
398
+ case 'headers':
399
+ $settings['header']['user-agent'] = $_POST['user-agent'];
400
+ break;
401
+ case 'proxy':
402
+ $settings['proxy'] = array(
403
+ 'host' => $_POST['proxy-host'],
404
+ 'port' => $_POST['proxy-port'],
405
+ 'user' => $_POST['proxy-user'],
406
+ 'pass' => $_POST['proxy-pass'],
407
+ );
408
+ break;
409
+ default:
410
+ $settings = apply_filters( 'feedzy_save_tab_settings', $settings, $_POST['tab'] );
411
+ }
412
+
413
+ update_option( 'feedzy-settings', $settings );
414
+ }
415
+
416
+ /**
417
+ * Method to get the settings.
418
+ *
419
+ * @access public
420
+ */
421
+ public function get_settings() {
422
+ $settings = get_option( 'feedzy-settings' );
423
+
424
+ return $settings;
425
+ }
426
+
427
+ /**
428
+ * Set up the HTTP parameters/headers.
429
+ *
430
+ * @access public
431
+ */
432
+ public function pre_http_setup( $url ) {
433
+ $this->add_proxy( $url );
434
+ add_filter( 'http_headers_useragent', array( $this, 'add_user_agent' ) );
435
+ add_filter( 'http_request_args', array( $this, 'http_request_args' ) );
436
+ }
437
+
438
+ /**
439
+ * Add the proxy settings as specified in the settings.
440
+ *
441
+ * @access private
442
+ */
443
+ private function add_proxy( $url ) {
444
+ $settings = apply_filters( 'feedzy_get_settings', null );
445
+ if ( $settings && is_array( $settings['proxy'] ) && ! empty( $settings['proxy'] ) ) {
446
+ // if even one constant is defined, escape.
447
+ if ( defined( 'WP_PROXY_HOST' ) || defined( 'WP_PROXY_PORT' ) || defined( 'WP_PROXY_USERNAME' ) || defined( 'WP_PROXY_PASSWORD' ) ) {
448
+ do_action( 'themeisle_log_event', FEEDZY_NAME, 'Some proxy constants already defined; ignoring proxy settings', 'info', __FILE__, __LINE__ );
449
+
450
+ return;
451
+ }
452
+
453
+ $proxied = false;
454
+ if ( isset( $settings['proxy']['host'] ) && ! empty( $settings['proxy']['host'] ) ) {
455
+ $proxied = true;
456
+ define( 'WP_PROXY_HOST', $settings['proxy']['host'] );
457
+ }
458
+ if ( isset( $settings['proxy']['port'] ) && ! empty( $settings['proxy']['port'] ) ) {
459
+ $proxied = true;
460
+ define( 'WP_PROXY_PORT', $settings['proxy']['port'] );
461
+ }
462
+ if ( isset( $settings['proxy']['user'] ) && ! empty( $settings['proxy']['user'] ) ) {
463
+ $proxied = true;
464
+ define( 'WP_PROXY_USERNAME', $settings['proxy']['user'] );
465
+ }
466
+ if ( isset( $settings['proxy']['pass'] ) && ! empty( $settings['proxy']['pass'] ) ) {
467
+ $proxied = true;
468
+ define( 'WP_PROXY_PASSWORD', $settings['proxy']['pass'] );
469
+ }
470
+
471
+ // temporary constant for use in the pre_http_send_through_proxy filter.
472
+ if ( $proxied && ! defined( 'FEEZY_URL_THRU_PROXY' ) ) {
473
+ define( 'FEEZY_URL_THRU_PROXY', $url );
474
+ }
475
+ add_filter( 'pre_http_send_through_proxy', array( $this, 'send_through_proxy' ), 10, 4 );
476
+ }
477
+ }
478
+
479
+ /**
480
+ * Add additional HTTP request args.
481
+ *
482
+ * @access public
483
+ */
484
+ public function http_request_args( $args ) {
485
+ // allow private IPs.
486
+ $args['reject_unsafe_urls'] = false;
487
+ // allow SSLs to go through without certificate verification.
488
+ $args['sslverify'] = false;
489
+
490
+ return $args;
491
+ }
492
+
493
+ /**
494
+ * Add the user agent if specified in the settings.
495
+ *
496
+ * @access public
497
+ */
498
+ public function add_user_agent( $ua ) {
499
+ $settings = apply_filters( 'feedzy_get_settings', null );
500
+ if ( $settings && isset( $settings['header']['user-agent'] ) && ! empty( $settings['header']['user-agent'] ) ) {
501
+ do_action( 'themeisle_log_event', FEEDZY_NAME, sprintf( 'Override user-agent from %s to %s', $ua, $settings['header']['user-agent'] ), 'info', __FILE__, __LINE__ );
502
+ $ua = $settings['header']['user-agent'];
503
+ }
504
+
505
+ return $ua;
506
+ }
507
+
508
+ /**
509
+ * Check if the uri should go through the proxy.
510
+ *
511
+ * @access public
512
+ */
513
+ public function send_through_proxy( $return, $uri, $check, $home ) {
514
+ $proxied = defined( 'FEEZY_URL_THRU_PROXY' ) ? FEEZY_URL_THRU_PROXY : null;
515
+ if ( $proxied && ( ( is_array( $proxied ) && in_array( $uri, $proxied ) ) || $uri === $proxied ) ) {
516
+ do_action( 'themeisle_log_event', FEEDZY_NAME, sprintf( 'sending %s through proxy', $uri ), 'info', __FILE__, __LINE__ );
517
+
518
+ return true;
519
+ }
520
+
521
+ return false;
522
+ }
523
+
524
+ /**
525
+ * Teardown the HTTP parameters/headers.
526
+ *
527
+ * @access public
528
+ */
529
+ public function post_http_teardown( $url ) {
530
+ remove_filter( 'http_headers_useragent', array( $this, 'add_user_agent' ) );
531
+ }
532
+
533
+
534
+ }
dist/includes/admin/feedzy-rss-feeds-options.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Options main wrapper class.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.3
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/admin
10
+ */
11
+ if ( ! class_exists( 'Feedy_Rss_Feeds_Options' ) ) {
12
+ /**
13
+ * Singleton class for options wrapper
14
+ */
15
+ class Feedzy_Rss_Feeds_Options {
16
+
17
+ /**
18
+ * The main instance var.
19
+ *
20
+ * @var Feedzy_Rss_Feeds_Options The one Feedy_Rss_Feeds_Options istance.
21
+ * @since 3.0.3
22
+ */
23
+ private static $instance;
24
+
25
+ /**
26
+ * The main options array.
27
+ *
28
+ * @var array The options array.
29
+ * @since 3.0.3
30
+ */
31
+ private $options;
32
+
33
+ /**
34
+ * Init the main singleton instance class.
35
+ *
36
+ * @return Feedzy_Rss_Feeds_Options Return the instance class
37
+ */
38
+ public static function instance() {
39
+ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Feedzy_Rss_Feeds_Options ) ) {
40
+ self::$instance = new Feedzy_Rss_Feeds_Options;
41
+ self::$instance->init();
42
+ }
43
+
44
+ return self::$instance;
45
+ }
46
+
47
+ /**
48
+ * Init the default values of the options class.
49
+ */
50
+ public function init() {
51
+ self::$instance->options = get_option( Feedzy_Rss_Feeds::get_plugin_name() );
52
+ }
53
+
54
+ /**
55
+ * Get the key option value from DB.
56
+ *
57
+ * @param string $key The key name of the option.
58
+ *
59
+ * @return bool|mixed The value of the option
60
+ */
61
+ public function get_var( $key ) {
62
+ if ( isset( self::$instance->options[ $key ] ) ) {
63
+ return self::$instance->options[ $key ];
64
+ }
65
+
66
+ return false;
67
+ }
68
+
69
+ /**
70
+ * Setter method for updating the options array.
71
+ *
72
+ * @param string $key The name of option.
73
+ * @param string $value The value of the option.
74
+ *
75
+ * @return bool|mixed The value of the option.
76
+ */
77
+ public function set_var( $key, $value = '' ) {
78
+ self::$instance->options[ $key ] = apply_filters( 'feedzy_pre_set_option_' . $key, $value );
79
+
80
+ return update_option( Feedzy_Rss_Feeds::get_plugin_name(), self::$instance->options );
81
+
82
+ }
83
+ }
84
+ }// End if().
dist/includes/admin/feedzy-rss-feeds-ui-lang.php ADDED
@@ -0,0 +1,392 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Language function file for tinymce.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/admin
10
+ */
11
+ /**
12
+ *
13
+ * SECURITY : Exit if accessed directly
14
+ */
15
+ if ( ! defined( 'ABSPATH' ) ) {
16
+ die( 'Direct access not allowed!' );
17
+ }
18
+
19
+ /**
20
+ *
21
+ * Translation for TinyMCE
22
+ */
23
+
24
+ if ( ! class_exists( '_WP_Editors' ) ) {
25
+ require( ABSPATH . WPINC . '/class-wp-editor.php' );
26
+ }
27
+
28
+ /**
29
+ * Class Feedzy_Rss_Feeds_Ui_Lang
30
+ */
31
+ class Feedzy_Rss_Feeds_Ui_Lang {
32
+
33
+ /**
34
+ * The strings for translation.
35
+ *
36
+ * @since 3.0.0
37
+ * @access protected
38
+ * @var array $strings The ID of this plugin.
39
+ */
40
+ protected $strings;
41
+
42
+ /**
43
+ * Initialize the class and set its properties.
44
+ *
45
+ * @since 3.0.0
46
+ * @access public
47
+ */
48
+ public function __construct() {
49
+ $this->strings = array(
50
+ 'popup_url' => wp_nonce_url( 'admin-ajax.php', 'feedzy_ajax_token', 'feedzy_request_form_token' ),
51
+ 'pro_url' => FEEDZY_UPSELL_LINK,
52
+ 'plugin_label' => __( 'Feedzy Lite', 'feedzy-rss-feeds' ),
53
+ 'plugin_title' => __( 'Insert Feedzy RSS Feeds Shortcode', 'feedzy-rss-feeds' ),
54
+ 'image_button' => __( 'Use Image', 'feedzy-rss-feeds' ),
55
+ 'insert_button' => __( 'Insert Shortcode', 'feedzy-rss-feeds' ),
56
+ 'cancel_button' => __( 'Cancel', 'feedzy-rss-feeds' ),
57
+ 'pro_button' => __( 'Get Feedzy RSS Feeds Premium', 'feedzy-rss-feeds' ),
58
+ );
59
+ }
60
+
61
+ /**
62
+ * Return the default values of the forms elements
63
+ *
64
+ * @return array The default values of shortcode elements
65
+ */
66
+ public static function get_form_defaults() {
67
+
68
+ $html_parts = self::get_form_elements();
69
+ $all_options = wp_list_pluck( array_values( $html_parts ), 'elements' );
70
+ $all_options = call_user_func_array( 'array_merge', $all_options );
71
+ $defaults = array();
72
+
73
+ foreach ( $all_options as $id => $option ) {
74
+ $defaults[ $id ] = $option['value'];
75
+ }
76
+
77
+ return $defaults;
78
+ }
79
+
80
+ /**
81
+ * The method for localizing and generating of the tinyMCE popup form.
82
+ *
83
+ * It returns an array, use it to add more options to the popup window.
84
+ * Can be hook-ed into via 'feedzy_get_form_elements'.
85
+ *
86
+ * @since 3.0.0
87
+ * @access public
88
+ * @return array|mixed|void
89
+ */
90
+ public static function get_form_elements() {
91
+ $elements = array(
92
+ 'section_feed' => array(
93
+ 'title' => __( 'Feed Source', 'feedzy-rss-feeds' ),
94
+ 'elements' => array(
95
+ 'feeds' => array(
96
+ 'label' => __( 'The feed(s) URL (comma-separated list).', 'feedzy-rss-feeds' ) . ' ' . __( 'Check feed before insert.', 'feedzy-rss-feeds' ),
97
+ 'placeholder' => __( 'Feed URL', 'feedzy-rss-feeds' ),
98
+ 'type' => 'text',
99
+ 'value' => '',
100
+ ),
101
+ 'max' => array(
102
+ 'label' => __( 'Number of items to display.', 'feedzy-rss-feeds' ),
103
+ 'placeholder' => __( '(eg: 5)', 'feedzy-rss-feeds' ),
104
+ 'type' => 'text',
105
+ 'value' => '',
106
+ ),
107
+ 'feed_title' => array(
108
+ 'label' => __( 'Should we display the RSS title?', 'feedzy-rss-feeds' ),
109
+ 'type' => 'select',
110
+ 'value' => '',
111
+ 'opts' => array(
112
+ 'yes' => array(
113
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
114
+ 'value' => 'yes',
115
+ ),
116
+ 'no' => array(
117
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
118
+ 'value' => 'no',
119
+ ),
120
+ ),
121
+ ),
122
+ 'refresh' => array(
123
+ 'label' => __( 'For how long we will cache the feed results.', 'feedzy-rss-feeds' ),
124
+ 'placeholder' => __( '(eg: 1_days, defaults: 12_hours)', 'feedzy-rss-feeds' ),
125
+ 'type' => 'select',
126
+ 'value' => '12_hours',
127
+ 'opts' => array(
128
+ '1_hours' => array(
129
+ 'label' => '1' . ' ' . __( 'Hour', 'feedzy-rss-feeds' ),
130
+ 'value' => '1_hours',
131
+ ),
132
+ '3_hours' => array(
133
+ 'label' => '3' . ' ' . __( 'Hours', 'feedzy-rss-feeds' ),
134
+ 'value' => '3_hours',
135
+ ),
136
+ '12_hours' => array(
137
+ 'label' => '12' . ' ' . __( 'Hours', 'feedzy-rss-feeds' ),
138
+ 'value' => '12_hours',
139
+ ),
140
+ '1_days' => array(
141
+ 'label' => '1' . ' ' . __( 'Day', 'feedzy-rss-feeds' ),
142
+ 'value' => '1_days',
143
+ ),
144
+ '3_days' => array(
145
+ 'label' => '3' . ' ' . __( 'Days', 'feedzy-rss-feeds' ),
146
+ 'value' => '3_days',
147
+ ),
148
+ '15_days' => array(
149
+ 'label' => '15' . ' ' . __( 'Days', 'feedzy-rss-feeds' ),
150
+ 'value' => '15_days',
151
+ ),
152
+ ),
153
+ ),
154
+ 'sort' => array(
155
+ 'label' => __( 'Sorting order.', 'feedzy-rss-feeds' ),
156
+ 'type' => 'select',
157
+ 'value' => '',
158
+ 'opts' => array(
159
+ 'date_desc' => array(
160
+ 'label' => __( 'Date Descending', 'feedzy-rss-feeds' ),
161
+ 'value' => 'date_desc',
162
+ ),
163
+ 'date_asc' => array(
164
+ 'label' => __( 'Date Ascending', 'feedzy-rss-feeds' ),
165
+ 'value' => 'date_asc',
166
+ ),
167
+ 'title_desc' => array(
168
+ 'label' => __( 'Title Descending', 'feedzy-rss-feeds' ),
169
+ 'value' => 'title_desc',
170
+ ),
171
+ 'title_asc' => array(
172
+ 'label' => __( 'Title Ascending', 'feedzy-rss-feeds' ),
173
+ 'value' => 'title_asc',
174
+ ),
175
+ ),
176
+ ),
177
+ ),
178
+ ),
179
+ 'section_item' => array(
180
+ 'title' => __( 'Item Options', 'feedzy-rss-feeds' ),
181
+ 'elements' => array(
182
+ 'target' => array(
183
+ 'label' => __( 'Links may be opened in the same window or a new tab.', 'feedzy-rss-feeds' ),
184
+ 'type' => 'select',
185
+ 'value' => '',
186
+ 'opts' => array(
187
+ 'auto' => array(
188
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
189
+ 'value' => '',
190
+ ),
191
+ '_blank' => array(
192
+ 'label' => __( '_blank', 'feedzy-rss-feeds' ),
193
+ 'value' => '_blank',
194
+ ),
195
+ '_self' => array(
196
+ 'label' => __( '_self', 'feedzy-rss-feeds' ),
197
+ 'value' => '_self',
198
+ ),
199
+ '_parent' => array(
200
+ 'label' => __( '_parent', 'feedzy-rss-feeds' ),
201
+ 'value' => '_parent',
202
+ ),
203
+ '_top' => array(
204
+ 'label' => __( '_top', 'feedzy-rss-feeds' ),
205
+ 'value' => '_top',
206
+ ),
207
+ 'framename' => array(
208
+ 'label' => __( 'framename', 'feedzy-rss-feeds' ),
209
+ 'value' => 'framename',
210
+ ),
211
+ ),
212
+ ),
213
+ 'title' => array(
214
+ 'label' => __( 'Trim the title of the item after X characters.', 'feedzy-rss-feeds' ),
215
+ 'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ),
216
+ 'type' => 'text',
217
+ 'value' => '',
218
+ ),
219
+ 'meta' => array(
220
+ 'label' => __( 'Should we display the date of publication and the author name?', 'feedzy-rss-feeds' ),
221
+ 'type' => 'select',
222
+ 'value' => '',
223
+ 'opts' => array(
224
+ 'yes' => array(
225
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
226
+ 'value' => 'yes',
227
+ ),
228
+ 'no' => array(
229
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
230
+ 'value' => 'no',
231
+ ),
232
+ ),
233
+ ),
234
+ 'summary' => array(
235
+ 'label' => __( 'Should we display a description (abstract) of the retrieved item?', 'feedzy-rss-feeds' ),
236
+ 'type' => 'select',
237
+ 'value' => '',
238
+ 'opts' => array(
239
+ 'yes' => array(
240
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
241
+ 'value' => 'yes',
242
+ ),
243
+ 'no' => array(
244
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
245
+ 'value' => 'no',
246
+ ),
247
+ ),
248
+ ),
249
+ 'summarylength' => array(
250
+ 'label' => __( 'Crop description (summary) of the element after X characters.', 'feedzy-rss-feeds' ),
251
+ 'type' => 'text',
252
+ 'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ),
253
+ 'value' => '',
254
+ ),
255
+ 'keywords_title' => array(
256
+ 'label' => __( 'Only display item if title contains specific keyword(s) (comma-separated list/case sensitive).', 'feedzy-rss-feeds' ),
257
+ 'placeholder' => __( '(eg: news, sports etc.)', 'feedzy-rss-feeds' ),
258
+ 'type' => 'text',
259
+ 'value' => '',
260
+ 'disabled' => feedzy_is_new(),
261
+ ),
262
+ 'keywords_ban' => array(
263
+ 'label' => __( 'Exclude items if title or content contains specific keyword(s) (comma-separated list/case sensitive). ', 'feedzy-rss-feeds' ),
264
+ 'placeholder' => __( '(eg: politics, gossip etc.)', 'feedzy-rss-feeds' ),
265
+ 'type' => 'text',
266
+ 'value' => '',
267
+ 'disabled' => true,
268
+ ),
269
+ ),
270
+ ),
271
+ 'section_image' => array(
272
+ 'title' => __( 'Item Image Options', 'feedzy-rss-feeds' ),
273
+ 'elements' => array(
274
+ 'thumb' => array(
275
+ 'label' => __( 'Should we display the first image of the content if it is available?', 'feedzy-rss-feeds' ),
276
+ 'type' => 'select',
277
+ 'value' => '',
278
+ 'opts' => array(
279
+ 'auto' => array(
280
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
281
+ 'value' => '',
282
+ ),
283
+ 'yes' => array(
284
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
285
+ 'value' => 'yes',
286
+ ),
287
+ 'no' => array(
288
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
289
+ 'value' => 'no',
290
+ ),
291
+ ),
292
+ ),
293
+ 'default' => array(
294
+ 'label' => __( 'Default thumbnail URL if no image is found.', 'feedzy-rss-feeds' ),
295
+ 'placeholder' => __( 'Image URL', 'feedzy-rss-feeds' ),
296
+ 'type' => 'file',
297
+ 'value' => '',
298
+ 'button' => array(
299
+ 'button_text' => __( 'Select from Gallery', 'feedzy-rss-feeds' ),
300
+ ),
301
+ ),
302
+ 'size' => array(
303
+ 'label' => __( 'Thumbnails dimension. Do not include "px". Eg: 150', 'feedzy-rss-feeds' ),
304
+ 'placeholder' => __( '(eg: 150)', 'feedzy-rss-feeds' ),
305
+ 'type' => 'text',
306
+ 'value' => '',
307
+ ),
308
+ ),
309
+ ),
310
+ 'section_pro' => array(
311
+ 'title' => __( 'PRO Options', 'feedzy-rss-feeds' ),
312
+ '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' ) . '<br/>' . '<a href="' . FEEDZY_UPSELL_LINK . '" target="_blank"><small>' . __( 'See more features of Feedzy RSS Feeds ', 'feedzy-rss-feeds' ) . '</small></a>',
313
+ 'elements' => array(
314
+ 'price' => array(
315
+ 'label' => __( 'Should we display the price from the feed if it is available?', 'feedzy-rss-feeds' ),
316
+ 'type' => 'select',
317
+ 'disabled' => true,
318
+ 'value' => '',
319
+ 'opts' => array(
320
+ 'yes' => array(
321
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
322
+ 'value' => 'yes',
323
+ ),
324
+ 'no' => array(
325
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
326
+ 'value' => 'no',
327
+ ),
328
+ ),
329
+ ),
330
+ 'referral_url' => array(
331
+ 'label' => __( 'Referral URL parameters (w/o "?").', 'feedzy-rss-feeds' ),
332
+ 'placeholder' => __( '(eg. promo_code=feedzy_is_awesome)', 'feedzy-rss-feeds' ),
333
+ 'type' => 'text',
334
+ 'disabled' => true,
335
+ 'value' => '',
336
+ ),
337
+ 'columns' => array(
338
+ 'label' => __( 'How many columns we should use to display the feed items', 'feedzy-rss-feeds' ),
339
+ 'placeholder' => __( '(eg. 1, 2, ..., 6)', 'feedzy-rss-feeds' ),
340
+ 'type' => 'number',
341
+ 'disabled' => true,
342
+ 'value' => '1',
343
+ ),
344
+ 'template' => array(
345
+ 'label' => __( 'Template to use when displaying the feed.', 'feedzy-rss-feeds' ),
346
+ 'type' => 'radio',
347
+ 'disabled' => true,
348
+ 'value' => '',
349
+ 'opts' => array(
350
+ 'auto' => array(
351
+ 'label' => __( 'Default', 'feedzy-rss-feeds' ),
352
+ 'value' => 'default',
353
+ ),
354
+ 'yes' => array(
355
+ 'label' => __( 'Style 1', 'feedzy-rss-feeds' ),
356
+ 'value' => 'style1',
357
+ ),
358
+ 'no' => array(
359
+ 'label' => __( 'Style 2', 'feedzy-rss-feeds' ),
360
+ 'value' => 'style2',
361
+ ),
362
+ ),
363
+ ),
364
+ ),
365
+ ),
366
+ );
367
+
368
+ $elements = apply_filters( 'feedzy_get_form_elements_filter', $elements );
369
+
370
+ return $elements;
371
+ }
372
+
373
+ /**
374
+ *
375
+ * The method that returns the translation array
376
+ *
377
+ * @since 3.0.0
378
+ * @access public
379
+ * @return string
380
+ */
381
+ public function feedzy_tinymce_translation() {
382
+
383
+ $locale = _WP_Editors::$mce_locale;
384
+ $translated = 'tinyMCE.addI18n("' . $locale . '.feedzy_tinymce_plugin", ' . json_encode( $this->strings ) . ");\n";
385
+
386
+ return $translated;
387
+ }
388
+
389
+ }
390
+
391
+ $feedzyLangClass = new Feedzy_Rss_Feeds_Ui_Lang();
392
+ $strings = $feedzyLangClass->feedzy_tinymce_translation();
dist/includes/admin/feedzy-rss-feeds-ui.php ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The UI functionality of the plugin.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/admin
10
+ */
11
+
12
+ /**
13
+ * The UI functionality of the plugin.
14
+ *
15
+ * @package feedzy-rss-feeds
16
+ * @subpackage feedzy-rss-feeds/includes/admin
17
+ * @author Themeisle <friends@themeisle.com>
18
+ */
19
+ class Feedzy_Rss_Feeds_Ui {
20
+
21
+ /**
22
+ * The ID of this plugin.
23
+ *
24
+ * @since 3.0.0
25
+ * @access private
26
+ * @var string $plugin_name The ID of this plugin.
27
+ */
28
+ private $plugin_name;
29
+
30
+ /**
31
+ * The version of this plugin.
32
+ *
33
+ * @since 3.0.0
34
+ * @access private
35
+ * @var string $version The current version of this plugin.
36
+ */
37
+ private $version;
38
+
39
+ /**
40
+ * The loader class.
41
+ *
42
+ * @since 3.0.0
43
+ * @access private
44
+ * @var Feedzy_Rss_Feeds_Loader $loader The loader class of the plugin.
45
+ */
46
+ private $loader;
47
+
48
+ /**
49
+ * Initialize the class and set its properties.
50
+ *
51
+ * @since 3.0.0
52
+ * @access public
53
+ * @param string $plugin_name The name of this plugin.
54
+ * @param string $version The version of this plugin.
55
+ * @param Feedzy_Rss_Feeds_Loader $loader The version of this plugin.
56
+ */
57
+ public function __construct( $plugin_name, $version, Feedzy_Rss_Feeds_Loader $loader ) {
58
+
59
+ $this->plugin_name = $plugin_name;
60
+ $this->version = $version;
61
+ $this->loader = $loader;
62
+
63
+ }
64
+
65
+ /**
66
+ * Initialize the hooks and filters for the tinymce button
67
+ *
68
+ * @since 3.0.0
69
+ * @access public
70
+ */
71
+ public function register_init() {
72
+ if ( current_user_can( 'edit_posts' ) && current_user_can( 'edit_pages' ) ) {
73
+ if ( 'true' == get_user_option( 'rich_editing' ) ) {
74
+
75
+ $this->loader->add_filter( 'mce_external_plugins', $this, 'feedzy_tinymce_plugin', 10, 1 );
76
+ $this->loader->add_filter( 'mce_buttons', $this, 'feedzy_register_mce_button', 10, 1 );
77
+
78
+ $this->loader->add_action( 'admin_enqueue_scripts', $this, 'enqueue_scripts', 10 );
79
+
80
+ $this->loader->run();
81
+ }
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Register the JavaScript for the admin area.
87
+ *
88
+ * @since 3.0.0
89
+ * @access public
90
+ */
91
+ public function enqueue_scripts() {
92
+
93
+ /**
94
+ * This function is provided for demonstration purposes only.
95
+ *
96
+ * An instance of this class should be passed to the run() function
97
+ * defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined
98
+ * in that particular class.
99
+ *
100
+ * The Feedzy_Rss_Feeds_Loader will then create the relationship
101
+ * between the defined hooks and the functions defined in this
102
+ * class.
103
+ */
104
+ }
105
+
106
+ /**
107
+ * Load plugin translation for - TinyMCE API
108
+ *
109
+ * @since 3.0.0
110
+ * @access public
111
+ * @param array $arr The tinymce_lang array.
112
+ * @return array
113
+ */
114
+ public function feedzy_add_tinymce_lang( $arr ) {
115
+ $feedzy_rss_feeds_ui_lang = FEEDZY_ABSPATH . '/includes/admin/feedzy-rss-feeds-ui-lang.php';
116
+ $feedzy_rss_feeds_ui_lang = apply_filters( 'feedzy_rss_feeds_ui_lang_filter', $feedzy_rss_feeds_ui_lang );
117
+ $arr[] = $feedzy_rss_feeds_ui_lang;
118
+ return $arr;
119
+ }
120
+
121
+ /**
122
+ * Load custom js options - TinyMCE API
123
+ *
124
+ * @since 3.0.0
125
+ * @access public
126
+ * @param array $plugin_array The tinymce plugin array.
127
+ * @return array
128
+ */
129
+ public function feedzy_tinymce_plugin( $plugin_array ) {
130
+ $plugin_array['feedzy_mce_button'] = FEEDZY_ABSURL . 'js/feedzy-rss-feeds-ui-mce.js';
131
+ return $plugin_array;
132
+ }
133
+
134
+ /**
135
+ * Register new button in the editor
136
+ *
137
+ * @since 3.0.0
138
+ * @access public
139
+ * @param array $buttons The tinymce buttons array.
140
+ * @return array
141
+ */
142
+ public function feedzy_register_mce_button( $buttons ) {
143
+ array_push( $buttons, 'feedzy_mce_button' );
144
+ return $buttons;
145
+ }
146
+ }
dist/includes/admin/feedzy-rss-feeds-upgrader.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Options main wrapper class.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.3
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/admin
10
+ */
11
+ if ( ! class_exists( 'Feedzy_Rss_Feeds_Upgrader' ) ) {
12
+ /**
13
+ * Class Feedzy_Rss_Feeds_Upgrader for upgrading processes
14
+ */
15
+ class Feedzy_Rss_Feeds_Upgrader {
16
+ /**
17
+ * Store the database version of the plugin.
18
+ *
19
+ * @var string $db_version Version from the database of the plugin.
20
+ */
21
+ public $db_version;
22
+
23
+ /**
24
+ * Stores the plugin php version.
25
+ *
26
+ * @var string $php_version The plugin php version
27
+ */
28
+ public $php_version;
29
+
30
+ /**
31
+ * Feedzy_Rss_Feeds_Upgrader constructor.
32
+ */
33
+ public function __construct() {
34
+ $php_version = Feedzy_Rss_Feeds::get_version();
35
+ $db_version = feedzy_options()->get_var( 'db_version' );
36
+ if ( $db_version === false ) {
37
+ feedzy_options()->set_var( 'db_version', $php_version );
38
+ $this->db_version = $php_version;
39
+ } else {
40
+ if ( feedzy_options()->get_var( 'is_new' ) === false ) {
41
+ feedzy_options()->set_var( 'is_new', 'no' );
42
+ }
43
+ $this->db_version = $db_version;
44
+ }
45
+ $this->php_version = $php_version;
46
+ }
47
+
48
+ /**
49
+ * Check if we need to run an upgrade or not.
50
+ */
51
+ public function check() {
52
+ if ( version_compare( $this->db_version, $this->php_version ) === - 1 ) {
53
+ do_action( 'feedzy_upgrade_to_' . self::version_to_hook( $this->php_version ), $this->db_version );
54
+ }
55
+ }
56
+
57
+ /**
58
+ * Normalize version to be used in hooks.
59
+ *
60
+ * @param string $version In format 2.0.0.
61
+ *
62
+ * @return string Version format 2_0_0.
63
+ */
64
+ public static function version_to_hook( $version ) {
65
+ return str_replace( '.', '_', $version );
66
+ }
67
+ }
68
+ }// End if().
dist/includes/admin/feedzy-wp-widget.php ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Widget functionality of the plugin.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/admin
10
+ */
11
+
12
+ /**
13
+ * The Widget functionality of the plugin.
14
+ *
15
+ * @package feedzy-rss-feeds
16
+ * @subpackage feedzy-rss-feeds/includes/admin
17
+ * @author Themeisle <friends@themeisle.com>
18
+ */
19
+ // @codingStandardsIgnoreStart
20
+ class feedzy_wp_widget extends WP_Widget {
21
+ // @codingStandardsIgnoreEnd
22
+ /**
23
+ * The class instance.
24
+ *
25
+ * @since 3.0.0
26
+ * @access public
27
+ * @var feedzy_wp_widget $instance The instance of the class.
28
+ */
29
+ public static $instance;
30
+
31
+ /**
32
+ * The feedzy_wp_widget constructor method
33
+ *
34
+ * @since 3.0.0
35
+ * @access public
36
+ *
37
+ * @param Feedzy_Rss_Feeds_Admin $plugin_admin The Feedzy_Rss_Feeds_Admin object.
38
+ */
39
+ public function __construct( $plugin_admin = null ) {
40
+ parent::__construct( false, $name = __( 'Feedzy RSS Feeds', 'feedzy-rss-feeds' ) );
41
+ self::$instance = $this;
42
+
43
+ }
44
+
45
+ /**
46
+ * Returns the instance of this class as in the singleton pattern
47
+ *
48
+ * @since 3.0.0
49
+ * @access public
50
+ * @return feedzy_wp_widget
51
+ */
52
+ public static function get_instance() {
53
+ if ( self::$instance === null ) {
54
+ self::$instance = new self();
55
+ }
56
+
57
+ return self::$instance;
58
+ }
59
+
60
+ /**
61
+ * The register method for registering this widget class
62
+ *
63
+ * @since 3.0.0
64
+ * @access public
65
+ */
66
+ public function registerWidget() {
67
+ register_widget( 'feedzy_wp_widget' );
68
+ }
69
+
70
+ /**
71
+ * The widget form creation
72
+ *
73
+ * @since 3.0.0
74
+ * @access public
75
+ *
76
+ * @param string $instance The Widget instance.
77
+ *
78
+ * @return mixed
79
+ */
80
+ public function form( $instance ) {
81
+ $screen = get_current_screen();
82
+ // to prevent conflicts with plugins such as siteorigin page builder that call this function from outside of the 'widgets' screen.
83
+ if ( ! empty( $screen ) && 'widgets' !== $screen->id ) {
84
+ return;
85
+ }
86
+ $instance = wp_parse_args( $instance, $this->get_widget_defaults() );
87
+ $widget_form = '<p>
88
+ <label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Widget Title', 'feedzy-rss-feeds' ) . '</label>
89
+ <input class="widefat" id="' . $this->get_field_id( 'title' ) . '" name="' . $this->get_field_name( 'title' ) . '" type="text" value="' . esc_attr( $instance['title'] ) . '" />
90
+ </p>
91
+ <p>
92
+ <label for="' . $this->get_field_id( 'textarea' ) . '">' . __( 'Intro text', 'feedzy-rss-feeds' ) . '</label>
93
+ <textarea class="widefat" id="' . $this->get_field_id( 'textarea' ) . '" name="' . $this->get_field_name( 'textarea' ) . '">' . esc_attr( $instance['textarea'] ) . '</textarea>
94
+ </p>';
95
+ foreach ( Feedzy_Rss_Feeds_Ui_Lang::get_form_elements() as $key_section => $section ) {
96
+ $widget_form .= '<hr/><h4>' . $section['title'] . '</h4>';
97
+ if ( isset( $section['description'] ) ) {
98
+ $widget_form .= '<small>' . $section['description'] . '</small>';
99
+ }
100
+ foreach ( $section['elements'] as $id => $element ) {
101
+ if ( isset( $element['disabled'] ) && $element['disabled'] ) {
102
+ continue;
103
+ }
104
+ if ( $id == 'feed_title' ) {
105
+ continue;
106
+ }
107
+ if ( $id == 'title' ) {
108
+ $id = 'titlelength';
109
+ }
110
+ $widget_form .= '<p>';
111
+ $widget_form .= '<label for="' . $this->get_field_id( $id ) . '">' . $element['label'] . '</label>';
112
+ if ( $element['type'] == 'text' || $element['type'] == 'file' ) {
113
+ $widget_form .= '<input class="widefat" id="' . $this->get_field_id( $id ) . '" name="' . $this->get_field_name( $id ) . '" type="text" value="' . esc_attr( $instance[ $id ] ) . '" />';
114
+ }
115
+ if ( $element['type'] == 'number' ) {
116
+ $widget_form .= '<input class="widefat" id="' . $this->get_field_id( $id ) . '" name="' . $this->get_field_name( $id ) . '" type="number" value="' . esc_attr( $instance[ $id ] ) . '" />';
117
+ }
118
+ if ( $element['type'] == 'select' || $element['type'] == 'radio' ) {
119
+ $widget_form .= '<select class="widefat" id="' . $this->get_field_id( $id ) . '" name="' . $this->get_field_name( $id ) . '" >';
120
+ foreach ( $element['opts'] as $select_option ) {
121
+ $widget_form .= '<option ' . selected( esc_attr( $select_option['value'] ), self::bool_to_enum( $instance[ $id ] ), false ) . 'value="' . esc_attr( $select_option['value'] ) . '">' . esc_html( $select_option['label'] ) . '</option>';
122
+ }
123
+ $widget_form .= '</select>';
124
+ }
125
+ $widget_form .= '</p>';
126
+
127
+ }
128
+ }
129
+ $widget_form .= '<hr/>';
130
+ $widget_form = apply_filters( 'feedzy_widget_form_filter', $widget_form, $instance, $this->get_widget_defaults() );
131
+ echo $widget_form;
132
+
133
+ }
134
+
135
+ /**
136
+ * Get widget default values for params
137
+ *
138
+ * @return array List of defaults values
139
+ */
140
+ public function get_widget_defaults() {
141
+ $defaults = Feedzy_Rss_Feeds_Ui_Lang::get_form_defaults();
142
+ // rename title to title length as widget instance already have one
143
+ $defaults['titlelength'] = $defaults['title'];
144
+ $defaults['title'] = '';
145
+ $defaults['textarea'] = '';
146
+
147
+ return $defaults;
148
+ }
149
+
150
+ /**
151
+ * Convert binary values to yes/no touple.
152
+ *
153
+ * @param mixed $value string Value to convert to yes/no.
154
+ *
155
+ * @return bool
156
+ */
157
+ public static function bool_to_enum( $value ) {
158
+ if ( in_array( $value, array( 'yes', 'no' ) ) ) {
159
+ return $value;
160
+ }
161
+ $value = strval( $value );
162
+ if ( $value == '1' || $value == 'true' ) {
163
+ return 'yes';
164
+ }
165
+ if ( $value == '0' || $value == 'false' ) {
166
+ return 'no';
167
+ }
168
+ if ( $value == '' ) {
169
+ return 'auto';
170
+ }
171
+ return $value;
172
+
173
+ }
174
+
175
+ /**
176
+ *
177
+ * The update method
178
+ *
179
+ * @since 3.0.0
180
+ * @access public
181
+ *
182
+ * @param array $new_instance The new widget instance.
183
+ * @param array $old_instance The old widget instance.
184
+ *
185
+ * @return array
186
+ */
187
+ public function update( $new_instance, $old_instance ) {
188
+ $instance = $old_instance;
189
+ $instance['title'] = strip_tags( $new_instance['title'] );
190
+ if ( current_user_can( 'unfiltered_html' ) ) {
191
+ $instance['textarea'] = $new_instance['textarea'];
192
+ } else {
193
+ $instance['textarea'] = stripslashes( wp_filter_post_kses( addslashes( $new_instance['textarea'] ) ) );
194
+ }
195
+ $forms_ids = array_keys( $this->get_widget_defaults() );
196
+ foreach ( $forms_ids as $key ) {
197
+ $instance[ $key ] = strip_tags( isset( $new_instance[ $key ] ) ? $new_instance[ $key ] : '' );
198
+ }
199
+ $instance = apply_filters( 'feedzy_widget_update_filter', $instance, $new_instance );
200
+
201
+ return $instance;
202
+
203
+ }
204
+
205
+ /**
206
+ *
207
+ * The widget function
208
+ *
209
+ * @since 3.0.0
210
+ * @access public
211
+ *
212
+ * @param array $args The args to use.
213
+ * @param array $instance The widget instance.
214
+ */
215
+ public function widget( $args, $instance ) {
216
+ $title = apply_filters( 'widget_title', $instance['title'] );
217
+ $textarea = apply_filters( 'widget_textarea', empty( $instance['textarea'] ) ? '' : $instance['textarea'], $instance );
218
+ // Display the widget body
219
+ echo $args['before_widget'];
220
+ // Check if title is set
221
+ if ( $title ) {
222
+ echo $args['before_title'] . $title . $args['after_title'];
223
+ }
224
+ // Check if text intro is set
225
+ if ( isset( $instance['textarea'] ) && ! empty( $instance['textarea'] ) ) {
226
+ echo '<p class="feedzy-widget-intro">' . wpautop( $textarea ) . '</p>';
227
+ }
228
+ $feedzy_widget_shortcode_attributes = array(
229
+ 'feeds' => $instance['feeds'],
230
+ 'max' => $instance['max'],
231
+ 'feed_title' => 'no',
232
+ 'target' => $instance['target'],
233
+ 'title' => $instance['titlelength'],
234
+ 'meta' => self::bool_to_enum( $instance['meta'] ),
235
+ 'summary' => self::bool_to_enum( $instance['summary'] ),
236
+ 'summarylength' => $instance['summarylength'],
237
+ 'thumb' => self::bool_to_enum( $instance['thumb'] ),
238
+ 'default' => $instance['default'],
239
+ 'size' => $instance['size'],
240
+ 'keywords_title' => $instance['keywords_title'],
241
+ );
242
+ $feedzy_widget_shortcode_attributes = apply_filters( 'feedzy_widget_shortcode_attributes_filter', $feedzy_widget_shortcode_attributes, $args, $instance );
243
+
244
+ echo feedzy_rss( $feedzy_widget_shortcode_attributes );
245
+ echo $args['after_widget'];
246
+
247
+ }
248
+
249
+ }
dist/includes/feedzy-rss-feeds-activator.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Fired during plugin activation
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes
10
+ */
11
+
12
+ /**
13
+ * Fired during plugin activation.
14
+ *
15
+ * This class defines all code necessary to run during the plugin's activation.
16
+ *
17
+ * @since 3.0.0
18
+ * @package feedzy-rss-feeds
19
+ * @subpackage feedzy-rss-feeds/includes
20
+ * @author Themeisle <friends@themeisle.com>
21
+ */
22
+ class Feedzy_Rss_Feeds_Activator {
23
+
24
+ /**
25
+ * Plugin activation action.
26
+ *
27
+ * Triggers the plugin activation action on plugin activate.
28
+ *
29
+ * @since 3.0.0
30
+ * @access public
31
+ */
32
+ public static function activate() {
33
+ $options = get_option( Feedzy_Rss_Feeds::get_plugin_name(), array() );
34
+ $old_logger_option = get_option( 'feedzy_logger_flag', 'no' );
35
+ if ( $old_logger_option == 'yes' ) {
36
+ update_option( 'feedzy_rss_feeds_logger_flag', 'yes' );
37
+ update_option( 'feedzy_logger_flag', 'no' );
38
+ }
39
+ if ( ! isset( $options['is_new'] ) ) {
40
+ update_option(
41
+ Feedzy_Rss_Feeds::get_plugin_name(), array(
42
+ 'is_new' => 'yes',
43
+ )
44
+ );
45
+ }
46
+
47
+ }
48
+
49
+ }
dist/includes/feedzy-rss-feeds-deactivator.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Fired during plugin deactivation
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes
10
+ */
11
+
12
+ /**
13
+ * Fired during plugin deactivation.
14
+ *
15
+ * This class defines all code necessary to run during the plugin's deactivation.
16
+ *
17
+ * @since 3.0.0
18
+ * @package feedzy-rss-feeds
19
+ * @subpackage feedzy-rss-feeds/includes
20
+ * @author Themeisle <friends@themeisle.com>
21
+ */
22
+ class Feedzy_Rss_Feeds_Deactivator {
23
+
24
+ /**
25
+ * Short Description. (use period)
26
+ *
27
+ * Long Description.
28
+ *
29
+ * @since 3.0.0
30
+ * @access public
31
+ */
32
+ public static function deactivate() {
33
+
34
+ }
35
+
36
+ }
dist/includes/feedzy-rss-feeds-feed-tweaks.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Useful helper functions for plugin.
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes
10
+ */
11
+ // @codingStandardsIgnoreStart
12
+ /**
13
+ * @param string $content
14
+ *
15
+ * @return string
16
+ */
17
+ function feedzy_insert_thumbnail_RSS( $content ) {
18
+ // @codingStandardsIgnoreEnd
19
+ global $post;
20
+ if ( has_post_thumbnail( $post->ID ) ) {
21
+ $content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail' ) . '' . $content;
22
+ }
23
+
24
+ return $content;
25
+ }
26
+
27
+ // Alter the main blog feed to insert the thumbnail image.
28
+ add_filter( 'the_excerpt_rss', 'feedzy_insert_thumbnail_RSS' );
29
+ add_filter( 'the_content_feed', 'feedzy_insert_thumbnail_RSS' );
30
+
31
+ /**
32
+ * Boostrap the plugin view.
33
+ *
34
+ * @param array $options The shortcode attributes.
35
+ */
36
+ function feedzy_rss( $options = array() ) {
37
+ $admin = Feedzy_Rss_Feeds::instance()->get_admin();
38
+ return $admin->feedzy_rss( $options );
39
+ }
40
+
41
+ /**
42
+ * The helper method for options wrapper
43
+ *
44
+ * @return Feedzy_Rss_Feeds_Options
45
+ */
46
+ function feedzy_options() {
47
+ return Feedzy_Rss_Feeds_Options::instance();
48
+ }
49
+
50
+ /**
51
+ * Check if the user is before 3.0.3 or not.
52
+ *
53
+ * @return bool If the users is before 3.0.3 or after
54
+ */
55
+ function feedzy_is_new() {
56
+ return feedzy_options()->get_var( 'is_new' ) === 'yes' && ! feedzy_is_pro();
57
+ }
58
+
59
+ /**
60
+ * Check if the user is pro or not.
61
+ *
62
+ * @return bool If the users is pro or not
63
+ */
64
+ function feedzy_is_pro() {
65
+ return defined( 'FEEDZY_PRO_ABSPATH' );
66
+ }
dist/includes/feedzy-rss-feeds-i18n.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Define the internationalization functionality
4
+ *
5
+ * Loads and defines the internationalization files for this plugin
6
+ * so that it is ready for translation.
7
+ *
8
+ * @link http://themeisle.com
9
+ * @since 3.0.0
10
+ *
11
+ * @package feedzy-rss-feeds
12
+ * @subpackage feedzy-rss-feeds/includes
13
+ */
14
+
15
+ /**
16
+ * Define the internationalization functionality.
17
+ *
18
+ * Loads and defines the internationalization files for this plugin
19
+ * so that it is ready for translation.
20
+ *
21
+ * @since 3.0.0
22
+ * @package feedzy-rss-feeds
23
+ * @subpackage feedzy-rss-feeds/includes
24
+ * @author Themeisle <friends@themeisle.com>
25
+ */
26
+
27
+ // @codingStandardsIgnoreStart
28
+ class Feedzy_Rss_Feeds_i18n {
29
+ // @codingStandardsIgnoreEnd
30
+
31
+ /**
32
+ * Load the plugin text domain for translation.
33
+ *
34
+ * @since 3.0.0
35
+ * @access public
36
+ */
37
+ public function load_plugin_textdomain() {
38
+
39
+ load_plugin_textdomain(
40
+ 'feedzy-rss-feeds',
41
+ false,
42
+ dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
43
+ );
44
+
45
+ }
46
+
47
+
48
+
49
+ }
dist/includes/feedzy-rss-feeds-loader.php ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Register all actions and filters for the plugin
4
+ *
5
+ * @link http://themeisle.com
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes
10
+ */
11
+
12
+ /**
13
+ * Register all actions and filters for the plugin.
14
+ *
15
+ * Maintain a list of all hooks that are registered throughout
16
+ * the plugin, and register them with the WordPress API. Call the
17
+ * run function to execute the list of actions and filters.
18
+ *
19
+ * @package feedzy-rss-feeds
20
+ * @subpackage feedzy-rss-feeds/includes
21
+ * @author Themeisle <friends@themeisle.com>
22
+ */
23
+ class Feedzy_Rss_Feeds_Loader {
24
+
25
+ /**
26
+ * The array of actions registered with WordPress.
27
+ *
28
+ * @since 3.0.0
29
+ * @access protected
30
+ * @var array $actions The actions registered with WordPress to fire when the plugin loads.
31
+ */
32
+ protected $actions;
33
+
34
+ /**
35
+ * The array of filters registered with WordPress.
36
+ *
37
+ * @since 3.0.0
38
+ * @access protected
39
+ * @var array $filters The filters registered with WordPress to fire when the plugin loads.
40
+ */
41
+ protected $filters;
42
+
43
+ /**
44
+ * Initialize the collections used to maintain the actions and filters.
45
+ *
46
+ * @since 3.0.0
47
+ * @access public
48
+ */
49
+ public function __construct() {
50
+
51
+ $this->actions = array();
52
+ $this->filters = array();
53
+
54
+ }
55
+
56
+ /**
57
+ * Add a new action to the collection to be registered with WordPress.
58
+ *
59
+ * @since 3.0.0
60
+ * @access public
61
+ * @param string $hook The name of the WordPress action that is being registered.
62
+ * @param object $component A reference to the instance of the object on which the action is defined.
63
+ * @param string $callback The name of the function definition on the $component.
64
+ * @param int $priority Optional. he priority at which the function should be fired. Default is 10.
65
+ * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
66
+ */
67
+ public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
68
+ $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
69
+ }
70
+
71
+ /**
72
+ * Add a new filter to the collection to be registered with WordPress.
73
+ *
74
+ * @since 3.0.0
75
+ * @access public
76
+ * @param string $hook The name of the WordPress filter that is being registered.
77
+ * @param object $component A reference to the instance of the object on which the filter is defined.
78
+ * @param string $callback The name of the function definition on the $component.
79
+ * @param int $priority Optional. he priority at which the function should be fired. Default is 10.
80
+ * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
81
+ */
82
+ public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
83
+ $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
84
+ }
85
+
86
+ /**
87
+ * Registers AJAX action hook.
88
+ *
89
+ * @since 3.0.0
90
+ * @access public
91
+ * @param string $tag The name of the AJAX action to which the $method is hooked.
92
+ * @param object $component A reference to the instance of the object on which the filter is defined.
93
+ * @param string $callback The name of the function definition on the $component.
94
+ * @param int $priority Optional. he priority at which the function should be fired. Default is 10.
95
+ * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
96
+ * @param boolean $private Optional. Determines if we should register hook for logged in users.
97
+ * @param boolean $public Optional. Determines if we should register hook for not logged in users.
98
+ */
99
+ public function add_ajax_action( $tag, $component, $callback, $priority = 10, $accepted_args = 1, $private = true, $public = false ) {
100
+ if ( $private ) {
101
+ $this->actions = $this->add( $this->actions, 'wp_ajax_' . $tag, $component, $callback, $priority, $accepted_args );
102
+ }
103
+
104
+ if ( $public ) {
105
+ $this->actions = $this->add( $this->actions, 'wp_ajax_nopriv_' . $tag, $component, $callback, $priority, $accepted_args );
106
+ }
107
+ }
108
+
109
+ /**
110
+ * A utility function that is used to register the actions and hooks into a single
111
+ * collection.
112
+ *
113
+ * @since 3.0.0
114
+ * @access private
115
+ * @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
116
+ * @param string $hook The name of the WordPress filter that is being registered.
117
+ * @param object $component A reference to the instance of the object on which the filter is defined.
118
+ * @param string $callback The name of the function definition on the $component.
119
+ * @param int $priority The priority at which the function should be fired.
120
+ * @param int $accepted_args The number of arguments that should be passed to the $callback.
121
+ * @return array The collection of actions and filters registered with WordPress.
122
+ */
123
+ private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
124
+
125
+ $hooks[] = array(
126
+ 'hook' => $hook,
127
+ 'component' => $component,
128
+ 'callback' => $callback,
129
+ 'priority' => $priority,
130
+ 'accepted_args' => $accepted_args,
131
+ );
132
+
133
+ return $hooks;
134
+
135
+ }
136
+
137
+ /**
138
+ * Register the filters and actions with WordPress.
139
+ *
140
+ * @since 3.0.0
141
+ * @access public
142
+ */
143
+ public function run() {
144
+
145
+ foreach ( $this->filters as $hook ) {
146
+ add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
147
+ }
148
+
149
+ foreach ( $this->actions as $hook ) {
150
+ add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
151
+ }
152
+
153
+ }
154
+
155
+ }
dist/includes/feedzy-rss-feeds.php ADDED
@@ -0,0 +1,259 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The file that defines the core plugin class
4
+ *
5
+ * A class definition that includes attributes and functions used across both the
6
+ * public-facing side of the site and the admin area.
7
+ *
8
+ * @link http://themeisle.com
9
+ * @since 3.0.0
10
+ *
11
+ * @package feedzy-rss-feeds
12
+ * @subpackage feedzy-rss-feeds/includes
13
+ */
14
+
15
+ /**
16
+ * The core plugin class.
17
+ *
18
+ * This is used to define internationalization, admin-specific hooks, and
19
+ * public-facing site hooks.
20
+ *
21
+ * Also maintains the unique identifier of this plugin as well as the current
22
+ * version of the plugin.
23
+ *
24
+ * @since 3.0.0
25
+ * @package feedzy-rss-feeds
26
+ * @subpackage feedzy-rss-feeds/includes
27
+ * @author Themeisle <friends@themeisle.com>
28
+ */
29
+ class Feedzy_Rss_Feeds {
30
+
31
+ /**
32
+ * The unique identifier of this plugin.
33
+ *
34
+ * @since 3.0.0
35
+ * @access protected
36
+ * @var string $plugin_name The string used to uniquely identify this plugin.
37
+ */
38
+ protected static $plugin_name;
39
+ /**
40
+ * The current version of the plugin.
41
+ *
42
+ * @since 3.0.0
43
+ * @access protected
44
+ * @var string $version The current version of the plugin.
45
+ */
46
+ protected static $version;
47
+
48
+ /**
49
+ * The main instance var.
50
+ *
51
+ * @var Feedzy_Rss_Feeds The one Feedzy_Rss_Feeds instance.
52
+ * @since 3.0.4
53
+ */
54
+ private static $instance;
55
+ /**
56
+ * The loader that's responsible for maintaining and registering all hooks that power
57
+ * the plugin.
58
+ *
59
+ * @since 3.0.0
60
+ * @access protected
61
+ * @var Feedzy_Rss_Feeds_Loader $loader Maintains and registers all hooks for the plugin.
62
+ */
63
+ protected $loader;
64
+ /**
65
+ * The class responsible for all upgrading proceses.
66
+ *
67
+ * @since 3.0.3
68
+ * @access protected
69
+ * @var Feedzy_Rss_Feeds_Upgrader $upgrader Responsible for the upgrading processes.
70
+ */
71
+ protected $upgrader;
72
+ /**
73
+ * The class responsible for all admin processes.
74
+ *
75
+ * @since 3.0.3
76
+ * @access protected
77
+ * @var Feedzy_Rss_Feeds_Admin $admin Responsible for the admin processes.
78
+ */
79
+ protected $admin;
80
+
81
+ /**
82
+ * Init the main singleton instance class.
83
+ *
84
+ * @return Feedzy_Rss_Feeds Return the instance class
85
+ */
86
+ public static function instance() {
87
+ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Feedzy_Rss_Feeds ) ) {
88
+ self::$instance = new Feedzy_Rss_Feeds;
89
+ self::$instance->init();
90
+ }
91
+
92
+ return self::$instance;
93
+ }
94
+
95
+ /**
96
+ * Define the core functionality of the plugin.
97
+ *
98
+ * Set the plugin name and the plugin version that can be used throughout the plugin.
99
+ * Load the dependencies, define the locale, and set the hooks for the admin area and
100
+ * the public-facing side of the site.
101
+ *
102
+ * @since 3.0.0
103
+ * @access public
104
+ */
105
+ public function init() {
106
+ self::$plugin_name = 'feedzy-rss-feeds';
107
+ self::$version = '3.2.11';
108
+ self::$instance->load_dependencies();
109
+ self::$instance->set_locale();
110
+ self::$instance->define_admin_hooks();
111
+
112
+ }
113
+
114
+ /**
115
+ * Load the required dependencies for this plugin.
116
+ *
117
+ * Include the following files that make up the plugin:
118
+ *
119
+ * - Feedzy_Rss_Feeds_Loader. Orchestrates the hooks of the plugin.
120
+ * - Feedzy_Rss_Feeds_i18n. Defines internationalization functionality.
121
+ * - Feedzy_Rss_Feeds_Admin. Defines all hooks for the admin area.
122
+ * - Feedzy_Rss_Feeds_Public. Defines all hooks for the public side of the site.
123
+ *
124
+ * Create an instance of the loader which will be used to register the hooks
125
+ * with WordPress.
126
+ *
127
+ * @since 3.0.0
128
+ * @access private
129
+ */
130
+ private function load_dependencies() {
131
+ include_once FEEDZY_ABSPATH . '/includes/feedzy-rss-feeds-feed-tweaks.php';
132
+ self::$instance->loader = new Feedzy_Rss_Feeds_Loader();
133
+ self::$instance->upgrader = new Feedzy_Rss_Feeds_Upgrader();
134
+ self::$instance->admin = new Feedzy_Rss_Feeds_Admin( self::$instance->get_plugin_name(), self::$instance->get_version() );
135
+
136
+ }
137
+
138
+ /**
139
+ * The name of the plugin used to uniquely identify it within the context of
140
+ * WordPress and to define internationalization functionality.
141
+ *
142
+ * @since 3.0.0
143
+ * @access public
144
+ * @return string The name of the plugin.
145
+ */
146
+ public static function get_plugin_name() {
147
+ return self::$plugin_name;
148
+ }
149
+
150
+ /**
151
+ * Retrieve the version number of the plugin.
152
+ *
153
+ * @since 3.0.0
154
+ * @access public
155
+ * @return string The version number of the plugin.
156
+ */
157
+ public static function get_version() {
158
+ return self::$version;
159
+ }
160
+
161
+ /**
162
+ * Define the locale for this plugin for internationalization.
163
+ *
164
+ * Uses the Feedzy_Rss_Feeds_i18n class in order to set the domain and to register the hook
165
+ * with WordPress.
166
+ *
167
+ * @since 3.0.0
168
+ * @access private
169
+ */
170
+ private function set_locale() {
171
+ /**
172
+ * The class responsible for defining internationalization functionality
173
+ * of the plugin.
174
+ */
175
+ $plugin_i18n = new Feedzy_Rss_Feeds_i18n();
176
+ self::$instance->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
177
+
178
+ }
179
+
180
+ /**
181
+ * Register all of the hooks related to the admin area functionality
182
+ * of the plugin.
183
+ *
184
+ * @since 3.0.0
185
+ * @updated 3.0.12
186
+ * @access private
187
+ */
188
+ private function define_admin_hooks() {
189
+ $plugin_ui = new Feedzy_Rss_Feeds_Ui( self::$instance->get_plugin_name(), self::$instance->get_version(), self::$instance->loader );
190
+ self::$instance->loader->add_action( 'init', $plugin_ui, 'register_init' );
191
+ self::$instance->loader->add_action( 'init', self::$instance->admin, 'register_post_type' );
192
+ self::$instance->loader->add_action( 'save_post', self::$instance->admin, 'save_feedzy_post_type_meta', 1, 2 );
193
+ self::$instance->loader->add_action( 'feedzy_pre_http_setup', self::$instance->admin, 'pre_http_setup', 10, 1 );
194
+ self::$instance->loader->add_action( 'feedzy_post_http_teardown', self::$instance->admin, 'post_http_teardown', 10, 1 );
195
+
196
+ self::$instance->loader->add_action( 'manage_feedzy_categories_posts_custom_column', self::$instance->admin, 'manage_feedzy_category_columns', 10, 2 );
197
+ self::$instance->loader->add_filter( 'manage_feedzy_categories_posts_columns', self::$instance->admin, 'feedzy_category_columns' );
198
+
199
+ self::$instance->loader->add_action( 'admin_menu', self::$instance->admin, 'feedzy_menu_pages' );
200
+ self::$instance->loader->add_filter( 'mce_external_languages', $plugin_ui, 'feedzy_add_tinymce_lang', 10, 1 );
201
+ self::$instance->loader->add_filter( 'plugin_row_meta', self::$instance->admin, 'feedzy_filter_plugin_row_meta', 10, 2 );
202
+ self::$instance->loader->add_filter( 'feedzy_default_image', self::$instance->admin, 'feedzy_define_default_image' );
203
+ self::$instance->loader->add_filter( 'feedzy_default_error', self::$instance->admin, 'feedzy_default_error_notice', 9, 2 );
204
+ self::$instance->loader->add_filter( 'feedzy_item_attributes', self::$instance->admin, 'feedzy_add_item_padding', 10, 2 );
205
+ self::$instance->loader->add_filter( 'feedzy_item_attributes', self::$instance->admin, 'feedzy_classes_item', 99, 5 );
206
+ self::$instance->loader->add_filter( 'feedzy_register_options', self::$instance->admin, 'register_options' );
207
+ self::$instance->loader->add_filter( 'feedzy_summary_input', self::$instance->admin, 'feedzy_summary_input_filter', 9, 3 );
208
+ self::$instance->loader->add_filter( 'feedzy_item_keyword', self::$instance->admin, 'feedzy_feed_item_keywords_title', 9, 4 );
209
+ self::$instance->loader->add_filter( 'feedzy_get_feed_array', self::$instance->admin, 'get_feed_array', 10, 5 );
210
+ self::$instance->loader->add_filter( 'feedzy_process_feed_source', self::$instance->admin, 'process_feed_source', 10, 1 );
211
+ self::$instance->loader->add_filter( 'feedzy_get_feed_url', self::$instance->admin, 'get_feed_url', 10, 1 );
212
+ self::$instance->loader->add_filter( 'feedzy_get_settings', self::$instance->admin, 'get_settings', 10, 1 );
213
+ add_shortcode( 'feedzy-rss', array( self::$instance->admin, 'feedzy_rss' ) );
214
+ self::$instance->loader->add_action( 'wp_ajax_get_tinymce_form', self::$instance->admin, 'get_tinymce_form' );
215
+ self::$instance->loader->add_action( 'wp_enqueue_scripts', self::$instance->admin, 'enqueue_styles' );
216
+ self::$instance->loader->add_action( 'admin_enqueue_scripts', self::$instance->admin, 'enqueue_styles' );
217
+ $plugin_widget = new feedzy_wp_widget();
218
+ self::$instance->loader->add_action( 'widgets_init', $plugin_widget, 'registerWidget', 10 );
219
+ add_action(
220
+ 'plugins_loaded', function () {
221
+ if ( function_exists( 'register_block_type' ) ) {
222
+ Feedzy_Rss_Feeds_Gutenberg_Block::get_instance();
223
+ }}
224
+ );
225
+ }
226
+
227
+ /**
228
+ * Run the loader to execute all of the hooks with WordPress.
229
+ *
230
+ * @since 3.0.0
231
+ * @access public
232
+ */
233
+ public function run() {
234
+ self::$instance->loader->run();
235
+ }
236
+
237
+ /**
238
+ * The reference to the class that orchestrates the hooks with the plugin.
239
+ *
240
+ * @since 3.0.0
241
+ * @access public
242
+ * @return Feedzy_Rss_Feeds_Loader Orchestrates the hooks of the plugin.
243
+ */
244
+ public function get_loader() {
245
+ return self::$instance->loader;
246
+ }
247
+
248
+ /**
249
+ * The reference to the class that run the admin with the plugin.
250
+ *
251
+ * @since 3.0.0
252
+ * @access public
253
+ * @return Feedzy_Rss_Feeds_Admin Orchestrates the admin of the plugin.
254
+ */
255
+ public function get_admin() {
256
+ return self::$instance->admin;
257
+ }
258
+
259
+ }
dist/includes/gutenberg/dist/block.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ .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}
2
+ .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)}
dist/includes/gutenberg/dist/block.js ADDED
@@ -0,0 +1,502 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, {
40
+ /******/ configurable: false,
41
+ /******/ enumerable: true,
42
+ /******/ get: getter
43
+ /******/ });
44
+ /******/ }
45
+ /******/ };
46
+ /******/
47
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
48
+ /******/ __webpack_require__.n = function(module) {
49
+ /******/ var getter = module && module.__esModule ?
50
+ /******/ function getDefault() { return module['default']; } :
51
+ /******/ function getModuleExports() { return module; };
52
+ /******/ __webpack_require__.d(getter, 'a', getter);
53
+ /******/ return getter;
54
+ /******/ };
55
+ /******/
56
+ /******/ // Object.prototype.hasOwnProperty.call
57
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
+ /******/
59
+ /******/ // __webpack_public_path__
60
+ /******/ __webpack_require__.p = "";
61
+ /******/
62
+ /******/ // Load entry module and return exports
63
+ /******/ return __webpack_require__(__webpack_require__.s = 29);
64
+ /******/ })
65
+ /************************************************************************/
66
+ /******/ ([
67
+ /* 0 */
68
+ /***/ (function(module, exports, __webpack_require__) {
69
+
70
+ 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");
71
+
72
+ /***/ }),
73
+ /* 1 */
74
+ /***/ (function(module, exports) {
75
+
76
+ 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");
77
+
78
+ /***/ }),
79
+ /* 2 */
80
+ /***/ (function(module, exports) {
81
+
82
+ 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");
83
+
84
+ /***/ }),
85
+ /* 3 */
86
+ /***/ (function(module, exports, __webpack_require__) {
87
+
88
+ 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");
89
+
90
+ /***/ }),
91
+ /* 4 */
92
+ /***/ (function(module, exports, __webpack_require__) {
93
+
94
+ 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");
95
+
96
+ /***/ }),
97
+ /* 5 */
98
+ /***/ (function(module, exports, __webpack_require__) {
99
+
100
+ 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");
101
+
102
+ /***/ }),
103
+ /* 6 */
104
+ /***/ (function(module, exports, __webpack_require__) {
105
+
106
+ 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");
107
+
108
+ /***/ }),
109
+ /* 7 */
110
+ /***/ (function(module, exports) {
111
+
112
+ 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");
113
+
114
+ /***/ }),
115
+ /* 8 */
116
+ /***/ (function(module, exports, __webpack_require__) {
117
+
118
+ 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");
119
+
120
+ /***/ }),
121
+ /* 9 */
122
+ /***/ (function(module, exports) {
123
+
124
+ 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");
125
+
126
+ /***/ }),
127
+ /* 10 */
128
+ /***/ (function(module, exports) {
129
+
130
+ 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");
131
+
132
+ /***/ }),
133
+ /* 11 */
134
+ /***/ (function(module, exports) {
135
+
136
+ 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");
137
+
138
+ /***/ }),
139
+ /* 12 */
140
+ /***/ (function(module, exports) {
141
+
142
+ 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");
143
+
144
+ /***/ }),
145
+ /* 13 */
146
+ /***/ (function(module, exports) {
147
+
148
+ 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");
149
+
150
+ /***/ }),
151
+ /* 14 */
152
+ /***/ (function(module, exports, __webpack_require__) {
153
+
154
+ 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");
155
+
156
+ /***/ }),
157
+ /* 15 */
158
+ /***/ (function(module, exports, __webpack_require__) {
159
+
160
+ 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");
161
+
162
+ /***/ }),
163
+ /* 16 */
164
+ /***/ (function(module, exports) {
165
+
166
+ eval("module.exports = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcz9mZGI0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge307XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlcmF0b3JzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///16\n");
167
+
168
+ /***/ }),
169
+ /* 17 */
170
+ /***/ (function(module, exports, __webpack_require__) {
171
+
172
+ 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");
173
+
174
+ /***/ }),
175
+ /* 18 */
176
+ /***/ (function(module, exports, __webpack_require__) {
177
+
178
+ 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");
179
+
180
+ /***/ }),
181
+ /* 19 */
182
+ /***/ (function(module, exports, __webpack_require__) {
183
+
184
+ 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");
185
+
186
+ /***/ }),
187
+ /* 20 */
188
+ /***/ (function(module, exports, __webpack_require__) {
189
+
190
+ 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");
191
+
192
+ /***/ }),
193
+ /* 21 */
194
+ /***/ (function(module, exports, __webpack_require__) {
195
+
196
+ 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");
197
+
198
+ /***/ }),
199
+ /* 22 */
200
+ /***/ (function(module, exports) {
201
+
202
+ 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");
203
+
204
+ /***/ }),
205
+ /* 23 */
206
+ /***/ (function(module, exports, __webpack_require__) {
207
+
208
+ 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");
209
+
210
+ /***/ }),
211
+ /* 24 */
212
+ /***/ (function(module, exports, __webpack_require__) {
213
+
214
+ 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");
215
+
216
+ /***/ }),
217
+ /* 25 */
218
+ /***/ (function(module, exports) {
219
+
220
+ eval("module.exports = true;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanM/M2I4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbGlicmFyeS5qc1xuLy8gbW9kdWxlIGlkID0gMjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///25\n");
221
+
222
+ /***/ }),
223
+ /* 26 */
224
+ /***/ (function(module, exports) {
225
+
226
+ 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");
227
+
228
+ /***/ }),
229
+ /* 27 */
230
+ /***/ (function(module, exports) {
231
+
232
+ 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");
233
+
234
+ /***/ }),
235
+ /* 28 */
236
+ /***/ (function(module, exports, __webpack_require__) {
237
+
238
+ 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");
239
+
240
+ /***/ }),
241
+ /* 29 */
242
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
243
+
244
+ "use strict";
245
+ 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");
246
+
247
+ /***/ }),
248
+ /* 30 */
249
+ /***/ (function(module, exports, __webpack_require__) {
250
+
251
+ "use strict";
252
+ 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");
253
+
254
+ /***/ }),
255
+ /* 31 */
256
+ /***/ (function(module, exports, __webpack_require__) {
257
+
258
+ 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");
259
+
260
+ /***/ }),
261
+ /* 32 */
262
+ /***/ (function(module, exports, __webpack_require__) {
263
+
264
+ 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");
265
+
266
+ /***/ }),
267
+ /* 33 */
268
+ /***/ (function(module, exports, __webpack_require__) {
269
+
270
+ 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");
271
+
272
+ /***/ }),
273
+ /* 34 */
274
+ /***/ (function(module, exports) {
275
+
276
+ 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");
277
+
278
+ /***/ }),
279
+ /* 35 */
280
+ /***/ (function(module, exports, __webpack_require__) {
281
+
282
+ 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");
283
+
284
+ /***/ }),
285
+ /* 36 */
286
+ /***/ (function(module, exports, __webpack_require__) {
287
+
288
+ 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");
289
+
290
+ /***/ }),
291
+ /* 37 */
292
+ /***/ (function(module, exports, __webpack_require__) {
293
+
294
+ "use strict";
295
+ 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");
296
+
297
+ /***/ }),
298
+ /* 38 */
299
+ /***/ (function(module, exports, __webpack_require__) {
300
+
301
+ 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");
302
+
303
+ /***/ }),
304
+ /* 39 */
305
+ /***/ (function(module, exports, __webpack_require__) {
306
+
307
+ 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");
308
+
309
+ /***/ }),
310
+ /* 40 */
311
+ /***/ (function(module, exports, __webpack_require__) {
312
+
313
+ 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");
314
+
315
+ /***/ }),
316
+ /* 41 */
317
+ /***/ (function(module, exports) {
318
+
319
+ eval("exports.f = Object.getOwnPropertySymbols;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzP2Q2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qc1xuLy8gbW9kdWxlIGlkID0gNDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///41\n");
320
+
321
+ /***/ }),
322
+ /* 42 */
323
+ /***/ (function(module, exports) {
324
+
325
+ eval("exports.f = {}.propertyIsEnumerable;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1waWUuanM/MzY5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtcGllLmpzXG4vLyBtb2R1bGUgaWQgPSA0MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///42\n");
326
+
327
+ /***/ }),
328
+ /* 43 */
329
+ /***/ (function(module, exports) {
330
+
331
+ 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");
332
+
333
+ /***/ }),
334
+ /* 44 */
335
+ /***/ (function(module, exports, __webpack_require__) {
336
+
337
+ "use strict";
338
+ 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");
339
+
340
+ /***/ }),
341
+ /* 45 */
342
+ /***/ (function(module, exports, __webpack_require__) {
343
+
344
+ "use strict";
345
+ 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");
346
+
347
+ /***/ }),
348
+ /* 46 */
349
+ /***/ (function(module, exports, __webpack_require__) {
350
+
351
+ "use strict";
352
+ 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");
353
+
354
+ /***/ }),
355
+ /* 47 */
356
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
357
+
358
+ "use strict";
359
+ 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");
360
+
361
+ /***/ }),
362
+ /* 48 */
363
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
364
+
365
+ "use strict";
366
+ 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");
367
+
368
+ /***/ }),
369
+ /* 49 */
370
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
371
+
372
+ "use strict";
373
+ 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");
374
+
375
+ /***/ }),
376
+ /* 50 */
377
+ /***/ (function(module, exports) {
378
+
379
+ 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");
380
+
381
+ /***/ }),
382
+ /* 51 */
383
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
384
+
385
+ "use strict";
386
+ 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");
387
+
388
+ /***/ }),
389
+ /* 52 */
390
+ /***/ (function(module, exports, __webpack_require__) {
391
+
392
+ 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");
393
+
394
+ /***/ }),
395
+ /* 53 */
396
+ /***/ (function(module, exports, __webpack_require__) {
397
+
398
+ 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");
399
+
400
+ /***/ }),
401
+ /* 54 */
402
+ /***/ (function(module, exports, __webpack_require__) {
403
+
404
+ "use strict";
405
+ 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");
406
+
407
+ /***/ }),
408
+ /* 55 */
409
+ /***/ (function(module, exports, __webpack_require__) {
410
+
411
+ 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");
412
+
413
+ /***/ }),
414
+ /* 56 */
415
+ /***/ (function(module, exports, __webpack_require__) {
416
+
417
+ "use strict";
418
+ 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");
419
+
420
+ /***/ }),
421
+ /* 57 */
422
+ /***/ (function(module, exports, __webpack_require__) {
423
+
424
+ 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");
425
+
426
+ /***/ }),
427
+ /* 58 */
428
+ /***/ (function(module, exports, __webpack_require__) {
429
+
430
+ "use strict";
431
+ 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");
432
+
433
+ /***/ }),
434
+ /* 59 */
435
+ /***/ (function(module, exports, __webpack_require__) {
436
+
437
+ 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");
438
+
439
+ /***/ }),
440
+ /* 60 */
441
+ /***/ (function(module, exports, __webpack_require__) {
442
+
443
+ 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");
444
+
445
+ /***/ }),
446
+ /* 61 */
447
+ /***/ (function(module, exports, __webpack_require__) {
448
+
449
+ 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");
450
+
451
+ /***/ }),
452
+ /* 62 */
453
+ /***/ (function(module, exports, __webpack_require__) {
454
+
455
+ 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");
456
+
457
+ /***/ }),
458
+ /* 63 */
459
+ /***/ (function(module, exports, __webpack_require__) {
460
+
461
+ "use strict";
462
+ 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");
463
+
464
+ /***/ }),
465
+ /* 64 */
466
+ /***/ (function(module, exports, __webpack_require__) {
467
+
468
+ 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");
469
+
470
+ /***/ }),
471
+ /* 65 */
472
+ /***/ (function(module, exports, __webpack_require__) {
473
+
474
+ 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");
475
+
476
+ /***/ }),
477
+ /* 66 */
478
+ /***/ (function(module, exports, __webpack_require__) {
479
+
480
+ "use strict";
481
+ 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");
482
+
483
+ /***/ }),
484
+ /* 67 */
485
+ /***/ (function(module, exports, __webpack_require__) {
486
+
487
+ 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");
488
+
489
+ /***/ }),
490
+ /* 68 */
491
+ /***/ (function(module, exports, __webpack_require__) {
492
+
493
+ 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");
494
+
495
+ /***/ }),
496
+ /* 69 */
497
+ /***/ (function(module, exports, __webpack_require__) {
498
+
499
+ 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");
500
+
501
+ /***/ })
502
+ /******/ ]);
dist/includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php ADDED
@@ -0,0 +1,291 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Class for functionalities related to Gutenberg block.
4
+ *
5
+ * Defines the functions that need to be used for Gutenberg block,
6
+ * and REST router.
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ * @subpackage feedzy-rss-feeds/includes/guteneberg
10
+ * @author Themeisle <friends@themeisle.com>
11
+ */
12
+ class Feedzy_Rss_Feeds_Gutenberg_Block {
13
+
14
+ /**
15
+ * A reference to an instance of this class.
16
+ *
17
+ * @var Feedzy_Rss_Feeds_Gutenberg_Block The one Feedzy_Rss_Feeds_Gutenberg_Block instance.
18
+ */
19
+ private static $instance;
20
+
21
+ /**
22
+ * Feedzy RSS Feeds plugin version.
23
+ *
24
+ * @var string $version The current version of the plugin.
25
+ */
26
+ protected $version;
27
+
28
+ /**
29
+ * Returns an instance of this class.
30
+ */
31
+ public static function get_instance() {
32
+ if ( null == self::$instance ) {
33
+ self::$instance = new Feedzy_Rss_Feeds_Gutenberg_Block();
34
+ }
35
+ return self::$instance;
36
+ }
37
+
38
+ /**
39
+ * Initializes the plugin by setting filters and administration functions.
40
+ */
41
+ private function __construct() {
42
+ $this->version = Feedzy_Rss_Feeds::get_version();
43
+ // Add a filter to load functions when all plugins have been loaded
44
+ add_action( 'enqueue_block_editor_assets', array( $this, 'feedzy_gutenberg_scripts' ) );
45
+ add_action( 'rest_api_init', array( $this, 'feedzy_register_rest_route' ) );
46
+ add_action( 'init', array( $this, 'feedzy_register_block_type' ) );
47
+ }
48
+
49
+ /**
50
+ * Enqueue front end and editor JavaScript and CSS
51
+ */
52
+ public function feedzy_gutenberg_scripts() {
53
+ if ( FEEDZY_DISABLE_CACHE_FOR_TESTING ) {
54
+ $version = filemtime( FEEDZY_ABSPATH . '/includes/gutenberg/dist/block.js' );
55
+ } else {
56
+ $version = $this->version;
57
+ }
58
+
59
+ // Enqueue the bundled block JS file
60
+ 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 );
61
+
62
+ // Pass in REST URL
63
+ wp_localize_script(
64
+ 'feedzy-gutenberg-block-js', 'feedzyjs',
65
+ array(
66
+ 'imagepath' => esc_url( FEEDZY_ABSURL . 'img/' ),
67
+ 'isPro' => feedzy_is_pro(),
68
+ )
69
+ );
70
+
71
+ // Enqueue editor block styles
72
+ wp_enqueue_style( 'feedzy-gutenberg-block-css', FEEDZY_ABSURL . 'includes/gutenberg/dist/block.css', '', $version );
73
+ }
74
+
75
+ /**
76
+ * Hook server side rendering into render callback
77
+ */
78
+ public function feedzy_register_block_type() {
79
+ register_block_type(
80
+ 'feedzy-rss-feeds/feedzy-block', array(
81
+ 'render_callback' => array( $this, 'feedzy_gutenberg_block_callback' ),
82
+ 'attributes' => array(
83
+ 'feeds' => array(
84
+ 'type' => 'string',
85
+ ),
86
+ 'max' => array(
87
+ 'type' => 'string',
88
+ 'default' => '5',
89
+ ),
90
+ 'feed_title' => array(
91
+ 'type' => 'boolean',
92
+ 'default' => true,
93
+ ),
94
+ 'refresh' => array(
95
+ 'type' => 'string',
96
+ 'default' => '12_hours',
97
+ ),
98
+ 'sort' => array(
99
+ 'type' => 'string',
100
+ 'default' => 'date_desc',
101
+ ),
102
+ 'target' => array(
103
+ 'type' => 'string',
104
+ 'default' => '_blank',
105
+ ),
106
+ 'title' => array(
107
+ 'type' => 'number',
108
+ ),
109
+ 'meta' => array(
110
+ 'type' => 'boolean',
111
+ 'default' => true,
112
+ ),
113
+ 'summary' => array(
114
+ 'type' => 'boolean',
115
+ 'default' => true,
116
+ ),
117
+ 'summarylength' => array(
118
+ 'type' => 'number',
119
+ ),
120
+ 'keywords_title' => array(
121
+ 'type' => 'string',
122
+ ),
123
+ 'keywords_ban' => array(
124
+ 'type' => 'string',
125
+ ),
126
+ 'thumb' => array(
127
+ 'type' => 'string',
128
+ 'default' => 'auto',
129
+ ),
130
+ 'default' => array(
131
+ 'type' => 'object',
132
+ ),
133
+ 'size' => array(
134
+ 'type' => 'number',
135
+ 'default' => 150,
136
+ ),
137
+ 'price' => array(
138
+ 'type' => 'boolean',
139
+ 'default' => true,
140
+ ),
141
+ 'referral_url' => array(
142
+ 'type' => 'string',
143
+ ),
144
+ 'columns' => array(
145
+ 'type' => 'number',
146
+ 'default' => 1,
147
+ ),
148
+ 'template' => array(
149
+ 'type' => 'string',
150
+ 'default' => 'default',
151
+ ),
152
+ ),
153
+ )
154
+ );
155
+ }
156
+
157
+ /**
158
+ * Feedzy Gutenberg Block Callback Function
159
+ */
160
+ public function feedzy_gutenberg_block_callback( $attr ) {
161
+ $attr['default'] = ( ! empty( $attr['default'] ) ? $attr['default']['url'] : '' );
162
+ $paramss = wp_parse_args( $attr );
163
+ return feedzy_rss( $paramss );
164
+ }
165
+
166
+ /**
167
+ * Register Rest Route for Feedzy
168
+ */
169
+ public function feedzy_register_rest_route() {
170
+ register_rest_route(
171
+ 'feedzy/v1', '/feed/', array(
172
+ 'methods' => 'GET',
173
+ 'callback' => array( $this, 'feedzy_rest_route' ),
174
+ 'args' => array(
175
+ 'url' => array(
176
+ 'sanitize_callback' => array( $this, 'feedzy_sanitize_feeds' ),
177
+ ),
178
+ 'category' => array(
179
+ 'sanitize_callback' => array( $this, 'feedzy_sanitize_categories' ),
180
+ ),
181
+ ),
182
+ )
183
+ );
184
+ }
185
+
186
+ /**
187
+ * Output Feed JSON
188
+ */
189
+ public function feedzy_rest_route( $data ) {
190
+
191
+ $feed = $data;
192
+ if ( ! empty( $data['url'] ) ) {
193
+ $feed = $data['url'];
194
+ } elseif ( ! empty( $data['category'] ) ) {
195
+ $feed = $data['category'];
196
+ }
197
+
198
+ $metaArgs = array(
199
+ 'date_format' => get_option( 'date_format' ),
200
+ 'time_format' => get_option( 'time_format' ),
201
+ );
202
+
203
+ $instance = Feedzy_Rss_Feeds::instance();
204
+ $admin = $instance->get_admin();
205
+ $feed = $admin->fetch_feed( $feed, '12_hours', array( '' ) );
206
+
207
+ $feedy = array();
208
+
209
+ if ( ! $feed->init() ) {
210
+ $feedy['error'] = __( 'Invalid Feed URL', 'feedzy-rss-feeds' );
211
+ header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
212
+ return $feedy;
213
+ }
214
+
215
+ if ( ( ! $feed->get_title() ) && ( ! $feed->get_title() ) && ( ! $feed->get_title() ) ) {
216
+ $feedy['channel'] = null;
217
+ } else {
218
+ $feedy['channel'] = array(
219
+ 'title' => ( ( $feed->get_title() ) ? $feed->get_title() : null ),
220
+ 'description' => ( ( $feed->get_description() ) ? $feed->get_description() : null ),
221
+ 'permalink' => ( ( $feed->get_permalink() ) ? $feed->get_permalink() : null ),
222
+ );
223
+ }
224
+
225
+ if ( feedzy_is_pro() ) {
226
+ $pro = new Feedzy_Rss_Feeds_Pro_Admin( $instance->get_plugin_name(), $instance->get_version() );
227
+ }
228
+
229
+ $feedy['items'] = array();
230
+ $items = $feed->get_items();
231
+ foreach ( $items as $item ) {
232
+ if ( feedzy_is_pro() ) {
233
+ $item_attrs = $pro->feedzy_pro_add_data_to_item( array(), $item );
234
+ }
235
+ array_push(
236
+ $feedy['items'], array(
237
+ 'title' => ( ( $item->get_title() ) ? $item->get_title() : null ),
238
+ 'link' => ( ( $item->get_permalink() ) ? $item->get_permalink() : null ),
239
+ 'creator' => ( ( $item->get_author() ) ? $item->get_author()->get_name() : null ),
240
+ 'pubDate' => ( ( $item->get_date() ) ? $item->get_date( 'U' ) : null ),
241
+ 'date' => ( ( $item->get_date() ) ? date_i18n( $metaArgs['date_format'], $item->get_date( 'U' ) ) : null ),
242
+ 'time' => ( ( $item->get_date() ) ? date_i18n( $metaArgs['time_format'], $item->get_date( 'U' ) ) : null ),
243
+ 'description' => ( ( $item->get_description() ) ? $item->get_description() : null ),
244
+ 'thumbnail' => $admin->feedzy_retrieve_image( $item ),
245
+ 'price' => ( ( feedzy_is_pro() && $item_attrs['item_price'] ) ? $item_attrs['item_price'] : null ),
246
+ 'media' => ( ( feedzy_is_pro() && $item_attrs['item_media'] ) ? $item_attrs['item_media'] : null ),
247
+ )
248
+ );
249
+ }
250
+
251
+ header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
252
+ $output = $feedy;
253
+ return $output;
254
+
255
+ }
256
+
257
+ /**
258
+ * Sanitize Rest API Return
259
+ */
260
+ public function feedzy_sanitize_feeds( $input ) {
261
+ if ( sizeof( $input ) === 1 ) {
262
+ $feed = esc_url( $input[0] );
263
+ return $feed;
264
+ } else {
265
+ $feeds = array();
266
+ foreach ( $input as $item ) {
267
+ $feeds[] = esc_url( $item );
268
+ }
269
+ return $feeds;
270
+ }
271
+ }
272
+
273
+ /**
274
+ * Sanitize Rest API Return
275
+ */
276
+ public function feedzy_sanitize_categories( $input ) {
277
+ if ( $post = get_page_by_path( $input, OBJECT, 'feedzy_categories' ) ) {
278
+ $id = $post->ID;
279
+ $value = get_post_meta( $id, 'feedzy_category_feed', true );
280
+ $value = trim( $value );
281
+ $value = explode( ',', $value );
282
+ if ( sizeof( $value ) === 1 ) {
283
+ $value = esc_url( $value[0] );
284
+ return $value;
285
+ } else {
286
+ return $value;
287
+ }
288
+ }
289
+ }
290
+
291
+ }
dist/includes/layouts/css/upsell.css ADDED
@@ -0,0 +1,236 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * upsell.css
3
+ * Feedzy RSS Feed Upsell Style
4
+ *
5
+ * @since 3.0.12
6
+ * @package feedzy-rss-feeds
7
+ */
8
+
9
+ #fz-features .fz-features-header {
10
+ box-sizing: border-box;
11
+ padding: 20px 30px 30px;
12
+ border-top: 5px solid #252b37;
13
+ background: #fff;
14
+ }
15
+
16
+ #fz-features .logo {
17
+ display: inline-block;
18
+ margin: 0 0 0 20px;
19
+ padding: 0 0 0 70px;
20
+ color: #3c3c3c;
21
+ background: url(../../../img/feedzy.svg) no-repeat left center;
22
+ background-size: 48px;
23
+ font-family: "Open Sans", sans-serif;
24
+ font-size: 28px;
25
+ font-weight: 700;
26
+ line-height: 60px;
27
+ letter-spacing: -1px;
28
+ }
29
+
30
+ #fz-features .slogan {
31
+ display: inline-block;
32
+ margin: 0 0 0 8px;
33
+ padding: 0;
34
+ color: #858585;
35
+ font-family: "Open Sans", sans-serif;
36
+ font-size: 17px;
37
+ line-height: 1;
38
+ vertical-align: 4px;
39
+ }
40
+
41
+ #fz-features .slogan a {
42
+ color: #858585;
43
+ font-weight: 600;
44
+ font-style: italic;
45
+ text-decoration: none;
46
+ -webkit-transition: all 0.250s ease-in-out;
47
+ transition: all 0.250s ease-in-out;
48
+ }
49
+
50
+ #fz-features .slogan a:hover {
51
+ color: #ff6160;
52
+ }
53
+
54
+ #fz-features .slogan a:focus {
55
+ outline: none;
56
+ box-shadow: none;
57
+ }
58
+
59
+ #fz-features .header-btns {
60
+ float: right;
61
+ margin: 7px 20px;
62
+ text-align: right;
63
+ }
64
+
65
+ #fz-features .header-btns .buy-now {
66
+ display: inline-block;
67
+ margin-top: 2px;
68
+ margin-right: 5px;
69
+ padding: 15px 25px;
70
+ border-radius: 3px;
71
+ border-radius: 3px;
72
+ color: #fff;
73
+ background: #e33b3f;
74
+ font-family: "Open Sans", sans-serif;
75
+ font-size: 18px;
76
+ font-weight: bold;
77
+ text-decoration: none;
78
+ text-transform: uppercase;
79
+ -webkit-transition: all 0.250s ease-in-out;
80
+ transition: all 0.250s ease-in-out;
81
+ }
82
+
83
+ #fz-features .header-btns .buy-now:hover {
84
+ background: #252b37;
85
+ }
86
+
87
+ #fz-features .header-btns .buy-now .dashicons {
88
+ padding-right: 3px;
89
+ }
90
+
91
+ #fz-features {
92
+ padding: 0;
93
+ }
94
+
95
+ #fz-features .fz-features-content {
96
+ width: 100%;
97
+ padding: 0;
98
+ }
99
+
100
+ #fz-features .fz-features-header,
101
+ #fz-features .fz-feature {
102
+ display: table;
103
+ float: left;
104
+ box-sizing: border-box;
105
+ width: 100%;
106
+ margin: 30px 0 0;
107
+ padding: 30px;
108
+ background-color: #fff;
109
+ box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
110
+ }
111
+
112
+ #fz-features .fz-feature .fz-feature-features,
113
+ #fz-features .fz-feature .fz-feature-image {
114
+ display: table-cell;
115
+ margin: 0;
116
+ vertical-align: middle;
117
+ }
118
+
119
+ #fz-features .fz-feature .fz-feature-features {
120
+ box-sizing: border-box;
121
+ padding: 0 0 20px;
122
+ }
123
+
124
+ #fz-features .fz-feature .fz-feature-image {
125
+ width: 470px;
126
+ }
127
+
128
+ #fz-features .fz-feature .fz-feature-features h2 {
129
+ margin: 0 0 20px;
130
+ font-size: 28px;
131
+ font-weight: 700;
132
+ line-height: 1.2;
133
+ }
134
+
135
+ #fz-features .fz-feature .fz-feature-features h4 {
136
+ margin: 0 0 10px;
137
+ font-size: 24px;
138
+ }
139
+
140
+ #fz-features .fz-feature .fz-feature-features p {
141
+ margin: 0 0 15px;
142
+ font-size: 18px;
143
+ line-height: 1.5;
144
+ }
145
+
146
+ #fz-features .fz-feature .fz-feature-image img {
147
+ width: 100%;
148
+ height: auto;
149
+ }
150
+
151
+ @media screen and (min-width: 768px) {
152
+ #fz-features {
153
+ padding: 0 15px;
154
+ }
155
+ }
156
+
157
+ @media screen and (min-width: 1200px) {
158
+ #fz-features .fz-feature {
159
+ padding: 30px 60px;
160
+ }
161
+
162
+ #fz-features .fz-feature .fz-feature-features {
163
+ padding: 0 30px 0 0;
164
+ }
165
+
166
+ #fz-features .fz-feature .fz-feature-features h2 {
167
+ font-size: 30px;
168
+ }
169
+
170
+ #fz-features .fz-feature .fz-feature-features p {
171
+ font-size: 20px;
172
+ }
173
+ }
174
+
175
+ @media screen and (min-width: 1500px) {
176
+ #fz-features .fz-feature .fz-feature-features {
177
+ padding: 0 120px 0 0;
178
+ }
179
+ }
180
+
181
+ @media screen and (max-width: 1100px) {
182
+ #fz-features {
183
+ text-align: center;
184
+ }
185
+
186
+ #fz-features .logo {
187
+ margin-left: 0;
188
+ }
189
+
190
+ #fz-features .header-btns {
191
+ display: block;
192
+ float: none;
193
+ margin: 10px 0 0;
194
+ text-align: center;
195
+ }
196
+ }
197
+
198
+ @media screen and (max-width: 1200px) {
199
+ #fz-features .fz-feature .fz-feature-features,
200
+ #fz-features .fz-feature .fz-feature-image {
201
+ display: block;
202
+ }
203
+
204
+ #fz-features .fz-feature .fz-feature-image {
205
+ display: inline-block;
206
+ max-width: 100%;
207
+ margin: 0 auto 30px;
208
+ }
209
+
210
+ #fz-features .slogan {
211
+ display: none;
212
+ }
213
+ }
214
+
215
+ #fz-features.fz-settings .fz-feature {
216
+ margin-top: 0;
217
+ border: none;
218
+ }
219
+
220
+ #fz-features.fz-settings .nav-tab-wrapper {
221
+ border-bottom: none;
222
+ }
223
+
224
+ #fz-features.fz-settings .nav-tab-wrapper a.nav-tab-active,
225
+ #fz-features.fz-settings .nav-tab-wrapper a:hover {
226
+ background: #fff;
227
+ }
228
+
229
+ #fz-features.fz-settings .nav-tab-wrapper a {
230
+ margin-top: 10px;
231
+ padding: 10px 20px;
232
+ border: 0;
233
+ color: #000;
234
+ background: #e0e0e0;
235
+ box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
236
+ }
dist/includes/layouts/feedzy-upsell.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ Layout For Upsell Page of Feedzy RSS Feeds
3
+
4
+ @since 3.0.12
5
+ @package feedzy-rss-feeds
6
+ -->
7
+ <div id="fz-features">
8
+
9
+ <?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
10
+
11
+ <div class="fz-features-content">
12
+
13
+ <div class="fz-feature">
14
+ <div class="fz-feature-features">
15
+ <h2>Feed to post</h2>
16
+ <p>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.</p>
17
+ </div>
18
+ <div class="fz-feature-image">
19
+ <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-feed-to-post.jpg" alt="Feed to post">
20
+ </div>
21
+ </div>
22
+ <div class="fz-feature">
23
+ <div class="fz-feature-features">
24
+ <h2>Feed templates</h2>
25
+ <p>Use the style that best fits your website design with three available templates. For fzduct related
26
+ feeds, the plugin fetches and displays the price separately.</p>
27
+ </div>
28
+ <div class="fz-feature-image">
29
+ <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-templates.jpg" alt="Feed templates">
30
+ </div>
31
+ </div>
32
+ <div class="fz-feature">
33
+ <div class="fz-feature-features">
34
+ <h2>Affiliate ready</h2>
35
+ <p>Make some extra money by featuring affiliate links on your site. Feedzy RSS plugin automatically
36
+ includes your referral/affiliate ID to the feed links.</p>
37
+ </div>
38
+ <div class="fz-feature-image">
39
+ <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-affiliate-ready.jpg" alt="Affiliate ready">
40
+ </div>
41
+ </div>
42
+
43
+
44
+
45
+ </div><!-- .fz-features-content -->
46
+
47
+ </div>
dist/includes/layouts/header.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Header file for admin pages
4
+ *
5
+ * @package Feedzy
6
+ * @copyright Copyright (c) 2017, Marius Cristea
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+ ?>
10
+ <div class="fz-features-header">
11
+ <p class="logo">Feedzy RSS Feeds</p>
12
+ <span class="slogan">by <a
13
+ href="https://themeisle.com/">ThemeIsle</a></span>
14
+ <div class="header-btns">
15
+ <?php
16
+ if ( ! defined( 'FEEDZY_PRO_ABSURL' ) ) :
17
+ ?>
18
+
19
+ <a target="_blank" href="<?php echo FEEDZY_UPSELL_LINK; ?>" class="buy-now"><span
20
+ class="dashicons dashicons-cart"></span> Upgrade</a>
21
+ <?php
22
+ endif;
23
+ ?>
24
+ </div>
25
+ </div><!-- .fz-features-header -->
dist/includes/layouts/settings.php ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="fz-features" class="fz-settings">
2
+
3
+ <?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
4
+
5
+ <?php
6
+ $active_tab = isset( $_REQUEST['tab'] ) ? sanitize_text_field( $_REQUEST['tab'] ) : 'headers';
7
+ $show_button = true;
8
+ ?>
9
+
10
+ <h2 class="nav-tab-wrapper">
11
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=headers' ) ); ?>"
12
+ class="nav-tab <?php echo $active_tab == 'headers' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></a>
13
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=proxy' ) ); ?>"
14
+ class="nav-tab <?php echo $active_tab == 'proxy' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Proxy', 'feedzy-rss-feeds' ); ?></a>
15
+ <?php
16
+ $tabs = apply_filters( 'feedzy_settings_tabs', array() );
17
+ if ( $tabs ) {
18
+ foreach ( $tabs as $tab => $label ) {
19
+ ?>
20
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=' . $tab ) ); ?>"
21
+ class="nav-tab <?php echo $active_tab == $tab ? 'nav-tab-active' : ''; ?>"><?php echo $label; ?></a>
22
+ <?php
23
+ }
24
+ }
25
+ ?>
26
+ </h2>
27
+
28
+ <?php if ( $this->notice ) { ?>
29
+ <div class="updated"><p><?php echo $this->notice; ?></p></div>
30
+ <?php } ?>
31
+
32
+ <?php if ( $this->error ) { ?>
33
+ <div class="error"><p><?php echo $this->error; ?></p></div>
34
+ <?php } ?>
35
+
36
+ <div class="fz-features-content">
37
+ <div class="fz-feature">
38
+ <div id="feedzy_import_feeds" class="fz-feature-features">
39
+
40
+ <form method="post" action="">
41
+ <?php
42
+ switch ( $active_tab ) {
43
+ case 'headers':
44
+ ?>
45
+ <h2><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></h2>
46
+ <div class="fz-form-group">
47
+ <label><?php echo __( 'User Agent to use when accessing the feed', 'feedzy-rss-feeds' ); ?>
48
+ :</label>
49
+ </div>
50
+ <div class="fz-form-group">
51
+ <input type="text" class="fz-form-control" name="user-agent"
52
+ value="<?php echo isset( $settings['header']['user-agent'] ) ? $settings['header']['user-agent'] : ''; ?>">
53
+ </div>
54
+ <?php
55
+ break;
56
+ case 'proxy':
57
+ ?>
58
+ <h2><?php _e( 'Proxy Settings', 'feedzy-rss-feeds' ); ?></h2>
59
+ <div class="fz-form-group">
60
+ <label><?php echo __( 'Host', 'feedzy-rss-feeds' ); ?>:</label>
61
+ </div>
62
+ <div class="fz-form-group">
63
+ <input type="text" class="fz-form-control" name="proxy-host"
64
+ value="<?php echo isset( $settings['proxy']['host'] ) ? $settings['proxy']['host'] : ''; ?>">
65
+ </div>
66
+
67
+ <div class="fz-form-group">
68
+ <label><?php echo __( 'Port', 'feedzy-rss-feeds' ); ?>:</label>
69
+ </div>
70
+ <div class="fz-form-group">
71
+ <input type="number" min="0" max="65535" class="fz-form-control" name="proxy-port"
72
+ value="<?php echo isset( $settings['proxy']['port'] ) ? $settings['proxy']['port'] : ''; ?>">
73
+ </div>
74
+
75
+ <div class="fz-form-group">
76
+ <label><?php echo __( 'Username', 'feedzy-rss-feeds' ); ?>:</label>
77
+ </div>
78
+ <div class="fz-form-group">
79
+ <input type="text" class="fz-form-control" name="proxy-user"
80
+ value="<?php echo isset( $settings['proxy']['user'] ) ? $settings['proxy']['user'] : ''; ?>">
81
+ </div>
82
+
83
+ <div class="fz-form-group">
84
+ <label><?php echo __( 'Password', 'feedzy-rss-feeds' ); ?>:</label>
85
+ </div>
86
+ <div class="fz-form-group">
87
+ <input type="password" class="fz-form-control" name="proxy-pass"
88
+ value="<?php echo isset( $settings['proxy']['pass'] ) ? $settings['proxy']['pass'] : ''; ?>">
89
+ </div>
90
+ <?php
91
+ break;
92
+ default:
93
+ $fields = apply_filters( 'feedzy_display_tab_settings', array(), $active_tab );
94
+ if ( $fields ) {
95
+ foreach ( $fields as $field ) {
96
+ echo $field['content'];
97
+ if ( isset( $field['ajax'] ) && $field['ajax'] ) {
98
+ $show_button = false;
99
+ }
100
+ }
101
+ }
102
+ break;
103
+ }
104
+ ?>
105
+
106
+ <input type="hidden" name="tab" value="<?php echo $active_tab; ?>">
107
+
108
+ <?php
109
+ wp_nonce_field( $active_tab, 'nonce' );
110
+ if ( $show_button ) {
111
+ ?>
112
+ <button type="submit" class="fz-btn fz-btn-submit fz-btn-activate" id="feedzy-settings-submit"
113
+ name="feedzy-settings-submit"><?php _e( 'Save', 'feedzy-rss-feeds' ); ?></button>
114
+ <?php
115
+ }
116
+ ?>
117
+ </form>
118
+ </div>
119
+ </div>
120
+ </div>
121
+
122
+ </div>
dist/includes/util/feedzy-rss-feeds-util-simplepie.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The class that contains a custom implementation of SimplePie.
4
+ *
5
+ * @link http://themeisle.com
6
+ *
7
+ * @package feedzy-rss-feeds
8
+ * @subpackage feedzy-rss-feeds/includes/util
9
+ */
10
+
11
+ if ( ! class_exists( 'SimplePie' ) ) {
12
+ require_once( ABSPATH . WPINC . '/class-simplepie.php' );
13
+ require_once( ABSPATH . WPINC . '/class-wp-feed-cache.php' );
14
+ require_once( ABSPATH . WPINC . '/class-wp-feed-cache-transient.php' );
15
+ require_once( ABSPATH . WPINC . '/class-wp-simplepie-file.php' );
16
+ }
17
+
18
+ /**
19
+ * The class that contains a custom implementation of SimplePie.
20
+ *
21
+ * Class that contains a custom implementation of SimplePie.
22
+ *
23
+ * @package feedzy-rss-feeds
24
+ * @subpackage feedzy-rss-feeds/includes/util
25
+ * @author Themeisle <friends@themeisle.com>
26
+ */
27
+ class Feedzy_Rss_Feeds_Util_SimplePie extends SimplePie {
28
+
29
+ /**
30
+ * The shortcode attributes.
31
+ *
32
+ * @access private
33
+ * @var array $sc The shortcode attributes.
34
+ */
35
+ private static $sc;
36
+
37
+ /**
38
+ * Whether custom sorting is enabled.
39
+ *
40
+ * @access private
41
+ * @var bool $custom_sorting Whether custom sorting is enabled.
42
+ */
43
+ private static $custom_sorting = false;
44
+
45
+ /**
46
+ * Initialize the class and set its properties.
47
+ *
48
+ * @access public
49
+ *
50
+ * @param array $sc The shortcode attributes.
51
+ */
52
+ public function __construct( $sc ) {
53
+ self::$sc = $sc;
54
+ if ( array_key_exists( 'sort', self::$sc ) && ! empty( self::$sc['sort'] ) ) {
55
+ if ( 'date_desc' === self::$sc['sort'] ) {
56
+ $this->enable_order_by_date( true );
57
+ } else {
58
+ self::$custom_sorting = true;
59
+ }
60
+ }
61
+ parent::__construct();
62
+ }
63
+
64
+ /**
65
+ * Sorting callback for items
66
+ *
67
+ * @access public
68
+ * @param SimplePie $a The SimplePieItem.
69
+ * @param SimplePie $b The SimplePieItem.
70
+ * @return boolean
71
+ */
72
+ public static function sort_items( $a, $b ) {
73
+ if ( self::$custom_sorting ) {
74
+ switch ( self::$sc['sort'] ) {
75
+ case 'title_desc':
76
+ return $a->get_title() <= $b->get_title();
77
+ case 'title_asc':
78
+ return $a->get_title() > $b->get_title();
79
+ case 'date_asc':
80
+ return $a->get_date( 'U' ) > $b->get_date( 'U' );
81
+ }
82
+ }
83
+ return parent::sort_items( $a, $b );
84
+ }
85
+ }
dist/index.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Nothing to do here
4
+ *
5
+ * @link http://themeisle.com/plugins/feedzy-rss-feed/
6
+ * @since 3.0.0
7
+ *
8
+ * @package feedzy-rss-feeds
9
+ */
dist/js/feedzy-rss-feeds-ui-mce.js ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Plugin Name: FEEDZY RSS Feeds
3
+ * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
4
+ * Author: Themeisle
5
+ *
6
+ * @package feedzy-rss-feeds
7
+ */
8
+ /* global tinymce */
9
+ /* jshint unused:false */
10
+ (function($) {
11
+ tinymce.PluginManager.add('feedzy_mce_button', function( editor, url ) {
12
+ editor.addButton( 'feedzy_mce_button', {
13
+ title: editor.getLang( 'feedzy_tinymce_plugin.plugin_label' ),
14
+ label: editor.getLang( 'feedzy_tinymce_plugin.plugin_label' ),
15
+ icon: 'feedzy-icon',
16
+ onclick: function() {
17
+ editor.windowManager.open( {
18
+ title: editor.getLang( 'feedzy_tinymce_plugin.plugin_title' ),
19
+ url: editor.getLang( 'feedzy_tinymce_plugin.popup_url' ) + '&amp;action=get_tinymce_form',
20
+ width: $( window ).width() * 0.7,
21
+ height: ($( window ).height() - 36 - 50) * 0.7,
22
+ inline: 1,
23
+ id: 'feedzy-rss-insert-dialog',
24
+ buttons: [{
25
+ text: editor.getLang( 'feedzy_tinymce_plugin.pro_button' ),
26
+ id: 'feedzy-rss-button-pro',
27
+ onclick: function( e ) {
28
+ openProLink( e, editor );
29
+ },
30
+ },
31
+ {
32
+ text: editor.getLang( 'feedzy_tinymce_plugin.cancel_button' ),
33
+ id: 'feedzy-rss-button-cancel',
34
+ onclick: 'close'
35
+ },
36
+ {
37
+ text: editor.getLang( 'feedzy_tinymce_plugin.insert_button' ),
38
+ id: 'feedzy-rss-button-insert',
39
+ class: 'insert',
40
+ onclick: function( e ) {
41
+ insertShortcode( e, editor );
42
+ },
43
+
44
+ }],
45
+ }, {
46
+ editor: editor,
47
+ jquery: $,
48
+ wp: wp,
49
+ });
50
+ }
51
+ });
52
+ });
53
+
54
+ function insertShortcode( e, editor ) {
55
+ var frame = $( e.currentTarget ).find( 'iframe' ).get( 0 );
56
+ var content = frame.contentDocument;
57
+
58
+ var feedzy_form = $( '*[data-feedzy]', content );
59
+ var shortCode = '';
60
+ $.each( feedzy_form, function( index, element ) {
61
+ if ( ! $( element ).attr( 'disabled' ) ) {
62
+ var shortCodeParams = '';
63
+ var eName = $( element ).attr( 'data-feedzy' );
64
+ var eValue = '';
65
+ if ($( element ).is( 'input' )) {
66
+ if ($( element ).attr( 'type' ) === 'radio' || $( element ).attr( 'type' ) === 'checkbox') {
67
+ if ( $( element ).is( ':checked' ) ) {
68
+ eValue = $( element ).val();
69
+ }
70
+ } else {
71
+ eValue = $( element ).val();
72
+ }
73
+ } else {
74
+ eValue = $( element ).val();
75
+ }
76
+
77
+ if ( eValue !== '' && typeof eValue !== 'undefined' ) {
78
+ shortCodeParams = eName + '="' + eValue + '" ';
79
+ } else {
80
+ if ( eName === 'feeds' ) {
81
+ shortCodeParams = eName + '="http://themeisle.com/feed" ';
82
+ }
83
+ }
84
+ shortCode += shortCodeParams;
85
+ }
86
+ });
87
+ editor.insertContent(
88
+ '[feedzy-rss ' + shortCode + ']'
89
+ );
90
+ editor.windowManager.close();
91
+ }
92
+
93
+ function openProLink( e , editor ) {
94
+ window.open( editor.getLang( 'feedzy_tinymce_plugin.pro_url' ), '_blank' );
95
+ }
96
+ })(jQuery);
dist/languages/feedzy-rss-feeds-de_DE.mo ADDED
Binary file
dist/languages/feedzy-rss-feeds-de_DE.po ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FEEDZY RSS Feeds by b*web\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: Fri Jul 17 2015 11:41:38 GMT+0200\n"
6
+ "PO-Revision-Date: Fri Jul 17 2015 11:59:48 GMT+0200\n"
7
+ "Last-Translator: Ralf Steck <rsteck@engineeringspot.de>\n"
8
+ "Language-Team: \n"
9
+ "Language: German\n"
10
+ "Plural-Forms: nplurals=2; plural=n != 1\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-Basepath: .\n"
16
+ "X-Poedit-SearchPath-0: ..\n"
17
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
18
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
19
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
20
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
21
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
22
+ "X-Loco-Target-Locale: de_DE\n"
23
+ "X-Generator: Loco - https://localise.biz/"
24
+
25
+ #: ../feedzy-rss-feed.php:52 ../feedzy-rss-feed.php:52
26
+ msgid "Documentation and examples"
27
+ msgstr "Dokumentation und Beispiele"
28
+
29
+ #: ../feedzy-rss-feed.php:53 ../feedzy-rss-feed.php:53
30
+ msgid "More b*web Plugins"
31
+ msgstr "Weitere b*web Plugins"
32
+
33
+ #: ../feedzy-rss-feed.php:54 ../feedzy-rss-feed.php:54
34
+ msgid "Donate to this plugin &#187;"
35
+ msgstr "Spenden Sie für dieses Plugin &#187;"
36
+
37
+ #: ../feedzy-rss-feeds-widget.php:18
38
+ msgid "Feedzy RSS Feeds"
39
+ msgstr "Feedzy RSS Feeds"
40
+
41
+ #: ../feedzy-rss-feeds-widget.php:57
42
+ msgid "Widget Title"
43
+ msgstr "Widget-Titel"
44
+
45
+ #: ../feedzy-rss-feeds-widget.php:61
46
+ msgid "Intro text"
47
+ msgstr "Einleitungstext"
48
+
49
+ #: ../feedzy-rss-feeds-widget.php:65 ../feedzy-rss-feeds-ui-lang.php:20
50
+ msgid "The feed(s) URL (comma-separated list)."
51
+ msgstr "Feed URLs (kommaseparierte Liste)."
52
+
53
+ #: ../feedzy-rss-feeds-widget.php:69 ../feedzy-rss-feeds-ui-lang.php:21
54
+ msgid "Number of items to display."
55
+ msgstr "Anzahl der darzustellenden Elemente"
56
+
57
+ #: ../feedzy-rss-feeds-widget.php:73 ../feedzy-rss-feeds-ui-lang.php:23
58
+ msgid "Links may be opened in the same window or a new tab."
59
+ msgstr "Links können im selben Fenster oder einem neuen Tab geöffnet werden"
60
+
61
+ #: ../feedzy-rss-feeds-widget.php:84 ../feedzy-rss-feeds-ui-lang.php:24
62
+ msgid "Trim the title of the item after X characters."
63
+ msgstr "Titel nach X Zeichen abschneiden"
64
+
65
+ #: ../feedzy-rss-feeds-widget.php:89 ../feedzy-rss-feeds-ui-lang.php:25
66
+ msgid "Should we display the date of publication and the author name?"
67
+ msgstr "Veröffentlichungsdatum und Autorname anzeigen?"
68
+
69
+ #: ../feedzy-rss-feeds-widget.php:93 ../feedzy-rss-feeds-ui-lang.php:26
70
+ msgid "Should we display a description (abstract) of the retrieved item?"
71
+ msgstr "Kurzbeschreibung (Zusammenfassung) des Elements anzeigen?"
72
+
73
+ #: ../feedzy-rss-feeds-widget.php:96 ../feedzy-rss-feeds-ui-lang.php:27
74
+ msgid "Crop description (summary) of the element after X characters."
75
+ msgstr "Kurzbeschreibung (Zusammenfassung) nach X Zeichen abschneiden"
76
+
77
+ #: ../feedzy-rss-feeds-widget.php:100 ../feedzy-rss-feeds-ui-lang.php:28
78
+ msgid "Should we display the first image of the content if it is available?"
79
+ msgstr "Erstes Bild - wenn vorhanden - des Inhalts anzeigen?"
80
+
81
+ #: ../feedzy-rss-feeds-widget.php:111 ../feedzy-rss-feeds-ui-lang.php:33
82
+ msgid "No"
83
+ msgstr "Nein"
84
+
85
+ #: ../feedzy-rss-feeds-widget.php:112 ../feedzy-rss-feeds-ui-lang.php:34
86
+ msgid "Yes"
87
+ msgstr "Ja"
88
+
89
+ #: ../feedzy-rss-feeds-widget.php:113 ../feedzy-rss-feeds-ui-lang.php:35
90
+ msgid "Auto"
91
+ msgstr "Auto"
92
+
93
+ #: ../feedzy-rss-feeds-widget.php:123 ../feedzy-rss-feeds-ui-lang.php:29
94
+ msgid "Default thumbnail URL if no image is found."
95
+ msgstr "Standard-Thumnail-Bild, wenn kein Bild im Text vorhanden ist."
96
+
97
+ #: ../feedzy-rss-feeds-widget.php:127 ../feedzy-rss-feeds-ui-lang.php:30
98
+ msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
99
+ msgstr "Thumbnail-Größe. Bitte ohne \"px\" angeben, z.B. 150"
100
+
101
+ #: ../feedzy-rss-feeds-widget.php:131 ../feedzy-rss-feeds-ui-lang.php:31
102
+ msgid ""
103
+ "Only display item if title contains specific keyword(s) (comma-separated "
104
+ "list/case sensitive)."
105
+ msgstr ""
106
+ "Elemente nur anzeigen, wenn sie folgende Keywords enthalten (Kommaseparierte "
107
+ "Liste)."
108
+
109
+ #: ../feedzy-rss-feeds-ui-lang.php:19
110
+ msgid "Insert FEEDZY RSS Feeds Shortcode"
111
+ msgstr "FEEDZY RSS Feeds Shortcode einfügen"
112
+
113
+ #: ../feedzy-rss-feeds-ui-lang.php:22
114
+ msgid "Should we display the RSS title?"
115
+ msgstr "RSS-Titel darstellen?"
116
+
117
+ #: ../feedzy-rss-feeds-ui-lang.php:32
118
+ msgid "Do not specify"
119
+ msgstr "nicht angeben"
120
+
121
+ #: ../feedzy-rss-feeds-shortcode.php:98
122
+ msgid "Sorry, this feed is currently unavailable or does not exists anymore."
123
+ msgstr ""
124
+ "Tut uns leid, dieser Feed ist derzeit nicht verfügbar oder existiert nicht "
125
+ "mehr."
126
+
127
+ #: ../feedzy-rss-feeds-shortcode.php:205
128
+ msgid "Posted"
129
+ msgstr "Veröffentlicht"
130
+
131
+ #: ../feedzy-rss-feeds-shortcode.php:216
132
+ msgid "by"
133
+ msgstr "von"
134
+
135
+ #: ../feedzy-rss-feeds-shortcode.php:222
136
+ msgid "on"
137
+ msgstr "am"
138
+
139
+ #: ../feedzy-rss-feeds-shortcode.php:222
140
+ msgid "at"
141
+ msgstr "um"
dist/languages/feedzy-rss-feeds-es_ES.mo ADDED
Binary file
dist/languages/feedzy-rss-feeds-es_ES.po ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FEEDZY RSS Feeds by b*web\n"
4
+ "POT-Creation-Date: 2015-10-12 21:49+0200\n"
5
+ "PO-Revision-Date: 2015-10-12 22:13+0200\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "Language: es_ES\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.4\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "X-Poedit-WPHeader: feedzy-rss-feed.php\n"
15
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
19
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
22
+
23
+ #: feedzy-rss-feed.php:52
24
+ msgid "Documentation and examples"
25
+ msgstr "Documentación y ejemplos"
26
+
27
+ #: feedzy-rss-feed.php:53
28
+ msgid "More b*web Plugins"
29
+ msgstr "Más plugins de b*web"
30
+
31
+ #: feedzy-rss-feed.php:54
32
+ msgid "Donate to this plugin &#187;"
33
+ msgstr "Donar a este plugin &#187;"
34
+
35
+ #: feedzy-rss-feeds-shortcode.php:98
36
+ msgid "Sorry, this feed is currently unavailable or does not exists anymore."
37
+ msgstr "Lo sentimos, este feed no está disponible en este momento o no existe."
38
+
39
+ #: feedzy-rss-feeds-shortcode.php:205
40
+ msgid "Posted"
41
+ msgstr "Publicado"
42
+
43
+ #: feedzy-rss-feeds-shortcode.php:216
44
+ msgid "by"
45
+ msgstr "por"
46
+
47
+ #: feedzy-rss-feeds-shortcode.php:222
48
+ msgid "on"
49
+ msgstr "el día"
50
+
51
+ #: feedzy-rss-feeds-shortcode.php:224
52
+ msgid "at"
53
+ msgstr "a las"
54
+
55
+ #: feedzy-rss-feeds-ui-lang.php:19
56
+ msgid "Insert FEEDZY RSS Feeds Shortcode"
57
+ msgstr "Insertar shortcode feeds FEEDZY RSS"
58
+
59
+ #: feedzy-rss-feeds-ui-lang.php:20 feedzy-rss-feeds-widget.php:65
60
+ msgid "The feed(s) URL (comma-separated list)."
61
+ msgstr "Las Url's de los feed(s) (lista separada por comas)."
62
+
63
+ #: feedzy-rss-feeds-ui-lang.php:21 feedzy-rss-feeds-widget.php:69
64
+ msgid "Number of items to display."
65
+ msgstr "Número de artículos a mostrar."
66
+
67
+ #: feedzy-rss-feeds-ui-lang.php:22
68
+ msgid "Should we display the RSS title?"
69
+ msgstr "¿Mostrar el título del RSS?"
70
+
71
+ #: feedzy-rss-feeds-ui-lang.php:23 feedzy-rss-feeds-widget.php:73
72
+ msgid "Links may be opened in the same window or a new tab."
73
+ msgstr "Seleccionar como se mostrarán los enlaces al hacer click."
74
+
75
+ #: feedzy-rss-feeds-ui-lang.php:24 feedzy-rss-feeds-widget.php:84
76
+ msgid "Trim the title of the item after X characters."
77
+ msgstr "Recortar el título del artículo después de X caracteres."
78
+
79
+ #: feedzy-rss-feeds-ui-lang.php:25 feedzy-rss-feeds-widget.php:89
80
+ msgid "Should we display the date of publication and the author name?"
81
+ msgstr "¿Mostrar el día de publicación y el nombre del autor?"
82
+
83
+ #: feedzy-rss-feeds-ui-lang.php:26 feedzy-rss-feeds-widget.php:93
84
+ msgid "Should we display a description (abstract) of the retrieved item?"
85
+ msgstr "¿Mostrar una descripción (extracto) del artículo?"
86
+
87
+ #: feedzy-rss-feeds-ui-lang.php:27 feedzy-rss-feeds-widget.php:96
88
+ msgid "Crop description (summary) of the element after X characters."
89
+ msgstr "Cortar la descripción (sumario) del elemento después de X caracteres."
90
+
91
+ #: feedzy-rss-feeds-ui-lang.php:28 feedzy-rss-feeds-widget.php:100
92
+ msgid "Should we display the first image of the content if it is available?"
93
+ msgstr "¿Mostrar la primera imagen del contenido si está disponible?"
94
+
95
+ #: feedzy-rss-feeds-ui-lang.php:29 feedzy-rss-feeds-widget.php:123
96
+ msgid "Default thumbnail URL if no image is found."
97
+ msgstr "Enlace de la imagen por defecto si no la hay disponible."
98
+
99
+ #: feedzy-rss-feeds-ui-lang.php:30 feedzy-rss-feeds-widget.php:127
100
+ msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
101
+ msgstr "Dimensiones de las imágenes. No incluir \"px\". Ejemplo: 150"
102
+
103
+ #: feedzy-rss-feeds-ui-lang.php:31 feedzy-rss-feeds-widget.php:131
104
+ msgid ""
105
+ "Only display item if title contains specific keyword(s) (comma-separated "
106
+ "list/case sensitive)."
107
+ msgstr ""
108
+ "Sólo mostrar el artículo si el título contiene las palabra(s) "
109
+ "especificada(s) (lista separada por comas/distingue mayúsculas de "
110
+ "minúsculas)."
111
+
112
+ #: feedzy-rss-feeds-ui-lang.php:32
113
+ msgid "Do not specify"
114
+ msgstr "no especificado"
115
+
116
+ #: feedzy-rss-feeds-ui-lang.php:33 feedzy-rss-feeds-widget.php:111
117
+ msgid "No"
118
+ msgstr "No"
119
+
120
+ #: feedzy-rss-feeds-ui-lang.php:34 feedzy-rss-feeds-widget.php:112
121
+ msgid "Yes"
122
+ msgstr "Si"
123
+
124
+ #: feedzy-rss-feeds-ui-lang.php:35 feedzy-rss-feeds-widget.php:113
125
+ msgid "Auto"
126
+ msgstr "Auto"
127
+
128
+ #: feedzy-rss-feeds-widget.php:18
129
+ msgid "Feedzy RSS Feeds"
130
+ msgstr "Feedzy RSS Feeds"
131
+
132
+ #: feedzy-rss-feeds-widget.php:57
133
+ msgid "Widget Title"
134
+ msgstr "Título del Widget"
135
+
136
+ #: feedzy-rss-feeds-widget.php:61
137
+ msgid "Intro text"
138
+ msgstr "Texto introductorio"
139
+
140
+ #. Plugin Name of the plugin/theme
141
+ msgid "FEEDZY RSS Feeds by b*web"
142
+ msgstr "FEEDZY RSS Feeds por b*web"
143
+
144
+ #. Plugin URI of the plugin/theme
145
+ msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
146
+ msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
147
+
148
+ #. Description of the plugin/theme
149
+ msgid ""
150
+ "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it "
151
+ "aggregates RSS feeds into your WordPress site through simple shortcodes."
152
+ msgstr ""
153
+ "FEEDZY RSS Feeds es un pequeño y ligero plugin. Rápido y fácil de usar, "
154
+ "agrupa los canales RSS en su sitio de WordPress a través de simples "
155
+ "shortcodes."
156
+
157
+ #. Author of the plugin/theme
158
+ msgid "Brice CAPOBIANCO"
159
+ msgstr "Brice CAPOBIANCO"
160
+
161
+ #. Author URI of the plugin/theme
162
+ msgid "http://b-website.com/"
163
+ msgstr "http://b-website.com/"
dist/languages/feedzy-rss-feeds-fr_FR.mo ADDED
Binary file
dist/languages/feedzy-rss-feeds-fr_FR.po ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FEEDZY RSS Feeds by b*web v2.7\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2015-12-07 11:46:59+0000\n"
7
+ "Last-Translator: superadminopl <brice.capobianco@openlog.fr>\n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n>1;\n"
13
+ "X-Generator: CSL v1.x\n"
14
+ "X-Poedit-Language: French\n"
15
+ "X-Poedit-Country: FRANCE\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "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"
18
+ "X-Poedit-Basepath: \n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Textdomain-Support: yes"
22
+
23
+ #: feedzy-rss-feeds-functions.php:26
24
+ #@ feedzy-rss-feeds
25
+ msgid "Sorry, this feed is currently unavailable or does not exists anymore."
26
+ msgstr "Désolé, ce flux est actuellement indisponible ou n'existe plus."
27
+
28
+ #: feedzy-rss-feeds-shortcode.php:228
29
+ #@ feedzy-rss-feeds
30
+ msgid "on"
31
+ msgstr "le"
32
+
33
+ #: feedzy-rss-feeds-shortcode.php:230
34
+ #@ feedzy-rss-feeds
35
+ msgid "at"
36
+ msgstr "à"
37
+
38
+ #: feedzy-rss-feed.php:52
39
+ #@ feedzy-rss-feeds
40
+ msgid "Documentation and examples"
41
+ msgstr "Documentation et exemples"
42
+
43
+ #: feedzy-rss-feed.php:53
44
+ #@ feedzy-rss-feeds
45
+ msgid "More b*web Plugins"
46
+ msgstr "Plus de plugins b*web"
47
+
48
+ #: feedzy-rss-feeds-ui-lang.php:19
49
+ #@ feedzy-rss-feeds
50
+ msgid "Insert FEEDZY RSS Feeds Shortcode"
51
+ msgstr "Insérer un shortcode FEEDZY RSS Feeds"
52
+
53
+ #: feedzy-rss-feeds-ui-lang.php:21
54
+ #: feedzy-rss-feeds-widget.php:69
55
+ #@ feedzy-rss-feeds
56
+ msgid "Number of items to display."
57
+ msgstr "Nombre d’éléments à remonter."
58
+
59
+ #: feedzy-rss-feeds-ui-lang.php:23
60
+ #: feedzy-rss-feeds-widget.php:73
61
+ #@ feedzy-rss-feeds
62
+ msgid "Links may be opened in the same window or a new tab."
63
+ msgstr "Les liens peuvent être ouverts dans la même fenêtre ou dans un nouvel onglet."
64
+
65
+ #: feedzy-rss-feeds-ui-lang.php:24
66
+ #: feedzy-rss-feeds-widget.php:84
67
+ #@ feedzy-rss-feeds
68
+ msgid "Trim the title of the item after X characters."
69
+ msgstr "Rogner le titre de l’élément après X caractères."
70
+
71
+ #: feedzy-rss-feeds-ui-lang.php:25
72
+ #: feedzy-rss-feeds-widget.php:89
73
+ #@ feedzy-rss-feeds
74
+ msgid "Should we display the date of publication and the author name?"
75
+ msgstr "Doit-on afficher la date de publication ainsi que le nom de l’auteur de l’élément ?"
76
+
77
+ #: feedzy-rss-feeds-ui-lang.php:26
78
+ #: feedzy-rss-feeds-widget.php:93
79
+ #@ feedzy-rss-feeds
80
+ msgid "Should we display a description (abstract) of the retrieved item?"
81
+ msgstr "Doit-on afficher la description (le résumé) de l’élément ?"
82
+
83
+ #: feedzy-rss-feeds-ui-lang.php:27
84
+ #: feedzy-rss-feeds-widget.php:96
85
+ #@ feedzy-rss-feeds
86
+ msgid "Crop description (summary) of the element after X characters."
87
+ msgstr "Rogner la description (le résumé) de l’élément après X caractères."
88
+
89
+ #: feedzy-rss-feeds-ui-lang.php:28
90
+ #: feedzy-rss-feeds-widget.php:100
91
+ #@ feedzy-rss-feeds
92
+ msgid "Should we display the first image of the content if it is available?"
93
+ msgstr "Doit-on afficher la première image du contenu si elle est disponible ?"
94
+
95
+ #: feedzy-rss-feeds-ui-lang.php:29
96
+ #: feedzy-rss-feeds-widget.php:123
97
+ #@ feedzy-rss-feeds
98
+ msgid "Default thumbnail URL if no image is found."
99
+ msgstr "URL de la miniature par défaut si aucune image n’est trouvée."
100
+
101
+ #: feedzy-rss-feeds-ui-lang.php:30
102
+ #: feedzy-rss-feeds-widget.php:127
103
+ #@ feedzy-rss-feeds
104
+ msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
105
+ msgstr "Dimensions de la miniature. Ne pas inclure “px”. Ex : 150"
106
+
107
+ #: feedzy-rss-feeds-ui-lang.php:31
108
+ #: feedzy-rss-feeds-widget.php:131
109
+ #@ feedzy-rss-feeds
110
+ msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
111
+ 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)"
112
+
113
+ #: feedzy-rss-feeds-ui-lang.php:32
114
+ #@ feedzy-rss-feeds
115
+ msgid "Do not specify"
116
+ msgstr "Ne pas préciser"
117
+
118
+ #: feedzy-rss-feeds-ui-lang.php:33
119
+ #: feedzy-rss-feeds-widget.php:111
120
+ #@ feedzy-rss-feeds
121
+ msgid "No"
122
+ msgstr "Non"
123
+
124
+ #: feedzy-rss-feeds-ui-lang.php:34
125
+ #: feedzy-rss-feeds-widget.php:112
126
+ #@ feedzy-rss-feeds
127
+ msgid "Yes"
128
+ msgstr "Oui"
129
+
130
+ #: feedzy-rss-feeds-ui-lang.php:20
131
+ #: feedzy-rss-feeds-widget.php:65
132
+ #@ feedzy-rss-feeds
133
+ msgid "The feed(s) URL (comma-separated list)."
134
+ msgstr "URL(s) du(des) flux RSS (liste séparée par des virgules)."
135
+
136
+ #: feedzy-rss-feeds-ui-lang.php:22
137
+ #@ feedzy-rss-feeds
138
+ msgid "Should we display the RSS title?"
139
+ msgstr "Doit-on afficher le titre du flux RSS ?"
140
+
141
+ #. translators: plugin header field 'Name'
142
+ #: feedzy-rss-feed.php:0
143
+ #@ feedzy-rss-feeds
144
+ msgid "FEEDZY RSS Feeds by b*web"
145
+ msgstr ""
146
+
147
+ #. translators: plugin header field 'Description'
148
+ #: feedzy-rss-feed.php:0
149
+ #@ feedzy-rss-feeds
150
+ 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."
151
+ 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."
152
+
153
+ #. translators: plugin header field 'Author'
154
+ #: feedzy-rss-feed.php:0
155
+ #@ feedzy-rss-feeds
156
+ msgid "Brice CAPOBIANCO"
157
+ msgstr ""
158
+
159
+ #. translators: plugin header field 'AuthorURI'
160
+ #: feedzy-rss-feed.php:0
161
+ #@ feedzy-rss-feeds
162
+ msgid "http://b-website.com/"
163
+ msgstr ""
164
+
165
+ #. translators: plugin header field 'PluginURI'
166
+ #: feedzy-rss-feed.php:0
167
+ #@ feedzy-rss-feeds
168
+ msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
169
+ msgstr "http://b-website.com/feedzy-rss-feeds-plugin-wordpress-gratuit-utilisant-simplepie"
170
+
171
+ #: feedzy-rss-feeds-widget.php:18
172
+ #@ feedzy_wp_widget
173
+ msgid "Feedzy RSS Feeds"
174
+ msgstr ""
175
+
176
+ #: feedzy-rss-feeds-widget.php:57
177
+ #@ feedzy-rss-feeds
178
+ msgid "Widget Title"
179
+ msgstr "Titre du Widget"
180
+
181
+ #: feedzy-rss-feeds-widget.php:61
182
+ #@ feedzy-rss-feeds
183
+ msgid "Intro text"
184
+ msgstr "Texte d'intro"
185
+
186
+ #: feedzy-rss-feed.php:54
187
+ #@ default
188
+ msgid "Donate to this plugin &#187;"
189
+ msgstr ""
190
+
191
+ #: feedzy-rss-feeds-shortcode.php:211
192
+ #@ feedzy-rss-feeds
193
+ msgid "Posted"
194
+ msgstr "Posté"
195
+
196
+ #: feedzy-rss-feeds-shortcode.php:222
197
+ #@ feedzy-rss-feeds
198
+ msgid "by"
199
+ msgstr "par"
200
+
201
+ #. translators: plugin header field 'Version'
202
+ #: feedzy-rss-feed.php:0
203
+ #@ feedzy-rss-feeds
204
+ msgid "2.7"
205
+ msgstr ""
206
+
207
+ #: feedzy-rss-feeds-ui-lang.php:20
208
+ #@ feedzy-rss-feeds
209
+ msgid "If your feed is not valid, it won't work."
210
+ msgstr "Si votre flux n'est pas valide, cela ne fonctionnera pas."
211
+
212
+ #: feedzy-rss-feeds-ui-lang.php:35
213
+ #: feedzy-rss-feeds-widget.php:113
214
+ #@ feedzy-rss-feeds
215
+ msgid "Auto"
216
+ msgstr ""
217
+
dist/languages/feedzy-rss-feeds-ja.mo ADDED
Binary file
dist/languages/feedzy-rss-feeds-ja.po ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FEEDZY RSS Feeds by b*web v2.2\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2015-06-28 08:42+0900\n"
7
+ "Last-Translator: Shinichiro Sato <sama55@cmsbox.jp>\n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n>1;\n"
13
+ "X-Generator: Poedit 1.8.1\n"
14
+ "X-Poedit-SourceCharset: utf-8\n"
15
+ "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"
16
+ "X-Textdomain-Support: yes\n"
17
+ "Language: fr_FR\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+
20
+ # @ feedzy-rss-feeds
21
+ #: feedzy-rss-feeds-shortcode.php:120
22
+ msgid "Sorry, this feed is currently unavailable or does not exists anymore."
23
+ msgstr "このフィードは現在利用できないか存在しません。"
24
+
25
+ # @ feedzy-rss-feeds
26
+ #: feedzy-rss-feeds-shortcode.php:298
27
+ msgid "on"
28
+ msgstr "on"
29
+
30
+ # @ feedzy-rss-feeds
31
+ #: feedzy-rss-feeds-shortcode.php:298
32
+ msgid "at"
33
+ msgstr "at"
34
+
35
+ # @ feedzy-rss-feeds
36
+ #: feedzy-rss-feed.php:37
37
+ msgid "Documentation and examples"
38
+ msgstr "ドキュメントと例"
39
+
40
+ # @ feedzy-rss-feeds
41
+ #: feedzy-rss-feed.php:38
42
+ msgid "More b*web Plugins"
43
+ msgstr "他の b*web プラグイン"
44
+
45
+ # @ feedzy-rss-feeds
46
+ #: feedzy-rss-feeds-ui-lang.php:19
47
+ msgid "Insert FEEDZY RSS Feeds Shortcode"
48
+ msgstr "FEEDZY RSSフィード ショートコードを追加"
49
+
50
+ # @ feedzy-rss-feeds
51
+ #: feedzy-rss-feeds-ui-lang.php:21 feedzy-rss-feeds-widget.php:69
52
+ msgid "Number of items to display."
53
+ msgstr "表示数:"
54
+
55
+ # @ feedzy-rss-feeds
56
+ #: feedzy-rss-feeds-ui-lang.php:23 feedzy-rss-feeds-widget.php:73
57
+ msgid "Links may be opened in the same window or a new tab."
58
+ msgstr "リンク先の開き方:"
59
+
60
+ # @ feedzy-rss-feeds
61
+ #: feedzy-rss-feeds-ui-lang.php:24 feedzy-rss-feeds-widget.php:84
62
+ msgid "Trim the title of the item after X characters."
63
+ msgstr "タイトルの切り取り文字数:"
64
+
65
+ # @ feedzy-rss-feeds
66
+ #: feedzy-rss-feeds-ui-lang.php:25 feedzy-rss-feeds-widget.php:89
67
+ msgid "Should we display the date of publication and the author name?"
68
+ msgstr "公開日と著作者を表示:"
69
+
70
+ # @ feedzy-rss-feeds
71
+ #: feedzy-rss-feeds-ui-lang.php:26 feedzy-rss-feeds-widget.php:93
72
+ msgid "Should we display a description (abstract) of the retrieved item?"
73
+ msgstr "詳細を表示:"
74
+
75
+ # @ feedzy-rss-feeds
76
+ #: feedzy-rss-feeds-ui-lang.php:27 feedzy-rss-feeds-widget.php:96
77
+ msgid "Crop description (summary) of the element after X characters."
78
+ msgstr "詳細の切り取り文字数:"
79
+
80
+ # @ feedzy-rss-feeds
81
+ #: feedzy-rss-feeds-ui-lang.php:28 feedzy-rss-feeds-widget.php:101
82
+ msgid "Should we display the first image of the content if it is available?"
83
+ msgstr "最初の画像を表示:"
84
+
85
+ # @ feedzy-rss-feeds
86
+ #: feedzy-rss-feeds-ui-lang.php:29 feedzy-rss-feeds-widget.php:104
87
+ msgid "Default thumbnail URL if no image is found."
88
+ msgstr "画像がない場合のデフォルトサムネイル:"
89
+
90
+ # @ feedzy-rss-feeds
91
+ #: feedzy-rss-feeds-ui-lang.php:30 feedzy-rss-feeds-widget.php:108
92
+ msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
93
+ msgstr "サムネイルのサイズ(\"px\"はなし 例:150):"
94
+
95
+ # @ feedzy-rss-feeds
96
+ #: feedzy-rss-feeds-ui-lang.php:31 feedzy-rss-feeds-widget.php:112
97
+ msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
98
+ msgstr "特定なキーワードがタイトルに含まれる項目のみ表示 (複数指定時は大文字小文字を意識してカンマ区切り):"
99
+
100
+ # @ feedzy-rss-feeds
101
+ #: feedzy-rss-feeds-ui-lang.php:32
102
+ msgid "Do not specify"
103
+ msgstr "指定しない"
104
+
105
+ # @ feedzy-rss-feeds
106
+ #: feedzy-rss-feeds-ui-lang.php:33
107
+ msgid "No"
108
+ msgstr "しない"
109
+
110
+ # @ feedzy-rss-feeds
111
+ #: feedzy-rss-feeds-ui-lang.php:34
112
+ msgid "Yes"
113
+ msgstr "する"
114
+
115
+ # @ feedzy-rss-feeds
116
+ #: feedzy-rss-feeds-ui-lang.php:20 feedzy-rss-feeds-widget.php:65
117
+ msgid "The feed(s) URL (comma-separated list)."
118
+ msgstr "フィードアドレス (複数指定する場合はカンマ区切り):"
119
+
120
+ # @ feedzy-rss-feeds
121
+ #: feedzy-rss-feeds-ui-lang.php:22
122
+ msgid "Should we display the RSS title?"
123
+ msgstr "タイトルを表示:"
124
+
125
+ # @ feedzy-rss-feeds
126
+ #. translators: plugin header field 'Name'
127
+ #: feedzy-rss-feed.php:0
128
+ msgid "FEEDZY RSS Feeds by b*web"
129
+ msgstr "FEEDZY RSS Feeds by b*web"
130
+
131
+ # @ feedzy-rss-feeds
132
+ #. translators: plugin header field 'Description'
133
+ #: feedzy-rss-feed.php:0
134
+ 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."
135
+ msgstr "FEEDZY RSS Feeds は小さく軽いプラグインです。高速で使い方も簡単。あなたのワードプレスサイトにシンプルなショートコードによるRSSフィードの収集機能を追加します。"
136
+
137
+ # @ feedzy-rss-feeds
138
+ #. translators: plugin header field 'Author'
139
+ #: feedzy-rss-feed.php:0
140
+ msgid "Brice CAPOBIANCO"
141
+ msgstr "Brice CAPOBIANCO"
142
+
143
+ # @ feedzy-rss-feeds
144
+ #. translators: plugin header field 'AuthorURI'
145
+ #: feedzy-rss-feed.php:0
146
+ msgid "http://b-website.com/"
147
+ msgstr "http://b-website.com/"
148
+
149
+ # @ feedzy-rss-feeds
150
+ #. translators: plugin header field 'PluginURI'
151
+ #: feedzy-rss-feed.php:0
152
+ msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
153
+ msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
154
+
155
+ # @ feedzy_wp_widget
156
+ #: feedzy-rss-feeds-widget.php:18
157
+ msgid "Feedzy RSS Feeds"
158
+ msgstr "Feedzy RSS フィード"
159
+
160
+ # @ feedzy-rss-feeds
161
+ #: feedzy-rss-feeds-widget.php:57
162
+ msgid "Widget Title"
163
+ msgstr "タイトル"
164
+
165
+ # @ feedzy-rss-feeds
166
+ #: feedzy-rss-feeds-widget.php:61
167
+ msgid "Intro text"
168
+ msgstr "イントロテキスト"
169
+
170
+ # @ default
171
+ #: feedzy-rss-feed.php:39
172
+ msgid "Donate to this plugin &#187;"
173
+ msgstr "このプラグインに寄付 &#187;"
174
+
175
+ # @ feedzy-rss-feeds
176
+ #. translators: plugin header field 'Version'
177
+ #: feedzy-rss-feed.php:0
178
+ msgid "2.2"
179
+ msgstr "2.2"
180
+
181
+ # @ feedzy-rss-feeds
182
+ #: feedzy-rss-feeds-shortcode.php:289
183
+ msgid "Posted"
184
+ msgstr "投稿日"
185
+
186
+ # @ feedzy-rss-feeds
187
+ #: feedzy-rss-feeds-shortcode.php:294
188
+ msgid "by"
189
+ msgstr "by"
dist/languages/feedzy-rss-feeds-sr_RS.mo ADDED
Binary file
dist/languages/feedzy-rss-feeds-sr_RS.po ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FEEDZY RSS Feeds by b*web v2.2.1\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2015-01-13 19:54:39+0000\n"
7
+ "Last-Translator: Borisa Djuraskovic <borisad@webhostinghub.com>\n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Generator: Poedit 1.5.4\n"
14
+ "X-Poedit-Language: \n"
15
+ "X-Poedit-Country: \n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "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"
18
+ "X-Poedit-Basepath: \n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Textdomain-Support: yes"
22
+
23
+ #: feedzy-rss-feeds-shortcode.php:120
24
+ #@ feedzy-rss-feeds
25
+ msgid "Sorry, this feed is currently unavailable or does not exists anymore."
26
+ msgstr "Žao nam je, ovo polje trenutno nije dostupno ili više ne postoji."
27
+
28
+ #: feedzy-rss-feeds-shortcode.php:298
29
+ #@ feedzy-rss-feeds
30
+ msgid "on"
31
+ msgstr "na"
32
+
33
+ #: feedzy-rss-feeds-shortcode.php:298
34
+ #@ feedzy-rss-feeds
35
+ msgid "at"
36
+ msgstr "u"
37
+
38
+ #: feedzy-rss-feed.php:37
39
+ #@ feedzy-rss-feeds
40
+ msgid "Documentation and examples"
41
+ msgstr "Dokumentacija i primeri"
42
+
43
+ #: feedzy-rss-feed.php:38
44
+ #@ feedzy-rss-feeds
45
+ msgid "More b*web Plugins"
46
+ msgstr "Više b*web Plugin-ova"
47
+
48
+ #: feedzy-rss-feeds-ui-lang.php:19
49
+ #@ feedzy-rss-feeds
50
+ msgid "Insert FEEDZY RSS Feeds Shortcode"
51
+ msgstr "Unesite FEEDZY RSS Feeds Shortcode"
52
+
53
+ #: feedzy-rss-feeds-ui-lang.php:21
54
+ #: feedzy-rss-feeds-widget.php:69
55
+ #@ feedzy-rss-feeds
56
+ msgid "Number of items to display."
57
+ msgstr "Broj stavki za prikazivanje"
58
+
59
+ #: feedzy-rss-feeds-ui-lang.php:23
60
+ #: feedzy-rss-feeds-widget.php:73
61
+ #@ feedzy-rss-feeds
62
+ msgid "Links may be opened in the same window or a new tab."
63
+ msgstr "Linkovi mogu biti otvoreni u istom prozoru ili u novom tabulatoru."
64
+
65
+ #: feedzy-rss-feeds-ui-lang.php:24
66
+ #: feedzy-rss-feeds-widget.php:84
67
+ #@ feedzy-rss-feeds
68
+ msgid "Trim the title of the item after X characters."
69
+ msgstr "Skratite naslov stavke posle X karaktera."
70
+
71
+ #: feedzy-rss-feeds-ui-lang.php:25
72
+ #: feedzy-rss-feeds-widget.php:89
73
+ #@ feedzy-rss-feeds
74
+ msgid "Should we display the date of publication and the author name?"
75
+ msgstr "Treba li da prikažemo datum publikacije i ime autora?"
76
+
77
+ #: feedzy-rss-feeds-ui-lang.php:26
78
+ #: feedzy-rss-feeds-widget.php:93
79
+ #@ feedzy-rss-feeds
80
+ msgid "Should we display a description (abstract) of the retrieved item?"
81
+ msgstr "Treba li da prikažemo opis (siže) dobavljene stavke?"
82
+
83
+ #: feedzy-rss-feeds-ui-lang.php:27
84
+ #: feedzy-rss-feeds-widget.php:96
85
+ #@ feedzy-rss-feeds
86
+ msgid "Crop description (summary) of the element after X characters."
87
+ msgstr "Kropuj opis (siže) elementa posle X karaktera."
88
+
89
+ #: feedzy-rss-feeds-ui-lang.php:28
90
+ #: feedzy-rss-feeds-widget.php:101
91
+ #@ feedzy-rss-feeds
92
+ msgid "Should we display the first image of the content if it is available?"
93
+ msgstr "Treba li da prikažemo prvu sliku sadržaja ako je raspoloživa?"
94
+
95
+ #: feedzy-rss-feeds-ui-lang.php:29
96
+ #: feedzy-rss-feeds-widget.php:104
97
+ #@ feedzy-rss-feeds
98
+ msgid "Default thumbnail URL if no image is found."
99
+ msgstr "URL podrazumevane sličice ako nije pronađena nijedna slika."
100
+
101
+ #: feedzy-rss-feeds-ui-lang.php:30
102
+ #: feedzy-rss-feeds-widget.php:108
103
+ #@ feedzy-rss-feeds
104
+ msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
105
+ msgstr "Dimenzije sličice. Nemojte unositi \"px\". Npr. 150"
106
+
107
+ #: feedzy-rss-feeds-ui-lang.php:31
108
+ #: feedzy-rss-feeds-widget.php:112
109
+ #@ feedzy-rss-feeds
110
+ msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
111
+ msgstr "Prikaži stavku samo ako naslov sadrži specifične ključne reči (odvojene zarezima/osetljive na velika i mala slova)."
112
+
113
+ #: feedzy-rss-feeds-ui-lang.php:32
114
+ #@ feedzy-rss-feeds
115
+ msgid "Do not specify"
116
+ msgstr "Nemoj određivati"
117
+
118
+ #: feedzy-rss-feeds-ui-lang.php:33
119
+ #@ feedzy-rss-feeds
120
+ msgid "No"
121
+ msgstr "Ne"
122
+
123
+ #: feedzy-rss-feeds-ui-lang.php:34
124
+ #@ feedzy-rss-feeds
125
+ msgid "Yes"
126
+ msgstr "Da"
127
+
128
+ #: feedzy-rss-feeds-ui-lang.php:20
129
+ #: feedzy-rss-feeds-widget.php:65
130
+ #@ feedzy-rss-feeds
131
+ msgid "The feed(s) URL (comma-separated list)."
132
+ msgstr "URL feed-ova (odvojenih zarezima ako je lista)."
133
+
134
+ #: feedzy-rss-feeds-ui-lang.php:22
135
+ #@ feedzy-rss-feeds
136
+ msgid "Should we display the RSS title?"
137
+ msgstr "Treba li da prikažemo RSS naslov?"
138
+
139
+ #. translators: plugin header field 'Name'
140
+ #: feedzy-rss-feed.php:0
141
+ #@ feedzy-rss-feeds
142
+ msgid "FEEDZY RSS Feeds by b*web"
143
+ msgstr "FEEDZY RSS Feeds, autor b*web"
144
+
145
+ #. translators: plugin header field 'Description'
146
+ #: feedzy-rss-feed.php:0
147
+ #@ feedzy-rss-feeds
148
+ 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."
149
+ 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."
150
+
151
+ #. translators: plugin header field 'Author'
152
+ #: feedzy-rss-feed.php:0
153
+ #@ feedzy-rss-feeds
154
+ msgid "Brice CAPOBIANCO"
155
+ msgstr "Brice CAPOBIANCO"
156
+
157
+ #. translators: plugin header field 'AuthorURI'
158
+ #: feedzy-rss-feed.php:0
159
+ #@ feedzy-rss-feeds
160
+ msgid "http://b-website.com/"
161
+ msgstr "http://b-website.com/"
162
+
163
+ #. translators: plugin header field 'PluginURI'
164
+ #: feedzy-rss-feed.php:0
165
+ #@ feedzy-rss-feeds
166
+ msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
167
+ msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
168
+
169
+ #. translators: plugin header field 'Version'
170
+ #: feedzy-rss-feed.php:0
171
+ #@ feedzy-rss-feeds
172
+ msgid "2.2.1"
173
+ msgstr ""
174
+
175
+ #: feedzy-rss-feed.php:39
176
+ #@ default
177
+ msgid "Donate to this plugin &#187;"
178
+ msgstr ""
179
+
180
+ #: feedzy-rss-feeds-shortcode.php:289
181
+ #@ feedzy-rss-feeds
182
+ msgid "Posted"
183
+ msgstr "Objavljeno"
184
+
185
+ #: feedzy-rss-feeds-shortcode.php:294
186
+ #@ feedzy-rss-feeds
187
+ msgid "by"
188
+ msgstr "po"
189
+
190
+ #: feedzy-rss-feeds-widget.php:18
191
+ #@ feedzy_wp_widget
192
+ msgid "Feedzy RSS Feeds"
193
+ msgstr ""
194
+
195
+ #: feedzy-rss-feeds-widget.php:57
196
+ #@ feedzy-rss-feeds
197
+ msgid "Widget Title"
198
+ msgstr "dodatak Naslov"
199
+
200
+ #: feedzy-rss-feeds-widget.php:61
201
+ #@ feedzy-rss-feeds
202
+ msgid "Intro text"
203
+ msgstr "Uvodni tekst"
204
+
dist/languages/feedzy-rss-feeds.pot ADDED
@@ -0,0 +1,459 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2018 Themeisle
2
+ # This file is distributed under the GPL-2.0+.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Feedzy RSS Feeds Lite 3.2.8\n"
6
+ "Report-Msgid-Bugs-To: https://github.com/Codeinwp/feedzy-rss-feeds/issues\n"
7
+ "POT-Creation-Date: 2018-03-07 09:46:44+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
13
+ "Language-Team: Themeisle Translate <friends@themeisle.com>\n"
14
+ "X-Generator: grunt-wp-i18n 0.5.4\n"
15
+ "X-Poedit-KeywordsList: "
16
+ "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
17
+ "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
18
+ "Language: en\n"
19
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-SourceCharset: UTF-8\n"
22
+ "X-Poedit-Basepath: ../\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-Bookmarks: \n"
25
+ "X-Textdomain-Support: yes\n"
26
+
27
+ #: form/form.php:44
28
+ msgid "Premium"
29
+ msgstr ""
30
+
31
+ #: includes/abstract/feedzy-rss-feeds-admin-abstract.php:57
32
+ msgid "Sorry, this feed is currently unavailable or does not exists anymore."
33
+ msgstr ""
34
+
35
+ #: includes/abstract/feedzy-rss-feeds-admin-abstract.php:485
36
+ #: includes/abstract/feedzy-rss-feeds-admin-abstract.php:492
37
+ msgid "Feed URL: %s not valid and removed from fetch."
38
+ msgstr ""
39
+
40
+ #: includes/abstract/feedzy-rss-feeds-admin-abstract.php:784
41
+ msgid "by"
42
+ msgstr ""
43
+
44
+ #: includes/abstract/feedzy-rss-feeds-admin-abstract.php:790
45
+ msgid "on"
46
+ msgstr ""
47
+
48
+ #: includes/abstract/feedzy-rss-feeds-admin-abstract.php:792
49
+ msgid "at"
50
+ msgstr ""
51
+
52
+ #: includes/admin/feedzy-rss-feeds-admin.php:142
53
+ msgid "Feed Categories"
54
+ msgstr ""
55
+
56
+ #: includes/admin/feedzy-rss-feeds-admin.php:143
57
+ msgid "Feed Category"
58
+ msgstr ""
59
+
60
+ #: includes/admin/feedzy-rss-feeds-admin.php:144
61
+ #: includes/admin/feedzy-rss-feeds-admin.php:145
62
+ msgid "Add Category"
63
+ msgstr ""
64
+
65
+ #: includes/admin/feedzy-rss-feeds-admin.php:146
66
+ msgid "Edit Category"
67
+ msgstr ""
68
+
69
+ #: includes/admin/feedzy-rss-feeds-admin.php:147
70
+ msgid "New Feed Category"
71
+ msgstr ""
72
+
73
+ #: includes/admin/feedzy-rss-feeds-admin.php:148
74
+ msgid "View Category"
75
+ msgstr ""
76
+
77
+ #: includes/admin/feedzy-rss-feeds-admin.php:149
78
+ msgid "Search Category"
79
+ msgstr ""
80
+
81
+ #: includes/admin/feedzy-rss-feeds-admin.php:150
82
+ msgid "No categories found"
83
+ msgstr ""
84
+
85
+ #: includes/admin/feedzy-rss-feeds-admin.php:151
86
+ msgid "No categories in the trash"
87
+ msgstr ""
88
+
89
+ #: includes/admin/feedzy-rss-feeds-admin.php:181
90
+ msgid "Category Feeds"
91
+ msgstr ""
92
+
93
+ #: includes/admin/feedzy-rss-feeds-admin.php:187
94
+ msgid "Increase your social media presence"
95
+ msgstr ""
96
+
97
+ #: includes/admin/feedzy-rss-feeds-admin.php:217
98
+ msgid "Place your URL's here followed by a comma."
99
+ msgstr ""
100
+
101
+ #: includes/admin/feedzy-rss-feeds-admin.php:278
102
+ msgid "Category Title"
103
+ msgstr ""
104
+
105
+ #: includes/admin/feedzy-rss-feeds-admin.php:279
106
+ #: includes/admin/feedzy-rss-feeds-admin.php:282
107
+ msgid "Slug"
108
+ msgstr ""
109
+
110
+ #: includes/admin/feedzy-rss-feeds-admin.php:306
111
+ msgid "Undefined"
112
+ msgstr ""
113
+
114
+ #: includes/admin/feedzy-rss-feeds-admin.php:331
115
+ msgid "Documentation and examples"
116
+ msgstr ""
117
+
118
+ #: includes/admin/feedzy-rss-feeds-admin.php:332
119
+ msgid "More Plugins"
120
+ msgstr ""
121
+
122
+ #: includes/admin/feedzy-rss-feeds-admin.php:332
123
+ #: includes/admin/feedzy-rss-feeds-admin.php:351
124
+ msgid "More Features"
125
+ msgstr ""
126
+
127
+ #: includes/admin/feedzy-rss-feeds-admin.php:348
128
+ #: includes/admin/feedzy-wp-widget.php:40
129
+ msgid "Feedzy RSS Feeds"
130
+ msgstr ""
131
+
132
+ #: includes/admin/feedzy-rss-feeds-admin.php:348
133
+ msgid "Feedzy RSS"
134
+ msgstr ""
135
+
136
+ #: includes/admin/feedzy-rss-feeds-admin.php:361
137
+ msgid "Import Posts"
138
+ msgstr ""
139
+
140
+ #: includes/admin/feedzy-rss-feeds-admin.php:365
141
+ msgid "Settings"
142
+ msgstr ""
143
+
144
+ #: includes/admin/feedzy-rss-feeds-admin.php:380
145
+ msgid "Your settings were saved."
146
+ msgstr ""
147
+
148
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:52
149
+ msgid "Feedzy Lite"
150
+ msgstr ""
151
+
152
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:53
153
+ msgid "Insert Feedzy RSS Feeds Shortcode"
154
+ msgstr ""
155
+
156
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:54
157
+ msgid "Use Image"
158
+ msgstr ""
159
+
160
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:55
161
+ msgid "Insert Shortcode"
162
+ msgstr ""
163
+
164
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:56
165
+ msgid "Cancel"
166
+ msgstr ""
167
+
168
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:57
169
+ msgid "Get Feedzy RSS Feeds Premium"
170
+ msgstr ""
171
+
172
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:93
173
+ msgid "Feed Source"
174
+ msgstr ""
175
+
176
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:96
177
+ msgid "The feed(s) URL (comma-separated list)."
178
+ msgstr ""
179
+
180
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:96
181
+ msgid "Check feed before insert."
182
+ msgstr ""
183
+
184
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:97
185
+ msgid "Feed URL"
186
+ msgstr ""
187
+
188
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:102
189
+ msgid "Number of items to display."
190
+ msgstr ""
191
+
192
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:103
193
+ msgid "(eg: 5)"
194
+ msgstr ""
195
+
196
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:108
197
+ msgid "Should we display the RSS title?"
198
+ msgstr ""
199
+
200
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:113
201
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:202
202
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:217
203
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:261
204
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:298
205
+ msgid "Yes"
206
+ msgstr ""
207
+
208
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:117
209
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:206
210
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:221
211
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:265
212
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:302
213
+ msgid "No"
214
+ msgstr ""
215
+
216
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:123
217
+ msgid "For how long we will cache the feed results."
218
+ msgstr ""
219
+
220
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:124
221
+ msgid "(eg: 1_days, defaults: 12_hours)"
222
+ msgstr ""
223
+
224
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:129
225
+ msgid "Hour"
226
+ msgstr ""
227
+
228
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:133
229
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:137
230
+ msgid "Hours"
231
+ msgstr ""
232
+
233
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:141
234
+ msgid "Day"
235
+ msgstr ""
236
+
237
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:145
238
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:149
239
+ msgid "Days"
240
+ msgstr ""
241
+
242
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:157
243
+ msgid "Item Options"
244
+ msgstr ""
245
+
246
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:160
247
+ msgid "Links may be opened in the same window or a new tab."
248
+ msgstr ""
249
+
250
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:165
251
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:257
252
+ msgid "Auto"
253
+ msgstr ""
254
+
255
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:169
256
+ msgid "_blank"
257
+ msgstr ""
258
+
259
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:173
260
+ msgid "_self"
261
+ msgstr ""
262
+
263
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:177
264
+ msgid "_parent"
265
+ msgstr ""
266
+
267
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:181
268
+ msgid "_top"
269
+ msgstr ""
270
+
271
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:185
272
+ msgid "framename"
273
+ msgstr ""
274
+
275
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:191
276
+ msgid "Trim the title of the item after X characters."
277
+ msgstr ""
278
+
279
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:192
280
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:229
281
+ msgid "(eg: 160)"
282
+ msgstr ""
283
+
284
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:197
285
+ msgid "Should we display the date of publication and the author name?"
286
+ msgstr ""
287
+
288
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:212
289
+ msgid "Should we display a description (abstract) of the retrieved item?"
290
+ msgstr ""
291
+
292
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:227
293
+ msgid "Crop description (summary) of the element after X characters."
294
+ msgstr ""
295
+
296
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:233
297
+ msgid ""
298
+ "Only display item if title contains specific keyword(s) (comma-separated "
299
+ "list/case sensitive)."
300
+ msgstr ""
301
+
302
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:234
303
+ msgid "(eg: news, sports etc.)"
304
+ msgstr ""
305
+
306
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:240
307
+ msgid ""
308
+ "Exclude items if title or content contains specific keyword(s) "
309
+ "(comma-separated list/case sensitive). "
310
+ msgstr ""
311
+
312
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:241
313
+ msgid "(eg: politics, gossip etc.)"
314
+ msgstr ""
315
+
316
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:249
317
+ msgid "Item Image Options"
318
+ msgstr ""
319
+
320
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:252
321
+ msgid "Should we display the first image of the content if it is available?"
322
+ msgstr ""
323
+
324
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:271
325
+ msgid "Default thumbnail URL if no image is found."
326
+ msgstr ""
327
+
328
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:272
329
+ msgid "Image URL"
330
+ msgstr ""
331
+
332
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:276
333
+ msgid "Select from Gallery"
334
+ msgstr ""
335
+
336
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:280
337
+ msgid "Thumbnails dimension. Do not include \"px\". Eg: 150"
338
+ msgstr ""
339
+
340
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:281
341
+ msgid "(eg: 150)"
342
+ msgstr ""
343
+
344
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:288
345
+ msgid "PRO Options"
346
+ msgstr ""
347
+
348
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:289
349
+ msgid ""
350
+ "Get access to more options and customizations with full version of Feedzy "
351
+ "RSS Feeds . Use existing templates or extend them and make them your own."
352
+ msgstr ""
353
+
354
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:289
355
+ msgid "See more features of Feedzy RSS Feeds "
356
+ msgstr ""
357
+
358
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:292
359
+ msgid "Should we display the price from the feed if it is available?"
360
+ msgstr ""
361
+
362
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:308
363
+ msgid "Referral URL parameters (w/o \"?\")."
364
+ msgstr ""
365
+
366
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:309
367
+ msgid "(eg. promo_code=feedzy_is_awesome)"
368
+ msgstr ""
369
+
370
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:315
371
+ msgid "How many columns we should use to display the feed items"
372
+ msgstr ""
373
+
374
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:316
375
+ msgid "(eg. 1, 2, ..., 6)"
376
+ msgstr ""
377
+
378
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:322
379
+ msgid "Template to use when displaying the feed."
380
+ msgstr ""
381
+
382
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:328
383
+ msgid "Default"
384
+ msgstr ""
385
+
386
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:332
387
+ msgid "Style 1"
388
+ msgstr ""
389
+
390
+ #: includes/admin/feedzy-rss-feeds-ui-lang.php:336
391
+ msgid "Style 2"
392
+ msgstr ""
393
+
394
+ #: includes/admin/feedzy-wp-widget.php:88
395
+ msgid "Widget Title"
396
+ msgstr ""
397
+
398
+ #: includes/admin/feedzy-wp-widget.php:92
399
+ msgid "Intro text"
400
+ msgstr ""
401
+
402
+ #: includes/layouts/settings.php:12 includes/layouts/settings.php:45
403
+ msgid "Headers"
404
+ msgstr ""
405
+
406
+ #: includes/layouts/settings.php:14
407
+ msgid "Proxy"
408
+ msgstr ""
409
+
410
+ #: includes/layouts/settings.php:47
411
+ msgid "User Agent to use when accessing the feed"
412
+ msgstr ""
413
+
414
+ #: includes/layouts/settings.php:58
415
+ msgid "Proxy Settings"
416
+ msgstr ""
417
+
418
+ #: includes/layouts/settings.php:60
419
+ msgid "Host"
420
+ msgstr ""
421
+
422
+ #: includes/layouts/settings.php:68
423
+ msgid "Port"
424
+ msgstr ""
425
+
426
+ #: includes/layouts/settings.php:76
427
+ msgid "Username"
428
+ msgstr ""
429
+
430
+ #: includes/layouts/settings.php:84
431
+ msgid "Password"
432
+ msgstr ""
433
+
434
+ #: includes/layouts/settings.php:113
435
+ msgid "Save"
436
+ msgstr ""
437
+
438
+ #. Plugin Name of the plugin/theme
439
+ msgid "Feedzy RSS Feeds Lite"
440
+ msgstr ""
441
+
442
+ #. Plugin URI of the plugin/theme
443
+ msgid "https://themeisle.com/plugins/feedzy-rss-feeds-lite/"
444
+ msgstr ""
445
+
446
+ #. Description of the plugin/theme
447
+ msgid ""
448
+ "A small and lightweight RSS aggregator plugin. Fast and very easy to use, "
449
+ "it allows you to aggregate multiple RSS feeds into your WordPress site "
450
+ "through fully customizable shortcodes & widgets."
451
+ msgstr ""
452
+
453
+ #. Author of the plugin/theme
454
+ msgid "Themeisle"
455
+ msgstr ""
456
+
457
+ #. Author URI of the plugin/theme
458
+ msgid "http://themeisle.com"
459
+ msgstr ""
dist/readme.md ADDED
@@ -0,0 +1,695 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # FEEDZY RSS Feeds Lite #
2
+ **Contributors:** [themeisle](https://profiles.wordpress.org/themeisle), [codeinwp](https://profiles.wordpress.org/codeinwp), [hardeepasrani](https://profiles.wordpress.org/hardeepasrani)
3
+ **Tags:** RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress, widget, importer, XML, ATOM, API, parser
4
+ **Requires at least:** 3.7
5
+ **Tested up to:** 4.9
6
+ **Stable tag:** trunk
7
+ **License:** GPLv2 or later
8
+ **License URI:** http://www.gnu.org/licenses/gpl-2.0.html
9
+
10
+
11
+ FEEDZY RSS Feeds is a small & lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your site with shortcodes & widgets.
12
+
13
+
14
+ ## Description ##
15
+
16
+ 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.
17
+
18
+ > **Time-saving features available in the FULL version:**
19
+ >
20
+ > * Integration with WordAI to avoid duplicate content
21
+ > * Audio playback template
22
+ > * Convert feed items to WordPress posts/pages/any
23
+ > * Multiple templates for feed items
24
+ > * Automatically build affiliate links
25
+ > * Parse price from product feeds
26
+ > * Blacklist specific keywords from feeds
27
+ > * Priority email support from the developer of the plugin
28
+ > * Support and updates for 12 months
29
+ >
30
+ > **[Learn more about Feedzy Full version]( https://themeisle.com/plugins/feedzy-rss-feeds/ )**
31
+
32
+
33
+ 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.
34
+
35
+ **Full cache control**
36
+
37
+ Choose right from the shortcode how often do you want your content from feeds to get updated.
38
+
39
+ **Feed Categories**
40
+
41
+ You can now group feeds into categories and reuse them across your content without worrying of their url.
42
+
43
+
44
+ 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 <a href="http://themeisle.com/contact/" rel="nofollow">contact us</a>.
45
+
46
+
47
+ = See how Feedzy can integrate with your website =
48
+
49
+ * [Audio playback template](https://demo.themeisle.com/feedzy-rss-feeds/audio-feed-template/)
50
+ * [Shop feed – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/shop-feed/)
51
+ * [Feed categories – 1 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/group-feeds-categories/)
52
+ * [Large image square grid – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/2-columns-large-images-square-grid/)
53
+ * [Square grid template – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/square-template/)
54
+ * [Round grid templates – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/round-grid-template/)
55
+ * [Standard grid layout – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/grid-layout-feed-items/)
56
+ * [Blog layout – 1 column layout](https://demo.themeisle.com/feedzy-rss-feeds/blog-layout/)
57
+
58
+
59
+ You may use this plugin in your widgets and your pages and reuse the shortcode + widget several times within the same page.
60
+
61
+ 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.
62
+
63
+ **Please ask for help or report bugs if anything goes wrong. It is the best way to make the community benefit!**
64
+
65
+
66
+ = Shortcode Parameters =
67
+
68
+
69
+ * feeds
70
+ * max
71
+ * feed_title
72
+ * target
73
+ * title
74
+ * meta
75
+ * summary
76
+ * summarylength
77
+ * thumb
78
+ * default
79
+ * refresh
80
+ * size
81
+ * keywords_title
82
+
83
+
84
+
85
+ **Plugin is now using the TinyMCE API to improve UI and makes it easy to insert shortcodes!**
86
+
87
+
88
+ ### Basic example ###
89
+
90
+ `[feedzy-rss feeds="http://themeisle.com/feed"]`
91
+
92
+
93
+ ### Advanced example ###
94
+
95
+ `[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"]`
96
+
97
+
98
+ ### Available Hooks ###
99
+
100
+
101
+ * feedzy_feed_items
102
+ * feedzy_item_keyword
103
+ * feedzy_item_attributes
104
+ * feedzy_thumb_output
105
+ * feedzy_title_output
106
+ * feedzy_meta_args
107
+ * feedzy_meta_output
108
+ * feedzy_summary_input
109
+ * feedzy_summary_output
110
+ * feedzy_global_output
111
+ * feedzy_thumb_sizes
112
+ * feedzy_feed_blacklist_images
113
+ * feedzy_default_image
114
+ * feedzy_default_error
115
+ * feedzy_item_filter
116
+ * feedzy_author_url
117
+ * feedzy_item_url_filter
118
+ * feedzy_feed_timestamp
119
+ * shortcode_atts_feedzy_default
120
+
121
+ This plugin is maintained and supported by Themeisle, check out some of the other <a href="http://themeisle.com/wordpress-plugins/" rel="nofollow">WordPress plugins</a> and <a href="http://themeisle.com/wordpress-themes/free/" rel="nofollow">free themes</a> we've developed.
122
+
123
+ ### Languages ###
124
+
125
+ * English
126
+ * French
127
+ * Serbian [Borisa Djuraskovic](http://www.webhostinghub.com/ "Borisa Djuraskovic")
128
+ * Japanese [sama55](http://askive.cmsbox.jp/ "sama55")
129
+ * German [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
130
+ * Spanish [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
131
+
132
+ Become a translator and send me your translation! [Contact-me](http://themeisle.com/contact "Contact")
133
+
134
+ ## Installation ##
135
+
136
+ 1. Upload and activate the plugin (or install it through the WP admin console)
137
+ 2. Insert shortcode ! ;-)
138
+
139
+ ## Frequently Asked Questions ##
140
+
141
+
142
+
143
+
144
+
145
+
146
+ ### Is it responsive friendly? ###
147
+
148
+ Yes it is.
149
+
150
+ ### My feed is not displayed and the following message appears "Sorry, this feed is currently unavailable or does not exists anymore." ###
151
+
152
+ You have to check first if your feed is valid. Please test it here: https://validator.w3.org/feed/
153
+
154
+ ### Where do i find the plugin documentation ###
155
+ [http://docs.themeisle.com/article/658-feedzy-rss-feeds](http://docs.themeisle.com/article/658-feedzy-rss-feeds)
156
+
157
+ ### How to fix images that are not showing in the feed ###
158
+ [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)
159
+
160
+ ### How to change cache lifetime for a specific feed ###
161
+ [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)
162
+
163
+ ### How to change thumbs size and aspect ratio ###
164
+ [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)
165
+
166
+ ### What hooks and filters are available in Feedzy ###
167
+ [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)
168
+
169
+ ### How to change the blacklist image name ###
170
+ [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)
171
+
172
+ ### How to decode item title ###
173
+ [http://docs.themeisle.com/article/548-how-to-decode-item-title-with](http://docs.themeisle.com/article/548-how-to-decode-item-title-with)
174
+
175
+ ### How to remove featured image from blog feed ###
176
+ [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)
177
+
178
+ ### How to keep html in feed items content ###
179
+ [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)
180
+
181
+ ### How to remove plugin css ###
182
+ [http://docs.themeisle.com/article/545-how-to-remove-plugin-css](http://docs.themeisle.com/article/545-how-to-remove-plugin-css)
183
+
184
+ ### How to remove links ###
185
+ [http://docs.themeisle.com/article/541-how-to-remove-links](http://docs.themeisle.com/article/541-how-to-remove-links)
186
+
187
+ ### How to add a read more link ###
188
+ [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)
189
+
190
+ ### How to remove time from publication date ###
191
+ [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)
192
+
193
+ ### How to handle publication date and author content ###
194
+ [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)
195
+
196
+ ### How to use your own inline css ###
197
+ [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)
198
+
199
+ ### How to remove the end hellip ###
200
+ [http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip)
201
+
202
+ ### How to display items in a random order ###
203
+ [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)
204
+
205
+ ### How to sort items alphabetically by their title ###
206
+ [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)
207
+
208
+ ### How to display RSS feed time and date in local time ###
209
+ [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)
210
+
211
+ ### How to change author url ###
212
+ [http://docs.themeisle.com/article/636-how-to-change-author-url](http://docs.themeisle.com/article/636-how-to-change-author-url)
213
+
214
+ ### How remove feed items duplicates by url ###
215
+ [http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item)
216
+
217
+ ### How to use feedzy categories ###
218
+ [http://docs.themeisle.com/article/640-how-to-use-feedzy-categories](http://docs.themeisle.com/article/640-how-to-use-feedzy-categories)
219
+
220
+ ### How to add a read more link to Feedzy ###
221
+ [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)
222
+
223
+ = How to move Feedzy templates to your theme =
224
+ [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)
225
+
226
+ = How to eliminate duplicate feed items. =
227
+ [http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items)
228
+
229
+ = How to check whether the RSS feed is valid or not in Feedzy =
230
+ [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)
231
+
232
+ = How to change user agent in Feedzy =
233
+ [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)
234
+
235
+ = How to use proxy settings in Feedzy =
236
+ [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)
237
+
238
+ = How to import posts from feeds in Feedzy =
239
+ [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)
240
+
241
+ = Where can I find the import posts options in Feedzy =
242
+ [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)
243
+
244
+ = How to use WordAI to Rephrase RSS content in Feedzy =
245
+ [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)
246
+
247
+ = Install and use the premium version of Feedzy RSS Feeds =
248
+ [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)
249
+
250
+ = Feedzy RSS Feeds Documentation =
251
+ [https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation](https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation)
252
+
253
+ = What actions and filters are available in Feedzy =
254
+ [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)
255
+
256
+ = How to change thumbs size and aspect ratio Feedzy =
257
+ [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)
258
+
259
+ = How to display RSS feed time and date in local time =
260
+ [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)
261
+
262
+ = How to add a read more link to Feedzy =
263
+ [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)
264
+
265
+ = How to use feedzy categories =
266
+ [https://docs.themeisle.com/article/640-how-to-use-feedzy-categories](https://docs.themeisle.com/article/640-how-to-use-feedzy-categories)
267
+
268
+ = How to use your own inline css =
269
+ [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)
270
+
271
+ = How to change cache lifetime for a specific feed =
272
+ [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)
273
+
274
+ = How to remove featured image from blog feed =
275
+ [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)
276
+
277
+ = How to handle publication date and author content =
278
+ [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)
279
+
280
+ = How to keep html in feed items content =
281
+ [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)
282
+
283
+ = How to fix images that are not showing in the feed =
284
+ [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)
285
+
286
+ = How to display items in a random order =
287
+ [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)
288
+
289
+ = How to remove links =
290
+ [https://docs.themeisle.com/article/541-how-to-remove-links](https://docs.themeisle.com/article/541-how-to-remove-links)
291
+
292
+ = How to move Feedzy templates to your theme =
293
+ [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)
294
+
295
+ = How to remove plugin css =
296
+ [https://docs.themeisle.com/article/545-how-to-remove-plugin-css](https://docs.themeisle.com/article/545-how-to-remove-plugin-css)
297
+
298
+ = How to remove time from publication date =
299
+ [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)
300
+
301
+ = How to remove the end hellip =
302
+ [https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip)
303
+
304
+ = How to decode item title =
305
+ [https://docs.themeisle.com/article/548-how-to-decode-item-title](https://docs.themeisle.com/article/548-how-to-decode-item-title)
306
+
307
+ = How to sort feed items by title =
308
+ [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)
309
+
310
+ = How to import posts from feeds in Feedzy =
311
+ [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)
312
+
313
+ = How to change author url =
314
+ [https://docs.themeisle.com/article/636-how-to-change-author-url](https://docs.themeisle.com/article/636-how-to-change-author-url)
315
+
316
+ = How to eliminate duplicate feed items. =
317
+ [https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items)
318
+
319
+ = How to check whether the RSS feed is valid or not in Feedzy =
320
+ [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)
321
+
322
+ = How to change the blacklist image name =
323
+ [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)
324
+
325
+ = How to use proxy settings in Feedzy =
326
+ [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)
327
+
328
+ = Where can I find the import posts options in Feedzy =
329
+ [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)
330
+
331
+ = How to change user agent in Feedzy =
332
+ [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)
333
+
334
+ = How to use WordAI to Rephrase RSS content in Feedzy =
335
+ [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)
336
+
337
+ = Install and use the premium version of Feedzy RSS Feeds =
338
+ [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)
339
+
340
+ = How to sort feed items by date =
341
+ [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)
342
+
343
+ = How to add rel="nofollow" to feed links =
344
+ [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)
345
+
346
+ = What to do when you get Warning: ./cache is not writeable =
347
+ [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)
348
+
349
+ = How to exclude feeds with certain words in it =
350
+ [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)
351
+
352
+ = How to add canonical tags for imported posts =
353
+ [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)
354
+
355
+ == Screenshots ==
356
+
357
+ 1. Simple example
358
+ 2. Inserting a shortcode in the WYSIWYG
359
+ 3. Widget admin
360
+ 4. Widget render
361
+
362
+
363
+ ## Changelog ##
364
+ ### 3.2.11 - 2018-06-26 ###
365
+
366
+ * New Gutenberg block for Feedzy RSS Feeds
367
+ * Fixed curl SSL problem with Feeds with HTTPS
368
+ * Fix content type, conflicting with Gutenberg
369
+ * Added compatibility with the pro version for full text import
370
+
371
+
372
+ ### 3.2.10 - 2018-04-02 ###
373
+
374
+ * Adds shortcode attribute for feed items order ( title ASC/DESC, date ASC/DESC).
375
+ * Improve documentation and examples.
376
+
377
+
378
+ ### 3.2.9 - 2018-03-07 ###
379
+
380
+ * Automatically fix deprecated google news feeds.
381
+ * Improve compatibility with the pro version.
382
+
383
+
384
+ ### 3.2.8 - 2018-02-20 ###
385
+
386
+ * Fix issue with medium feeds.
387
+ * Improves extensibility using various hooks.
388
+ * Fix feeds without schema protocol.
389
+
390
+
391
+ ### 3.2.7 - 2018-01-05 ###
392
+
393
+ * Fix compatibility with SiteOrigin Page Builder.
394
+ * Adds full content import from feed.
395
+ * Fix issue with img scraped from articles.
396
+
397
+
398
+ ### 3.2.6 - 2017-11-16 ###
399
+
400
+ * Adds compatibility with WordPress 4.9
401
+
402
+
403
+ ### 3.2.5 - 2017-11-03 ###
404
+ * Fix for double slash issue in image path.
405
+ * Fix for private ips when proxy is used.
406
+ * Add FAQ in sync with helpscout docs.
407
+
408
+
409
+
410
+ ### 3.2.4 - 2017-10-13 ###
411
+
412
+ * Fix for assets enqueue, loading them where are needed only.
413
+ * Removes duplicates readme.md files.
414
+
415
+
416
+ ### 3.2.1 - 2017-10-12 ###
417
+
418
+ * Adds global settings page.
419
+ * Adds User Agent and Proxy settings.
420
+ * Fix for some edge cases regarding images in the feed.
421
+
422
+
423
+ ### 3.2.0 - 2017-08-17 ###
424
+
425
+ * Fix for image URL issue following some strange patterns.
426
+ * Added fallback for broken feed, now if one feed from the list is not working, others will will be used.
427
+ * Added shortcode parameter for feed cache control.
428
+
429
+
430
+ ### 3.1.10 - 2017-08-03 ###
431
+
432
+ * Fixed typos in shortcode builder.
433
+ * Fixed image encoding issue.
434
+
435
+
436
+ ### 3.1.9 - 2017-07-21 ###
437
+
438
+ * Fixed issue with fetching images containg GET parameters.
439
+
440
+
441
+ ### 3.1.8 - 2017-07-17 ###
442
+
443
+ * Fixed image fetching issues.
444
+ * Fixed link opening behaviour
445
+ * Improved description ( Thanks to @chesio )
446
+
447
+
448
+ ### 3.1.7 ###
449
+
450
+ * Added new sdk logic.
451
+ * Improved compatibility with the pro version.
452
+
453
+
454
+
455
+ ### 3.1.5 - 30/05/2017 ###
456
+ * Fixed issues with sdk notifications.
457
+ * Added more compatibility with pro version.
458
+
459
+ ### 3.1.4 - 29/05/2017 ###
460
+ * Added new doc on how to use feedzy categories.
461
+
462
+ ### 3.1.3 - 29/05/2017 ###
463
+ * Added new SDK features.
464
+ * Fixed some edge case issues on image parsing.
465
+
466
+ ### 3.1.2 - 22/05/2017 ###
467
+ * Fixed author protocol.
468
+ * Added core fetch_feed method.
469
+
470
+ ### 3.1.1 - 22/05/2017 ###
471
+ * Fixed span alt tag, replaced with title.
472
+
473
+ ### 3.1.0 - 17/05/2017 ###
474
+ * Added feed categories for grouping urls.
475
+ * Added support for feed to post feature.
476
+ * Fixed regex for jpeg image ( Reported by @piccart )
477
+ * Added filter for author url ( Thanks to @piccart )
478
+
479
+ ### 3.0.10 - 24/04/2017 ###
480
+ * Fixed wrong image regex.
481
+ * Fixed image compression.
482
+
483
+ ### 3.0.9 - 21/02/2017 ###
484
+ * Added wrong feed title check.
485
+
486
+ ### 3.0.8 - 20/02/2017 ###
487
+ * Added $sizes param to feedzy_thumb_output.
488
+ * Added check when title is empty.
489
+ * Fixed image encoding url.
490
+
491
+ ### 3.0.6 - 27/01/2017 ###
492
+ * Added feedzy_feed_timestamp filter.
493
+ * Fixed issue with edge cases feed urls.
494
+ * Fixed error when using [] on string vars.
495
+
496
+
497
+ ### 3.0.5 - 06/01/2017 ###
498
+ * Fixed issue with google news feed
499
+
500
+ ### 3.0.4 - 06/01/2017 ###
501
+ * Fixed thumb='auto' behaviour
502
+
503
+ ### 3.0.3 - 06/01/2017 ###
504
+ * Fixed blog feed feature image filter
505
+ * Improved documentation and examples
506
+
507
+ ### 3.0.2 - 06/01/2017 ###
508
+ * Fixed default class back
509
+
510
+ ### 3.0.1 - 05/01/2017 ###
511
+ * Fixed html markup error which was breaking user websites
512
+
513
+ ### 3.0.0 - 10/11/2016 ###
514
+ * Refactored code base from 2.8.1 to OOP style
515
+ * Added support for PRO version
516
+ * Added new hooks feedzy_item_filter, feedzy_item_url_filter
517
+
518
+
519
+ ### 2.8 - 04/14/2016 ###
520
+ * Tested on WP 4.5 with success!
521
+ * themeisle added as plugin author
522
+ * Fix a PHP7 warning in the widget contructor regarding [this topic](https://wordpress.org/support/topic/php7-debug-error?replies=1)
523
+
524
+ ### 2.7.1 ###
525
+ * Remove unnecessary and redundant feedzy_wp_widget_box div container in the widget's body
526
+ * Best compliance with WordPress coding standards
527
+ * Fix a PHP warning on SimplePie error display & log
528
+ * Readme.txt update
529
+
530
+ ### 2.7 ###
531
+ * Better displaying of fetching feeds errors (see error message div error-attr).
532
+ * Write errors in the WP log file
533
+ * New hook: feedzy_default_error to filter error message
534
+ * New hook: shortcode_atts_feedzy_default to filter default shortcode attibutes
535
+ * Add a link to validate feed in the TinyMCE popup modal
536
+ * French translation update
537
+ * Remove unnecessary functions
538
+ * New constant FEEDZY_VERSION
539
+ * readme.txt and hooks documentation update
540
+
541
+ ### 2.6.2 ###
542
+ * Spanish translation thanks to [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
543
+ * PHP issue fix in feedzy_returnImage() "strpos() expects parameter 1 to be string"
544
+ * Remove SSL from feeds URL to prevent fetching errors
545
+ * New hook: feedzy_default_image
546
+ * readme.txt and hooks documentation update
547
+
548
+ ### 2.6.1 ###
549
+ * Replace jQuery live() function by on() function to prevent JS error (fix the issue with Visual composer)
550
+ * Improve image's fetching on itunes feeds
551
+ * New feature: default WP smilies are now blacklisted from image fetching
552
+ * New hook: feedzy_feed_blacklist_images
553
+ * Tested on WP 4.3 with success!
554
+
555
+ ### 2.6 ###
556
+ * Fix a conflict with PageBuilder where Feedzy button does not show up in the visual editor
557
+ * Fix a typo in feedzy-rss-feeds-shortcode.php on the thumbnails span
558
+ * Replace WP_Widget by __construct() to initiate the widget because it has been deprecated since version 4.3.0
559
+ * German translation thanks to [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
560
+ * Tested on WP 4.3 with success!
561
+
562
+ ### 2.5.1 ###
563
+ * Japanese translation thanks to [sama55](http://askive.cmsbox.jp/ "sama55")
564
+ * Image optimisation (feedzy-default.jpg)
565
+ * Improve image's fetching to avoid catching audio or video files from item description
566
+
567
+ ### 2.5 ###
568
+ * Improve author name fetching
569
+ * Better HTML marckup
570
+ * Fix PHP warning within the widget
571
+ * Fix CSS on IE when displaying images as a fallback
572
+ * CSS stylesheet update
573
+ * New hook: feedzy_item_attributes
574
+
575
+ ### 2.4.3 ###
576
+ * Improve image fetching (again...)
577
+ * Fix an issue on files encoding (UTF8)
578
+ * Minor PHP improvements on the main shortcode's function
579
+
580
+ ### 2.4.2 ###
581
+ * Minor fix on already encoded images names
582
+
583
+ ### 2.4.1 ###
584
+ * Fix an issue on img url encode
585
+ * Retrive img url in url parameters
586
+ * Fix minor PHP warning
587
+ * New hook: feedzy_add_classes_item
588
+
589
+ ### 2.4 ###
590
+ * New feature: 'auto' thumbs option added
591
+ * New hook: feedzy_thumb_sizes
592
+ * Fix issue on max number of feeds to display
593
+ * Fix HTML decode in the feed's title
594
+ * Minor PHP improvements
595
+ * readme.txt and hooks documentation update
596
+
597
+ ### 2.3 ###
598
+ * New hook: feedzy_feed_items
599
+ * New hook: feedzy_item_keyword
600
+ * Introduce SimplePie native strip_htmltags() method
601
+ * Use PNG icon as SVG fallback on the visual editor button
602
+ * Improve plugin's files structure
603
+ * readme.txt and hooks documentation update
604
+
605
+ ### 2.2.2 ###
606
+ * New hook: feedzy_meta_args
607
+
608
+ ### 2.2.1 ###
609
+ * Minor security improvements
610
+ * Better WordPress coding standard respect
611
+ * Minor fix if does not provide item's author
612
+ * Translations update
613
+
614
+ ### 2.2 ###
615
+ * Minor PHP improvements
616
+ * Remove logo from plugin meta
617
+ * New hook: feedzy_summary_input
618
+ * $feedURL argument added on every available hooks
619
+ * French translation update
620
+ * readme.txt and hooks documentation update
621
+
622
+ ### 2.1 ###
623
+ * internationalization of feeds dates and times (date_i18n)
624
+
625
+ ### 2.0 ###
626
+ * Widget added
627
+ * Translation update
628
+ * Better plugin file structure
629
+ * Improve image fetching with multiple enclosures
630
+ * Tested on WP 4.1 with success!
631
+
632
+ ### 1.7.1 ###
633
+ * Fix typo in PHP which cause issue on fetching images
634
+
635
+ ### 1.7 ###
636
+ * Minor Template and CSS changes
637
+ * New hook: feedzy_thumb_output
638
+ * New hook: feedzy_title_output
639
+ * New hook: feedzy_meta_output
640
+ * New hook: feedzy_summary_output
641
+ * New hook: feedzy_global_output
642
+ * readme.txt update
643
+
644
+ ### 1.6 ###
645
+ * Minor CSS fix
646
+ * Add actions: add_action('rss_item', 'feedzy_include_thumbnail_RSS'); & add_action('rss2_item', 'feedzy_include_thumbnail_RSS')
647
+
648
+ ### 1.5.4 ###
649
+ * Plugin meta translation
650
+ * Remove unnecessary spaces
651
+
652
+ ### 1.5.3 ###
653
+ * TinyMCE UI translation
654
+ * Better fetching image
655
+ * Space between items is calculated based on thumbs size
656
+
657
+ ### 1.5.2 ###
658
+ * Plugin meta update
659
+
660
+ ### 1.5.1 ###
661
+ * New logo
662
+ * Minor CSS fixes
663
+
664
+ ### 1.5 ###
665
+ * New param added to filter item with keywords
666
+ * Default thumb added
667
+ * Fix minor php issue
668
+ * Rename files of the plugin
669
+ * New logo + screenshot (assets)
670
+
671
+ ### 1.4 ###
672
+ * Add "default" parameter to fill image container if no image is fetch or if it is offline
673
+ * Add more control over numeric format in max, size, title & summarylength parameters
674
+
675
+ ### 1.03 ###
676
+ * Shortcode can now be displayed everywhere in the page (CSS is loaded via global var)
677
+
678
+ ### 1.02 ###
679
+ * Error on svn tag
680
+
681
+ ### 1.01 ###
682
+ * Minor CSS fix.
683
+ * Minor PHP changes.
684
+ * Readme.txt updated
685
+
686
+ ### 1.0 ###
687
+ * First release.
688
+
689
+ ## Upgrade Notice ##
690
+
691
+ ### 1.5 ###
692
+ * IMPORTANT: You have to reactivate the plugin after its update!
693
+
694
+ ### 1.0 ###
695
+ * First release.
dist/readme.txt ADDED
@@ -0,0 +1,702 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === FEEDZY RSS Feeds Lite ===
2
+ Contributors: themeisle,codeinwp,hardeepasrani
3
+ Tags: RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress, widget, importer, XML, ATOM, API, parser
4
+ Requires at least: 3.7
5
+ Tested up to: 4.9
6
+ Stable tag: trunk
7
+ License: GPLv2 or later
8
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
+
10
+
11
+ FEEDZY RSS Feeds is a small & lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your site with shortcodes & widgets.
12
+
13
+
14
+ == Description ==
15
+
16
+ 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.
17
+
18
+ > **Time-saving features available in the FULL version:**
19
+ >
20
+ > * Integration with WordAI to avoid duplicate content
21
+ > * Audio playback template
22
+ > * Convert feed items to WordPress posts/pages/any
23
+ > * Multiple templates for feed items
24
+ > * Automatically build affiliate links
25
+ > * Parse price from product feeds
26
+ > * Blacklist specific keywords from feeds
27
+ > * Priority email support from the developer of the plugin
28
+ > * Support and updates for 12 months
29
+ >
30
+ > **[Learn more about Feedzy Full version]( https://themeisle.com/plugins/feedzy-rss-feeds/ )**
31
+
32
+
33
+ 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.
34
+
35
+ **Full cache control**
36
+
37
+ Choose right from the shortcode how often do you want your content from feeds to get updated.
38
+
39
+ **Feed Categories**
40
+
41
+ You can now group feeds into categories and reuse them across your content without worrying of their url.
42
+
43
+
44
+ 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 <a href="http://themeisle.com/contact/" rel="nofollow">contact us</a>.
45
+
46
+
47
+ = See how Feedzy can integrate with your website =
48
+
49
+ * [Audio playback template](https://demo.themeisle.com/feedzy-rss-feeds/audio-feed-template/)
50
+ * [Shop feed – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/shop-feed/)
51
+ * [Feed categories – 1 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/group-feeds-categories/)
52
+ * [Large image square grid – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/2-columns-large-images-square-grid/)
53
+ * [Square grid template – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/square-template/)
54
+ * [Round grid templates – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/round-grid-template/)
55
+ * [Standard grid layout – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/grid-layout-feed-items/)
56
+ * [Blog layout – 1 column layout](https://demo.themeisle.com/feedzy-rss-feeds/blog-layout/)
57
+
58
+
59
+ You may use this plugin in your widgets and your pages and reuse the shortcode + widget several times within the same page.
60
+
61
+ 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.
62
+
63
+ **Please ask for help or report bugs if anything goes wrong. It is the best way to make the community benefit!**
64
+
65
+
66
+ = Shortcode Parameters =
67
+
68
+ `
69
+ * feeds
70
+ * max
71
+ * feed_title
72
+ * target
73
+ * title
74
+ * meta
75
+ * summary
76
+ * summarylength
77
+ * thumb
78
+ * default
79
+ * refresh
80
+ * size
81
+ * keywords_title
82
+ `
83
+
84
+
85
+ **Plugin is now using the TinyMCE API to improve UI and makes it easy to insert shortcodes!**
86
+
87
+
88
+ = Basic example =
89
+
90
+ `[feedzy-rss feeds="http://themeisle.com/feed"]`
91
+
92
+
93
+ = Advanced example =
94
+
95
+ `[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"]`
96
+
97
+
98
+ = Available Hooks =
99
+
100
+ `
101
+ * feedzy_feed_items
102
+ * feedzy_item_keyword
103
+ * feedzy_item_attributes
104
+ * feedzy_thumb_output
105
+ * feedzy_title_output
106
+ * feedzy_meta_args
107
+ * feedzy_meta_output
108
+ * feedzy_summary_input
109
+ * feedzy_summary_output
110
+ * feedzy_global_output
111
+ * feedzy_thumb_sizes
112
+ * feedzy_feed_blacklist_images
113
+ * feedzy_default_image
114
+ * feedzy_default_error
115
+ * feedzy_item_filter
116
+ * feedzy_author_url
117
+ * feedzy_item_url_filter
118
+ * feedzy_feed_timestamp
119
+ * shortcode_atts_feedzy_default
120
+ `
121
+ This plugin is maintained and supported by Themeisle, check out some of the other <a href="http://themeisle.com/wordpress-plugins/" rel="nofollow">WordPress plugins</a> and <a href="http://themeisle.com/wordpress-themes/free/" rel="nofollow">free themes</a> we've developed.
122
+
123
+ = Languages =
124
+
125
+ * English
126
+ * French
127
+ * Serbian [Borisa Djuraskovic](http://www.webhostinghub.com/ "Borisa Djuraskovic")
128
+ * Japanese [sama55](http://askive.cmsbox.jp/ "sama55")
129
+ * German [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
130
+ * Spanish [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
131
+
132
+ Become a translator and send me your translation! [Contact-me](http://themeisle.com/contact "Contact")
133
+
134
+ == Installation ==
135
+
136
+ 1. Upload and activate the plugin (or install it through the WP admin console)
137
+ 2. Insert shortcode ! ;-)
138
+
139
+ == Frequently Asked Questions ==
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+ = Is it responsive friendly? =
148
+
149
+ Yes it is.
150
+
151
+ = My feed is not displayed and the following message appears "Sorry, this feed is currently unavailable or does not exists anymore." =
152
+
153
+ You have to check first if your feed is valid. Please test it here: https://validator.w3.org/feed/
154
+
155
+ = Where do i find the plugin documentation =
156
+ [http://docs.themeisle.com/article/658-feedzy-rss-feeds](http://docs.themeisle.com/article/658-feedzy-rss-feeds)
157
+
158
+ = How to fix images that are not showing in the feed =
159
+ [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)
160
+
161
+ = How to change cache lifetime for a specific feed =
162
+ [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)
163
+
164
+ = How to change thumbs size and aspect ratio =
165
+ [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)
166
+
167
+ = What hooks and filters are available in Feedzy =
168
+ [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)
169
+
170
+ = How to change the blacklist image name =
171
+ [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)
172
+
173
+ = How to decode item title =
174
+ [http://docs.themeisle.com/article/548-how-to-decode-item-title-with](http://docs.themeisle.com/article/548-how-to-decode-item-title-with)
175
+
176
+ = How to remove featured image from blog feed =
177
+ [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)
178
+
179
+ = How to keep html in feed items content =
180
+ [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)
181
+
182
+ = How to remove plugin css =
183
+ [http://docs.themeisle.com/article/545-how-to-remove-plugin-css](http://docs.themeisle.com/article/545-how-to-remove-plugin-css)
184
+
185
+ = How to remove links =
186
+ [http://docs.themeisle.com/article/541-how-to-remove-links](http://docs.themeisle.com/article/541-how-to-remove-links)
187
+
188
+ = How to add a read more link =
189
+ [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)
190
+
191
+ = How to remove time from publication date =
192
+ [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)
193
+
194
+ = How to handle publication date and author content =
195
+ [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)
196
+
197
+ = How to use your own inline css =
198
+ [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)
199
+
200
+ = How to remove the end hellip =
201
+ [http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip)
202
+
203
+ = How to display items in a random order =
204
+ [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)
205
+
206
+ = How to sort items alphabetically by their title =
207
+ [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)
208
+
209
+ = How to display RSS feed time and date in local time =
210
+ [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)
211
+
212
+ = How to change author url =
213
+ [http://docs.themeisle.com/article/636-how-to-change-author-url](http://docs.themeisle.com/article/636-how-to-change-author-url)
214
+
215
+ = How remove feed items duplicates by url =
216
+ [http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item)
217
+
218
+ = How to use feedzy categories =
219
+ [http://docs.themeisle.com/article/640-how-to-use-feedzy-categories](http://docs.themeisle.com/article/640-how-to-use-feedzy-categories)
220
+
221
+ = How to add a read more link to Feedzy =
222
+ [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)
223
+
224
+ = How to move Feedzy templates to your theme =
225
+ [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)
226
+
227
+ = How to eliminate duplicate feed items. =
228
+ [http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items)
229
+
230
+ = How to check whether the RSS feed is valid or not in Feedzy =
231
+ [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)
232
+
233
+ = How to change user agent in Feedzy =
234
+ [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)
235
+
236
+ = How to use proxy settings in Feedzy =
237
+ [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)
238
+
239
+ = How to import posts from feeds in Feedzy =
240
+ [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)
241
+
242
+ = Where can I find the import posts options in Feedzy =
243
+ [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)
244
+
245
+ = How to use WordAI to Rephrase RSS content in Feedzy =
246
+ [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)
247
+
248
+ = Install and use the premium version of Feedzy RSS Feeds =
249
+ [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)
250
+
251
+ = Feedzy RSS Feeds Documentation =
252
+ [https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation](https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation)
253
+
254
+ = What actions and filters are available in Feedzy =
255
+ [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)
256
+
257
+ = How to change thumbs size and aspect ratio Feedzy =
258
+ [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)
259
+
260
+ = How to display RSS feed time and date in local time =
261
+ [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)
262
+
263
+ = How to add a read more link to Feedzy =
264
+ [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)
265
+
266
+ = How to use feedzy categories =
267
+ [https://docs.themeisle.com/article/640-how-to-use-feedzy-categories](https://docs.themeisle.com/article/640-how-to-use-feedzy-categories)
268
+
269
+ = How to use your own inline css =
270
+ [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)
271
+
272
+ = How to change cache lifetime for a specific feed =
273
+ [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)
274
+
275
+ = How to remove featured image from blog feed =
276
+ [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)
277
+
278
+ = How to handle publication date and author content =
279
+ [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)
280
+
281
+ = How to keep html in feed items content =
282
+ [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)
283
+
284
+ = How to fix images that are not showing in the feed =
285
+ [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)
286
+
287
+ = How to display items in a random order =
288
+ [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)
289
+
290
+ = How to remove links =
291
+ [https://docs.themeisle.com/article/541-how-to-remove-links](https://docs.themeisle.com/article/541-how-to-remove-links)
292
+
293
+ = How to move Feedzy templates to your theme =
294
+ [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)
295
+
296
+ = How to remove plugin css =
297
+ [https://docs.themeisle.com/article/545-how-to-remove-plugin-css](https://docs.themeisle.com/article/545-how-to-remove-plugin-css)
298
+
299
+ = How to remove time from publication date =
300
+ [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)
301
+
302
+ = How to remove the end hellip =
303
+ [https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip)
304
+
305
+ = How to decode item title =
306
+ [https://docs.themeisle.com/article/548-how-to-decode-item-title](https://docs.themeisle.com/article/548-how-to-decode-item-title)
307
+
308
+ = How to sort feed items by title =
309
+ [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)
310
+
311
+ = How to import posts from feeds in Feedzy =
312
+ [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)
313
+
314
+ = How to change author url =
315
+ [https://docs.themeisle.com/article/636-how-to-change-author-url](https://docs.themeisle.com/article/636-how-to-change-author-url)
316
+
317
+ = How to eliminate duplicate feed items. =
318
+ [https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items)
319
+
320
+ = How to check whether the RSS feed is valid or not in Feedzy =
321
+ [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)
322
+
323
+ = How to change the blacklist image name =
324
+ [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)
325
+
326
+ = How to use proxy settings in Feedzy =
327
+ [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)
328
+
329
+ = Where can I find the import posts options in Feedzy =
330
+ [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)
331
+
332
+ = How to change user agent in Feedzy =
333
+ [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)
334
+
335
+ = How to use WordAI to Rephrase RSS content in Feedzy =
336
+ [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)
337
+
338
+ = Install and use the premium version of Feedzy RSS Feeds =
339
+ [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)
340
+
341
+ = How to sort feed items by date =
342
+ [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)
343
+
344
+ = How to add rel="nofollow" to feed links =
345
+ [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)
346
+
347
+ = What to do when you get Warning: ./cache is not writeable =
348
+ [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)
349
+
350
+ = How to exclude feeds with certain words in it =
351
+ [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)
352
+
353
+ = How to add canonical tags for imported posts =
354
+ [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)
355
+
356
+ = How to display thumbnail image from the feeds =
357
+ [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)
358
+
359
+ = How to change feed items order =
360
+ [https://docs.themeisle.com/article/864-how-to-change-feed-items-order](https://docs.themeisle.com/article/864-how-to-change-feed-items-order)
361
+
362
+ == Screenshots ==
363
+
364
+ 1. Simple example
365
+ 2. Inserting a shortcode in the WYSIWYG
366
+ 3. Widget admin
367
+ 4. Widget render
368
+
369
+
370
+ == Changelog ==
371
+ = 3.2.11 - 2018-06-26 =
372
+
373
+ * New Gutenberg block for Feedzy RSS Feeds
374
+ * Fixed curl SSL problem with Feeds with HTTPS
375
+ * Fix content type, conflicting with Gutenberg
376
+ * Added compatibility with the pro version for full text import
377
+
378
+
379
+ = 3.2.10 - 2018-04-02 =
380
+
381
+ * Adds shortcode attribute for feed items order ( title ASC/DESC, date ASC/DESC).
382
+ * Improve documentation and examples.
383
+
384
+
385
+ = 3.2.9 - 2018-03-07 =
386
+
387
+ * Automatically fix deprecated google news feeds.
388
+ * Improve compatibility with the pro version.
389
+
390
+
391
+ = 3.2.8 - 2018-02-20 =
392
+
393
+ * Fix issue with medium feeds.
394
+ * Improves extensibility using various hooks.
395
+ * Fix feeds without schema protocol.
396
+
397
+
398
+ = 3.2.7 - 2018-01-05 =
399
+
400
+ * Fix compatibility with SiteOrigin Page Builder.
401
+ * Adds full content import from feed.
402
+ * Fix issue with img scraped from articles.
403
+
404
+
405
+ = 3.2.6 - 2017-11-16 =
406
+
407
+ * Adds compatibility with WordPress 4.9
408
+
409
+
410
+ = 3.2.5 - 2017-11-03 =
411
+ * Fix for double slash issue in image path.
412
+ * Fix for private ips when proxy is used.
413
+ * Add FAQ in sync with helpscout docs.
414
+
415
+
416
+
417
+ = 3.2.4 - 2017-10-13 =
418
+
419
+ * Fix for assets enqueue, loading them where are needed only.
420
+ * Removes duplicates readme.md files.
421
+
422
+
423
+ = 3.2.1 - 2017-10-12 =
424
+
425
+ * Adds global settings page.
426
+ * Adds User Agent and Proxy settings.
427
+ * Fix for some edge cases regarding images in the feed.
428
+
429
+
430
+ = 3.2.0 - 2017-08-17 =
431
+
432
+ * Fix for image URL issue following some strange patterns.
433
+ * Added fallback for broken feed, now if one feed from the list is not working, others will will be used.
434
+ * Added shortcode parameter for feed cache control.
435
+
436
+
437
+ = 3.1.10 - 2017-08-03 =
438
+
439
+ * Fixed typos in shortcode builder.
440
+ * Fixed image encoding issue.
441
+
442
+
443
+ = 3.1.9 - 2017-07-21 =
444
+
445
+ * Fixed issue with fetching images containg GET parameters.
446
+
447
+
448
+ = 3.1.8 - 2017-07-17 =
449
+
450
+ * Fixed image fetching issues.
451
+ * Fixed link opening behaviour
452
+ * Improved description ( Thanks to @chesio )
453
+
454
+
455
+ = 3.1.7 =
456
+
457
+ * Added new sdk logic.
458
+ * Improved compatibility with the pro version.
459
+
460
+
461
+
462
+ = 3.1.5 - 30/05/2017 =
463
+ * Fixed issues with sdk notifications.
464
+ * Added more compatibility with pro version.
465
+
466
+ = 3.1.4 - 29/05/2017 =
467
+ * Added new doc on how to use feedzy categories.
468
+
469
+ = 3.1.3 - 29/05/2017 =
470
+ * Added new SDK features.
471
+ * Fixed some edge case issues on image parsing.
472
+
473
+ = 3.1.2 - 22/05/2017 =
474
+ * Fixed author protocol.
475
+ * Added core fetch_feed method.
476
+
477
+ = 3.1.1 - 22/05/2017 =
478
+ * Fixed span alt tag, replaced with title.
479
+
480
+ = 3.1.0 - 17/05/2017 =
481
+ * Added feed categories for grouping urls.
482
+ * Added support for feed to post feature.
483
+ * Fixed regex for jpeg image ( Reported by @piccart )
484
+ * Added filter for author url ( Thanks to @piccart )
485
+
486
+ = 3.0.10 - 24/04/2017 =
487
+ * Fixed wrong image regex.
488
+ * Fixed image compression.
489
+
490
+ = 3.0.9 - 21/02/2017 =
491
+ * Added wrong feed title check.
492
+
493
+ = 3.0.8 - 20/02/2017 =
494
+ * Added $sizes param to feedzy_thumb_output.
495
+ * Added check when title is empty.
496
+ * Fixed image encoding url.
497
+
498
+ = 3.0.6 - 27/01/2017 =
499
+ * Added feedzy_feed_timestamp filter.
500
+ * Fixed issue with edge cases feed urls.
501
+ * Fixed error when using [] on string vars.
502
+
503
+
504
+ = 3.0.5 - 06/01/2017 =
505
+ * Fixed issue with google news feed
506
+
507
+ = 3.0.4 - 06/01/2017 =
508
+ * Fixed thumb='auto' behaviour
509
+
510
+ = 3.0.3 - 06/01/2017 =
511
+ * Fixed blog feed feature image filter
512
+ * Improved documentation and examples
513
+
514
+ = 3.0.2 - 06/01/2017 =
515
+ * Fixed default class back
516
+
517
+ = 3.0.1 - 05/01/2017 =
518
+ * Fixed html markup error which was breaking user websites
519
+
520
+ = 3.0.0 - 10/11/2016 =
521
+ * Refactored code base from 2.8.1 to OOP style
522
+ * Added support for PRO version
523
+ * Added new hooks feedzy_item_filter, feedzy_item_url_filter
524
+
525
+
526
+ = 2.8 - 04/14/2016 =
527
+ * Tested on WP 4.5 with success!
528
+ * themeisle added as plugin author
529
+ * Fix a PHP7 warning in the widget contructor regarding [this topic](https://wordpress.org/support/topic/php7-debug-error?replies=1)
530
+
531
+ = 2.7.1 =
532
+ * Remove unnecessary and redundant feedzy_wp_widget_box div container in the widget's body
533
+ * Best compliance with WordPress coding standards
534
+ * Fix a PHP warning on SimplePie error display & log
535
+ * Readme.txt update
536
+
537
+ = 2.7 =
538
+ * Better displaying of fetching feeds errors (see error message div error-attr).
539
+ * Write errors in the WP log file
540
+ * New hook: feedzy_default_error to filter error message
541
+ * New hook: shortcode_atts_feedzy_default to filter default shortcode attibutes
542
+ * Add a link to validate feed in the TinyMCE popup modal
543
+ * French translation update
544
+ * Remove unnecessary functions
545
+ * New constant FEEDZY_VERSION
546
+ * readme.txt and hooks documentation update
547
+
548
+ = 2.6.2 =
549
+ * Spanish translation thanks to [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
550
+ * PHP issue fix in feedzy_returnImage() "strpos() expects parameter 1 to be string"
551
+ * Remove SSL from feeds URL to prevent fetching errors
552
+ * New hook: feedzy_default_image
553
+ * readme.txt and hooks documentation update
554
+
555
+ = 2.6.1 =
556
+ * Replace jQuery live() function by on() function to prevent JS error (fix the issue with Visual composer)
557
+ * Improve image's fetching on itunes feeds
558
+ * New feature: default WP smilies are now blacklisted from image fetching
559
+ * New hook: feedzy_feed_blacklist_images
560
+ * Tested on WP 4.3 with success!
561
+
562
+ = 2.6 =
563
+ * Fix a conflict with PageBuilder where Feedzy button does not show up in the visual editor
564
+ * Fix a typo in feedzy-rss-feeds-shortcode.php on the thumbnails span
565
+ * Replace WP_Widget by __construct() to initiate the widget because it has been deprecated since version 4.3.0
566
+ * German translation thanks to [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
567
+ * Tested on WP 4.3 with success!
568
+
569
+ = 2.5.1 =
570
+ * Japanese translation thanks to [sama55](http://askive.cmsbox.jp/ "sama55")
571
+ * Image optimisation (feedzy-default.jpg)
572
+ * Improve image's fetching to avoid catching audio or video files from item description
573
+
574
+ = 2.5 =
575
+ * Improve author name fetching
576
+ * Better HTML marckup
577
+ * Fix PHP warning within the widget
578
+ * Fix CSS on IE when displaying images as a fallback
579
+ * CSS stylesheet update
580
+ * New hook: feedzy_item_attributes
581
+
582
+ = 2.4.3 =
583
+ * Improve image fetching (again...)
584
+ * Fix an issue on files encoding (UTF8)
585
+ * Minor PHP improvements on the main shortcode's function
586
+
587
+ = 2.4.2 =
588
+ * Minor fix on already encoded images names
589
+
590
+ = 2.4.1 =
591
+ * Fix an issue on img url encode
592
+ * Retrive img url in url parameters
593
+ * Fix minor PHP warning
594
+ * New hook: feedzy_add_classes_item
595
+
596
+ = 2.4 =
597
+ * New feature: 'auto' thumbs option added
598
+ * New hook: feedzy_thumb_sizes
599
+ * Fix issue on max number of feeds to display
600
+ * Fix HTML decode in the feed's title
601
+ * Minor PHP improvements
602
+ * readme.txt and hooks documentation update
603
+
604
+ = 2.3 =
605
+ * New hook: feedzy_feed_items
606
+ * New hook: feedzy_item_keyword
607
+ * Introduce SimplePie native strip_htmltags() method
608
+ * Use PNG icon as SVG fallback on the visual editor button
609
+ * Improve plugin's files structure
610
+ * readme.txt and hooks documentation update
611
+
612
+ = 2.2.2 =
613
+ * New hook: feedzy_meta_args
614
+
615
+ = 2.2.1 =
616
+ * Minor security improvements
617
+ * Better WordPress coding standard respect
618
+ * Minor fix if does not provide item's author
619
+ * Translations update
620
+
621
+ = 2.2 =
622
+ * Minor PHP improvements
623
+ * Remove logo from plugin meta
624
+ * New hook: feedzy_summary_input
625
+ * $feedURL argument added on every available hooks
626
+ * French translation update
627
+ * readme.txt and hooks documentation update
628
+
629
+ = 2.1 =
630
+ * internationalization of feeds dates and times (date_i18n)
631
+
632
+ = 2.0 =
633
+ * Widget added
634
+ * Translation update
635
+ * Better plugin file structure
636
+ * Improve image fetching with multiple enclosures
637
+ * Tested on WP 4.1 with success!
638
+
639
+ = 1.7.1 =
640
+ * Fix typo in PHP which cause issue on fetching images
641
+
642
+ = 1.7 =
643
+ * Minor Template and CSS changes
644
+ * New hook: feedzy_thumb_output
645
+ * New hook: feedzy_title_output
646
+ * New hook: feedzy_meta_output
647
+ * New hook: feedzy_summary_output
648
+ * New hook: feedzy_global_output
649
+ * readme.txt update
650
+
651
+ = 1.6 =
652
+ * Minor CSS fix
653
+ * Add actions: add_action('rss_item', 'feedzy_include_thumbnail_RSS'); & add_action('rss2_item', 'feedzy_include_thumbnail_RSS')
654
+
655
+ = 1.5.4 =
656
+ * Plugin meta translation
657
+ * Remove unnecessary spaces
658
+
659
+ = 1.5.3 =
660
+ * TinyMCE UI translation
661
+ * Better fetching image
662
+ * Space between items is calculated based on thumbs size
663
+
664
+ = 1.5.2 =
665
+ * Plugin meta update
666
+
667
+ = 1.5.1 =
668
+ * New logo
669
+ * Minor CSS fixes
670
+
671
+ = 1.5 =
672
+ * New param added to filter item with keywords
673
+ * Default thumb added
674
+ * Fix minor php issue
675
+ * Rename files of the plugin
676
+ * New logo + screenshot (assets)
677
+
678
+ = 1.4 =
679
+ * Add "default" parameter to fill image container if no image is fetch or if it is offline
680
+ * Add more control over numeric format in max, size, title & summarylength parameters
681
+
682
+ = 1.03 =
683
+ * Shortcode can now be displayed everywhere in the page (CSS is loaded via global var)
684
+
685
+ = 1.02 =
686
+ * Error on svn tag
687
+
688
+ = 1.01 =
689
+ * Minor CSS fix.
690
+ * Minor PHP changes.
691
+ * Readme.txt updated
692
+
693
+ = 1.0 =
694
+ * First release.
695
+
696
+ == Upgrade Notice ==
697
+
698
+ = 1.5 =
699
+ * IMPORTANT: You have to reactivate the plugin after its update!
700
+
701
+ = 1.0 =
702
+ * First release.
dist/themeisle-hash.json ADDED
@@ -0,0 +1 @@
 
1
+ {"feedzy-rss-feed.php":"8f4e02e35d30683463729e6c5b036940","index.php":"71c0755260138a4b7b2182c3c61179f6","uninstall.php":"0ef18b49fd2c8fa27b1c1ee8fe679428","webpack.config.js":"e75f6dcbcad317c084d886958012687c"}
dist/uninstall.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Fired when the plugin is uninstalled.
4
+ *
5
+ * When populating this file, consider the following flow
6
+ * of control:
7
+ *
8
+ * - This method should be static
9
+ * - Check if the $_REQUEST content actually is the plugin name
10
+ * - Run an admin referrer check to make sure it goes through authentication
11
+ * - Verify the output of $_GET makes sense
12
+ * - Repeat with other user roles. Best directly by using the links/query string parameters.
13
+ * - Repeat things for multisite. Once for a single site in the network, once sitewide.
14
+ *
15
+ * @link http://themeisle.com
16
+ * @since 3.0.0
17
+ *
18
+ * @package Feedzy_Rss_Feeds
19
+ */
20
+
21
+ // If uninstall not called from WordPress, then exit.
22
+ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
23
+ exit;
24
+ }
dist/webpack.config.js ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // jshint ignore: start
2
+
3
+ const path = require( 'path' );
4
+ const webpack = require( 'webpack' );
5
+ const ExtractTextPlugin = require( 'extract-text-webpack-plugin' );
6
+ // const BrowserSyncPlugin = require( 'browser-sync-webpack-plugin' );
7
+
8
+ // Set different CSS extraction for editor only and common block styles
9
+ const blockCSSPlugin = new ExtractTextPlugin( {
10
+ filename: './includes/gutenberg/dist/block.css',
11
+ } );
12
+
13
+ // Configuration for the ExtractTextPlugin.
14
+ const extractConfig = {
15
+ use: [
16
+ { loader: 'raw-loader' },
17
+ {
18
+ loader: 'postcss-loader',
19
+ options: {
20
+ plugins: [ require( 'autoprefixer' ) ],
21
+ },
22
+ },
23
+ {
24
+ loader: 'sass-loader',
25
+ query: {
26
+ outputStyle:
27
+ 'production' === process.env.NODE_ENV ? 'compressed' : 'nested',
28
+ },
29
+ },
30
+ ],
31
+ };
32
+
33
+ module.exports = {
34
+ entry: {
35
+ './includes/gutenberg/dist/block' : './includes/gutenberg/src/block.js',
36
+ },
37
+ output: {
38
+ path: path.resolve( __dirname ),
39
+ filename: '[name].js',
40
+ },
41
+ watch: true,
42
+ devtool: 'cheap-eval-source-map',
43
+ module: {
44
+ rules: [
45
+ {
46
+ test: /\.js$/,
47
+ exclude: /(node_modules|bower_components)/,
48
+ use: {
49
+ loader: 'babel-loader',
50
+ },
51
+ },
52
+ {
53
+ test: /style\.s?css$/,
54
+ use: blockCSSPlugin.extract( extractConfig ),
55
+ },
56
+ ],
57
+ },
58
+ plugins: [
59
+ blockCSSPlugin,
60
+ // new BrowserSyncPlugin({
61
+ // // Load localhost:3333 to view proxied site
62
+ // host: 'localhost',
63
+ // port: '3333',
64
+ // // Change proxy to your local WordPress URL
65
+ // proxy: 'https://gutenberg.local'
66
+ // })
67
+ ],
68
+ };
feedzy-rss-feed.php CHANGED
@@ -15,7 +15,7 @@
15
  * Plugin Name: Feedzy RSS Feeds Lite
16
  * Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
17
  * Description: 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.
18
- * Version: 3.2.11
19
  * Author: Themeisle
20
  * Author URI: http://themeisle.com
21
  * License: GPL-2.0+
15
  * Plugin Name: Feedzy RSS Feeds Lite
16
  * Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
17
  * Description: 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.
18
+ * Version: 3.2.12
19
  * Author: Themeisle
20
  * Author URI: http://themeisle.com
21
  * License: GPL-2.0+
img/Protect-your-Brand.jpg ADDED
Binary file
img/Unlimited-Content.jpg ADDED
Binary file
img/World-class-support.jpg ADDED
Binary file
img/feedzy-rss-feeds-wordai.jpg ADDED
Binary file
includes/abstract/feedzy-rss-feeds-admin-abstract.php CHANGED
@@ -162,6 +162,17 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
162
  }
163
  }
164
 
 
 
 
 
 
 
 
 
 
 
 
165
  return $continue;
166
  }
167
 
162
  }
163
  }
164
 
165
+ if ( array_key_exists( 'keywords_ban', $sc ) ) {
166
+ $keywords_ban = $sc['keywords_ban'];
167
+ if ( ! empty( $keywords_ban ) ) {
168
+ foreach ( $keywords_ban as $keyword ) {
169
+ if ( strpos( $item->get_title(), $keyword ) !== false ) {
170
+ return false;
171
+ }
172
+ }
173
+ }
174
+ }
175
+
176
  return $continue;
177
  }
178
 
includes/admin/feedzy-rss-feeds-admin.php CHANGED
@@ -395,6 +395,9 @@ class Feedzy_Rss_Feeds_Admin extends Feedzy_Rss_Feeds_Admin_Abstract {
395
  private function save_settings() {
396
  $settings = apply_filters( 'feedzy_get_settings', array() );
397
  switch ( $_POST['tab'] ) {
 
 
 
398
  case 'headers':
399
  $settings['header']['user-agent'] = $_POST['user-agent'];
400
  break;
395
  private function save_settings() {
396
  $settings = apply_filters( 'feedzy_get_settings', array() );
397
  switch ( $_POST['tab'] ) {
398
+ case 'general':
399
+ $settings['general']['rss-feeds'] = isset( $_POST['rss-feeds'] ) ? $_POST['rss-feeds'] : '';
400
+ break;
401
  case 'headers':
402
  $settings['header']['user-agent'] = $_POST['user-agent'];
403
  break;
includes/admin/feedzy-wp-widget.php CHANGED
@@ -238,6 +238,7 @@ class feedzy_wp_widget extends WP_Widget {
238
  'default' => $instance['default'],
239
  'size' => $instance['size'],
240
  'keywords_title' => $instance['keywords_title'],
 
241
  );
242
  $feedzy_widget_shortcode_attributes = apply_filters( 'feedzy_widget_shortcode_attributes_filter', $feedzy_widget_shortcode_attributes, $args, $instance );
243
 
238
  'default' => $instance['default'],
239
  'size' => $instance['size'],
240
  'keywords_title' => $instance['keywords_title'],
241
+ 'keywords_ban' => $instance['keywords_ban'],
242
  );
243
  $feedzy_widget_shortcode_attributes = apply_filters( 'feedzy_widget_shortcode_attributes_filter', $feedzy_widget_shortcode_attributes, $args, $instance );
244
 
includes/feedzy-rss-feeds-feed-tweaks.php CHANGED
@@ -8,14 +8,20 @@
8
  * @package feedzy-rss-feeds
9
  * @subpackage feedzy-rss-feeds/includes
10
  */
11
- // @codingStandardsIgnoreStart
12
  /**
13
- * @param string $content
 
 
14
  *
15
  * @return string
16
  */
17
- function feedzy_insert_thumbnail_RSS( $content ) {
18
- // @codingStandardsIgnoreEnd
 
 
 
 
19
  global $post;
20
  if ( has_post_thumbnail( $post->ID ) ) {
21
  $content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail' ) . '' . $content;
@@ -25,8 +31,8 @@ function feedzy_insert_thumbnail_RSS( $content ) {
25
  }
26
 
27
  // Alter the main blog feed to insert the thumbnail image.
28
- add_filter( 'the_excerpt_rss', 'feedzy_insert_thumbnail_RSS' );
29
- add_filter( 'the_content_feed', 'feedzy_insert_thumbnail_RSS' );
30
 
31
  /**
32
  * Boostrap the plugin view.
8
  * @package feedzy-rss-feeds
9
  * @subpackage feedzy-rss-feeds/includes
10
  */
11
+
12
  /**
13
+ * Adds the featured image to the website's RSS feed.
14
+ *
15
+ * @param string $content The content of feed.
16
  *
17
  * @return string
18
  */
19
+ function feedzy_insert_thumbnail( $content ) {
20
+ $settings = apply_filters( 'feedzy_get_settings', array() );
21
+ if ( isset( $settings['general']['rss-feeds'] ) && 1 === intval( $settings['general']['rss-feeds'] ) ) {
22
+ return $content;
23
+ }
24
+
25
  global $post;
26
  if ( has_post_thumbnail( $post->ID ) ) {
27
  $content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail' ) . '' . $content;
31
  }
32
 
33
  // Alter the main blog feed to insert the thumbnail image.
34
+ add_filter( 'the_excerpt_rss', 'feedzy_insert_thumbnail' );
35
+ add_filter( 'the_content_feed', 'feedzy_insert_thumbnail' );
36
 
37
  /**
38
  * Boostrap the plugin view.
includes/feedzy-rss-feeds.php CHANGED
@@ -104,7 +104,7 @@ class Feedzy_Rss_Feeds {
104
  */
105
  public function init() {
106
  self::$plugin_name = 'feedzy-rss-feeds';
107
- self::$version = '3.2.11';
108
  self::$instance->load_dependencies();
109
  self::$instance->set_locale();
110
  self::$instance->define_admin_hooks();
104
  */
105
  public function init() {
106
  self::$plugin_name = 'feedzy-rss-feeds';
107
+ self::$version = '3.2.12';
108
  self::$instance->load_dependencies();
109
  self::$instance->set_locale();
110
  self::$instance->define_admin_hooks();
includes/gutenberg/dist/block.css CHANGED
@@ -1,2 +1,2 @@
1
- .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}
2
  .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)}
1
+ .loadFeed{margin-bottom:10px}.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}
2
  .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)}
includes/gutenberg/dist/block.js CHANGED
@@ -363,14 +363,14 @@ eval("// jshint ignore: start\n\nvar attributes = {\n\tfeeds: {\n\t\ttype: 'stri
363
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
364
 
365
  "use strict";
366
- 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");
367
 
368
  /***/ }),
369
  /* 49 */
370
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
371
 
372
  "use strict";
373
- 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");
374
 
375
  /***/ }),
376
  /* 50 */
@@ -383,7 +383,7 @@ eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourc
383
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
384
 
385
  "use strict";
386
- 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");
387
 
388
  /***/ }),
389
  /* 52 */
363
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
364
 
365
  "use strict";
366
+ 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\tclassName: '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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2luc3BlY3Rvci5qcz83YTVmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGpzaGludCBpZ25vcmU6IHN0YXJ0XG5cbi8qKlxuICogQmxvY2sgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBSYWRpb0ltYWdlQ29udHJvbCBmcm9tICcuL3JhZGlvLWltYWdlLWNvbnRyb2wvJztcblxuLyoqXG4gKiBJbnRlcm5hbCBibG9jayBsaWJyYXJpZXNcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdG9yID0gd3AuZWRpdG9yLFxuICAgIEluc3BlY3RvckNvbnRyb2xzID0gX3dwJGVkaXRvci5JbnNwZWN0b3JDb250cm9scyxcbiAgICBNZWRpYVVwbG9hZCA9IF93cCRlZGl0b3IuTWVkaWFVcGxvYWQ7XG52YXIgX3dwJGNvbXBvbmVudHMgPSB3cC5jb21wb25lbnRzLFxuICAgIFBhbmVsQm9keSA9IF93cCRjb21wb25lbnRzLlBhbmVsQm9keSxcbiAgICBSYW5nZUNvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5SYW5nZUNvbnRyb2wsXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbCxcbiAgICBCdXR0b24gPSBfd3AkY29tcG9uZW50cy5CdXR0b24sXG4gICAgVG9nZ2xlQ29udHJvbCA9IF93cCRjb21wb25lbnRzLlRvZ2dsZUNvbnRyb2wsXG4gICAgU2VsZWN0Q29udHJvbCA9IF93cCRjb21wb25lbnRzLlNlbGVjdENvbnRyb2wsXG4gICAgUmVzcG9uc2l2ZVdyYXBwZXIgPSBfd3AkY29tcG9uZW50cy5SZXNwb25zaXZlV3JhcHBlcjtcblxuLyoqXG4qIENyZWF0ZSBhbiBJbnNwZWN0b3IgQ29udHJvbHMgd3JhcHBlciBDb21wb25lbnRcbiovXG5cbnZhciBJbnNwZWN0b3IgPSBmdW5jdGlvbiBJbnNwZWN0b3IocHJvcHMpIHtcblx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRJbnNwZWN0b3JDb250cm9scyxcblx0XHR7IGtleTogJ2luc3BlY3RvcicgfSxcblx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyAhPT0gMCAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRsYWJlbDogX18oJ0ZlZWQgU291cmNlJyksXG5cdFx0XHRjbGFzc05hbWU6ICdmZWVkenktc291cmNlJyxcblx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWRzLFxuXHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uQ2hhbmdlRmVlZHNcblx0XHR9KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0QnV0dG9uLFxuXHRcdFx0e1xuXHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHR0eXBlOiAnc3VibWl0Jyxcblx0XHRcdFx0b25DbGljazogcHJvcHMubG9hZEZlZWQsXG5cdFx0XHRcdGNsYXNzTmFtZTogJ2xvYWRGZWVkJ1xuXHRcdFx0fSxcblx0XHRcdF9fKCdMb2FkIEZlZWQnKVxuXHRcdCldLFxuXHRcdHByb3BzLmF0dHJpYnV0ZXMuc3RhdHVzID09PSAyICYmIFt3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHR7XG5cdFx0XHRcdHRpdGxlOiBfXygnRmVlZCBTZXR0aW5ncycpLFxuXHRcdFx0XHRpbml0aWFsT3BlbjogdHJ1ZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFJhbmdlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ051bWJlciBvZiBGZWVkcycpLFxuXHRcdFx0XHR2YWx1ZTogTnVtYmVyKHByb3BzLmF0dHJpYnV0ZXMubWF4KSB8fCA1LFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25DaGFuZ2VNYXgsXG5cdFx0XHRcdG1pbjogMSxcblx0XHRcdFx0bWF4OiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydpdGVtcyddLmxlbmd0aCB8fCAxMCxcblx0XHRcdFx0YmVmb3JlSWNvbjogJ3NvcnQnXG5cdFx0XHR9KSxcblx0XHRcdHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGFbJ2NoYW5uZWwnXSAhPT0gbnVsbCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVG9nZ2xlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rpc3BsYXkgZmVlZCB0aXRsZT8nKSxcblx0XHRcdFx0Y2hlY2tlZDogISFwcm9wcy5hdHRyaWJ1dGVzLmZlZWRfdGl0bGUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy50b2dnbGVGZWVkVGl0bGVcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdGZWVkIENhY2hpbmcgVGltZScpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5yZWZyZXNoLFxuXHRcdFx0XHRvcHRpb25zOiBbe1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnMSBIb3VyJyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxX2hvdXJzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcyIEhvdXJzJyksXG5cdFx0XHRcdFx0dmFsdWU6ICczX2hvdXJzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcxMiBIb3VycycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnMTJfaG91cnMnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJzEgRGF5JyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxX2RheXMnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJzMgRGF5cycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnM19kYXlzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcxNSBEYXlzJyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxNV9kYXlzJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uUmVmcmVzaFxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoU2VsZWN0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1NvcnRpbmcgT3JkZXInKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuc29ydCxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ0RhdGUgRGVzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnZGF0ZV9kZXNjJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdEYXRlIEFzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnZGF0ZV9hc2MnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIERlc2NlbmRpbmcnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ3RpdGxlX2Rlc2MnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIEFzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAndGl0bGVfYXNjJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uU29ydFxuXHRcdFx0fSlcblx0XHQpLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHR7IHRpdGxlOiBfXygnSXRlbSBPcHRpb25zJyksIGluaXRpYWxPcGVuOiBmYWxzZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdPcGVuIExpbmtzIEluJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnRhcmdldCxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ05ldyBUYWInKSxcblx0XHRcdFx0XHR2YWx1ZTogJ19ibGFuaydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnU2FtZSBUYWInKSxcblx0XHRcdFx0XHR2YWx1ZTogJ19zZWxmJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uVGFyZ2V0XG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIENoYXJhY3RlciBMaW1pdCcpLFxuXHRcdFx0XHRoZWxwOiBfXygnTGVhdmUgZW1wdHkgdG8gc2hvdyBmdWxsIHRpdGxlLicpLFxuXHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMudGl0bGUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblRpdGxlXG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUb2dnbGVDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRGlzcGxheSBwb3N0IGRhdGUgJiBhdXRob3I/JyksXG5cdFx0XHRcdGNoZWNrZWQ6ICEhcHJvcHMuYXR0cmlidXRlcy5tZXRhLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMudG9nZ2xlTWV0YVxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVG9nZ2xlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rpc3BsYXkgcG9zdCBkZXNjcmlwdGlvbj8nKSxcblx0XHRcdFx0Y2hlY2tlZDogISFwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnksXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy50b2dnbGVTdW1tYXJ5XG5cdFx0XHR9KSxcblx0XHRcdHByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeSAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdEZXNjcmlwdGlvbiBDaGFyYWN0ZXIgTGltaXQnKSxcblx0XHRcdFx0aGVscDogX18oJ0xlYXZlIGVtcHR5IHRvIHNob3cgZnVsbCBkZXNjcmlwdGlvbi4nKSxcblx0XHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnlsZW5ndGgsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblN1bW1hcnlMZW5ndGhcblx0XHRcdH0pLFxuXHRcdFx0ZmVlZHp5anMuaXNQcm8gJiYgW3dwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ09ubHkgZGlzcGxheSBpZiB0aXRsZSBjb250YWluczonKSxcblx0XHRcdFx0aGVscDogX18oJ0NvbW1hLXNlcGFyYXRlZCBsaXN0L2Nhc2Ugc2Vuc2l0aXZlLicpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5rZXl3b3Jkc190aXRsZSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uS2V5d29yZHNUaXRsZVxuXHRcdFx0fSksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0V4Y2x1ZGUgaWYgdGl0bGUgY29udGFpbnM6JyksXG5cdFx0XHRcdGhlbHA6IF9fKCdDb21tYS1zZXBhcmF0ZWQgbGlzdC9jYXNlIHNlbnNpdGl2ZS4nKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMua2V5d29yZHNfYmFuLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25LZXl3b3Jkc0JhblxuXHRcdFx0fSldXG5cdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0UGFuZWxCb2R5LFxuXHRcdFx0eyB0aXRsZTogX18oJ0l0ZW0gSW1hZ2UgT3B0aW9ucycpLCBpbml0aWFsT3BlbjogZmFsc2UgfSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTZWxlY3RDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRGlzcGxheSBmaXJzdCBpbWFnZSBpZiBhdmFpbGFibGU/JyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnRodW1iLFxuXHRcdFx0XHRvcHRpb25zOiBbe1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnQXV0bycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnYXV0bydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnWWVzJyksXG5cdFx0XHRcdFx0dmFsdWU6ICd5ZXMnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ05vJyksXG5cdFx0XHRcdFx0dmFsdWU6ICdubydcblx0XHRcdFx0fV0sXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblRodW1iXG5cdFx0XHR9KSxcblx0XHRcdHByb3BzLmF0dHJpYnV0ZXMudGh1bWIgIT09ICdubycgJiYgW3Byb3BzLmF0dHJpYnV0ZXMudGh1bWIgIT09ICdhdXRvJyAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHR7IGNsYXNzTmFtZTogJ2ZlZWR6eS1ibG9ja3MtYmFzZS1jb250cm9sJyB9LFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0J2xhYmVsJyxcblx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ2Jsb2Nrcy1iYXNlLWNvbnRyb2xfX2xhYmVsJywgJ2Zvcic6ICdpbnNwZWN0b3ItbWVkaWEtdXBsb2FkJyB9LFxuXHRcdFx0XHRcdF9fKCdEZWZhdWx0IHRodW1ibmFpbCBVUkwgaWYgbm8gaW1hZ2UgaXMgZm91bmQuJylcblx0XHRcdFx0KSxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KE1lZGlhVXBsb2FkLCB7XG5cdFx0XHRcdFx0dHlwZTogJ2ltYWdlJyxcblx0XHRcdFx0XHRpZDogJ2luc3BlY3Rvci1tZWRpYS11cGxvYWQnLFxuXHRcdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQsXG5cdFx0XHRcdFx0b25TZWxlY3Q6IHByb3BzLm9uRGVmYXVsdCxcblx0XHRcdFx0XHRyZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcihfcmVmKSB7XG5cdFx0XHRcdFx0XHR2YXIgb3BlbiA9IF9yZWYub3Blbjtcblx0XHRcdFx0XHRcdHJldHVybiBbcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0ICE9PSB1bmRlZmluZWQgJiYgW3dwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0UmVzcG9uc2l2ZVdyYXBwZXIsXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYXR1cmFsV2lkdGg6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRuYXR1cmFsSGVpZ2h0OiBwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQuaGVpZ2h0XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJywgeyBzcmM6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdC51cmwsIGFsdDogX18oJ0ZlYXR1cmVkIGltYWdlJykgfSlcblx0XHRcdFx0XHRcdCksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0QnV0dG9uLFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0aXNMYXJnZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHByb3BzLnNldEF0dHJpYnV0ZXMoeyBkZWZhdWx0OiB1bmRlZmluZWQgfSk7XG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRzdHlsZTogeyBtYXJnaW5Ub3A6ICcxMHB4JyB9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdF9fKCdSZW1vdmUgSW1hZ2UnKVxuXHRcdFx0XHRcdFx0KV0sIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0QnV0dG9uLFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0aXNMYXJnZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrOiBvcGVuLFxuXHRcdFx0XHRcdFx0XHRcdHN0eWxlOiB7IG1hcmdpblRvcDogJzEwcHgnIH0sXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lOiBwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQgPT09IHVuZGVmaW5lZCAmJiAnZmVlZHp5X2ltYWdlX3VwbG9hZCdcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0X18oJ1VwbG9hZCBJbWFnZScpXG5cdFx0XHRcdFx0XHQpXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHQpLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdUaHVtYm5haWxzIGRpbWVuc2lvbi4nKSxcblx0XHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnNpemUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblNpemVcblx0XHRcdH0pXVxuXHRcdCksIGZlZWR6eWpzLmlzUHJvICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFBhbmVsQm9keSxcblx0XHRcdHsgdGl0bGU6IF9fKCdQcm8gRmVhdHVyZXMnKSwgaW5pdGlhbE9wZW46IGZhbHNlIH0sXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVG9nZ2xlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rpc3BsYXkgcHJpY2UgaWYgYXZhaWxhYmxlPycpLFxuXHRcdFx0XHRoZWxwOiBwcm9wcy5hdHRyaWJ1dGVzLnByaWNlICYmIHByb3BzLmF0dHJpYnV0ZXMudGVtcGxhdGUgPT09ICdkZWZhdWx0JyA/IF9fKCdDaG9vc2UgYSBkaWZmZXJlbnQgdGVtcGxhdGUgZm9yIHRoaXMgdG8gd29yay4nKSA6IG51bGwsXG5cdFx0XHRcdGNoZWNrZWQ6ICEhcHJvcHMuYXR0cmlidXRlcy5wcmljZSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLnRvZ2dsZVByaWNlXG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1JlZmVycmFsIFVSTCBwYXJhbWV0ZXJzLicpLFxuXHRcdFx0XHRoZWxwOiBfXygnV2l0aG91dCAoXCI/XCIpJyksXG5cdFx0XHRcdHBsYWNlaG9sZGVyOiBfKCcoZWcuIHByb21vX2NvZGU9ZmVlZHp5X2lzX2F3ZXNvbWUpJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnJlZmVycmFsX3VybCxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uUmVmZXJyYWxVUkxcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFJhbmdlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0NvbHVtbnMnKSxcblx0XHRcdFx0aGVscDogX18oJ0hvdyBtYW55IGNvbHVtbnMgd2Ugc2hvdWxkIHVzZSB0byBkaXNwbGF5IHRoZSBmZWVkIGl0ZW1zPycpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5jb2x1bW5zIHx8IDEsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vbkNvbHVtbnMsXG5cdFx0XHRcdG1pbjogMSxcblx0XHRcdFx0bWF4OiA2LFxuXHRcdFx0XHRiZWZvcmVJY29uOiAnc29ydCcsXG5cdFx0XHRcdGFsbG93UmVzZXQ6IHRydWVcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFJhZGlvSW1hZ2VDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRmVlZCBUZW1wbGF0ZScpLFxuXHRcdFx0XHRzZWxlY3RlZDogcHJvcHMuYXR0cmlidXRlcy50ZW1wbGF0ZSxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ0RlZmF1bHQnKSxcblx0XHRcdFx0XHRzcmM6IGZlZWR6eWpzLmltYWdlcGF0aCArICdmZWVkenktZGVmYXVsdC10ZW1wbGF0ZS5qcGcnLFxuXHRcdFx0XHRcdHZhbHVlOiAnZGVmYXVsdCdcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnU3R5bGUgMScpLFxuXHRcdFx0XHRcdHNyYzogZmVlZHp5anMuaW1hZ2VwYXRoICsgJ2ZlZWR6eS1zdHlsZTEtdGVtcGxhdGUuanBnJyxcblx0XHRcdFx0XHR2YWx1ZTogJ3N0eWxlMSdcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnU3R5bGUgMicpLFxuXHRcdFx0XHRcdHNyYzogZmVlZHp5anMuaW1hZ2VwYXRoICsgJ2ZlZWR6eS1zdHlsZTItdGVtcGxhdGUuanBnJyxcblx0XHRcdFx0XHR2YWx1ZTogJ3N0eWxlMidcblx0XHRcdFx0fV0sXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblRlbXBsYXRlXG5cdFx0XHR9KVxuXHRcdCldXG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbnNwZWN0b3I7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2luc3BlY3Rvci5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///48\n");
367
 
368
  /***/ }),
369
  /* 49 */
370
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
371
 
372
  "use strict";
373
+ 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 BaseControl = wp.components.BaseControl;\nvar withInstanceId = wp.compose.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/N2M3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBqc2hpbnQgaWdub3JlOiBzdGFydFxuXG4vKipcbiAqIEJsb2NrIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgJy4vc3R5bGUuc2Nzcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbnZhciBfbG9kYXNoID0gbG9kYXNoLFxuICAgIGlzRW1wdHkgPSBfbG9kYXNoLmlzRW1wdHk7XG52YXIgQmFzZUNvbnRyb2wgPSB3cC5jb21wb25lbnRzLkJhc2VDb250cm9sO1xudmFyIHdpdGhJbnN0YW5jZUlkID0gd3AuY29tcG9zZS53aXRoSW5zdGFuY2VJZDtcblxuXG5mdW5jdGlvbiBSYWRpb0ltYWdlQ29udHJvbChfcmVmKSB7XG5cdHZhciBsYWJlbCA9IF9yZWYubGFiZWwsXG5cdCAgICBzZWxlY3RlZCA9IF9yZWYuc2VsZWN0ZWQsXG5cdCAgICBoZWxwID0gX3JlZi5oZWxwLFxuXHQgICAgaW5zdGFuY2VJZCA9IF9yZWYuaW5zdGFuY2VJZCxcblx0ICAgIG9uQ2hhbmdlID0gX3JlZi5vbkNoYW5nZSxcblx0ICAgIGRpc2FibGVkID0gX3JlZi5kaXNhYmxlZCxcblx0ICAgIF9yZWYkb3B0aW9ucyA9IF9yZWYub3B0aW9ucyxcblx0ICAgIG9wdGlvbnMgPSBfcmVmJG9wdGlvbnMgPT09IHVuZGVmaW5lZCA/IFtdIDogX3JlZiRvcHRpb25zO1xuXG5cdHZhciBpZCA9IFwiaW5zcGVjdG9yLXJhZGlvLWltYWdlLWNvbnRyb2wtXCIgKyBpbnN0YW5jZUlkO1xuXHR2YXIgb25DaGFuZ2VWYWx1ZSA9IGZ1bmN0aW9uIG9uQ2hhbmdlVmFsdWUoZXZlbnQpIHtcblx0XHRyZXR1cm4gb25DaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcblx0fTtcblxuXHRyZXR1cm4gIWlzRW1wdHkob3B0aW9ucykgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdEJhc2VDb250cm9sLFxuXHRcdHsgbGFiZWw6IGxhYmVsLCBpZDogaWQsIGhlbHA6IGhlbHAsIGNsYXNzTmFtZTogXCJjb21wb25lbnRzLXJhZGlvLWltYWdlLWNvbnRyb2xcIiB9LFxuXHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFwiZGl2XCIsXG5cdFx0XHR7IGNsYXNzTmFtZTogXCJjb21wb25lbnRzLXJhZGlvLWltYWdlLWNvbnRyb2xfX2NvbnRhaW5lclwiIH0sXG5cdFx0XHRvcHRpb25zLm1hcChmdW5jdGlvbiAob3B0aW9uLCBpbmRleCkge1xuXHRcdFx0XHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFwiZGl2XCIsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0a2V5OiBpZCArIFwiLVwiICsgaW5kZXgsXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU6IFwiY29tcG9uZW50cy1yYWRpby1pbWFnZS1jb250cm9sX19vcHRpb25cIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuXHRcdFx0XHRcdFx0aWQ6IGlkICsgXCItXCIgKyBpbmRleCxcblx0XHRcdFx0XHRcdGNsYXNzTmFtZTogXCJjb21wb25lbnRzLXJhZGlvLWltYWdlLWNvbnRyb2xfX2lucHV0XCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcInJhZGlvXCIsXG5cdFx0XHRcdFx0XHRuYW1lOiBpZCxcblx0XHRcdFx0XHRcdHZhbHVlOiBvcHRpb24udmFsdWUsXG5cdFx0XHRcdFx0XHRvbkNoYW5nZTogb25DaGFuZ2VWYWx1ZSxcblx0XHRcdFx0XHRcdGNoZWNrZWQ6IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWQsXG5cdFx0XHRcdFx0XHRcImFyaWEtZGVzY3JpYmVkYnlcIjogISFoZWxwID8gaWQgKyBcIl9faGVscFwiIDogdW5kZWZpbmVkLFxuXHRcdFx0XHRcdFx0ZGlzYWJsZWQ6IGRpc2FibGVkXG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XCJsYWJlbFwiLFxuXHRcdFx0XHRcdFx0eyBodG1sRm9yOiBpZCArIFwiLVwiICsgaW5kZXgsIHRpdGxlOiBvcHRpb24ubGFiZWwgfSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiLCB7IHNyYzogb3B0aW9uLnNyYyB9KSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgeyBcImNsYXNzXCI6IFwiaW1hZ2UtY2xpY2thYmxlXCIgfSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9KVxuXHRcdClcblx0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aEluc3RhbmNlSWQoUmFkaW9JbWFnZUNvbnRyb2wpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vaW5jbHVkZXMvZ3V0ZW5iZXJnL3NyYy9yYWRpby1pbWFnZS1jb250cm9sL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///49\n");
374
 
375
  /***/ }),
376
  /* 50 */
383
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
384
 
385
  "use strict";
386
+ 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\tif (arr === undefined) return false;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL3V0aWxzLmpzPzMyZGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9BcnJheSRmcm9tIGZyb20gJ2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9hcnJheS9mcm9tJztcbi8vIGpzaGludCBpZ25vcmU6IHN0YXJ0XG5cbmV4cG9ydCB2YXIgdW5lc2NhcGVIVE1MID0gZnVuY3Rpb24gdW5lc2NhcGVIVE1MKHZhbHVlKSB7XG5cdHZhciBodG1sTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXHRodG1sTm9kZS5pbm5lckhUTUwgPSB2YWx1ZTtcblx0aWYgKGh0bWxOb2RlLmlubmVyVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGh0bWxOb2RlLmlubmVyVGV4dDtcblx0fVxuXHRyZXR1cm4gaHRtbE5vZGUudGV4dENvbnRlbnQ7XG59O1xuXG5leHBvcnQgdmFyIGZpbHRlckRhdGEgPSBmdW5jdGlvbiBmaWx0ZXJEYXRhKGFyciwgc29ydFR5cGUsIGFsbG93ZWRLZXl3b3JkcywgYmFubmVkS2V5d29yZHMsIG1heFNpemUpIHtcblx0YXJyID0gX0FycmF5JGZyb20oYXJyKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG5cdFx0dmFyIGZpcnN0RWxlbWVudCA9IHZvaWQgMCxcblx0XHQgICAgc2Vjb25kRWxlbWVudCA9IHZvaWQgMDtcblx0XHRpZiAoc29ydFR5cGUgPT09ICdkYXRlX2Rlc2MnIHx8IHNvcnRUeXBlID09PSAnZGF0ZV9hc2MnKSB7XG5cdFx0XHRmaXJzdEVsZW1lbnQgPSBhLnB1YkRhdGU7XG5cdFx0XHRzZWNvbmRFbGVtZW50ID0gYi5wdWJEYXRlO1xuXHRcdH0gZWxzZSBpZiAoc29ydFR5cGUgPT09ICd0aXRsZV9kZXNjJyB8fCBzb3J0VHlwZSA9PT0gJ3RpdGxlX2FzYycpIHtcblx0XHRcdGZpcnN0RWxlbWVudCA9IGEudGl0bGUudG9VcHBlckNhc2UoKTtcblx0XHRcdHNlY29uZEVsZW1lbnQgPSBiLnRpdGxlLnRvVXBwZXJDYXNlKCk7XG5cdFx0fVxuXHRcdGlmIChmaXJzdEVsZW1lbnQgPCBzZWNvbmRFbGVtZW50KSB7XG5cdFx0XHRpZiAoc29ydFR5cGUgPT09ICdkYXRlX2Rlc2MnIHx8IHNvcnRUeXBlID09PSAndGl0bGVfZGVzYycpIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChmaXJzdEVsZW1lbnQgPiBzZWNvbmRFbGVtZW50KSB7XG5cdFx0XHRpZiAoc29ydFR5cGUgPT09ICdkYXRlX2Rlc2MnIHx8IHNvcnRUeXBlID09PSAndGl0bGVfZGVzYycpIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIG5hbWVzIG11c3QgYmUgZXF1YWxcblx0XHRyZXR1cm4gMDtcblx0fSkuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0aWYgKGFsbG93ZWRLZXl3b3Jkcykge1xuXHRcdFx0cmV0dXJuIGFsbG93ZWRLZXl3b3Jkcy5zcGxpdCgnLCcpLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHRyZXR1cm4gaXRlbS5yZXBsYWNlKC9cXHMvZywgJycpICE9PSAnJztcblx0XHRcdH0pLnNvbWUoZnVuY3Rpb24gKGVsKSB7XG5cdFx0XHRcdHJldHVybiBpdGVtWyd0aXRsZSddLmluY2x1ZGVzKGVsLnRyaW0oKSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0pLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuXHRcdGlmIChiYW5uZWRLZXl3b3Jkcykge1xuXHRcdFx0cmV0dXJuIGJhbm5lZEtleXdvcmRzLnNwbGl0KCcsJykuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0XHRcdHJldHVybiBpdGVtLnJlcGxhY2UoL1xccy9nLCAnJykgIT09ICcnO1xuXHRcdFx0fSkuZXZlcnkoZnVuY3Rpb24gKGVsKSB7XG5cdFx0XHRcdHJldHVybiBpdGVtWyd0aXRsZSddLmluY2x1ZGVzKGVsLnRyaW0oKSkgPT09IGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9KS5zbGljZSgwLCBtYXhTaXplKTtcblx0cmV0dXJuIGFycjtcbn07XG5cbmV4cG9ydCB2YXIgaW5BcnJheSA9IGZ1bmN0aW9uIGluQXJyYXkodmFsdWUsIGFycikge1xuXHRpZiAoYXJyID09PSB1bmRlZmluZWQpIHJldHVybiBmYWxzZTtcblx0dmFyIGV4aXN0cyA9IGZhbHNlO1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBuYW1lID0gYXJyW2ldO1xuXHRcdGlmIChuYW1lID09PSB2YWx1ZSkge1xuXHRcdFx0ZXhpc3RzID0gdHJ1ZTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gZXhpc3RzO1xufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2luY2x1ZGVzL2d1dGVuYmVyZy9zcmMvdXRpbHMuanNcbi8vIG1vZHVsZSBpZCA9IDUxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n");
387
 
388
  /***/ }),
389
  /* 52 */
includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php CHANGED
@@ -57,7 +57,7 @@ class Feedzy_Rss_Feeds_Gutenberg_Block {
57
  }
58
 
59
  // Enqueue the bundled block JS file
60
- 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 );
61
 
62
  // Pass in REST URL
63
  wp_localize_script(
57
  }
58
 
59
  // Enqueue the bundled block JS file
60
+ wp_enqueue_script( 'feedzy-gutenberg-block-js', FEEDZY_ABSURL . 'includes/gutenberg/dist/block.js', array( 'wp-i18n', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-api', 'lodash' ), $version );
61
 
62
  // Pass in REST URL
63
  wp_localize_script(
includes/layouts/css/upsell.css CHANGED
@@ -57,9 +57,7 @@
57
  }
58
 
59
  #fz-features .header-btns {
60
- float: right;
61
- margin: 7px 20px;
62
- text-align: right;
63
  }
64
 
65
  #fz-features .header-btns .buy-now {
@@ -234,3 +232,7 @@
234
  background: #e0e0e0;
235
  box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
236
  }
 
 
 
 
57
  }
58
 
59
  #fz-features .header-btns {
60
+ margin: 7px auto;
 
 
61
  }
62
 
63
  #fz-features .header-btns .buy-now {
232
  background: #e0e0e0;
233
  box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
234
  }
235
+
236
+ .fz-feature-centered {
237
+ text-align: center;
238
+ }
includes/layouts/feedzy-upsell.php CHANGED
@@ -9,11 +9,33 @@ Layout For Upsell Page of Feedzy RSS Feeds
9
  <?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
10
 
11
  <div class="fz-features-content">
12
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  <div class="fz-feature">
14
  <div class="fz-feature-features">
15
- <h2>Feed to post</h2>
16
- <p>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.</p>
 
 
 
17
  </div>
18
  <div class="fz-feature-image">
19
  <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-feed-to-post.jpg" alt="Feed to post">
@@ -21,9 +43,8 @@ Layout For Upsell Page of Feedzy RSS Feeds
21
  </div>
22
  <div class="fz-feature">
23
  <div class="fz-feature-features">
24
- <h2>Feed templates</h2>
25
- <p>Use the style that best fits your website design with three available templates. For fzduct related
26
- feeds, the plugin fetches and displays the price separately.</p>
27
  </div>
28
  <div class="fz-feature-image">
29
  <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-templates.jpg" alt="Feed templates">
@@ -31,16 +52,54 @@ Layout For Upsell Page of Feedzy RSS Feeds
31
  </div>
32
  <div class="fz-feature">
33
  <div class="fz-feature-features">
34
- <h2>Affiliate ready</h2>
35
- <p>Make some extra money by featuring affiliate links on your site. Feedzy RSS plugin automatically
36
- includes your referral/affiliate ID to the feed links.</p>
37
  </div>
38
  <div class="fz-feature-image">
39
- <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-affiliate-ready.jpg" alt="Affiliate ready">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  </div>
41
  </div>
42
 
43
-
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
  </div><!-- .fz-features-content -->
46
 
9
  <?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
10
 
11
  <div class="fz-features-content">
12
+
13
+ <div class="fz-feature">
14
+ <div class="fz-feature-features fz-feature-centered">
15
+ <h2>Boost your Business with Pro Content</h4>
16
+ <h4>Aggregate unlimited RSS feeds in your posts, pages or custom content types</h3>
17
+ <br><hr><br>
18
+ <h4>Upgrade to Feedzy Pro to experience powerful benefits:</h4>
19
+ <h3>Add content on up to 30 of your own websites, automatically build affiliate links, integrate with WordAI and even add live product pricing feeds.</h3>
20
+ <div class="header-btns">
21
+ <?php
22
+ if ( ! defined( 'FEEDZY_PRO_ABSURL' ) ) :
23
+ ?>
24
+ <a target="_blank" href="<?php echo FEEDZY_UPSELL_LINK; ?>" class="buy-now"><span
25
+ class="dashicons dashicons-cart"></span> Upgrade to Pro now</a>
26
+ <?php
27
+ endif;
28
+ ?>
29
+ </div>
30
+ </div>
31
+ </div>
32
  <div class="fz-feature">
33
  <div class="fz-feature-features">
34
+ <h2>Unlimited Content</h2>
35
+ <p>With Pro, collect RSS feeds from an unlimited number of sources and bring them to up to 30 of your own WordPress sites.</p>
36
+ <p>Feedzy will automatically filter each feed item and place it wherever you want in your site. Easy to install and ready to go.</p>
37
+ <h2>Feed to Post</h2>
38
+ <p>Convert feed items into WordPress Posts, Pages, or any custom post type in a few easy steps.</p>
39
  </div>
40
  <div class="fz-feature-image">
41
  <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-feed-to-post.jpg" alt="Feed to post">
43
  </div>
44
  <div class="fz-feature">
45
  <div class="fz-feature-features">
46
+ <h2>Templates to suit your style</h2>
47
+ <p>Three beautiful templates are available for you to choose the style which best fits your design. We even have support for complex media such as audio playback and YouTube videos.</p>
 
48
  </div>
49
  <div class="fz-feature-image">
50
  <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-templates.jpg" alt="Feed templates">
52
  </div>
53
  <div class="fz-feature">
54
  <div class="fz-feature-features">
55
+ <h2>Grow your business</h2>
56
+ <p>Feature affiliate links on your site with Feedzy. Pro automatically includes your referral/affiliate ID on feed links. You can even import prices from product sources to create extra value for your readers.</p>
 
57
  </div>
58
  <div class="fz-feature-image">
59
+ <img src="<?php echo FEEDZY_ABSURL; ?>/img/features-affiliate-ready.jpg" alt="Protect your Brand">
60
+ </div>
61
+ </div>
62
+ <div class="fz-feature">
63
+ <div class="fz-feature-features">
64
+ <h2>Protect your Brand</h2>
65
+ <p>Take control of your content: blacklist specific keywords to show only the content you want to display on your site.</p>
66
+ </div>
67
+ <div class="fz-feature-image">
68
+ <img src="<?php echo FEEDZY_ABSURL; ?>/img/Protect-your-Brand.jpg" alt="Affiliate ready">
69
+ </div>
70
+ </div>
71
+ <div class="fz-feature">
72
+ <div class="fz-feature-features">
73
+ <h2>Word AI integration</h2>
74
+ <p>Through WordAI integration, Feedzy will give you unlimited new content. Your WordAI subscription (not included) integrates seamlessly with Feedzy, so you won’t ever have to worry about duplicate content – or Google penalties – again.</p>
75
+ </div>
76
+ <div class="fz-feature-image">
77
+ <img src="<?php echo FEEDZY_ABSURL; ?>/img/feedzy-rss-feeds-wordai.jpg" alt="WordAi integration">
78
+ </div>
79
+ </div>
80
+ <div class="fz-feature">
81
+ <div class="fz-feature-features">
82
+ <h2>World-class support</h2>
83
+ <p>We’re proud to serve over 10,000 happy customers and provide unlimited support/updates for the duration of your subscription. If you need help, our customer service and developer teams are on-hand to offer personalized, priority assistance to Pro customers.</p>
84
+ </div>
85
+ <div class="fz-feature-image">
86
+ <img src="<?php echo FEEDZY_ABSURL; ?>/img/World-class-support.jpg" alt="World Class Support">
87
  </div>
88
  </div>
89
 
90
+ <div class="fz-feature">
91
+ <div class="fz-feature-features fz-feature-centered">
92
+ <h2>Grow your WordPress business with Feedzy today.</h4>
93
+ <div class="header-btns">
94
+ <?php
95
+ if ( ! defined( 'FEEDZY_PRO_ABSURL' ) ) :
96
+ ?>
97
+ <a target="_blank" href="<?php echo FEEDZY_UPSELL_LINK; ?>" class="buy-now"><span
98
+ class="dashicons dashicons-cart"></span> Get Feedzy Pro</a>
99
+ <?php
100
+ endif;
101
+ ?>
102
+ </div>
103
 
104
  </div><!-- .fz-features-content -->
105
 
includes/layouts/header.php CHANGED
@@ -11,15 +11,4 @@
11
  <p class="logo">Feedzy RSS Feeds</p>
12
  <span class="slogan">by <a
13
  href="https://themeisle.com/">ThemeIsle</a></span>
14
- <div class="header-btns">
15
- <?php
16
- if ( ! defined( 'FEEDZY_PRO_ABSURL' ) ) :
17
- ?>
18
-
19
- <a target="_blank" href="<?php echo FEEDZY_UPSELL_LINK; ?>" class="buy-now"><span
20
- class="dashicons dashicons-cart"></span> Upgrade</a>
21
- <?php
22
- endif;
23
- ?>
24
- </div>
25
  </div><!-- .fz-features-header -->
11
  <p class="logo">Feedzy RSS Feeds</p>
12
  <span class="slogan">by <a
13
  href="https://themeisle.com/">ThemeIsle</a></span>
 
 
 
 
 
 
 
 
 
 
 
14
  </div><!-- .fz-features-header -->
includes/layouts/settings.php CHANGED
@@ -3,11 +3,13 @@
3
  <?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
4
 
5
  <?php
6
- $active_tab = isset( $_REQUEST['tab'] ) ? sanitize_text_field( $_REQUEST['tab'] ) : 'headers';
7
  $show_button = true;
8
  ?>
9
 
10
  <h2 class="nav-tab-wrapper">
 
 
11
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=headers' ) ); ?>"
12
  class="nav-tab <?php echo $active_tab == 'headers' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></a>
13
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=proxy' ) ); ?>"
@@ -39,7 +41,23 @@
39
 
40
  <form method="post" action="">
41
  <?php
 
 
 
 
 
42
  switch ( $active_tab ) {
 
 
 
 
 
 
 
 
 
 
 
43
  case 'headers':
44
  ?>
45
  <h2><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></h2>
3
  <?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
4
 
5
  <?php
6
+ $active_tab = isset( $_REQUEST['tab'] ) ? sanitize_text_field( $_REQUEST['tab'] ) : 'general';
7
  $show_button = true;
8
  ?>
9
 
10
  <h2 class="nav-tab-wrapper">
11
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=general' ) ); ?>"
12
+ class="nav-tab <?php echo $active_tab == 'general' ? 'nav-tab-active' : ''; ?>"><?php _e( 'General', 'feedzy-rss-feeds' ); ?></a>
13
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=headers' ) ); ?>"
14
  class="nav-tab <?php echo $active_tab == 'headers' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></a>
15
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=proxy' ) ); ?>"
41
 
42
  <form method="post" action="">
43
  <?php
44
+ $disble_featured_image = '';
45
+ if ( isset( $settings['general']['rss-feeds'] ) && 1 === intval( $settings['general']['rss-feeds'] ) ) {
46
+ $disble_featured_image = 'checked';
47
+ }
48
+
49
  switch ( $active_tab ) {
50
+ case 'general':
51
+ ?>
52
+ <h2><?php _e( 'General', 'feedzy-rss-feeds' ); ?></h2>
53
+ <div class="fz-form-group">
54
+ <input type="checkbox" id="rss-feeds" class="fz-form-control" name="rss-feeds"
55
+ value="1" <?php echo $disble_featured_image; ?> />
56
+ <label for="rss-feeds"><?php echo __( 'Do NOT add the featured image to the website\'s RSS feed.', 'feedzy-rss-feeds' ); ?></label>
57
+
58
+ </div>
59
+ <?php
60
+ break;
61
  case 'headers':
62
  ?>
63
  <h2><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></h2>
readme.md CHANGED
@@ -143,6 +143,7 @@ Become a translator and send me your translation! [Contact-me](http://themeisle.
143
 
144
 
145
 
 
146
  ### Is it responsive friendly? ###
147
 
148
  Yes it is.
@@ -352,6 +353,12 @@ You have to check first if your feed is valid. Please test it here: https://vali
352
  = How to add canonical tags for imported posts =
353
  [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)
354
 
 
 
 
 
 
 
355
  == Screenshots ==
356
 
357
  1. Simple example
@@ -361,6 +368,14 @@ You have to check first if your feed is valid. Please test it here: https://vali
361
 
362
 
363
  ## Changelog ##
 
 
 
 
 
 
 
 
364
  ### 3.2.11 - 2018-06-26 ###
365
 
366
  * New Gutenberg block for Feedzy RSS Feeds
143
 
144
 
145
 
146
+
147
  ### Is it responsive friendly? ###
148
 
149
  Yes it is.
353
  = How to add canonical tags for imported posts =
354
  [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)
355
 
356
+ = How to display thumbnail image from the feeds =
357
+ [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)
358
+
359
+ = How to change feed items order =
360
+ [https://docs.themeisle.com/article/864-how-to-change-feed-items-order](https://docs.themeisle.com/article/864-how-to-change-feed-items-order)
361
+
362
  == Screenshots ==
363
 
364
  1. Simple example
368
 
369
 
370
  ## Changelog ##
371
+ ### 3.2.12 - 2018-08-16 ###
372
+
373
+ * Fixed compatibility with the Gutenberg block
374
+ * Added option to disable the featured image from being added to the website RSS feed
375
+ * Fixed problem with excluding keywords not working
376
+ * Updated the readme file
377
+
378
+
379
  ### 3.2.11 - 2018-06-26 ###
380
 
381
  * New Gutenberg block for Feedzy RSS Feeds
readme.txt CHANGED
@@ -144,6 +144,7 @@ Become a translator and send me your translation! [Contact-me](http://themeisle.
144
 
145
 
146
 
 
147
  = Is it responsive friendly? =
148
 
149
  Yes it is.
@@ -359,6 +360,15 @@ You have to check first if your feed is valid. Please test it here: https://vali
359
  = How to change feed items order =
360
  [https://docs.themeisle.com/article/864-how-to-change-feed-items-order](https://docs.themeisle.com/article/864-how-to-change-feed-items-order)
361
 
 
 
 
 
 
 
 
 
 
362
  == Screenshots ==
363
 
364
  1. Simple example
@@ -368,6 +378,14 @@ You have to check first if your feed is valid. Please test it here: https://vali
368
 
369
 
370
  == Changelog ==
 
 
 
 
 
 
 
 
371
  = 3.2.11 - 2018-06-26 =
372
 
373
  * New Gutenberg block for Feedzy RSS Feeds
144
 
145
 
146
 
147
+
148
  = Is it responsive friendly? =
149
 
150
  Yes it is.
360
  = How to change feed items order =
361
  [https://docs.themeisle.com/article/864-how-to-change-feed-items-order](https://docs.themeisle.com/article/864-how-to-change-feed-items-order)
362
 
363
+ = How to use WordAI or SpinnerChief to Rephrase RSS content in Feedzy =
364
+ [https://docs.themeisle.com/article/746-how-to-use-wordai-or-spinnerchief-to-rephrase-rss-content-in-feedzy](https://docs.themeisle.com/article/746-how-to-use-wordai-or-spinnerchief-to-rephrase-rss-content-in-feedzy)
365
+
366
+ = How to add affiliate referrals to feed URLs in Feedzy =
367
+ [https://docs.themeisle.com/article/715-how-to-add-affiliate-referrals-to-feed-urls-in-feedzy](https://docs.themeisle.com/article/715-how-to-add-affiliate-referrals-to-feed-urls-in-feedzy)
368
+
369
+ = How price is displayed from the feed =
370
+ [https://docs.themeisle.com/article/923-how-price-is-displayed-from-the-feed](https://docs.themeisle.com/article/923-how-price-is-displayed-from-the-feed)
371
+
372
  == Screenshots ==
373
 
374
  1. Simple example
378
 
379
 
380
  == Changelog ==
381
+ = 3.2.12 - 2018-08-16 =
382
+
383
+ * Fixed compatibility with the Gutenberg block
384
+ * Added option to disable the featured image from being added to the website RSS feed
385
+ * Fixed problem with excluding keywords not working
386
+ * Updated the readme file
387
+
388
+
389
  = 3.2.11 - 2018-06-26 =
390
 
391
  * New Gutenberg block for Feedzy RSS Feeds
themeisle-hash.json CHANGED
@@ -1 +1 @@
1
- {"feedzy-rss-feed.php":"8f4e02e35d30683463729e6c5b036940","index.php":"71c0755260138a4b7b2182c3c61179f6","uninstall.php":"0ef18b49fd2c8fa27b1c1ee8fe679428","webpack.config.js":"e75f6dcbcad317c084d886958012687c"}
1
+ {"feedzy-rss-feed.php":"d4154c9d6f31a01fb09022c57caa7c14","index.php":"71c0755260138a4b7b2182c3c61179f6","uninstall.php":"0ef18b49fd2c8fa27b1c1ee8fe679428","webpack.config.js":"e75f6dcbcad317c084d886958012687c"}
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitf0e90d8114ce3c49afedd44f17aadefa::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit72aae61605b81ac82c8e6f07c05c01d6::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit8e16db9190a3b62aec3b855348294867::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInitab82c55c1a6c509895fe43884dc159ef::getLoader();
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php CHANGED
@@ -579,6 +579,9 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
579
  set_transient( $this->product_key, $update_data, strtotime( '+12 hours' ) );
580
  }
581
  }
 
 
 
582
  if ( version_compare( $this->product->get_version(), $update_data->new_version, '>=' ) ) {
583
  return false;
584
  }
579
  set_transient( $this->product_key, $update_data, strtotime( '+12 hours' ) );
580
  }
581
  }
582
+ if ( ! isset( $update_data->new_version ) ) {
583
+ return false;
584
+ }
585
  if ( version_compare( $this->product->get_version(), $update_data->new_version, '>=' ) ) {
586
  return false;
587
  }
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget-dashboard-blog.php CHANGED
@@ -108,6 +108,9 @@ if ( ! class_exists( 'ThemeIsle_SDK_Widget_Dashboard_Blog' ) ) :
108
  */
109
  function render_dashboard_widget() {
110
  $this->setup_feeds();
 
 
 
111
  ?>
112
  <style type="text/css">
113
  #themeisle ul li.ti-dw-recommend-item {
@@ -116,20 +119,24 @@ if ( ! class_exists( 'ThemeIsle_SDK_Widget_Dashboard_Blog' ) ) :
116
  margin-bottom: 0px;
117
  padding-top: 6px;
118
  }
 
119
  #themeisle h2.hndle {
120
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3Ny4xMiA3Ny4xMiI+PHRpdGxlPkFzc2V0IDM8L3RpdGxlPjxwYXRoIGQ9Ik03NS43Niw0Ny42cS0xLjUsNi40Ni00LjA3LDkuMjZBMzYuMjIsMzYuMjIsMCwwLDEsNjMuMjYsNjNhNTEsNTEsMCwwLDEtOS43OSw0LjZoLS4xNXY0LjgyQTQuNjYsNC42NiwwLDAsMSw1Miw3NS43Niw0LjA3LDQuMDcsMCwwLDEsNDksNzcuMTJhNCw0LDAsMCwxLTIuMTgtLjYxQTQuOTQsNC45NCwwLDAsMSw0NS4xOSw3NWE0LjQyLDQuNDIsMCwwLDEtNy41NCwwLDQuOTQsNC45NCwwLDAsMS0xLjU4LDEuNSwzLjc1LDMuNzUsMCwwLDEtMiwuNjFBNC4yNyw0LjI3LDAsMCwxLDMwLjI3LDc1YTQuOTQsNC45NCwwLDAsMS0xLjU4LDEuNSw0LDQsMCwwLDEtMi4xOC42MSwzLjkzLDMuOTMsMCwwLDEtMy4xNi0xLjQzLDUuMyw1LjMsMCwwLDEtMS4yMS0zLjU0LDEzLjgxLDEzLjgxLDAsMCwxLTguNTgsMywxMy4yMywxMy4yMywwLDAsMS05LTMuNDdBMTguMjEsMTguMjEsMCwwLDAsOSw3MC43OWExNC4yNiwxNC4yNiwwLDAsMS03LjgzLTUuNDIsMTYuMTIsMTYuMTIsMCwwLDAsNS4xOS4wNywxMi44OSwxMi44OSwwLDAsMCw0LjktMS43M1EzLjE1LDU1LjQzLDEuMDUsNTAuNDZhMTgsMTgsMCwwLDEtMS02LjkzQTQwLDQwLDAsMCwxLDEuMjEsMzQsMjYuNTksMjYuNTksMCwwLDEsNS4yNywyNC4xUTguNDQsMTkuNDMsMTMsMTkuNDNhMy40MSwzLjQxLDAsMCwxLDMuNDcsMi4yNmMuNi0uOCwxLjItMS41NiwxLjgxLTIuMjZsLjQ1LS40NS43NS0uNzUsMS4wNS0xLjgxYTM1LjIsMzUuMiwwLDAsMSwyLjExLTMuMzIsMjguNTcsMjguNTcsMCwwLDEsOS4xMi03LjY4QTIzLjQsMjMuNCwwLDAsMSw0Mi45MywyLjU2YTIyLjIyLDIyLjIyLDAsMCwxLDIuNzEuMTVBOC4xNiw4LjE2LDAsMCwxLDUxLjgxLDAsOC42OSw4LjY5LDAsMCwxLDU4LDIuNDFhMS41MSwxLjUxLDAsMCwxLC4xNS42OGMwLC4yNS0uNTUuOTMtMS42NiwybC0uMy4zYTkuNjksOS42OSwwLDAsMSwxLjU4LjgzYy41NS4zNS44My42NS44My45YTEuNjIsMS42MiwwLDAsMS0uNiwxbC0uMTUuMTVxNi43OCw2LDguNTgsMTYuMjdBMy4zLDMuMywwLDAsMSw2OSwyMy4zNWE2LjQ4LDYuNDgsMCwwLDEsNC4yMiwyLjFxMy45MiwzLjMyLDMuOTIsMTEuOUE0Mi4wNSw0Mi4wNSwwLDAsMSw3NS43Niw0Ny42Wk01My42Miw1NC4wN2EyNCwyNCwwLDAsMS0xNCw0LjUyQTIxLjQxLDIxLjQxLDAsMCwxLDI3LDU0LjY3LDI0LjI4LDI0LjI4LDAsMCwxLDE4LjUzLDQ1YTI5LDI5LDAsMCwxLTMtMTMsMzEuNzgsMzEuNzgsMCwwLDEsLjkxLTcuNTNBMzIuMTcsMzIuMTcsMCwwLDAsMTEuOSw0MS4yN2EzMy41LDMzLjUsMCwwLDAsMi43OSwxMy40LDI5LjEsMjkuMSwwLDAsMCw3LjksMTAuODUsNC42OCw0LjY4LDAsMCwxLDEuNjYtMS44OCw0LjE3LDQuMTcsMCwwLDEsNC40NC0uMDgsNC41LDQuNSwwLDAsMSwxLjU4LDEuNjZBNC4yLDQuMiwwLDAsMSwzNCw2M2EzLjgzLDMuODMsMCwwLDEsMiwuNiw0LjUsNC41LDAsMCwxLDEuNTgsMS42Niw0LjI3LDQuMjcsMCwwLDEsNy41NCwwLDQuNSw0LjUsMCwwLDEsMS41OC0xLjY2LDQuMTcsNC4xNywwLDAsMSw0LjQ0LjA4LDMuODYsMy44NiwwLDAsMSwxLjUxLDEuNzMsMzAuMTcsMzAuMTcsMCwwLDAsNy42OC05Ljk0LDMxLjE4LDMxLjE4LDAsMCwwLDMuMTYtMTIuMzVBMjguMzksMjguMzksMCwwLDEsNTMuNjIsNTQuMDdaTTI4Ljc3LDY1LjM3YTMuMSwzLjEsMCwwLDAtNC4zNywwLDMuMDYsMy4wNiwwLDAsMC0uOSwyLjI2djQuODJhMy4zMiwzLjMyLDAsMCwwLC45LDIuMzMsMi45MywyLjkzLDAsMCwwLDQuMzcsMCwzLjMyLDMuMzIsMCwwLDAsLjktMi4zM1Y2Ny42M0EzLjA2LDMuMDYsMCwwLDAsMjguNzcsNjUuMzdabS45LTQ4YTQuMjQsNC4yNCwwLDAsMCwzLjQ3LDEuNzMsNC40NSw0LjQ1LDAsMCwwLDMuNTQtMS43Myw2LDYsMCwwLDAsMS40My0zLjkyLDUuNyw1LjcsMCwwLDAtMS40My0zLjg0QTQuNTMsNC41MywwLDAsMCwzMy4xNCw4YTQuMzEsNC4zMSwwLDAsMC0zLjQ3LDEuNjYsNS43OSw1Ljc5LDAsMCwwLTEuMzUsMy43N0E2LjMzLDYuMzMsMCwwLDAsMjkuNjcsMTcuNFptNi40OCw0OGEzLjEsMy4xLDAsMCwwLTQuMzcsMCwzLjA2LDMuMDYsMCwwLDAtLjksMi4yNnY0LjgyYTMuMzIsMy4zMiwwLDAsMCwuOSwyLjMzLDIuOTMsMi45MywwLDAsMCw0LjM3LDAsMy4zMiwzLjMyLDAsMCwwLC45LTIuMzNWNjcuNjNBMy4wNiwzLjA2LDAsMCwwLDM2LjE1LDY1LjM3Wm0tNC4wNy01NC4zYTIuMzcsMi4zNywwLDAsMSwyLTEsMi4xNywyLjE3LDAsMCwxLDEuODgsMSw0LjEsNC4xLDAsMCwxLDAsNC41MiwyLjE3LDIuMTcsMCwwLDEtMS44OCwxLDIuMzcsMi4zNywwLDAsMS0yLTEsMy43MiwzLjcyLDAsMCwxLS43NS0yLjM0QTMuNDksMy40OSwwLDAsMSwzMi4wOCwxMS4wN1ptNSw5LjQxYTIwLjYxLDIwLjYxLDAsMCwwLTMuNTQsMTIuMjgsMTcuMTUsMTcuMTUsMCwwLDAsNC4wNywxMSwxMi40MywxMi40MywwLDAsMCw5Ljg3LDQuNDUsMTUuMywxNS4zLDAsMCwwLDktMywxMywxMywwLDAsMCwuNi0zLjMycTAtMy4zMi0zLjE2LTMuMzFhOC41OCw4LjU4LDAsMCwwLTIsLjNxLTcuODMsMS41LTExLjU5LS4zLTQuNTMtMi4xMi00LjUyLTkuMzRBMzcuOTIsMzcuOTIsMCwwLDEsMzcuMDUsMjAuNDhaTTYxLjQ1LDE3QTEyLjg0LDEyLjg0LDAsMCwwLDUxLjIxLDEyLjJhMTUuMTEsMTUuMTEsMCwwLDAtNi40LDEuNDMsMTcuODMsMTcuODMsMCwwLDAtNS41LDRxLTYuMTgsMjAuNjQsNi4xOCwyMC42NEEyNC43NSwyNC43NSwwLDAsMCw0OSwzNy44MWEzOC45MiwzOC45MiwwLDAsMSw0LjgyLS40NmMxLjgxLDAsMy4wNi40NiwzLjc3LDEuMzZxMS4zNSwxLjUuNzUsNS4xMmEyMS43MiwyMS43MiwwLDAsMCw1LTcuMTVBMjEuMzgsMjEuMzgsMCwwLDAsNjUuMDcsMjgsMTcuNDQsMTcuNDQsMCwwLDAsNjEuNDUsMTdaTTQzLjYsNjUuMzdhMi43MiwyLjcyLDAsMCwwLTIuMS0uOSwzLDMsMCwwLDAtMi4xOS45LDMuMDYsMy4wNiwwLDAsMC0uOSwyLjI2djQuODJhMy4zMiwzLjMyLDAsMCwwLC45LDIuMzMsMi44NCwyLjg0LDAsMCwwLDIuMTksMSwyLjYxLDIuNjEsMCwwLDAsMi4xLTEsMy40NSwzLjQ1LDAsMCwwLC44My0yLjMzVjY3LjYzQTMuMTcsMy4xNywwLDAsMCw0My42LDY1LjM3Wm03LjQ2LDBhMywzLDAsMCwwLTIuMTgtLjksMi43MywyLjczLDAsMCwwLTIuMTEuOSwzLjE3LDMuMTcsMCwwLDAtLjgzLDIuMjZ2NC44MmEzLjQ1LDMuNDUsMCwwLDAsLjgzLDIuMzMsMi42MSwyLjYxLDAsMCwwLDIuMTEsMSwyLjgzLDIuODMsMCwwLDAsMi4xOC0xLDMuMzIsMy4zMiwwLDAsMCwuOS0yLjMzVjY3LjYzQTMuMDYsMy4wNiwwLDAsMCw1MS4wNiw2NS4zN1oiLz48L3N2Zz4=');
121
  background-repeat: no-repeat;
122
  background-position: 92% 50%;
123
  background-size: 30px;
124
  }
 
125
  #themeisle .inside {
126
  padding: 0;
127
  }
 
128
  .ti-feed-list {
129
  padding: 0 12px 5px;
130
  margin-bottom: 10px;
131
  border-bottom: 1px solid #eee;
132
  }
 
133
  .ti-dw-feed-item a {
134
  display: flex;
135
  align-items: center;
@@ -138,12 +145,15 @@ if ( ! class_exists( 'ThemeIsle_SDK_Widget_Dashboard_Blog' ) ) :
138
  transition: .2s ease;
139
  border-radius: 3px;
140
  }
 
141
  .ti-dw-feed-item a:hover {
142
  background-color: #f8f8f8;
143
  }
 
144
  .ti-dw-feed-item a:hover .ti-dw-date-container {
145
  opacity: .9;
146
  }
 
147
  .ti-dw-feed-item .ti-dw-month-container {
148
  margin-top: -5px;
149
  text-transform: uppercase;
@@ -151,6 +161,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Widget_Dashboard_Blog' ) ) :
151
  letter-spacing: 1px;
152
  font-weight: 700;
153
  }
 
154
  .ti-dw-feed-item .ti-dw-date-container {
155
  border-radius: 3px;
156
  transition: .2s ease;
@@ -165,27 +176,31 @@ if ( ! class_exists( 'ThemeIsle_SDK_Widget_Dashboard_Blog' ) ) :
165
  flex-direction: column;
166
  justify-content: center;
167
  }
 
168
  .ti-dw-footer {
169
  padding: 0 12px 5px;
170
  text-align: center;
171
  }
 
172
  .ti-dw-recommend-item {
173
  display: block;
174
  }
 
175
  .ti-dw-recommend-item span {
176
  color: #72777c;
177
  }
 
178
  .ti-dw-powered-by {
179
  font-size: 11px;
180
  margin-top: 3px;
181
  display: block;
182
  color: #72777c;
183
  }
 
184
  .ti-dw-powered-by span {
185
  font-weight: 600;
186
  }
187
 
188
-
189
  </style>
190
  <ul class="ti-feed-list">
191
  <?php
108
  */
109
  function render_dashboard_widget() {
110
  $this->setup_feeds();
111
+ if ( empty( $this->items ) || ! is_array( $this->items ) ) {
112
+ return;
113
+ }
114
  ?>
115
  <style type="text/css">
116
  #themeisle ul li.ti-dw-recommend-item {
119
  margin-bottom: 0px;
120
  padding-top: 6px;
121
  }
122
+
123
  #themeisle h2.hndle {
124
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3Ny4xMiA3Ny4xMiI+PHRpdGxlPkFzc2V0IDM8L3RpdGxlPjxwYXRoIGQ9Ik03NS43Niw0Ny42cS0xLjUsNi40Ni00LjA3LDkuMjZBMzYuMjIsMzYuMjIsMCwwLDEsNjMuMjYsNjNhNTEsNTEsMCwwLDEtOS43OSw0LjZoLS4xNXY0LjgyQTQuNjYsNC42NiwwLDAsMSw1Miw3NS43Niw0LjA3LDQuMDcsMCwwLDEsNDksNzcuMTJhNCw0LDAsMCwxLTIuMTgtLjYxQTQuOTQsNC45NCwwLDAsMSw0NS4xOSw3NWE0LjQyLDQuNDIsMCwwLDEtNy41NCwwLDQuOTQsNC45NCwwLDAsMS0xLjU4LDEuNSwzLjc1LDMuNzUsMCwwLDEtMiwuNjFBNC4yNyw0LjI3LDAsMCwxLDMwLjI3LDc1YTQuOTQsNC45NCwwLDAsMS0xLjU4LDEuNSw0LDQsMCwwLDEtMi4xOC42MSwzLjkzLDMuOTMsMCwwLDEtMy4xNi0xLjQzLDUuMyw1LjMsMCwwLDEtMS4yMS0zLjU0LDEzLjgxLDEzLjgxLDAsMCwxLTguNTgsMywxMy4yMywxMy4yMywwLDAsMS05LTMuNDdBMTguMjEsMTguMjEsMCwwLDAsOSw3MC43OWExNC4yNiwxNC4yNiwwLDAsMS03LjgzLTUuNDIsMTYuMTIsMTYuMTIsMCwwLDAsNS4xOS4wNywxMi44OSwxMi44OSwwLDAsMCw0LjktMS43M1EzLjE1LDU1LjQzLDEuMDUsNTAuNDZhMTgsMTgsMCwwLDEtMS02LjkzQTQwLDQwLDAsMCwxLDEuMjEsMzQsMjYuNTksMjYuNTksMCwwLDEsNS4yNywyNC4xUTguNDQsMTkuNDMsMTMsMTkuNDNhMy40MSwzLjQxLDAsMCwxLDMuNDcsMi4yNmMuNi0uOCwxLjItMS41NiwxLjgxLTIuMjZsLjQ1LS40NS43NS0uNzUsMS4wNS0xLjgxYTM1LjIsMzUuMiwwLDAsMSwyLjExLTMuMzIsMjguNTcsMjguNTcsMCwwLDEsOS4xMi03LjY4QTIzLjQsMjMuNCwwLDAsMSw0Mi45MywyLjU2YTIyLjIyLDIyLjIyLDAsMCwxLDIuNzEuMTVBOC4xNiw4LjE2LDAsMCwxLDUxLjgxLDAsOC42OSw4LjY5LDAsMCwxLDU4LDIuNDFhMS41MSwxLjUxLDAsMCwxLC4xNS42OGMwLC4yNS0uNTUuOTMtMS42NiwybC0uMy4zYTkuNjksOS42OSwwLDAsMSwxLjU4LjgzYy41NS4zNS44My42NS44My45YTEuNjIsMS42MiwwLDAsMS0uNiwxbC0uMTUuMTVxNi43OCw2LDguNTgsMTYuMjdBMy4zLDMuMywwLDAsMSw2OSwyMy4zNWE2LjQ4LDYuNDgsMCwwLDEsNC4yMiwyLjFxMy45MiwzLjMyLDMuOTIsMTEuOUE0Mi4wNSw0Mi4wNSwwLDAsMSw3NS43Niw0Ny42Wk01My42Miw1NC4wN2EyNCwyNCwwLDAsMS0xNCw0LjUyQTIxLjQxLDIxLjQxLDAsMCwxLDI3LDU0LjY3LDI0LjI4LDI0LjI4LDAsMCwxLDE4LjUzLDQ1YTI5LDI5LDAsMCwxLTMtMTMsMzEuNzgsMzEuNzgsMCwwLDEsLjkxLTcuNTNBMzIuMTcsMzIuMTcsMCwwLDAsMTEuOSw0MS4yN2EzMy41LDMzLjUsMCwwLDAsMi43OSwxMy40LDI5LjEsMjkuMSwwLDAsMCw3LjksMTAuODUsNC42OCw0LjY4LDAsMCwxLDEuNjYtMS44OCw0LjE3LDQuMTcsMCwwLDEsNC40NC0uMDgsNC41LDQuNSwwLDAsMSwxLjU4LDEuNjZBNC4yLDQuMiwwLDAsMSwzNCw2M2EzLjgzLDMuODMsMCwwLDEsMiwuNiw0LjUsNC41LDAsMCwxLDEuNTgsMS42Niw0LjI3LDQuMjcsMCwwLDEsNy41NCwwLDQuNSw0LjUsMCwwLDEsMS41OC0xLjY2LDQuMTcsNC4xNywwLDAsMSw0LjQ0LjA4LDMuODYsMy44NiwwLDAsMSwxLjUxLDEuNzMsMzAuMTcsMzAuMTcsMCwwLDAsNy42OC05Ljk0LDMxLjE4LDMxLjE4LDAsMCwwLDMuMTYtMTIuMzVBMjguMzksMjguMzksMCwwLDEsNTMuNjIsNTQuMDdaTTI4Ljc3LDY1LjM3YTMuMSwzLjEsMCwwLDAtNC4zNywwLDMuMDYsMy4wNiwwLDAsMC0uOSwyLjI2djQuODJhMy4zMiwzLjMyLDAsMCwwLC45LDIuMzMsMi45MywyLjkzLDAsMCwwLDQuMzcsMCwzLjMyLDMuMzIsMCwwLDAsLjktMi4zM1Y2Ny42M0EzLjA2LDMuMDYsMCwwLDAsMjguNzcsNjUuMzdabS45LTQ4YTQuMjQsNC4yNCwwLDAsMCwzLjQ3LDEuNzMsNC40NSw0LjQ1LDAsMCwwLDMuNTQtMS43Myw2LDYsMCwwLDAsMS40My0zLjkyLDUuNyw1LjcsMCwwLDAtMS40My0zLjg0QTQuNTMsNC41MywwLDAsMCwzMy4xNCw4YTQuMzEsNC4zMSwwLDAsMC0zLjQ3LDEuNjYsNS43OSw1Ljc5LDAsMCwwLTEuMzUsMy43N0E2LjMzLDYuMzMsMCwwLDAsMjkuNjcsMTcuNFptNi40OCw0OGEzLjEsMy4xLDAsMCwwLTQuMzcsMCwzLjA2LDMuMDYsMCwwLDAtLjksMi4yNnY0LjgyYTMuMzIsMy4zMiwwLDAsMCwuOSwyLjMzLDIuOTMsMi45MywwLDAsMCw0LjM3LDAsMy4zMiwzLjMyLDAsMCwwLC45LTIuMzNWNjcuNjNBMy4wNiwzLjA2LDAsMCwwLDM2LjE1LDY1LjM3Wm0tNC4wNy01NC4zYTIuMzcsMi4zNywwLDAsMSwyLTEsMi4xNywyLjE3LDAsMCwxLDEuODgsMSw0LjEsNC4xLDAsMCwxLDAsNC41MiwyLjE3LDIuMTcsMCwwLDEtMS44OCwxLDIuMzcsMi4zNywwLDAsMS0yLTEsMy43MiwzLjcyLDAsMCwxLS43NS0yLjM0QTMuNDksMy40OSwwLDAsMSwzMi4wOCwxMS4wN1ptNSw5LjQxYTIwLjYxLDIwLjYxLDAsMCwwLTMuNTQsMTIuMjgsMTcuMTUsMTcuMTUsMCwwLDAsNC4wNywxMSwxMi40MywxMi40MywwLDAsMCw5Ljg3LDQuNDUsMTUuMywxNS4zLDAsMCwwLDktMywxMywxMywwLDAsMCwuNi0zLjMycTAtMy4zMi0zLjE2LTMuMzFhOC41OCw4LjU4LDAsMCwwLTIsLjNxLTcuODMsMS41LTExLjU5LS4zLTQuNTMtMi4xMi00LjUyLTkuMzRBMzcuOTIsMzcuOTIsMCwwLDEsMzcuMDUsMjAuNDhaTTYxLjQ1LDE3QTEyLjg0LDEyLjg0LDAsMCwwLDUxLjIxLDEyLjJhMTUuMTEsMTUuMTEsMCwwLDAtNi40LDEuNDMsMTcuODMsMTcuODMsMCwwLDAtNS41LDRxLTYuMTgsMjAuNjQsNi4xOCwyMC42NEEyNC43NSwyNC43NSwwLDAsMCw0OSwzNy44MWEzOC45MiwzOC45MiwwLDAsMSw0LjgyLS40NmMxLjgxLDAsMy4wNi40NiwzLjc3LDEuMzZxMS4zNSwxLjUuNzUsNS4xMmEyMS43MiwyMS43MiwwLDAsMCw1LTcuMTVBMjEuMzgsMjEuMzgsMCwwLDAsNjUuMDcsMjgsMTcuNDQsMTcuNDQsMCwwLDAsNjEuNDUsMTdaTTQzLjYsNjUuMzdhMi43MiwyLjcyLDAsMCwwLTIuMS0uOSwzLDMsMCwwLDAtMi4xOS45LDMuMDYsMy4wNiwwLDAsMC0uOSwyLjI2djQuODJhMy4zMiwzLjMyLDAsMCwwLC45LDIuMzMsMi44NCwyLjg0LDAsMCwwLDIuMTksMSwyLjYxLDIuNjEsMCwwLDAsMi4xLTEsMy40NSwzLjQ1LDAsMCwwLC44My0yLjMzVjY3LjYzQTMuMTcsMy4xNywwLDAsMCw0My42LDY1LjM3Wm03LjQ2LDBhMywzLDAsMCwwLTIuMTgtLjksMi43MywyLjczLDAsMCwwLTIuMTEuOSwzLjE3LDMuMTcsMCwwLDAtLjgzLDIuMjZ2NC44MmEzLjQ1LDMuNDUsMCwwLDAsLjgzLDIuMzMsMi42MSwyLjYxLDAsMCwwLDIuMTEsMSwyLjgzLDIuODMsMCwwLDAsMi4xOC0xLDMuMzIsMy4zMiwwLDAsMCwuOS0yLjMzVjY3LjYzQTMuMDYsMy4wNiwwLDAsMCw1MS4wNiw2NS4zN1oiLz48L3N2Zz4=');
125
  background-repeat: no-repeat;
126
  background-position: 92% 50%;
127
  background-size: 30px;
128
  }
129
+
130
  #themeisle .inside {
131
  padding: 0;
132
  }
133
+
134
  .ti-feed-list {
135
  padding: 0 12px 5px;
136
  margin-bottom: 10px;
137
  border-bottom: 1px solid #eee;
138
  }
139
+
140
  .ti-dw-feed-item a {
141
  display: flex;
142
  align-items: center;
145
  transition: .2s ease;
146
  border-radius: 3px;
147
  }
148
+
149
  .ti-dw-feed-item a:hover {
150
  background-color: #f8f8f8;
151
  }
152
+
153
  .ti-dw-feed-item a:hover .ti-dw-date-container {
154
  opacity: .9;
155
  }
156
+
157
  .ti-dw-feed-item .ti-dw-month-container {
158
  margin-top: -5px;
159
  text-transform: uppercase;
161
  letter-spacing: 1px;
162
  font-weight: 700;
163
  }
164
+
165
  .ti-dw-feed-item .ti-dw-date-container {
166
  border-radius: 3px;
167
  transition: .2s ease;
176
  flex-direction: column;
177
  justify-content: center;
178
  }
179
+
180
  .ti-dw-footer {
181
  padding: 0 12px 5px;
182
  text-align: center;
183
  }
184
+
185
  .ti-dw-recommend-item {
186
  display: block;
187
  }
188
+
189
  .ti-dw-recommend-item span {
190
  color: #72777c;
191
  }
192
+
193
  .ti-dw-powered-by {
194
  font-size: 11px;
195
  margin-top: 3px;
196
  display: block;
197
  color: #72777c;
198
  }
199
+
200
  .ti-dw-powered-by span {
201
  font-weight: 600;
202
  }
203
 
 
204
  </style>
205
  <ul class="ti-feed-list">
206
  <?php
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -11,7 +11,7 @@
11
  */
12
 
13
  // Current SDK version and path.
14
- $themeisle_sdk_version = '2.2.5';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
11
  */
12
 
13
  // Current SDK version and path.
14
+ $themeisle_sdk_version = '2.2.7';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitf0e90d8114ce3c49afedd44f17aadefa
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitf0e90d8114ce3c49afedd44f17aadefa
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitf0e90d8114ce3c49afedd44f17aadefa', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitf0e90d8114ce3c49afedd44f17aadefa', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInitf0e90d8114ce3c49afedd44f17aadefa
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequiref0e90d8114ce3c49afedd44f17aadefa($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequiref0e90d8114ce3c49afedd44f17aadefa($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit72aae61605b81ac82c8e6f07c05c01d6
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit72aae61605b81ac82c8e6f07c05c01d6', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit72aae61605b81ac82c8e6f07c05c01d6', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequire72aae61605b81ac82c8e6f07c05c01d6($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequire72aae61605b81ac82c8e6f07c05c01d6($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInit8e16db9190a3b62aec3b855348294867 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit8e16db9190a3b62aec3b855348294867 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit8e16db9190a3b62aec3b855348294867', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit8e16db9190a3b62aec3b855348294867', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInitab82c55c1a6c509895fe43884dc159ef {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitab82c55c1a6c509895fe43884dc159ef', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitab82c55c1a6c509895fe43884dc159ef', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
vendor/composer/installed.json CHANGED
@@ -6,15 +6,15 @@
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
- "reference": "33d470402379047bc430c39ecab9a8a4a850d0d2"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/33d470402379047bc430c39ecab9a8a4a850d0d2",
14
- "reference": "33d470402379047bc430c39ecab9a8a4a850d0d2",
15
  "shasum": ""
16
  },
17
- "time": "2018-06-06 14:49:32",
18
  "type": "library",
19
  "installation-source": "dist",
20
  "autoload": {
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
+ "reference": "caa9bf2b2c48c12a0ac745b6e2880c94339a777d"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/caa9bf2b2c48c12a0ac745b6e2880c94339a777d",
14
+ "reference": "caa9bf2b2c48c12a0ac745b6e2880c94339a777d",
15
  "shasum": ""
16
  },
17
+ "time": "2018-07-19 07:48:21",
18
  "type": "library",
19
  "installation-source": "dist",
20
  "autoload": {