WP VR – 360 Panorama and virtual tour creator for WordPress - Version 7.3.5

Version Description

(27-01-2022) = * Update: Checked Compatibility with WordPress 5.9. * Update: Checked Compatibility with WooCommerce 6.1.1. * Update: Checked Compatibility with Gutenberg 12.4.1. * Update: Checked Compatibility with Elementor 3.5.4. * Update: Checked Compatibility with Visual Composer 42.1. * Update: Checked Compatibility with Fluent Forms 4.3.0. * Update: Rollback version updated to 7.3.4. * New: Disable On-hover content for mobile devices. * New: Open URL in the same tab from hotspots. * Fix: Height field doesn't work for YouTube videos - WPVR Elementor widget. * Fix: Width and Height fields don't work for YouTube video tours - WPVR Gutenberg block.

Download this release

Release Info

Developer rextheme
Plugin Icon 128x128 WP VR – 360 Panorama and virtual tour creator for WordPress
Version 7.3.5
Comparing to
See all releases

Code changes from version 7.3.4 to 7.3.5

LICENSE.txt CHANGED
@@ -1,339 +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.
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.
README.txt CHANGED
@@ -1,695 +1,708 @@
1
- === WP VR - 360 Panorama and Virtual Tour Builder For WordPress ===
2
- Contributors: rextheme, coderexco
3
- Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, Streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google streetview, panoramas
4
- Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
5
- Requires at least: 5.0
6
- Tested up to: 5.8.1
7
- Requires PHP: 7.0.0
8
- Stable tag: 7.3.4
9
- License: GPLv2 or later
10
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
-
12
- Let site visitors take a virtual tour and get them excited!! Let them experience a glimpse of a live tour of your place.
13
-
14
- == Description ==
15
- Create amazing virtual tours on your own easily using WP VR. Let visitors take a tour of your place remotely, and keep them engaged.
16
-
17
- With WPVR, you can create a virtual tour, where your visitors can navigate through your place in a 360 panoramic view and get an overall idea on how it looks in reality.
18
-
19
- Simply upload a 360 panoramic image, and the plugin will transform it into a realistic virtual tour.
20
-
21
- >WPVR is compatible with Shortcodes, Elementor, Gutenberg, Visual Composer, & Oxygen builder.
22
-
23
- [Demo Virtual Tour (Pro)](https://rextheme.com/wpvr/#demo-tour) | [Documentation](https://rextheme.com/docs/wp-vr/) | [Premium Version](https://rextheme.com/wpvr/)
24
-
25
- == Why Use WPVR? ==
26
- WPVR gives you all the features needed to create a quality virtual tour without any hassle.
27
-
28
- https://www.youtube.com/watch?v=SWsv-bplne8
29
-
30
- **Simple & Easy To Use Virtual Tour Builder**
31
-
32
- WPVR has a simple interface, designed to create virtual tours real quickly, without any expertise.
33
-
34
- >In fact, you can create a simple virtual tour in less than 5 minutes!!
35
-
36
- On top of that, you can customize the tour further using auto-rotation effect, scene fade animation when transmitting between scenes, Gyroscope support on mobile devices, and many more, to make the tour more attractive.
37
-
38
- You may also use interactive hotspots to display information and keep your viewers engaged.
39
-
40
- The best part of this plugin is, you will get a live tour preview at the back-end so that you can see what you are creating on the go.
41
-
42
- Even if you're new to this, you will still be able to create virtual tours on your own, thanks to the actionable video tutorials and step-by-step instructions in our documentation.
43
-
44
- >Read detailed [documentation](https://rextheme.com/docs/wp-vr/) and [video tutorials](https://www.youtube.com/playlist?list=PLelDqLncNWcUndi1NkXJh2BH62OYmIayt) for assistance.
45
-
46
- **Create An Interactive Realistic Tour With Multiple Panoramic Images**
47
-
48
- You can add multiple 360-degree images in a virtual tour to create scenes, and connect them through scene type hotspots.
49
-
50
- Viewers can click on the hotspots to move back and forth between the scenes.
51
-
52
- > You can connect up to 5 scenes, and add 5 hotspots per scene on a virtual tour. To create tours with unlimited scenes and hotspots, [click here](https://rextheme.com/wpvr)
53
-
54
- **Interactive Hotspots To Create More Attraction**
55
-
56
- You can use engaging hotspots to view on-click or on-hover contents that include:
57
-
58
- *Texts
59
- *Images
60
- *GIFs
61
- *URLs
62
- *Videos
63
- *Buttons
64
-
65
- Also, you will get over 900+ custom icons for hotspots which you can further customize with color and ripple animation. A great way to grab your viewer's attention.
66
-
67
- >Contact our reliable [support team](https://rextheme.com/support/) to help you out anytime.
68
-
69
- **A Simple Tool For 360 Experience**
70
-
71
- Whether you run a travel blog, or sell properties as a realtor, a virtual tour will make your site more interactive. Even just viewing a simple scene with one 360 degree image will add extra value.
72
-
73
- And WPVR is currently the most reliable plugin to help you out with this. You may choose to use it as a simple 360 photo viewer, or create a high quality virtual tour with all the features without any complications.
74
-
75
- **A Functional 360 Video Viewer**
76
-
77
- When you have a 360 camera, you will be able to capture 360 degree apartment videos which is amazing.
78
-
79
- Once you embed the 360 degree videos on your site, your visitors can navigate within the video, while it plays.
80
-
81
- You may upload your 360 video content to Youtube, Vimeo, or your website, and then embed the video on any page within your site using WPVR.
82
-
83
- **Embed Virtual Tours In Just A Few Clicks**
84
-
85
- Once you create a tour, it’s really easy to embed it on your website.
86
-
87
- Whether you use Gutenberg Editor or Popular page builders, WPVR comes with dedicated blocks and widgets to save you time when embedding your tour on your site.
88
-
89
- | WPVR Gutenberg block | WPVR Elementor widget | Visual Composer Element | Oxygen Builder Element
90
-
91
- If you use any other page builder, you can still publish the tour by using a shortcode, which is generated after you publish the tour.
92
-
93
- **Use High Quality Images Without WordPress Restriction**
94
-
95
- A good quality 360 panorama usually comes with very high resolution that can easily go over 3000 x 1500 pixels.
96
-
97
- However, WordPress has the default large image handler which usually resizes images to below 2560 x 1280 pixels when you upload the image.
98
-
99
- WPVR comes with the option to disable this restriction so that you can easily upload panoramic images that can be more that 3000 pixels in width.
100
-
101
- **Mobile First VR Approach**
102
-
103
- WPVR is designed with a mobile-friendly output in mind and all the tours you make will be fully responsive and weightless for mobile devices.
104
-
105
- Simply enable the Auto-resize feature for mobile phones so that a lighter version of your panoramic images are generated. These are then used to view virtual tours on mobile devices.
106
-
107
- ==Who Should Use WP VR?==
108
-
109
- - Real Estate Industry (Virtual home tours).
110
- - Educational Institutes (Schools and colleges).
111
- - Hotels and Resorts.
112
- - Restaurants.
113
- - Travel/Tourism.
114
- - Museums.
115
- - Art Galleries & Exhibitions.
116
- - Car Showrooms.
117
- - Furniture Showrooms.
118
- - Clothing Stores.
119
- - Grocery Stores.
120
- - Bars/Pubs.
121
-
122
- And many more.
123
-
124
- To have more control over creating a virtual tour, learn about the [Premium version](https://rextheme.com/wpvr/).
125
-
126
- ==FREE FEATURES==
127
-
128
- * An unlimited number of virtual tours.
129
- * 360 Degree Video Support (Self-hosted, Youtube and Vimeo Videos).
130
- * Fullscreen Virtual Tours.
131
- * Shortcode Support.
132
- * Gutenberg Block Support.
133
- * Elementor Widget Support.
134
- * Oxygen Builder Support.
135
- * Live Preview of Tour On The Back-end.
136
- * Tour Preview Image.
137
- * Tour Autoload Feature.
138
- * Scene Fade Animation.
139
- * Auto Rotation with Speed Control.
140
- * Auto Rotation Direction, Pause, and Stop control.
141
- * Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen).
142
- * Mouse Drag Control on Virtual Tour.
143
- * Zoom In and Out with Mouse Scroll on Virtual Tour.
144
- * Zoom In and Out with ‘+’ and ‘-’ keyboard buttons.
145
- * Add Multiple Scenes and Hotspots.
146
- * Scene Type Hotspot to Connect Scenes.
147
- * Info Type Hotspots to Give Information.
148
- * On Hover and On-Click Content Option for Hotspots.
149
- * Embed Texts, Videos, Images, GIFs, and Website Links on Hotspots.
150
- * Hotspot Customization with Custom CSS.
151
- * Full-width Tour Tag.
152
- * Radius Tag for tour border radius.
153
- * Multi-Site Support.
154
- * WP User Role Support (Editors and Authors).
155
- * Disable FontAwesome Option.
156
- * Disable WordPress Default Large Image Handler.
157
- * Control Plugin Assets To Load on Specific Pages/posts Only.
158
- * Enable Front-end notice for Mobile Visitors.
159
- * Mobile Media Resize Option.
160
- * Plugin Version Rollback Option.
161
- * Support From the Support Forum.
162
-
163
- ==PREMIUM FEATURES==
164
-
165
- * All Free Features.
166
- * Unlimited Scenes and Hotspots (Up to 5 in the Free Version).
167
- * 360 Video Autoplay and Loop.
168
- * Google Street View Embed Support.
169
- * Gyroscope Support for Mobile Devices.
170
- * Auto Enable Gyroscope on Mobile Devices.
171
- * Cubemap Image Support.
172
- * Panorama Background.
173
- * Custom & Responsive Scene Gallery.
174
- * Scene Titles on Each Scene.
175
- * Scene Description (Author) & URL on Each Scene.
176
- * Scene Titles & Thumbnails on Scene Gallery.
177
- * Tour Background Music Support.
178
- * Background Music Autoplay, Loop, & Pause Control.
179
- * Set Your Company Logo on The Virtual Tour.
180
- * Set Company Description on The Logo.
181
- * Home Button to Go to The Default Scene.
182
- * On-Screen Compass for Tours.
183
- * Disable or Enable Keyboard Movement Control.
184
- * Disable or Enable Keyboard Zoom Control.
185
- * Global Zoom Settings for the entire Virtual Tour.
186
- * Disable or Enable Mouse Drag Control.
187
- * Disable or Enable Mouse Scroll Zoom.
188
- * Fluent Forms Integration on Hotspots.
189
- * Fill-up and Submit Booking/Contact Forms.
190
- * WooCommerce Product Integration on Hotspots.
191
- * Add To Cart Feature for WooCommerce Products on Hotspots.
192
- * Advanced Control Buttons (Move Up, Down, Left, & Right).
193
- * Customize Icons of Each Control Button (900+ Premium Icons).
194
- * Customize Colors of Each Control Button (RGB, HSL, & HEX).
195
- * Enable or Disable Each Control Button.
196
- * Custom Default Scene Face for Each Scene.
197
- * Default Scene Face For Target Scene.
198
- * Partial Panorama (Mobile Panorama) Support.
199
- * Scene Boundary Control (Horizontal & Vertical).
200
- * Set Vertical Offset of Each Scene.
201
- * Limit Vertical Scene Grab for Each Scene.
202
- * Limit Horizontal Scene Grab for Each Scene.
203
- * Control Max, Min, and Default Zoom for Each Scene.
204
- * Customize Each Hotspot Icon (900+ Premium Icons).
205
- * Color Picker for Hotspots (RGB, HSL, & HEX).
206
- * Tour Export and Import (For WP VR Only).
207
- * Duplicate Tours with One Click.
208
- * Priority Support.
209
-
210
- [Upgrade to Pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
211
-
212
- > We have many more amazing features planned. Take look at [our development roadmap.](https://app.productstash.io/roadmaps/5f0b43d9a54eda00221d5516/public)
213
-
214
- **Upcoming Features**
215
-
216
- - Floor Plan support.
217
- - VR Glass/Cardboard support.
218
- - Explainer Video option.
219
- - Contact Form/Booking Option Button.
220
- - Background Tour.
221
-
222
- ## Privacy Policy
223
- WP VR uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements.
224
-
225
- Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users.
226
-
227
- Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.**
228
-
229
- Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).
230
-
231
- == Frequently Asked Questions ==
232
-
233
- =1. Why Do I Need WP VR?=
234
-
235
- You can easily create a Virtual Tour of your place using WP VR to build a virtual presence of your business.
236
-
237
- Simply provide a 360 degree panoramic photo and this plugin will create a virtual tour that your visitors can navigate easily.
238
-
239
- Allow your prospects to have a realistic tour of your facility before they decide to purchase your service and increase your conversion rate.
240
-
241
- =2. How to Install and Activate WP VR?=
242
-
243
- Once you have downloaded the file, go to your dashboard. Under Plugins, select Add New, and upload the file. Then Install and activate the plugin.
244
-
245
- Once activated, on the left side under your dashboard, you will find the option WP VR at the bottom.
246
-
247
- =3. What Kind of Images Should I Use To Create A Virtual Tour?=
248
-
249
- To make a perfect equirectangular image, you need to use a 360-degree panoramic photo of the area you want to preview.
250
-
251
- However, you can also capture panorama images with your smartphone and use them to create a partial panorama tour.
252
-
253
- =5. Can I Customize The Hotspot Icons?=
254
-
255
- Yes. You can create a custom class on your theme, stating whatever style you want.
256
-
257
- Then you can input the class name on the Hotspot Custom Class section in a hotspot, and the content displayed will be customized according to the style you set.
258
-
259
- =6. Can I Create A 360 Degree Video Tour With WP VR?=
260
-
261
- Yes, with WP VR, you can create a 360 Degree video tour.
262
-
263
- You can either upload the video to create a tour or set a link to a Youtube/Vimeo 360 degree video.
264
-
265
- =7. How To Embed A Virtual Tour Using Gutenberg Block Editor?=
266
-
267
- Under common blocks, you will find a block called WP VR. Select the block and on the dynamic toolbar on the right, you will get the options to add ID, Height, and Width.
268
-
269
- Collect the ID from the virtual tour you created. Assign the height and width as you desire.
270
-
271
- =8. The Tour Is Not Loading On The Webpage.=
272
-
273
- Go to your WordPress Dashboard > WPVR > Get Started > Settings.
274
-
275
- Check the Enable Script Control option status.
276
-
277
- If the Enable Script Control option is turned On, turn it off and reload the tour page.
278
-
279
- If you wish to use this feature, you have to set the URLs of all the pages on your site with a virtual tour in the List of Allowed Pages To Load WPVR Scripts field.
280
-
281
- =9. What To Do If I Get “THE FILE (image link) COULD NOT BE ACCESSED” Error?=
282
-
283
- Sometimes when you add a tour on your site, you might face this issue that rather than loading the tour it will give the error THE FILE () COULD NOT BE ACCESSED.”
284
-
285
- This error shows up when you are running a website under “HTTPS” (secured with SSL certificate) whereas your image link is underHTTP” (unsecured).
286
-
287
- To solve this issue, go to your WordPress Dashboard > Settings > General. Here make sure you have “https” added to both “WordPress Address (URL)” and “Site Address (URL)”. That’s it. Your virtual tour will load with no issues.
288
-
289
- =10. Can I make The Virtual Tour Full-width?=
290
-
291
- Yes, you can publish the tours as full-width of your page/post.
292
-
293
- For Gutenberg, Elementor, and Oxygen builder, set fullwidth on the Width field. For shortcodes, set width = “fullwidth”.
294
-
295
- =11. What If I Use An Optimization or Caching Plugin?=
296
-
297
- If you use any Optimization or Caching plugins, then you need to exclude WP VR from its optimization function.
298
-
299
- Simply add “/plugins/wpvr” to the exclusion field (or use the location where you store plugins).
300
-
301
- =12. Can I Allow The Users of My Site To Create Virtual Tours?=
302
-
303
- You can only allow the backend users like Admins, Editors, and Authors of your site to create virtual tours.
304
-
305
- Admins & editors will have access to all virtual tours on the site to modify, update and delete them.
306
-
307
- Authors can access their own tours only and modify, update, or delete them.
308
-
309
- Admins can remove the access from Authors and Editors at any time.
310
-
311
- == Screenshots ==
312
- 1. Upload 360 Degree Image
313
- 2. Preview 360 Degree Image
314
- 3. Basic Settings of Virtual Tour
315
- 4. Preview Image on Virtual Tour
316
- 5. Preview Image Virtual Tour
317
- 6. Advanced Controls of Virtual Tour
318
- 7. Control Buttons of Virtual Tour
319
- 8. 360 Image Basic Settings
320
- 9. 360 Image Advanced Settings
321
- 10. Set Information on Hotspots
322
- 11. Connect 360 Degree Images on Hotspots
323
- 12. 360 Video Tour
324
-
325
-
326
- == Changelog ==
327
-
328
- = 7.3.4 (13-10-2021) =
329
- * Update: Checked Compatibility with WooCommerce 5.8.0.
330
- * Update: Checked Compatibility with Elementor 3.4.5.
331
- * Update: Rollback Versions updated to 7.3.3.
332
- * New: Preview Option in General Section.
333
- * New: Warning Message in Video Tab if no video is assigned.
334
- * Fix: Endless Loading Loop in Tour Preview.
335
- * Fix: Video Tab Warning - 'X' Button Functionality Issue.
336
- * Fix: Warning Message if Scene ID & 360 Degree Image is missing.
337
- * Fix: Warning Message while Enabling video.js control, if Exclude Field is empty.
338
- * Tweak: Video Tab Warning Message.
339
-
340
- = 7.3.3 (16-09-2021) =
341
- * Update: Checked Compatibility with WordPress 5.8.1.
342
- * Update: Checked Compatibility with PHP 8.0.
343
- * Update: Rollback Versions Updated to 7.3.2.
344
- * Fix: PHP Error Notices.
345
- * New: Full-window Virtual Tour Support.
346
- * New: Control video.js loading on specific pages.
347
-
348
-
349
- = 7.3.2 (04-08-2021) =
350
- * Fix: PHP Error Notices.
351
-
352
- = 7.3.1 (27-07-2021) =
353
- * Update: Checked Compatibility with WordPress 5.8.
354
- * Fix: PHP Error Notice.
355
- * Tweak: Dual Action Warning for Auto-Rotation redesigned & updated.
356
- * Tweak: Invalid Pitch Value Warning redesigned & updated.
357
- * Tweak: Invalid Yaw Value Warning redesigned & updated.
358
- * Tweak: Invalid Default Zoom Value Warnings redesigned & updated.
359
- * Tweak: Invalid Max-zoom Value Warning redesigned & updated.
360
- * Tweak: Max-zoom Value Exceeded Warning redesigned & updated.
361
- * Tweak: Invalid Min-zoom Value Warning redesigned & updated.
362
- * Tweak: Low Min-zoom Value Warning redesigned & updated.
363
-
364
-
365
- = 7.3.0 (18-06-2021) =
366
- * Tweak: WP VR logo & Text Aligned on Dashboard.
367
- * Tweak: Scene Image Missing Notice redesigned & updated.
368
- * Tweak: Scene ID Missing Notice redesigned & updated.
369
- * Tweak: Invalid Scene ID Notice redesigned & updated.
370
- * Tweak: Duplicate Scene ID Notice redesigned & updated.
371
- * Tweak: Default Scene Change Notice redesigned & updated.
372
- * Tweak: Scene Deletion Notice redesigned & updated.
373
- * Tweak: Scene Limit Reached Notice redesigned & updated.
374
- * Tweak: Invalid Hotspot ID Notice redesigned & updated.
375
- * Tweak: Duplicate Hotspot ID Notice redesigned & updated.
376
- * Tweak: On-click Content + URL Dual Input Notice redesigned & updated.
377
- * Tweak: Custom Icon + Custom Icon Class Dual Input Notice redesigned & updated.
378
- * Tweak: Target Scene Missing Notice redesigned & updated.
379
- * Tweak: Hotspot Limit Reached Notice redesigned & updated.
380
- * Tweak: Hotspot Deletion Notice redesigned & updated.
381
- * Fix: Autoplay bug for 360-degree videos.
382
-
383
- = 7.2.9 (25-05-2021) =
384
- * New: Warning message added for Street View tab.
385
- * Tweak: Rollback versions updated.
386
-
387
- = 7.2.8 (06-05-2021) =
388
- * Fix: PHP Warnings on Backend & Frontend
389
- * Fix: Audio Issue for self-hosted videos on hotspots
390
-
391
- = 7.2.7 (12-04-2021) =
392
- * Tweak: Rollback versions updated.
393
- * Tweak: Video tab warning pop-up redesigned.
394
- * New: Preview Image Text is made dynamic.
395
- * New: On the Hotspots tab, the active Scene ID will be mentioned.
396
- * Fix: Elementor Widget Issue.
397
- * Fix: Preview Image Text font mismatch.
398
-
399
- = 7.2.6 (22-03-2021) =
400
- * Tweak: Rollback versions updated
401
- * Fix: Dummy notice removed
402
- * Fix: AppSero Updater Error
403
-
404
- = 7.2.5 (11-03-2021) =
405
- * Update: Checked compatibility with WordPress 5.7
406
- * New: Visual Composer element support
407
- * Fix: PHP warnings on the dashboard
408
-
409
- = 7.2.4 (24-02-2021) =
410
- * Tweak: Made the Enable Script Control option conditional
411
- * Tweak: Added pop-up warning when switching to a video tour
412
- * Fix: Style conflict issue with Phlox Pro theme
413
- * Fix: Tour ID Dropdown responsiveness issue for WP VR Elementor Widget
414
- * Fix: Icons of deleted scenes showing up
415
-
416
- = 7.2.3 (09-02-2021) =
417
- * Tweak: Removed Export tab alert
418
- * Fix: PHP warnings on the activation
419
-
420
- = 7.2.2 (21-12-2020) =
421
- * Tweak: Removed dummy functions
422
- * Fix: Browser JS conflict
423
-
424
- = 7.2.1 (17-12-2020) =
425
- * New: Warning message added for video tours
426
- * Fix: VR audio JS error
427
- * Fix: Tab and accordion issue
428
- * Tweak: Modified rollback options
429
-
430
- = 7.2.0 (09-12-2020) =
431
- * Update: Checked compatibility with WordPress 5.6
432
- * Fix: VR audio conflict
433
-
434
- = 7.1.0 (19-11-2020) =
435
- * Tweak: Modified Black Friday banner
436
-
437
- = 7.0.0 (19-11-2020) =
438
- * New: Added Black Friday banner
439
-
440
- = 6.9.0 (16-11-2020) =
441
- * New: Accordion support for Elementor
442
- * Fix: Iframe conflict
443
- * Fix: Control button overlap issue
444
-
445
- = 6.8.0 (22-10-2020) =
446
- * New: Display Scene Gallery by default
447
-
448
- = 6.7.0 (18-09-2020) =
449
- * Tweak: Modified Import/Export
450
- * Tweak: Added switch for Mobile Media Resizer
451
- * Fix: Conflict with OceanWP Theme
452
-
453
- = 6.6.0 (09-09-2020) =
454
- * Tweak: Modified Scene Gallery preview
455
- * Tweak: Modified Mobile Media Resizer
456
- * Fix: Video tab bug
457
- * Fix: Error handled for allow open URL
458
-
459
- = 6.5.0 (31-08-2020) =
460
- * Update: Updated Appsero version
461
- * Fix: Empty needle warning
462
-
463
- = 6.4.0 (19-08-2020) =
464
- * Fix: Media Resizer fixed
465
-
466
- = 6.3.0 (14-08-2020) =
467
- * Update: Checked compatibility with WordPress 5.5
468
- * New: Mobile Media Resizer option added
469
- * Fix: Google Street View responsive issue
470
-
471
- = 6.2.0 (07-08-2020) =
472
- * New: Oxygen Builder Element support added
473
- * New: Multi-site support added
474
- * New: Dynamic Front-end Notice option added
475
-
476
- = 6.1.0 (31-7-2020) =
477
- * Fix: Style issue for On-click content
478
-
479
- = 6.0.0 (28-7-2020) =
480
- * Fix: Safari browser issues
481
- * Fix: JS error for optimization
482
-
483
- = 5.9.0 (27-7-2020) =
484
- * Fix: Export/Import SSL error
485
- * Fix: JS errors
486
-
487
- = 5.8.0 (25-7-2020) =
488
- * New: Submit restriction to control gyro for SSL
489
- * New: Add-on compatibility added
490
- * New: Mobile notice added
491
- * Tweak: License input type changed to password
492
- * Fix: On-click content container responsive issue
493
-
494
- = 5.7.0 (20-7-2020) =
495
- * Update: User Interface updated
496
- * New: Rollback feature added
497
- * Tweak: Gallery image size changed to thumbnail
498
- * Tweak: Gallery Scene IDs replaced with Scene Titles
499
- * Fix: Youtube 360 video autoplay issue
500
- * Fix: Company logo style issue
501
- * Fix: Saving draft issue
502
-
503
- = 5.6.0 (15-06-2020) =
504
- * New: Tour Background Music support added
505
-
506
- = 5.5.0 (12-05-2020) =
507
- * Tweak: Self-hosted videos pause on closing window
508
- * Fix: Custom control button conflict
509
- * Fix: On-click content container issue
510
-
511
- = 5.4.0 (27-04-2020) =
512
- * Fix: Device Orientation control issue
513
-
514
- = 5.3.0 (16-04-2020) =
515
- * New: Keyboard zoom control added
516
- * Tweak: Style modified for Company Logo
517
-
518
- = 5.2.0 (02-04-2020) =
519
- * New: Author URL field added
520
-
521
- = 5.1.0 (26-03-2020) =
522
- * New: Auto device based gyro option added
523
-
524
- = 5.0.0 =
525
- * New: Home button added for returning to the default scene
526
-
527
- = 4.9.0 =
528
- * New: Scene title field added for Scene Gallery
529
-
530
- = 4.8.0 =
531
- * Tweak: Script & Style files control modified
532
-
533
- = 4.7.0 =
534
- * New: High-resolution image upload option added
535
- * Fix: Gyroscope conflict with default controls
536
- * Fix: Input type error
537
-
538
- = 4.6.0 =
539
- * Fix: Gyroscope support issue for custom controls
540
-
541
- = 4.5.0 =
542
- * Update: Library updated
543
- * Fix: Default icon issue on android smartphones
544
-
545
- = 4.4.0 =
546
- * New: Option to Control plugin scripts and styles to load them on specific pages only
547
- * Fix: Draggable error fix
548
-
549
- = 4.3.0 =
550
- * New: Added option to enable/disable Draggable feature
551
- * Tweak: Settings titles capitalized
552
-
553
- = 4.2.0 =
554
- * New: Added option to enable/disable Keyboard Controls
555
- * Fix: Font-Awesome conflict
556
-
557
- = 4.1.0 =
558
- * New: Autoplay and Loop options added for 360-degree videos
559
- * New: Mouse scroll support added
560
-
561
- = 4.0.0 =
562
- * New: Option to control User Roles for the plugin
563
-
564
- = 3.9.0 =
565
- * Fix: Gallery toggle issue
566
-
567
- = 3.8.0 =
568
- * Tweak: Loading box design changed
569
-
570
- = 3.7.0 =
571
- * New: Partial Panorama support
572
-
573
- = 3.6.0 =
574
- * Update: JS optimization removed
575
-
576
- = 3.5.0 =
577
- * Fix: Front-end errors
578
-
579
- = 3.4.9 =
580
- * Tweak: JS & CSS loading optimized
581
-
582
- = 3.4.8 =
583
- * Tweak: Optimized the backend preview loading
584
-
585
- = 3.4.7 =
586
- * Google street view embed
587
-
588
- = 3.4.6 =
589
- * Custom control feature
590
- * WordPress 5.3 bug fix
591
-
592
- = 3.4.5 =
593
- * WordPress.com hosting support fixed
594
-
595
- = 3.4.4 =
596
- * Rotation fix on default scene face
597
- * Rotation fix on hotspots to target scene face
598
- * Plugin library update
599
-
600
- = 3.4.3 =
601
- * Autorotation error fix
602
- * Ziparchive class error fix
603
-
604
- = 3.4.2 =
605
- * Gallery carousel design fix
606
- * CSS and js restricted
607
-
608
- = 3.4.1 =
609
- * Gallery carousal fix
610
-
611
- = 3.4.0 =
612
- * Repeater delete confirmation fix.
613
-
614
- = 3.3.0 =
615
- * Placeholder change.
616
-
617
- = 3.2.0 =
618
- * Custom scene gallery conflict and a bug fix for iPhone and iPad.
619
-
620
- = 3.1.0 =
621
- * Custom scene gallery.
622
- * Border radius tag added.
623
- * Modified preview window.
624
-
625
- = 3.0.0 =
626
- * File import & export system added.
627
- * Fullwidth tag added.
628
- * Placeholder color changed.
629
-
630
- = 2.9.0 =
631
- * Tour selector updated on VR block.
632
-
633
- = 2.8.0 =
634
- * Dynamic error reporting added.
635
-
636
- = 2.7.0 =
637
- * Post memory limit fix.
638
-
639
- = 2.6.0 =
640
- * Duplicate tour.
641
- * Blink animation automated.
642
- * Language issue fixed.
643
-
644
- = 2.5.0 =
645
- * Gyroscope support on the premium version.
646
- * Appsero error fix.
647
- * Gutenberg block column layout fix.
648
-
649
- = 2.4.0 =
650
- * Font-awesome icon load fix.
651
- * Plugin conflict fix.
652
- * Rextheme link removed from premium version.
653
-
654
- = 2.3.0 =
655
- * Elementor widget support for free.
656
- * Mozilla Firefox bug fix.
657
- * CDN load fix.
658
- * Block input dropdown added.
659
- * Hotspot based scene face added.
660
-
661
- = 2.2.0 =
662
- * Scene title and author tag support.
663
- * Elementor widget support.
664
-
665
- = 2.1.1 =
666
- * Dynamic Font-Awesome icon added for hotspots.
667
- * Dynamic color picker added for hotspot color.
668
- * Custom panorama compass support.
669
- * Default zoom level.
670
- * Maximum and minimum zoom range.
671
- * Customize each scene’s default face on load.
672
- * Scene grab control and custom boundary for each scene.
673
-
674
- = 2.1.0 =
675
- * Save draft fixed.
676
- * Error handling fixed.
677
- * Video support added.
678
- * Slider revolution conflict fix.
679
- * Auto rotation
680
- * Rotation pause and stop control
681
-
682
- = 2.0.0 =
683
- * Gutenberg block support
684
- * Bug fix.
685
-
686
- = 1.0.1 =
687
- * Default scene can be selected from the scene tab.
688
- * Default height and width are given for shortcodes.
689
-
690
- = 1.0 =
691
- * Hotspot custom icon support.
692
- * On screen control available.
693
-
694
- == Upgrade Notice ==
 
 
 
 
 
 
 
 
 
 
 
 
 
695
  Please do update the WP VR to the latest version. Each update makes sure your plugin is supporting all tour features.
1
+ === WP VR - 360 Panorama and Virtual Tour Builder For WordPress ===
2
+ Contributors: rextheme, coderexco
3
+ Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, Streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google streetview, panoramas
4
+ Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
5
+ Requires at least: 5.0
6
+ Tested up to: 5.9
7
+ Requires PHP: 7.0.0
8
+ Stable tag: 7.3.5
9
+ License: GPLv2 or later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
+
12
+ Let site visitors take a virtual tour and get them excited!! Let them experience a glimpse of a live tour of your place.
13
+
14
+ == Description ==
15
+ Create amazing virtual tours on your own easily using WP VR. Let visitors take a tour of your place remotely, and keep them engaged.
16
+
17
+ With WPVR, you can create a virtual tour, where your visitors can navigate through your place in a 360 panoramic view and get an overall idea on how it looks in reality.
18
+
19
+ Simply upload a 360 panoramic image, and the plugin will transform it into a realistic virtual tour.
20
+
21
+ >WPVR is compatible with Shortcodes, Elementor, Gutenberg, Visual Composer, & Oxygen builder.
22
+
23
+ [Demo Virtual Tour (Pro)](https://rextheme.com/wpvr/#demo-tour) | [Documentation](https://rextheme.com/docs/wp-vr/) | [Premium Version](https://rextheme.com/wpvr/)
24
+
25
+ == Why Use WPVR? ==
26
+ WPVR gives you all the features needed to create a quality virtual tour without any hassle.
27
+
28
+ https://www.youtube.com/watch?v=SWsv-bplne8
29
+
30
+ **Simple & Easy To Use Virtual Tour Builder**
31
+
32
+ WPVR has a simple interface, designed to create virtual tours real quickly, without any expertise.
33
+
34
+ >In fact, you can create a simple virtual tour in less than 5 minutes!!
35
+
36
+ On top of that, you can customize the tour further using auto-rotation effect, scene fade animation when transmitting between scenes, Gyroscope support on mobile devices, and many more, to make the tour more attractive.
37
+
38
+ You may also use interactive hotspots to display information and keep your viewers engaged.
39
+
40
+ The best part of this plugin is, you will get a live tour preview at the back-end so that you can see what you are creating on the go.
41
+
42
+ Even if you're new to this, you will still be able to create virtual tours on your own, thanks to the actionable video tutorials and step-by-step instructions in our documentation.
43
+
44
+ >Read detailed [documentation](https://rextheme.com/docs/wp-vr/) and [video tutorials](https://www.youtube.com/playlist?list=PLelDqLncNWcUndi1NkXJh2BH62OYmIayt) for assistance.
45
+
46
+ **Create An Interactive Realistic Tour With Multiple Panoramic Images**
47
+
48
+ You can add multiple 360-degree images in a virtual tour to create scenes, and connect them through scene type hotspots.
49
+
50
+ Viewers can click on the hotspots to move back and forth between the scenes.
51
+
52
+ > You can connect up to 5 scenes, and add 5 hotspots per scene on a virtual tour. To create tours with unlimited scenes and hotspots, [click here](https://rextheme.com/wpvr)
53
+
54
+ **Interactive Hotspots To Create More Attraction**
55
+
56
+ You can use engaging hotspots to view on-click or on-hover contents that include:
57
+
58
+ *Texts
59
+ *Images
60
+ *GIFs
61
+ *URLs
62
+ *Videos
63
+ *Buttons
64
+
65
+ Also, you will get over 900+ custom icons for hotspots which you can further customize with color and ripple animation. A great way to grab your viewer's attention.
66
+
67
+ >Contact our reliable [support team](https://rextheme.com/support/) to help you out anytime.
68
+
69
+ **A Simple Tool For 360 Experience**
70
+
71
+ Whether you run a travel blog, or sell properties as a realtor, a virtual tour will make your site more interactive. Even just viewing a simple scene with one 360 degree image will add extra value.
72
+
73
+ And WPVR is currently the most reliable plugin to help you out with this. You may choose to use it as a simple 360 photo viewer, or create a high quality virtual tour with all the features without any complications.
74
+
75
+ **A Functional 360 Video Viewer**
76
+
77
+ When you have a 360 camera, you will be able to capture 360 degree apartment videos which is amazing.
78
+
79
+ Once you embed the 360 degree videos on your site, your visitors can navigate within the video, while it plays.
80
+
81
+ You may upload your 360 video content to Youtube, Vimeo, or your website, and then embed the video on any page within your site using WPVR.
82
+
83
+ **Embed Virtual Tours In Just A Few Clicks**
84
+
85
+ Once you create a tour, it’s really easy to embed it on your website.
86
+
87
+ Whether you use Gutenberg Editor or Popular page builders, WPVR comes with dedicated blocks and widgets to save you time when embedding your tour on your site.
88
+
89
+ | WPVR Gutenberg block | WPVR Elementor widget | Visual Composer Element | Oxygen Builder Element
90
+
91
+ If you use any other page builder, you can still publish the tour by using a shortcode, which is generated after you publish the tour.
92
+
93
+ **Use High Quality Images Without WordPress Restriction**
94
+
95
+ A good quality 360 panorama usually comes with very high resolution that can easily go over 3000 x 1500 pixels.
96
+
97
+ However, WordPress has the default large image handler which usually resizes images to below 2560 x 1280 pixels when you upload the image.
98
+
99
+ WPVR comes with the option to disable this restriction so that you can easily upload panoramic images that can be more that 3000 pixels in width.
100
+
101
+ **Mobile First VR Approach**
102
+
103
+ WPVR is designed with a mobile-friendly output in mind and all the tours you make will be fully responsive and weightless for mobile devices.
104
+
105
+ Simply enable the Auto-resize feature for mobile phones so that a lighter version of your panoramic images are generated. These are then used to view virtual tours on mobile devices.
106
+
107
+ ==Who Should Use WP VR?==
108
+
109
+ - Real Estate Industry (Virtual home tours).
110
+ - Educational Institutes (Schools and colleges).
111
+ - Hotels and Resorts.
112
+ - Restaurants.
113
+ - Travel/Tourism.
114
+ - Museums.
115
+ - Art Galleries & Exhibitions.
116
+ - Car Showrooms.
117
+ - Furniture Showrooms.
118
+ - Clothing Stores.
119
+ - Grocery Stores.
120
+ - Bars/Pubs.
121
+
122
+ And many more.
123
+
124
+ To have more control over creating a virtual tour, learn about the [Premium version](https://rextheme.com/wpvr/).
125
+
126
+ ==FREE FEATURES==
127
+
128
+ * An unlimited number of virtual tours.
129
+ * 360 Degree Video Support (Self-hosted, Youtube and Vimeo Videos).
130
+ * Full-window Virtual Tours.
131
+ * Shortcode Support.
132
+ * Gutenberg Block Support.
133
+ * Elementor Widget Support.
134
+ * Oxygen Builder Support.
135
+ * Live Preview of Tour On The Back-end.
136
+ * Tour Preview Image.
137
+ * Tour Autoload Feature.
138
+ * Scene Fade Animation.
139
+ * Auto Rotation with Speed Control.
140
+ * Auto Rotation Direction, Pause, and Stop control.
141
+ * Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen).
142
+ * Mouse Drag Control on Virtual Tour.
143
+ * Zoom In and Out with Mouse Scroll on Virtual Tour.
144
+ * Zoom In and Out with ‘+’ and ‘-’ keyboard buttons.
145
+ * Add Multiple Scenes and Hotspots.
146
+ * Scene Type Hotspot to Connect Scenes.
147
+ * Info Type Hotspots to Give Information.
148
+ * On Hover and On-Click Content Option for Hotspots.
149
+ * Embed Texts, Videos, Images, GIFs, and Website Links on Hotspots.
150
+ * Hotspot Customization with Custom CSS.
151
+ * Full-width Tour Tag.
152
+ * Radius Tag for tour border radius.
153
+ * Multi-Site Support.
154
+ * WP User Role Support (Editors and Authors).
155
+ * Disable FontAwesome Option.
156
+ * Disable WordPress Default Large Image Handler.
157
+ * Control Plugin Assets To Load on Specific Pages/posts Only.
158
+ * Enable Front-end notice for Mobile Visitors.
159
+ * Mobile Media Resize Option.
160
+ * Plugin Version Rollback Option.
161
+ * Support From the Support Forum.
162
+
163
+ ==PREMIUM FEATURES==
164
+
165
+ * All Free Features.
166
+ * Unlimited Scenes and Hotspots (Up to 5 in the Free Version).
167
+ * 360 Video Autoplay and Loop.
168
+ * Google Street View Embed Support.
169
+ * Gyroscope Support for Mobile Devices.
170
+ * Auto Enable Gyroscope on Mobile Devices.
171
+ * Custom & Responsive Scene Gallery.
172
+ * Scene Titles on Each Scene.
173
+ * Scene Description (Author) & URL on Each Scene.
174
+ * Scene Titles & Thumbnails on Scene Gallery.
175
+ * Tour Background Music Support.
176
+ * Background Music Autoplay, Loop, & Pause Control.
177
+ * Set Your Company Logo on The Virtual Tour.
178
+ * Set Company Description on The Logo.
179
+ * Home Button to Go to The Default Scene.
180
+ * On-Screen Compass for Tours.
181
+ * Disable or Enable Keyboard Movement Control.
182
+ * Disable or Enable Keyboard Zoom Control.
183
+ * Global Zoom Settings for the entire Virtual Tour.
184
+ * Disable or Enable Mouse Drag Control.
185
+ * Disable or Enable Mouse Scroll Zoom.
186
+ * Fluent Forms Integration on Hotspots.
187
+ * Fill-up and Submit Booking/Contact Forms.
188
+ * WooCommerce Product Integration on Hotspots.
189
+ * Add To Cart Feature for WooCommerce Products on Hotspots.
190
+ * Advanced Control Buttons (Move Up, Down, Left, & Right).
191
+ * Customize Icons of Each Control Button (900+ Premium Icons).
192
+ * Customize Colors of Each Control Button (RGB, HSL, & HEX).
193
+ * Enable or Disable Each Control Button.
194
+ * Custom Default Scene Face for Each Scene.
195
+ * Default Scene Face For Target Scene.
196
+ * Partial Panorama (Mobile Panorama) Support.
197
+ * Scene Boundary Control (Horizontal & Vertical).
198
+ * Set Vertical Offset of Each Scene.
199
+ * Limit Vertical Scene Grab for Each Scene.
200
+ * Limit Horizontal Scene Grab for Each Scene.
201
+ * Control Max, Min, and Default Zoom for Each Scene.
202
+ * Customize Each Hotspot Icon (900+ Premium Icons).
203
+ * Color Picker for Hotspots (RGB, HSL, & HEX).
204
+ * Tour Export and Import (For WP VR Only).
205
+ * Duplicate Tours with One Click.
206
+ * Priority Support.
207
+
208
+ [Upgrade to Pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
209
+
210
+ > We have many more amazing features planned. Take look at [our development roadmap.](https://app.productstash.io/roadmaps/5f0b43d9a54eda00221d5516/public)
211
+
212
+ **Upcoming Features**
213
+
214
+ - Floor Plan support.
215
+ - VR Glass/Cardboard support.
216
+ - Explainer Video option.
217
+ - Contact Form/Booking Option Button.
218
+ - Background Tour.
219
+
220
+ ## Privacy Policy
221
+ WP VR uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements.
222
+
223
+ Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users.
224
+
225
+ Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.**
226
+
227
+ Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).
228
+
229
+ == Frequently Asked Questions ==
230
+
231
+ =1. Why Do I Need WP VR?=
232
+
233
+ You can easily create a Virtual Tour of your place using WP VR to build a virtual presence of your business.
234
+
235
+ Simply provide a 360 degree panoramic photo and this plugin will create a virtual tour that your visitors can navigate easily.
236
+
237
+ Allow your prospects to have a realistic tour of your facility before they decide to purchase your service and increase your conversion rate.
238
+
239
+ =2. How to Install and Activate WP VR?=
240
+
241
+ Once you have downloaded the file, go to your dashboard. Under Plugins, select Add New, and upload the file. Then Install and activate the plugin.
242
+
243
+ Once activated, on the left side under your dashboard, you will find the option WP VR at the bottom.
244
+
245
+ =3. What Kind of Images Should I Use To Create A Virtual Tour?=
246
+
247
+ To make a perfect equirectangular image, you need to use a 360-degree panoramic photo of the area you want to preview.
248
+
249
+ However, you can also capture panorama images with your smartphone and use them to create a partial panorama tour.
250
+
251
+ =5. Can I Customize The Hotspot Icons?=
252
+
253
+ Yes. You can create a custom class on your theme, stating whatever style you want.
254
+
255
+ Then you can input the class name on the Hotspot Custom Class section in a hotspot, and the content displayed will be customized according to the style you set.
256
+
257
+ =6. Can I Create A 360 Degree Video Tour With WP VR?=
258
+
259
+ Yes, with WP VR, you can create a 360 Degree video tour.
260
+
261
+ You can either upload the video to create a tour or set a link to a Youtube/Vimeo 360 degree video.
262
+
263
+ =7. How To Embed A Virtual Tour Using Gutenberg Block Editor?=
264
+
265
+ Under common blocks, you will find a block called WP VR. Select the block and on the dynamic toolbar on the right, you will get the options to add ID, Height, and Width.
266
+
267
+ Collect the ID from the virtual tour you created. Assign the height and width as you desire.
268
+
269
+ =8. The Tour Is Not Loading On The Webpage.=
270
+
271
+ Go to your WordPress Dashboard > WPVR > Get Started > Settings.
272
+
273
+ Check the Enable Script Control option status.
274
+
275
+ If the Enable Script Control option is turned On, turn it off and reload the tour page.
276
+
277
+ If you wish to use this feature, you have to set the URLs of all the pages on your site with a virtual tour in the List of Allowed Pages To Load WPVR Scripts field.
278
+
279
+ =9. What To Do If I Get “THE FILE (image link) COULD NOT BE ACCESSED” Error?=
280
+
281
+ Sometimes when you add a tour on your site, you might face this issue that rather than loading the tour it will give the error “THE FILE () COULD NOT BE ACCESSED.”
282
+
283
+ This error shows up when you are running a website under “HTTPS” (secured with SSL certificate) whereas your image link is underHTTP” (unsecured).
284
+
285
+ To solve this issue, go to your WordPress Dashboard > Settings > General. Here make sure you have “https” added to bothWordPress Address (URL)and “Site Address (URL)”. That’s it. Your virtual tour will load with no issues.
286
+
287
+ =10. Can I make The Virtual Tour Full-width?=
288
+
289
+ Yes, you can publish the tours as full-width of your page/post.
290
+
291
+ For Gutenberg, Elementor, and Oxygen builder, set fullwidth on the Width field. For shortcodes, set width = “fullwidth”.
292
+
293
+ =11. What If I Use An Optimization or Caching Plugin?=
294
+
295
+ If you use any Optimization or Caching plugins, then you need to exclude WP VR from its optimization function.
296
+
297
+ Simply add “/plugins/wpvr” to the exclusion field (or use the location where you store plugins).
298
+
299
+ =12. Can I Allow The Users of My Site To Create Virtual Tours?=
300
+
301
+ You can only allow the backend users like Admins, Editors, and Authors of your site to create virtual tours.
302
+
303
+ Admins & editors will have access to all virtual tours on the site to modify, update and delete them.
304
+
305
+ Authors can access their own tours only and modify, update, or delete them.
306
+
307
+ Admins can remove the access from Authors and Editors at any time.
308
+
309
+ == Screenshots ==
310
+ 1. Upload 360 Degree Image
311
+ 2. Preview 360 Degree Image
312
+ 3. Basic Settings of Virtual Tour
313
+ 4. Preview Image on Virtual Tour
314
+ 5. Preview Image Virtual Tour
315
+ 6. Advanced Controls of Virtual Tour
316
+ 7. Control Buttons of Virtual Tour
317
+ 8. 360 Image Basic Settings
318
+ 9. 360 Image Advanced Settings
319
+ 10. Set Information on Hotspots
320
+ 11. Connect 360 Degree Images on Hotspots
321
+ 12. 360 Video Tour
322
+
323
+
324
+ == Changelog ==
325
+
326
+ = 7.3.5 (27-01-2022) =
327
+ * Update: Checked Compatibility with WordPress 5.9.
328
+ * Update: Checked Compatibility with WooCommerce 6.1.1.
329
+ * Update: Checked Compatibility with Gutenberg 12.4.1.
330
+ * Update: Checked Compatibility with Elementor 3.5.4.
331
+ * Update: Checked Compatibility with Visual Composer 42.1.
332
+ * Update: Checked Compatibility with Fluent Forms 4.3.0.
333
+ * Update: Rollback version updated to 7.3.4.
334
+ * New: Disable On-hover content for mobile devices.
335
+ * New: Open URL in the same tab from hotspots.
336
+ * Fix: Height field doesn't work for YouTube videos - WPVR Elementor widget.
337
+ * Fix: Width and Height fields don't work for YouTube video tours - WPVR Gutenberg block.
338
+
339
+
340
+ = 7.3.4 (13-10-2021) =
341
+ * Update: Checked Compatibility with WooCommerce 5.8.0.
342
+ * Update: Checked Compatibility with Elementor 3.4.5.
343
+ * Update: Rollback Versions updated to 7.3.3.
344
+ * New: Preview Option in General Section.
345
+ * New: Warning Message in Video Tab if no video is assigned.
346
+ * Fix: Endless Loading Loop in Tour Preview.
347
+ * Fix: Video Tab Warning - 'X' Button Functionality Issue.
348
+ * Fix: Warning Message if Scene ID & 360 Degree Image is missing.
349
+ * Fix: Warning Message while Enabling video.js control, if Exclude Field is empty.
350
+ * Tweak: Video Tab Warning Message.
351
+
352
+
353
+ = 7.3.3 (16-09-2021) =
354
+ * Update: Checked Compatibility with WordPress 5.8.1.
355
+ * Update: Checked Compatibility with PHP 8.0.
356
+ * Update: Rollback Versions Updated to 7.3.2.
357
+ * Fix: PHP Error Notices.
358
+ * New: Full-window Virtual Tour Support.
359
+ * New: Control video.js loading on specific pages.
360
+
361
+
362
+ = 7.3.2 (04-08-2021) =
363
+ * Fix: PHP Error Notices.
364
+
365
+ = 7.3.1 (27-07-2021) =
366
+ * Update: Checked Compatibility with WordPress 5.8.
367
+ * Fix: PHP Error Notice.
368
+ * Tweak: Dual Action Warning for Auto-Rotation redesigned & updated.
369
+ * Tweak: Invalid Pitch Value Warning redesigned & updated.
370
+ * Tweak: Invalid Yaw Value Warning redesigned & updated.
371
+ * Tweak: Invalid Default Zoom Value Warnings redesigned & updated.
372
+ * Tweak: Invalid Max-zoom Value Warning redesigned & updated.
373
+ * Tweak: Max-zoom Value Exceeded Warning redesigned & updated.
374
+ * Tweak: Invalid Min-zoom Value Warning redesigned & updated.
375
+ * Tweak: Low Min-zoom Value Warning redesigned & updated.
376
+
377
+
378
+ = 7.3.0 (18-06-2021) =
379
+ * Tweak: WP VR logo & Text Aligned on Dashboard.
380
+ * Tweak: Scene Image Missing Notice redesigned & updated.
381
+ * Tweak: Scene ID Missing Notice redesigned & updated.
382
+ * Tweak: Invalid Scene ID Notice redesigned & updated.
383
+ * Tweak: Duplicate Scene ID Notice redesigned & updated.
384
+ * Tweak: Default Scene Change Notice redesigned & updated.
385
+ * Tweak: Scene Deletion Notice redesigned & updated.
386
+ * Tweak: Scene Limit Reached Notice redesigned & updated.
387
+ * Tweak: Invalid Hotspot ID Notice redesigned & updated.
388
+ * Tweak: Duplicate Hotspot ID Notice redesigned & updated.
389
+ * Tweak: On-click Content + URL Dual Input Notice redesigned & updated.
390
+ * Tweak: Custom Icon + Custom Icon Class Dual Input Notice redesigned & updated.
391
+ * Tweak: Target Scene Missing Notice redesigned & updated.
392
+ * Tweak: Hotspot Limit Reached Notice redesigned & updated.
393
+ * Tweak: Hotspot Deletion Notice redesigned & updated.
394
+ * Fix: Autoplay bug for 360-degree videos.
395
+
396
+ = 7.2.9 (25-05-2021) =
397
+ * New: Warning message added for Street View tab.
398
+ * Tweak: Rollback versions updated.
399
+
400
+ = 7.2.8 (06-05-2021) =
401
+ * Fix: PHP Warnings on Backend & Frontend
402
+ * Fix: Audio Issue for self-hosted videos on hotspots
403
+
404
+ = 7.2.7 (12-04-2021) =
405
+ * Tweak: Rollback versions updated.
406
+ * Tweak: Video tab warning pop-up redesigned.
407
+ * New: Preview Image Text is made dynamic.
408
+ * New: On the Hotspots tab, the active Scene ID will be mentioned.
409
+ * Fix: Elementor Widget Issue.
410
+ * Fix: Preview Image Text font mismatch.
411
+
412
+ = 7.2.6 (22-03-2021) =
413
+ * Tweak: Rollback versions updated
414
+ * Fix: Dummy notice removed
415
+ * Fix: AppSero Updater Error
416
+
417
+ = 7.2.5 (11-03-2021) =
418
+ * Update: Checked compatibility with WordPress 5.7
419
+ * New: Visual Composer element support
420
+ * Fix: PHP warnings on the dashboard
421
+
422
+ = 7.2.4 (24-02-2021) =
423
+ * Tweak: Made the Enable Script Control option conditional
424
+ * Tweak: Added pop-up warning when switching to a video tour
425
+ * Fix: Style conflict issue with Phlox Pro theme
426
+ * Fix: Tour ID Dropdown responsiveness issue for WP VR Elementor Widget
427
+ * Fix: Icons of deleted scenes showing up
428
+
429
+ = 7.2.3 (09-02-2021) =
430
+ * Tweak: Removed Export tab alert
431
+ * Fix: PHP warnings on the activation
432
+
433
+ = 7.2.2 (21-12-2020) =
434
+ * Tweak: Removed dummy functions
435
+ * Fix: Browser JS conflict
436
+
437
+ = 7.2.1 (17-12-2020) =
438
+ * New: Warning message added for video tours
439
+ * Fix: VR audio JS error
440
+ * Fix: Tab and accordion issue
441
+ * Tweak: Modified rollback options
442
+
443
+ = 7.2.0 (09-12-2020) =
444
+ * Update: Checked compatibility with WordPress 5.6
445
+ * Fix: VR audio conflict
446
+
447
+ = 7.1.0 (19-11-2020) =
448
+ * Tweak: Modified Black Friday banner
449
+
450
+ = 7.0.0 (19-11-2020) =
451
+ * New: Added Black Friday banner
452
+
453
+ = 6.9.0 (16-11-2020) =
454
+ * New: Accordion support for Elementor
455
+ * Fix: Iframe conflict
456
+ * Fix: Control button overlap issue
457
+
458
+ = 6.8.0 (22-10-2020) =
459
+ * New: Display Scene Gallery by default
460
+
461
+ = 6.7.0 (18-09-2020) =
462
+ * Tweak: Modified Import/Export
463
+ * Tweak: Added switch for Mobile Media Resizer
464
+ * Fix: Conflict with OceanWP Theme
465
+
466
+ = 6.6.0 (09-09-2020) =
467
+ * Tweak: Modified Scene Gallery preview
468
+ * Tweak: Modified Mobile Media Resizer
469
+ * Fix: Video tab bug
470
+ * Fix: Error handled for allow open URL
471
+
472
+ = 6.5.0 (31-08-2020) =
473
+ * Update: Updated Appsero version
474
+ * Fix: Empty needle warning
475
+
476
+ = 6.4.0 (19-08-2020) =
477
+ * Fix: Media Resizer fixed
478
+
479
+ = 6.3.0 (14-08-2020) =
480
+ * Update: Checked compatibility with WordPress 5.5
481
+ * New: Mobile Media Resizer option added
482
+ * Fix: Google Street View responsive issue
483
+
484
+ = 6.2.0 (07-08-2020) =
485
+ * New: Oxygen Builder Element support added
486
+ * New: Multi-site support added
487
+ * New: Dynamic Front-end Notice option added
488
+
489
+ = 6.1.0 (31-7-2020) =
490
+ * Fix: Style issue for On-click content
491
+
492
+ = 6.0.0 (28-7-2020) =
493
+ * Fix: Safari browser issues
494
+ * Fix: JS error for optimization
495
+
496
+ = 5.9.0 (27-7-2020) =
497
+ * Fix: Export/Import SSL error
498
+ * Fix: JS errors
499
+
500
+ = 5.8.0 (25-7-2020) =
501
+ * New: Submit restriction to control gyro for SSL
502
+ * New: Add-on compatibility added
503
+ * New: Mobile notice added
504
+ * Tweak: License input type changed to password
505
+ * Fix: On-click content container responsive issue
506
+
507
+ = 5.7.0 (20-7-2020) =
508
+ * Update: User Interface updated
509
+ * New: Rollback feature added
510
+ * Tweak: Gallery image size changed to thumbnail
511
+ * Tweak: Gallery Scene IDs replaced with Scene Titles
512
+ * Fix: Youtube 360 video autoplay issue
513
+ * Fix: Company logo style issue
514
+ * Fix: Saving draft issue
515
+
516
+ = 5.6.0 (15-06-2020) =
517
+ * New: Tour Background Music support added
518
+
519
+ = 5.5.0 (12-05-2020) =
520
+ * Tweak: Self-hosted videos pause on closing window
521
+ * Fix: Custom control button conflict
522
+ * Fix: On-click content container issue
523
+
524
+ = 5.4.0 (27-04-2020) =
525
+ * Fix: Device Orientation control issue
526
+
527
+ = 5.3.0 (16-04-2020) =
528
+ * New: Keyboard zoom control added
529
+ * Tweak: Style modified for Company Logo
530
+
531
+ = 5.2.0 (02-04-2020) =
532
+ * New: Author URL field added
533
+
534
+ = 5.1.0 (26-03-2020) =
535
+ * New: Auto device based gyro option added
536
+
537
+ = 5.0.0 =
538
+ * New: Home button added for returning to the default scene
539
+
540
+ = 4.9.0 =
541
+ * New: Scene title field added for Scene Gallery
542
+
543
+ = 4.8.0 =
544
+ * Tweak: Script & Style files control modified
545
+
546
+ = 4.7.0 =
547
+ * New: High-resolution image upload option added
548
+ * Fix: Gyroscope conflict with default controls
549
+ * Fix: Input type error
550
+
551
+ = 4.6.0 =
552
+ * Fix: Gyroscope support issue for custom controls
553
+
554
+ = 4.5.0 =
555
+ * Update: Library updated
556
+ * Fix: Default icon issue on android smartphones
557
+
558
+ = 4.4.0 =
559
+ * New: Option to Control plugin scripts and styles to load them on specific pages only
560
+ * Fix: Draggable error fix
561
+
562
+ = 4.3.0 =
563
+ * New: Added option to enable/disable Draggable feature
564
+ * Tweak: Settings titles capitalized
565
+
566
+ = 4.2.0 =
567
+ * New: Added option to enable/disable Keyboard Controls
568
+ * Fix: Font-Awesome conflict
569
+
570
+ = 4.1.0 =
571
+ * New: Autoplay and Loop options added for 360-degree videos
572
+ * New: Mouse scroll support added
573
+
574
+ = 4.0.0 =
575
+ * New: Option to control User Roles for the plugin
576
+
577
+ = 3.9.0 =
578
+ * Fix: Gallery toggle issue
579
+
580
+ = 3.8.0 =
581
+ * Tweak: Loading box design changed
582
+
583
+ = 3.7.0 =
584
+ * New: Partial Panorama support
585
+
586
+ = 3.6.0 =
587
+ * Update: JS optimization removed
588
+
589
+ = 3.5.0 =
590
+ * Fix: Front-end errors
591
+
592
+ = 3.4.9 =
593
+ * Tweak: JS & CSS loading optimized
594
+
595
+ = 3.4.8 =
596
+ * Tweak: Optimized the backend preview loading
597
+
598
+ = 3.4.7 =
599
+ * Google street view embed
600
+
601
+ = 3.4.6 =
602
+ * Custom control feature
603
+ * WordPress 5.3 bug fix
604
+
605
+ = 3.4.5 =
606
+ * WordPress.com hosting support fixed
607
+
608
+ = 3.4.4 =
609
+ * Rotation fix on default scene face
610
+ * Rotation fix on hotspots to target scene face
611
+ * Plugin library update
612
+
613
+ = 3.4.3 =
614
+ * Autorotation error fix
615
+ * Ziparchive class error fix
616
+
617
+ = 3.4.2 =
618
+ * Gallery carousel design fix
619
+ * CSS and js restricted
620
+
621
+ = 3.4.1 =
622
+ * Gallery carousal fix
623
+
624
+ = 3.4.0 =
625
+ * Repeater delete confirmation fix.
626
+
627
+ = 3.3.0 =
628
+ * Placeholder change.
629
+
630
+ = 3.2.0 =
631
+ * Custom scene gallery conflict and a bug fix for iPhone and iPad.
632
+
633
+ = 3.1.0 =
634
+ * Custom scene gallery.
635
+ * Border radius tag added.
636
+ * Modified preview window.
637
+
638
+ = 3.0.0 =
639
+ * File import & export system added.
640
+ * Fullwidth tag added.
641
+ * Placeholder color changed.
642
+
643
+ = 2.9.0 =
644
+ * Tour selector updated on VR block.
645
+
646
+ = 2.8.0 =
647
+ * Dynamic error reporting added.
648
+
649
+ = 2.7.0 =
650
+ * Post memory limit fix.
651
+
652
+ = 2.6.0 =
653
+ * Duplicate tour.
654
+ * Blink animation automated.
655
+ * Language issue fixed.
656
+
657
+ = 2.5.0 =
658
+ * Gyroscope support on the premium version.
659
+ * Appsero error fix.
660
+ * Gutenberg block column layout fix.
661
+
662
+ = 2.4.0 =
663
+ * Font-awesome icon load fix.
664
+ * Plugin conflict fix.
665
+ * Rextheme link removed from premium version.
666
+
667
+ = 2.3.0 =
668
+ * Elementor widget support for free.
669
+ * Mozilla Firefox bug fix.
670
+ * CDN load fix.
671
+ * Block input dropdown added.
672
+ * Hotspot based scene face added.
673
+
674
+ = 2.2.0 =
675
+ * Scene title and author tag support.
676
+ * Elementor widget support.
677
+
678
+ = 2.1.1 =
679
+ * Dynamic Font-Awesome icon added for hotspots.
680
+ * Dynamic color picker added for hotspot color.
681
+ * Custom panorama compass support.
682
+ * Default zoom level.
683
+ * Maximum and minimum zoom range.
684
+ * Customize each scene’s default face on load.
685
+ * Scene grab control and custom boundary for each scene.
686
+
687
+ = 2.1.0 =
688
+ * Save draft fixed.
689
+ * Error handling fixed.
690
+ * Video support added.
691
+ * Slider revolution conflict fix.
692
+ * Auto rotation
693
+ * Rotation pause and stop control
694
+
695
+ = 2.0.0 =
696
+ * Gutenberg block support
697
+ * Bug fix.
698
+
699
+ = 1.0.1 =
700
+ * Default scene can be selected from the scene tab.
701
+ * Default height and width are given for shortcodes.
702
+
703
+ = 1.0 =
704
+ * Hotspot custom icon support.
705
+ * On screen control available.
706
+
707
+ == Upgrade Notice ==
708
  Please do update the WP VR to the latest version. Each update makes sure your plugin is supporting all tour features.
admin/class-wpvr-admin-pages.php CHANGED
@@ -1,38 +1,38 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
- /**
4
- * The admin-specific functionality of the plugin.
5
- *
6
- * @link http://rextheme.com/
7
- * @since 1.0.0
8
- *
9
- * @package Wpvr
10
- * @subpackage Wpvr/admin
11
- */
12
-
13
- class Wpvr_Admin_Pages {
14
-
15
- /**
16
- * Admin page setup is specified in this area.
17
- */
18
- function wpvr_add_admin_pages() {
19
-
20
- add_menu_page( 'WP VR', 'WP VR', 'manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'),plugins_url(). '/wpvr/images/icon.png' , 25);
21
-
22
- add_submenu_page( 'wpvr', 'WP VR', 'Get Started','manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'));
23
-
24
- add_submenu_page( 'wpvr', 'WP VR', 'Tours','manage_options', 'edit.php?post_type=wpvr_item', NULL);
25
-
26
- add_submenu_page( 'wpvr', 'WP VR', 'Add New Tour','manage_options', 'post-new.php?post_type=wpvr_item', NULL);
27
-
28
- do_action('wpvr_pro_license_page');
29
-
30
- }
31
-
32
- function wpvr_admin_doc() {
33
- require_once plugin_dir_path(__FILE__) . '/partials/wpvr_documentation.php';
34
- }
35
- function wpvr_pro_admin_doc() {
36
- require_once plugin_dir_path(__FILE__) . '/partials/wpvr_license.php';
37
- }
38
- }
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+ /**
4
+ * The admin-specific functionality of the plugin.
5
+ *
6
+ * @link http://rextheme.com/
7
+ * @since 1.0.0
8
+ *
9
+ * @package Wpvr
10
+ * @subpackage Wpvr/admin
11
+ */
12
+
13
+ class Wpvr_Admin_Pages {
14
+
15
+ /**
16
+ * Admin page setup is specified in this area.
17
+ */
18
+ function wpvr_add_admin_pages() {
19
+
20
+ add_menu_page( 'WP VR', 'WP VR', 'manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'),plugins_url(). '/wpvr/images/icon.png' , 25);
21
+
22
+ add_submenu_page( 'wpvr', 'WP VR', 'Get Started','manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'));
23
+
24
+ add_submenu_page( 'wpvr', 'WP VR', 'Tours','manage_options', 'edit.php?post_type=wpvr_item', NULL);
25
+
26
+ add_submenu_page( 'wpvr', 'WP VR', 'Add New Tour','manage_options', 'post-new.php?post_type=wpvr_item', NULL);
27
+
28
+ do_action('wpvr_pro_license_page');
29
+
30
+ }
31
+
32
+ function wpvr_admin_doc() {
33
+ require_once plugin_dir_path(__FILE__) . '/partials/wpvr_documentation.php';
34
+ }
35
+ function wpvr_pro_admin_doc() {
36
+ require_once plugin_dir_path(__FILE__) . '/partials/wpvr_license.php';
37
+ }
38
+ }
admin/class-wpvr-admin.php CHANGED
@@ -1,2643 +1,2802 @@
1
- <?php
2
- if (! defined('ABSPATH')) {
3
- exit;
4
- } // Exit if accessed directly
5
- /**
6
- * The admin-specific functionality of the plugin.
7
- *
8
- * @link http://rextheme.com/
9
- * @since 1.0.0
10
- *
11
- * @package Wpvr
12
- * @subpackage Wpvr/admin
13
- */
14
-
15
- /**
16
- * The admin-specific functionality of the plugin.
17
- *
18
- * Defines the plugin name, version, and two examples hooks for how to
19
- * enqueue the admin-specific stylesheet and JavaScript.
20
- *
21
- * @package Wpvr
22
- * @subpackage Wpvr/admin
23
- * @author Rextheme <sakib@coderex.co>
24
- */
25
- class Wpvr_Admin
26
- {
27
-
28
- /**
29
- * The ID of this plugin.
30
- *
31
- * @since 1.0.0
32
- * @access private
33
- * @var string $plugin_name The ID of this plugin.
34
- */
35
- private $plugin_name;
36
-
37
- /**
38
- * The version of this plugin.
39
- *
40
- * @since 1.0.0
41
- * @access private
42
- * @var string $version The current version of this plugin.
43
- */
44
- private $version;
45
-
46
- /**
47
- * The post type of this plugin.
48
- *
49
- * @since 1.0.0
50
- */
51
- private $post_type;
52
-
53
- /**
54
- * Initialize the class and set its properties.
55
- *
56
- * @since 1.0.0
57
- * @param string $plugin_name The name of this plugin.
58
- * @param string $version The version of this plugin.
59
- */
60
- public function __construct($plugin_name, $version, $post_type)
61
- {
62
- $this->plugin_name = $plugin_name;
63
- $this->version = $version;
64
- $this->post_type = $post_type;
65
- }
66
-
67
- /**
68
- * Register the stylesheets for the admin area.
69
- *
70
- * @since 1.0.0
71
- */
72
- public function enqueue_styles()
73
- {
74
-
75
- /**
76
- * This function is provided for demonstration purposes only.
77
- *
78
- * An instance of this class should be passed to the run() function
79
- * defined in Wpvr_Loader as all of the hooks are defined
80
- * in that particular class.
81
- *
82
- * The Wpvr_Loader will then create the relationship
83
- * between the defined hooks and the functions defined in this
84
- * class.
85
- */
86
-
87
- $screen = get_current_screen();
88
- if ($screen->id=="toplevel_page_wpvr") {
89
- wp_enqueue_style('materialize-css', plugin_dir_url(__FILE__) . 'css/materialize.min.css', array(), $this->version, 'all');
90
- wp_enqueue_style('materialize-icons', plugin_dir_url(__FILE__) . 'lib/materializeicon.css', array(), $this->version, 'all');
91
- wp_enqueue_style('owl-css', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', array(), $this->version, 'all');
92
-
93
- wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
94
- }
95
-
96
- if ($screen->id=="wpvr_item") {
97
- wp_enqueue_style($this->plugin_name . 'fontawesome', plugin_dir_url(__FILE__) . 'lib/fontawesome/css/all.css', array(), $this->version, 'all');
98
- wp_enqueue_style('icon-picker-css', plugin_dir_url(__FILE__) . 'css/jquery.fonticonpicker.min.css', array(), $this->version, 'all');
99
- wp_enqueue_style('icon-picker-css-theme', plugin_dir_url(__FILE__) . 'css/jquery.fonticonpicker.grey.min.css', array(), $this->version, 'all');
100
- wp_enqueue_style('owl-css', plugin_dir_url(__FILE__) . 'css/owl.carousel.css', array(), $this->version, 'all');
101
- wp_enqueue_style('panellium-css', plugin_dir_url(__FILE__) . 'lib/pannellum/src/css/pannellum.css', array(), true);
102
- wp_enqueue_style('videojs-css', plugin_dir_url(__FILE__) . 'lib/pannellum/src/css/video-js.css', array(), true);
103
- wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
104
- }
105
- }
106
-
107
- /**
108
- * Register the JavaScript for the admin area.
109
- *
110
- * @since 1.0.0
111
- */
112
- public function enqueue_scripts()
113
- {
114
-
115
- /**
116
- * This function is provided for demonstration purposes only.
117
- *
118
- * An instance of this class should be passed to the run() function
119
- * defined in Wpvr_Loader as all of the hooks are defined
120
- * in that particular class.
121
- *
122
- * The Wpvr_Loader will then create the relationship
123
- * between the defined hooks and the functions defined in this
124
- * class.
125
- */
126
-
127
- $wpvr_list = array();
128
- $wpvr_list[] = array('value'=>0,'label'=>'None');
129
- $args = array(
130
- 'numberposts' => -1,
131
- 'post_type' => 'wpvr_item'
132
- );
133
-
134
- $wpvr_posts = get_posts( $args );
135
- foreach ($wpvr_posts as $wpvr_post) {
136
- $wpvr_list[] = array('value'=>$wpvr_post->ID,'label'=>$wpvr_post->post_title);
137
- }
138
-
139
- wp_enqueue_script('wp-api');
140
- $adscreen = get_current_screen();
141
- wp_enqueue_media();
142
- if ($adscreen->id=="wpvr_item" || $adscreen->id=="toplevel_page_wpvr") {
143
- wp_enqueue_script('wpvr-icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
144
- wp_enqueue_script('panellium-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/pannellum.js', array(), true);
145
- wp_enqueue_script('panelliumlib-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
146
- wp_enqueue_script('videojs-js', plugin_dir_url(__FILE__) .'js/video.js', array('jquery'), true);
147
- wp_enqueue_script('panelliumvid-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/videojs-pannellum-plugin.js', array(), true);
148
- wp_enqueue_script('jquery-repeater', plugin_dir_url(__FILE__) .'js/jquery.repeater.min.js', array('jquery'), true);
149
- wp_enqueue_script('icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
150
- wp_enqueue_script('owl', plugin_dir_url(__FILE__) . 'js/owl.carousel.js', array( 'jquery' ), false);
151
- wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/wpvr-admin.js', array( 'jquery' ), $this->version, true);
152
- wp_localize_script($this->plugin_name, 'wpvr_obj', array(
153
- 'ajaxurl' => admin_url('admin-ajax.php'),
154
- 'ajax_nonce' => wp_create_nonce('wpvr'),
155
- ));
156
-
157
-
158
-
159
- }
160
-
161
- if ($adscreen->id=="toplevel_page_wpvr") {
162
- wp_enqueue_script('materialize-js', plugin_dir_url(__FILE__) . 'js/materialize.min.js', array( 'jquery' ), $this->version, false);
163
- }
164
-
165
- wp_enqueue_script('owl-js', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js', array( 'jquery' ), false);
166
- wp_enqueue_script('wpvr-global', plugin_dir_url(__FILE__) . 'js/wpvr-global.js', array( 'jquery' ), $this->version, false);
167
- wp_localize_script('wpvr-global', 'wpvr_global_obj', array(
168
- 'ajaxurl' => admin_url('admin-ajax.php'),
169
- 'site_url' => site_url() . '/wp-json/',
170
- 'ajax_nonce' => wp_create_nonce('wpvr_global'),
171
- ));
172
- wp_localize_script('wpvr-global', 'wpvr_id_options', $wpvr_list);
173
- }
174
-
175
-
176
- /**
177
- * Plugin action links
178
- *
179
- * @param $links
180
- * @return array
181
- */
182
- public function plugin_action_links_wpvr($actions, $plugin_file, $plugin_data, $context)
183
- {
184
- $actions['get_started'] = sprintf(
185
- '<a href="%s">%s</a>',
186
- esc_url(admin_url('admin.php?page=wpvr')),
187
- esc_html__('Get Started', 'wpvr')
188
- );
189
- $actions['documentation'] = sprintf(
190
- '<a href="%s" target="_blank">%s</a>',
191
- esc_url('https://rextheme.com/docs-category/wp-vr/'),
192
- esc_html__('Documentation', 'wpvr')
193
- );
194
-
195
- if (!apply_filters('is_wpvr_pro_active', false)) {
196
- $actions['go-pro'] = sprintf(
197
- '<a href="%s" target="_blank" style="color: #201cfe; font-weight: bold;">%s</a>',
198
- esc_url('https://rextheme.com/wpvr/#pricing'),
199
- esc_html__('Go Pro', 'wpvr')
200
- );
201
- }
202
- return $actions;
203
- }
204
-
205
-
206
- /**
207
- * Init the edit screen of the plugin post type item
208
- *
209
- * @since 1.0.0
210
- */
211
- public function wpvr_admin_init()
212
- {
213
- /*
214
- * Documentation : https://developer.wordpress.org/reference/functions/add_meta_box/
215
- */
216
-
217
- add_meta_box(
218
- $this->post_type . '_builder__box',
219
- __('Tour Preview', $this->plugin_name),
220
- array($this, 'wpvr_display_meta_box_builder'),
221
- $this->post_type,
222
- 'side',
223
- 'high'
224
- );
225
- }
226
-
227
-
228
- /**
229
- * Register the custom post type
230
- *
231
- * @since 1.0.0
232
- */
233
- public function wpvr_add_plugin_custom_post_type()
234
- {
235
- $labels = array(
236
- 'name' => __('Tours', $this->plugin_name),
237
- 'singular_name' => __('Tours', $this->plugin_name),
238
- 'add_new' => __('Add New Tour', $this->plugin_name),
239
- 'add_new_item' => __('Add New Tour', $this->plugin_name),
240
- 'edit_item' => __('Edit Tour', $this->plugin_name),
241
- 'new_item' => __('New Tour', $this->plugin_name),
242
- 'view_item' => __('View Tour', $this->plugin_name),
243
- 'search_items' => __('Search Wpvr Tour', $this->plugin_name),
244
- 'not_found' => __('No Wpvr Tour found', $this->plugin_name),
245
- 'not_found_in_trash'=> __('No Wpvr Tour found in Trash', $this->plugin_name),
246
- 'parent_item_colon' => '',
247
- 'all_items' => __('All Tours', $this->plugin_name),
248
- 'menu_name' => __('WP VR', $this->plugin_name),
249
- );
250
-
251
- $args = array(
252
- 'labels' => $labels,
253
- 'public' => false,
254
- 'show_ui' => true,
255
- 'show_in_menu' => false,
256
- 'menu_position' => 100,
257
- 'supports' => array( 'title' ),
258
- 'menu_icon' => plugins_url(). '/wpvr/images/icon.png',
259
- 'capabilities' => array(
260
- 'edit_post' => 'edit_wpvr_tour',
261
- 'edit_posts' => 'edit_wpvr_tours',
262
- 'edit_others_posts' => 'edit_other_wpvr_tours',
263
- 'publish_posts' => 'publish_wpvr_tours',
264
- 'read_post' => 'read_wpvr_tour',
265
- 'read_private_posts' => 'read_private_wpvr_tours',
266
- 'delete_post' => 'delete_wpvr_tour'
267
- ),
268
- 'map_meta_cap' => true,
269
- );
270
-
271
- /**
272
- * Documentation : https://codex.wordpress.org/Function_Reference/register_post_type
273
- */
274
- register_post_type($this->post_type, $args);
275
- }
276
-
277
- /**
278
- * Populates the data in the custom columns
279
- *
280
- * @since 1.0.0
281
- */
282
- public function wpvr_manage_posts_custom_column($column_name)
283
- {
284
- $post = get_post();
285
-
286
- switch ($column_name) {
287
- case 'shortcode':
288
- echo '<code>[wpvr id="' . $post->ID . '"]</code>';
289
- break;
290
- default:
291
- break;
292
- }
293
- }
294
-
295
- /**
296
- * Adds the custom columns to the post type admin screen
297
- *
298
- * @since 1.0.0
299
- */
300
- public function wpvr_manage_post_columns()
301
- {
302
- $columns = array(
303
- 'cb' => '<input type="checkbox" />',
304
- 'title' => __('Title', $this->plugin_name),
305
- 'shortcode' => __('Shortcodes', $this->plugin_name),
306
- 'author' => __('Author', $this->plugin_name),
307
- 'date' => __('Date', $this->plugin_name)
308
- );
309
- return $columns;
310
- }
311
-
312
- /**
313
- * Sets the messages for the custom post type
314
- *
315
- * @since 1.0.0
316
- */
317
- public function wpvr_post_updated_messages($messages)
318
- {
319
- $messages[$this->post_type][1] = __('WP VR item updated.', $this->plugin_name);
320
- $messages[$this->post_type][4] = __('WP VR item updated.', $this->plugin_name);
321
-
322
- return $messages;
323
- }
324
-
325
- /**
326
- * Render the shortcode box for this plugin.
327
- *
328
- * @since 1.0.0
329
- */
330
- public function wpvr_display_meta_box_shortcode()
331
- {
332
- include_once('partials/wpvr-meta-box-shortcode-display.php');
333
- }
334
-
335
- /**
336
- * Render the builder box for this plugin.
337
- *
338
- * @since 1.0.0
339
- */
340
- public function wpvr_display_meta_box_builder()
341
- {
342
- include_once('partials/wpvr-meta-box-builder-display.php');
343
- }
344
-
345
- /**
346
- * Custom Metabox
347
- */
348
- public function wpvr_add_setup_metabox()
349
- {
350
- add_meta_box('setup', __('Setup'), array($this, 'wpvr_setup'), 'wpvr_item', 'normal', 'high');
351
- }
352
- public function wpvr_setup($post)
353
- {
354
- $data_limit = 5;
355
-
356
- $scene_limit = $data_limit + 1;
357
- $postdata = get_post_meta($post->ID, 'panodata', true);
358
-
359
-
360
- $autoload = true;
361
- if (isset($postdata["autoLoad"])) {
362
- $autoload = $postdata["autoLoad"];
363
- }
364
-
365
- $control = true;
366
- if (isset($postdata["showControls"])) {
367
- $control = $postdata["showControls"];
368
- }
369
-
370
- $default_scene = '';
371
- if (isset($postdata["defaultscene"])) {
372
- $default_scene = $postdata["defaultscene"];
373
- }
374
-
375
- $preview = '';
376
- if (isset($postdata['preview'])) {
377
- $preview = $postdata['preview'];
378
- }
379
- $previewtext = '';
380
- if (isset($postdata['previewtext'])) {
381
- $previewtext = $postdata['previewtext'];
382
- }
383
-
384
- $autorotation = '';
385
- if (isset($postdata["autoRotate"])) {
386
- $autorotation = $postdata["autoRotate"];
387
- } else {
388
- $autorotation = -5;
389
- }
390
- $autorotationinactivedelay = '';
391
- if (isset($postdata["autoRotateInactivityDelay"])) {
392
- $autorotationinactivedelay = $postdata["autoRotateInactivityDelay"];
393
- }
394
-
395
- $autorotationstopdelay = '';
396
- if (isset($postdata["autoRotateStopDelay"])) {
397
- $autorotationstopdelay = $postdata["autoRotateStopDelay"];
398
- }
399
-
400
- $scene_fade_duration = '';
401
- if (isset($postdata["scenefadeduration"])) {
402
- $scene_fade_duration = $postdata["scenefadeduration"];
403
- }
404
-
405
- $pano_data = '';
406
- if (isset($postdata["panodata"])) {
407
- $pano_data = $postdata["panodata"];
408
- }
409
-
410
- $custom_icon_array = new Wpvr_fontawesome_icons();
411
- $custom_icon = $custom_icon_array->icon;
412
-
413
- $html = '';
414
-
415
-
416
-
417
- $html .= '<div class="pano-setup">';
418
-
419
- // active tab variables
420
- $active_tab = 'general';
421
- $scene_active_tab = 1;
422
- $hotspot_active_tab = 1;
423
- if (isset($_GET['active_tab'])) {
424
- $active_tab = $_GET['active_tab'];
425
- }
426
- if (isset($_GET['scene'])) {
427
- $scene_active_tab = $_GET['scene'];
428
- }
429
- if (isset($_GET['hotspot'])) {
430
- $hotspot_active_tab = $_GET['hotspot'];
431
- }
432
-
433
- $html = '';
434
-
435
- $html .= '<div class="pano-setup">';
436
-
437
- $html .= '<input type="hidden" value="'.$active_tab.'" name="wpvr_active_tab" id="wpvr_active_tab"/>';
438
- $html .= '<input type="hidden" value="'.$scene_active_tab.'" name="wpvr_active_scenes" id="wpvr_active_scenes"/>';
439
- $html .= '<input type="hidden" value="'.$hotspot_active_tab.'" name="wpvr_active_hotspot" id="wpvr_active_hotspot"/>';
440
-
441
- //--------start pano alert------
442
- $html .= '<div class="pano-alert scene-alert">';
443
- $html .= '<div class="pano-error-wrapper">';
444
- $html .= '<div class="pano-error-body">';
445
- $html .= '<span class="cross pano-error-close-btn">
446
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
447
- <path fill-rule="evenodd" clip-rule="evenodd" d="M18.7778 18.7786C14.4819 23.074 7.51728 23.0738 3.22169 18.778C-1.0739 14.4823 -1.0739 7.51769 3.22169 3.22196C7.51728 -1.07378 14.4819 -1.07402 18.7778 3.22143C20.8409 5.28436 22 8.08242 22 11C22 13.9176 20.8409 16.7156 18.7778 18.7786ZM14.9278 8.21857L12.1071 11L14.9278 13.7814C15.0865 13.93 15.1765 14.1376 15.1765 14.355C15.1765 14.5724 15.0865 14.78 14.9278 14.9286C14.7795 15.0756 14.5788 15.1576 14.3699 15.1564C14.1638 15.1556 13.9663 15.0737 13.8199 14.9286L10.9992 12.1079L8.21778 14.9286C8.07143 15.0737 7.8739 15.1556 7.66778 15.1564C7.45893 15.1576 7.2582 15.0756 7.10992 14.9286C6.80528 14.6221 6.80528 14.1272 7.10992 13.8207L9.89135 11L7.10992 8.21857C6.84295 7.90683 6.8609 7.44213 7.15112 7.15191C7.44134 6.8617 7.90604 6.84375 8.21778 7.11071L10.9992 9.89214L13.7806 7.11071C13.9785 6.9058 14.2707 6.82202 14.5471 6.89095C14.8236 6.95988 15.0422 7.17104 15.1207 7.44488C15.1992 7.71872 15.1257 8.01365 14.9278 8.21857ZM4.34363 4.34471C8.02058 0.663508 13.9845 0.656605 17.6699 4.32929C19.4452 6.09842 20.4431 8.50157 20.4431 11.0079C20.4431 13.5141 19.4452 15.9173 17.6699 17.6864C13.9845 21.3591 8.02058 21.3522 4.34363 17.671C0.666691 13.9898 0.666691 8.02591 4.34363 4.34471Z" fill="#A8A7BE"/>
448
- </svg>
449
- </span>';
450
-
451
- $html .= '<span class="icon pano-warning">
452
- <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
453
- <path fill-rule="evenodd" clip-rule="evenodd" d="M0 15C0 23.2843 6.71573 30 15 30C23.2843 30 30 23.2843 30 15C30 6.71573 23.2843 0 15 0C6.71573 0 0 6.71573 0 15ZM2 15C2 7.8203 7.8203 2 15 2C22.1797 2 28 7.8203 28 15C28 22.1797 22.1797 28 15 28C7.8203 28 2 22.1797 2 15Z" fill="#004EFA"/>
454
- <circle cx="8.5" cy="11.5" r="1.5" fill="#004EFA"/>
455
- <circle cx="21.5" cy="11.5" r="1.5" fill="#004EFA"/>
456
- <path d="M20.9993 21.9932C20.7336 21.995 20.4781 21.8728 20.2894 21.6537C17.6429 18.5603 13.3571 18.5603 10.7106 21.6537C10.5228 21.8753 10.2673 22 10.0007 22C9.73407 22 9.4785 21.8753 9.29076 21.6537C8.90308 21.1971 8.90308 20.4596 9.29076 20.0029C12.7241 15.999 18.2759 15.999 21.7092 20.0029C22.0969 20.4596 22.0969 21.1971 21.7092 21.6537C21.5205 21.8728 21.2651 21.995 20.9993 21.9932V21.9932Z" fill="#004EFA"/>
457
- </svg>
458
- </span>';
459
-
460
- $html .= '<div class="pano-error-message"></div>';
461
-
462
- $html .= '</div>';
463
- //---end error body---
464
-
465
- //---error footer---
466
- $html .= '<div class="pano-error-footer">';
467
- $html .= '<ul>';
468
- $html .= '<li class="pano-error-close">';
469
- $html .= '<a href="https://rextheme.com/wpvr/" target="_blank" >Upgrade to Pro</a>';
470
- $html .= '</li>';
471
- $html .= '</ul>';
472
- $html .= '</div>';
473
- $html .= '</div>';
474
- $html .= '</div>';
475
- //--------end pano alert------
476
-
477
- $html .='<div class="rex-pano-tabs">';
478
- $html .='<nav class="rex-pano-tab-nav rex-pano-nav-menu main-nav" id="wpvr-main-nav">';
479
- $html .='<ul>';
480
- $html .='<li class="logo"><img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/logo.png'.'" alt="logo" /></li>';
481
-
482
- $html .='<li class="general active" data-screen="general">';
483
- $html .='<span data-href="#general">';
484
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-regular.png'.'" alt="icon" class="regular" />';
485
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-hover.png'.'" alt="icon" class="hover" />';
486
- $html .=''.__('General', 'wpvr').'</span>';
487
- $html .='</li>';
488
-
489
- $html .='<li class="scene" data-screen="scene">';
490
- $html .='<span data-href="#scenes">';
491
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-regular.png'.'" alt="icon" class="regular" />';
492
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-hover.png'.'" alt="icon" class="hover" />';
493
- $html .=''.__('Scenes', 'wpvr').'</span>';
494
- $html .='</li>';
495
-
496
- $html .='<li class="hotspot" data-screen="hotspot">';
497
- $html .='<span data-href="#scenes">';
498
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-regular.png'.'" alt="icon" class="regular" />';
499
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-hover.png'.'" alt="icon" class="hover" />';
500
- $html .=''.__('Hotspot', 'wpvr').'</span>';
501
- $html .='</li>';
502
-
503
- $html .='<li class="videos" data-screen="video">';
504
- $html .='<span data-href="#video">';
505
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-regular.png'.'" alt="icon" class="regular" />';
506
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-hover.png'.'" alt="icon" class="hover" />';
507
- $html .=''.__('Video', 'wpvr').'</span>';
508
- $html .='</li>';
509
- $html .='</ul>';
510
- $html .='</nav>';
511
-
512
- $html .='<div class="rex-pano-tab-content" id="wpvr-main-tab-contents">';
513
- $html .='<div class="rex-pano-tab general active" id="general">';
514
-
515
- //=start inner tab=
516
- $html .= '<div class="general-inner-tab">';
517
- //=start inner nav=
518
- $html .= '<ul class="inner-nav">';
519
-
520
- $html .='<li class="gen-basic active">';
521
- $html .='<span data-href="#gen-basic">';
522
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-regular.png'.'" alt="icon" class="regular" />';
523
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-hover.png'.'" alt="icon" class="hover" />';
524
- $html .=''.__('Basic Settings ', 'wpvr').'</span>';
525
- $html .='</li>';
526
-
527
- $html .='<li class="gen-advanced">';
528
- $html .='<span data-href="#gen-advanced">';
529
- $html .='<span class="pro-tag">pro</span>';
530
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-regular.png'.'" alt="icon" class="regular" />';
531
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-hover.png'.'" alt="icon" class="hover" />';
532
- $html .=''.__('Advanced Controls ', 'wpvr').'</span>';
533
- $html .='</li>';
534
-
535
- $html .='<li class="gen-control">';
536
- $html .='<span data-href="#gen-control">';
537
- $html .='<span class="pro-tag">pro</span>';
538
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-regular.png'.'" alt="icon" class="regular" />';
539
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-hover.png'.'" alt="icon" class="hover" />';
540
- $html .=''.__('Control Buttons ', 'wpvr').'</span>';
541
- $html .='</li>';
542
-
543
- $html .='<li class="vr-documentation">';
544
- $html .='<a href="https://rextheme.com/docs-category/wp-vr/" target="_blank">'.__('Documentation ', 'wpvr').'</a>';
545
- $html .='</li>';
546
-
547
- $html .= '</ul>';
548
- //=end inner nav=
549
-
550
- $html .= '<div class="inner-nav-content">';
551
- $html .= '<div class="basic-settings-content inner-single-content active" id="gen-basic">';
552
- $html .= '<div class="content-wrapper">';
553
- $html .= '<div class="left">';
554
- //===preview image===//
555
- if (!empty($preview)) {
556
- $html .= '<div class="single-settings preview-setting">';
557
- $html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
558
- $html .= '<div class="form-group">';
559
- $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="'.$preview.'">';
560
- $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
561
- $html .= '<div class="img-upload-frame img-uploaded" style="background-image: url('.$preview.')">';
562
- $html .= '<span class="remove-attachment">x</span>';
563
- $html .= '<label for="vr-preview-img">';
564
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="preview img" />';
565
- $html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
566
- $html .= '</label>';
567
- $html .= '</div>';
568
-
569
- $html .= '</div>';
570
- $html .= '<span class="hints">'.__('This option will not work if the "Tour Autoload" is turned on.', 'wpvr').'</span>';
571
- $html .= '</div>';
572
- } else {
573
- $html .= '<div class="single-settings preview-setting">';
574
- $html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
575
- $html .= '<div class="form-group">';
576
- $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="">';
577
- $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
578
- $html .= '<div class="img-upload-frame">';
579
- $html .= '<span class="remove-attachment">x</span>';
580
- $html .= '<label for="vr-preview-img">';
581
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="icon" />';
582
- $html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
583
- $html .= '</label>';
584
- $html .= '</div>';
585
- $html .= '</div>';
586
- $html .= '</div>';
587
- }
588
- //===preview image end===//
589
-
590
- //=Message on Tour Preview Image=//
591
- if(!empty($previewtext)){
592
- $html .= '<div class="single-settings preview-img-message">';
593
- $html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
594
- $html .= '<input class="previewtext" type="text" name="previewtext" value="'.$previewtext.'"/>';
595
- $html .= '</div>';
596
- }else{
597
- $html .= '<div class="single-settings preview-img-message">';
598
- $html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
599
- $html .= '<input class="previewtext" type="text" name="previewtext" value="Click To Load Panorama"/>';
600
- $html .= '</div>';
601
- }
602
-
603
- //=Autoload setup=//
604
- if ($autoload == true) {
605
- $html .= '<div class="single-settings autoload">';
606
- $html .= '<span>'.__('Tour Autoload: ', 'wpvr').'</span>';
607
-
608
- $html .= '<span class="wpvr-switcher">';
609
- $html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="on" checked />';
610
- $html .= '<label for="wpvr_autoload"></label>';
611
- $html .= '</span>';
612
-
613
- $html .= '<div class="field-tooltip">';
614
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
615
- $html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
616
- $html .= '</div>';
617
- $html .= '</div>';
618
- } else {
619
- $html .= '<div class="single-settings autoload">';
620
- $html .= '<span>'.__('Tour Autoload: ', 'wpvr').' </span>';
621
-
622
- $html .= '<span class="wpvr-switcher">';
623
- $html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="off" />';
624
- $html .= '<label for="wpvr_autoload"></label>';
625
- $html .= '</span>';
626
-
627
- $html .= '<div class="field-tooltip">';
628
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
629
- $html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
630
- $html .= '</div>';
631
- $html .= '</div>';
632
- }
633
- //=Autoload setup End=//
634
-
635
-
636
-
637
- //=Control Setup=
638
- if ($control == false) {
639
- $html .= '<div class="single-settings controls">';
640
- $html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
641
-
642
- $html .= '<span class="wpvr-switcher">';
643
- $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="off" name="controls" type="checkbox" />';
644
- $html .= '<label for="wpvr_controls"></label>';
645
- $html .= '</span>';
646
-
647
- $html .= '<div class="field-tooltip">';
648
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
649
- $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
650
- $html .= '</div>';
651
- $html .= '</div>';
652
- } else {
653
- $html .= '<div class="single-settings controls">';
654
- $html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
655
-
656
- $html .= '<span class="wpvr-switcher">';
657
- $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="on" name="controls" type="checkbox" checked />';
658
- $html .= '<label for="wpvr_controls"></label>';
659
- $html .= '</span>';
660
-
661
- $html .= '<div class="field-tooltip">';
662
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
663
- $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
664
- $html .= '</div>';
665
- $html .= '</div>';
666
- }
667
- //=Control setup End=//
668
-
669
- $html .= '</div>';
670
- //===end left===//
671
-
672
- $html .= '<div class="right">';
673
- //=scene fade duration=//
674
- $html .= '<div class="single-settings scene-fade-duration">';
675
- $html .= '<span>'.__('Scene Fade Duration: ', 'wpvr').'</span>';
676
- $html .= '<input type="number" name="scene-fade-duration" value="'.$scene_fade_duration.'" />';
677
-
678
- $html .= '<div class="field-tooltip">';
679
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
680
- $html .= '<span>'.__('This will set the scene fade effect and execution time.', 'wpvr').'</span>';
681
- $html .= '</div>';
682
- $html .= '</div>';
683
- //=scene fade duration End=//
684
-
685
- //===Autorotation on off set==//
686
- if (isset($postdata["autoRotate"])) {
687
- $html .= '<div class="single-settings autoload">';
688
- $html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
689
-
690
- $html .= '<span class="wpvr-switcher">';
691
- $html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="on" name="autorotation" type="checkbox" checked />';
692
- $html .= '<label for="wpvr_autorotation"></label>';
693
- $html .= '</span>';
694
- $html .= '</div>';
695
- } else {
696
- $html .= '<div class="single-settings autoload">';
697
- $html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
698
-
699
- $html .= '<span class="wpvr-switcher">';
700
- $html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="off" name="autorotation" type="checkbox" />';
701
- $html .= '<label for="wpvr_autorotation"></label>';
702
- $html .= '</span>';
703
- $html .= '</div>';
704
- }
705
- //===end Autorotation on off set==//
706
-
707
- //=Auto Rotation=//
708
- $html .= '<div class="autorotationdata-wrapper">';
709
- $html .= '<div class="single-settings autorotationdata" >';
710
- $html .= '<span>'.__('Rotation Speed and Direction: ', 'wpvr').'</span>';
711
- $html .= '<input type="number" name="auto-rotation" value="'.$autorotation.'" placeholder="-5" />';
712
-
713
- $html .= '<div class="field-tooltip">';
714
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
715
- $html .= '<span>'.__('Set a value to determine the speed of rotation. The higher the number, the faster it will rotate. Positive values will make it rotate clockwise and negative values will make it rotate anti clockwise', 'wpvr').'</span>';
716
- $html .= '</div>';
717
- $html .= '</div>';
718
- //=Auto Rotation=//
719
-
720
- //=Auto rotation inactive delay=//
721
- $html .= '<div class="single-settings autorotationdata" >';
722
- $html .= '<span>'.__('Resume Auto-rotation after: ', 'wpvr').'</span>';
723
- $html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" placeholder="2000" />';
724
-
725
- $html .= '<div class="field-tooltip">';
726
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
727
- $html .= '<span>'.__('When someone clicks on the tour, auto-rotation stops. Here, set a time after which auto rotation will start again. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
728
- $html .= '</div>';
729
- $html .= '</div>';
730
- //=Auto rotation inactive delay=//
731
-
732
- //=Auto rotation stop delay=//
733
- $html .= '<div class="single-settings autorotationdata" >';
734
- $html .= '<span>'.__('Stop Auto-rotation after: ', 'wpvr').'</span>';
735
- $html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" placeholder="2000" />';
736
-
737
- $html .= '<div class="field-tooltip">';
738
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
739
- $html .= '<span>'.__('Set a time after which auto rotation will stop. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
740
- $html .= '</div>';
741
- $html .= '</div>';
742
- $html .= '</div>';
743
- //=Auto rotation stop delay=//
744
-
745
-
746
- //=end backgound tour=//
747
-
748
-
749
-
750
- $html .= '</div>';
751
- //===end right===//
752
-
753
- $html .= '</div>';
754
- $html .= '</div>';
755
- //===end basic settings===//
756
-
757
- $html .= '<div class="advanced-settings-content inner-single-content" id="gen-advanced">';
758
- $html .= '<div class="content-wrapper">';
759
- $html .= '<div class="left">';
760
-
761
- //=Keyboard Movement Control=//
762
- $html .= '<div class="single-settings compass">';
763
- $html .= '<span>'.__('Keyboard Movement Control: ', 'wpvr').'</span>';
764
-
765
- $html .= '<span class="wpvr-switcher">';
766
- $html .= '<input id="wpvr_diskeyboard" class="vr-switcher-check" value="off" name="diskeyboard" type="checkbox" disabled />';
767
- $html .= '<label for="wpvr_diskeyboard" title="Pro Feature"></label>';
768
- $html .= '</span>';
769
- $html .= '</div>';
770
- //=Keyboard Movement Control end=//
771
-
772
- //=Keyboard Zoom Control Setup=//
773
- $html .= '<div class="single-settings">';
774
- $html .= '<span>'.__('Keyboard Zoom Control: ', 'wpvr').'</span>';
775
-
776
- $html .= '<span class="wpvr-switcher">';
777
- $html .= '<input id="wpvr_keyboardzoom" class="vr-switcher-check" value="off" name="keyboardzoom" type="checkbox" disabled />';
778
- $html .= '<label for="wpvr_keyboardzoom" title="Pro Feature"></label>';
779
- $html .= '</span>';
780
- $html .= '</div>';
781
- //=Keyboard Zoom Control End=//
782
-
783
- //=Mouse Drag Control=//
784
- $html .= '<div class="single-settings">';
785
- $html .= '<span>'.__('Mouse Drag Control: ', 'wpvr').'</span>';
786
-
787
- $html .= '<span class="wpvr-switcher">';
788
- $html .= '<input id="wpvr_draggable" class="vr-switcher-check" name="draggable" type="checkbox" value="off" disabled />';
789
- $html .= '<label for="wpvr_draggable" title="Pro Feature"></label>';
790
- $html .= '</span>';
791
- $html .= '</div>';
792
- //=Mouse Drag Control End=//
793
-
794
- //=Mouse Zoom Control=//
795
- $html .= '<div class="single-settings">';
796
- $html .= '<span>'.__('Mouse Zoom Control: ', 'wpvr').'</span>';
797
-
798
- $html .= '<span class="wpvr-switcher">';
799
- $html .= '<input id="wpvr_mouseZoom" class="vr-switcher-check" value="off" name="mouseZoom" type="checkbox" disabled />';
800
- $html .= '<label for="wpvr_mouseZoom" title="Pro Feature"></label>';
801
- $html .= '</span>';
802
- $html .= '</div>';
803
- //=Mouse Zoom Control End=//
804
-
805
- //=Gyroscope Control=//
806
- $html .= '<div class="single-settings gyro">';
807
- $html .= '<span>'.__('Gyroscope Control: ', 'wpvr').'</span>';
808
-
809
- $html .= '<span class="wpvr-switcher">';
810
- $html .= '<input id="wpvr_gyro" class="vr-switcher-check" value="off" name="gyro" type="checkbox" disabled />';
811
- $html .= '<label for="wpvr_gyro" title="Pro Feature"></label>';
812
- $html .= '</span>';
813
- $html .= '</div>';
814
- //=Gyroscope Control End=//
815
-
816
- //=Auto Gyroscope Support=//
817
- $html .= '<div class="single-settings orientation">';
818
- $html .= '<span>'.__('Auto Gyroscope Support: ', 'wpvr').'</span>';
819
-
820
- $html .= '<span class="wpvr-switcher">';
821
- $html .= '<input id="wpvr_deviceorientationcontrol" class="vr-switcher-check" value="off" name="deviceorientationcontrol" type="checkbox" disabled />';
822
- $html .= '<label for="wpvr_deviceorientationcontrol" title="Pro Feature"></label>';
823
- $html .= '</span>';
824
-
825
- $html .= '<div class="field-tooltip">';
826
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
827
- $html .= '<span>'.__('If set to true, device orientation control will be used when the panorama is loaded, if the device supports it. If false, device orientation control needs to be activated by pressing a button. Defaults to false. Will work if gyroscope is enabled', 'wpvr').'</span>';
828
- $html .= '</div>';
829
- $html .= '</div>';
830
- //=Auto Gyroscope Support End=//
831
-
832
- //=Compass Setup=//
833
- $html .= '<div class="single-settings compass">';
834
- $html .= '<span>'.__('Compass: ', 'wpvr').'</span>';
835
-
836
- $html .= '<span class="wpvr-switcher">';
837
- $html .= '<input id="wpvr_compass" class="vr-switcher-check" value="off" name="compass" type="checkbox" disabled />';
838
- $html .= '<label for="wpvr_compass" title="Pro Feature"></label>';
839
- $html .= '</span>';
840
- $html .= '</div>';
841
- //=Compass setup End=//
842
-
843
- $html .= '</div>';
844
- //===end left===//
845
-
846
- $html .= '<div class="right">';
847
- //= Scene Gallery=//
848
- $html .= '<div class="single-settings gallery">';
849
- $html .= '<span>'.__('Scene Gallery: ', 'wpvr').'</span>';
850
-
851
- $html .= '<span class="wpvr-switcher">';
852
- $html .= '<input id="wpvr_vrgallery" class="vr-switcher-check" value="off" name="vrgallery" type="checkbox" disabled />';
853
- $html .= '<label for="wpvr_vrgallery" title="Pro Feature"></label>';
854
- $html .= '</span>';
855
-
856
- $html .= '<div class="field-tooltip">';
857
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
858
- $html .= '<span>'.__('Turning it On will display a gallery with all the scenes on your tour. By double clicking on a scene thumbnail on the gallery, you can move to that specific scene. The gallery will only show up on the front end and not on the preview.', 'wpvr').'</span>';
859
- $html .= '</div>';
860
- $html .= '</div>';
861
- //= Scene Gallery end=//
862
-
863
- //=Scene Titles on Gallery=//
864
- $html .= '<div class="single-settings">';
865
- $html .= '<span>'.__('Scene Titles on Gallery: ', 'wpvr').'</span>';
866
-
867
- $html .= '<span class="wpvr-switcher">';
868
- $html .= '<input id="wpvr_vrgallery_title" class="vr-switcher-check" value="off" name="vrgallery_title" type="checkbox" disabled />';
869
- $html .= '<label for="wpvr_vrgallery_title" title="Pro Feature"></label>';
870
- $html .= '</span>';
871
-
872
- $html .= '<div class="field-tooltip">';
873
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
874
- $html .= '<span>'.__('Turning it on will display scene titles on each scene thumbnail inside the Scene Gallery. The Scene IDs will be used as the Scene Title.', 'wpvr').'</span>';
875
- $html .= '</div>';
876
- $html .= '</div>';
877
- //=Scene Titles on Gallery End=//
878
-
879
- //===VR Audio setup===//
880
- $html .= '<div class="single-settings">';
881
- $html .= '<span>Tour Background Music: </span>';
882
-
883
- $html .= '<span class="wpvr-switcher">';
884
- $html .= '<input id="wpvr_bg_music" class="vr-switcher-check" value="off" name="bg_music" type="checkbox" disabled />';
885
- $html .= '<label for="wpvr_bg_music" title="Pro Feature"></label>';
886
- $html .= '</span>';
887
- $html .= '</div>';
888
- //==VR audio End==//
889
-
890
- //===Company logo===//
891
- $html .= '<div class="single-settings company-info">';
892
- $html .= '<span>'.__('Add Company Information: ', 'wpvr').' </span>';
893
-
894
- $html .= '<span class="wpvr-switcher">';
895
- $html .= '<input id="wpvr_cpLogoSwitch" class="vr-switcher-check" value="off" name="cpLogoSwitch" type="checkbox" disabled />';
896
- $html .= '<label for="wpvr_cpLogoSwitch" title="Pro Feature"></label>';
897
- $html .= '</span>';
898
- $html .= '</div>';
899
- //===Company logo end===//
900
-
901
- $html .= '</div>';
902
- //===end right===//
903
-
904
- $html .= '</div>';
905
- $html .= '</div>';
906
- //===end advanced settings===//
907
-
908
- $html .= '<div class="control-settings-content inner-single-content" id="gen-control">';
909
- $html .= '<div class="content-wrapper">';
910
- $html .= '<div class="left">';
911
- //=====Move up====//
912
- $html .= '<div class="single-settings controls custom-data-set">';
913
- $html .= '<span>'.__('Move Up: ', 'wpvr').'</span>';
914
-
915
- $html .= '<div class="color-icon">';
916
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-up.jpg'.'" alt="icon" />';
917
- $html .= '</div>';
918
-
919
- $html .= '<span class="wpvr-switcher">';
920
- $html .= '<input id="wpvr_panupControl" class="vr-switcher-check" value="off" name="panupControl" type="checkbox" disabled />';
921
- $html .= '<label for="wpvr_panupControl" title="Pro Feature"></label>';
922
- $html .= '</span>';
923
-
924
- $html .= '</div>';
925
- //=====Moveup End====//
926
-
927
- //=====Move Down====//
928
- $html .= '<div class="single-settings controls custom-data-set">';
929
- $html .= '<span>'.__('Move Down: ', 'wpvr').'</span>';
930
-
931
- $html .= '<div class="color-icon">';
932
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-down.jpg'.'" alt="icon" />';
933
- $html .= '</div>';
934
-
935
- $html .= '<span class="wpvr-switcher">';
936
- $html .= '<input id="wpvr_panDownControl" class="vr-switcher-check" value="off" name="panDownControl" type="checkbox" disabled />';
937
- $html .= '<label for="wpvr_panDownControl" title="Pro Feature"></label>';
938
- $html .= '</span>';
939
- $html .= '</div>';
940
- //=====Move down End====//
941
-
942
- //=====Move Left====//
943
- $html .= '<div class="single-settings controls custom-data-set">';
944
- $html .= '<span>'.__('Move Left: ', 'wpvr').'</span>';
945
-
946
- $html .= '<div class="color-icon">';
947
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-left.jpg'.'" alt="icon" />';
948
- $html .= '</div>';
949
-
950
- $html .= '<span class="wpvr-switcher">';
951
- $html .= '<input id="wpvr_panLeftControl" class="vr-switcher-check" value="off" name="panLeftControl" type="checkbox" disabled />';
952
- $html .= '<label for="wpvr_panLeftControl" title="Pro Feature"></label>';
953
- $html .= '</span>';
954
- $html .= '</div>';
955
- //=====Move Left End====//
956
-
957
- //=====Move Right====//
958
- $html .= '<div class="single-settings controls custom-data-set">';
959
- $html .= '<span>'.__('Move Right: ', 'wpvr').'</span>';
960
-
961
- $html .= '<div class="color-icon">';
962
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-right.jpg'.'" alt="icon" />';
963
- $html .= '</div>';
964
-
965
- $html .= '<span class="wpvr-switcher">';
966
- $html .= '<input id="wpvr_panRightControl" class="vr-switcher-check" value="off" name="panRightControl" type="checkbox" disabled />';
967
- $html .= '<label for="wpvr_panRightControl" title="Pro Feature"></label>';
968
- $html .= '</span>';
969
- $html .= '</div>';
970
- //=====Move Right End====//
971
-
972
- //=====Zoom In====//
973
- $html .= '<div class="single-settings controls custom-data-set">';
974
- $html .= '<span>'.__('Zoom In: ', 'wpvr').'</span>';
975
-
976
- $html .= '<div class="color-icon">';
977
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-in.jpg'.'" alt="icon" />';
978
- $html .= '</div>';
979
-
980
- $html .= '<span class="wpvr-switcher">';
981
- $html .= '<input id="wpvr_panZoomInControl" class="vr-switcher-check" value="off" name="panZoomInControl" type="checkbox" disabled />';
982
- $html .= '<label for="wpvr_panZoomInControl" title="Pro Feature"></label>';
983
- $html .= '</span>';
984
-
985
- $html .= '</div>';
986
- //=====Zoom In End====//
987
-
988
- $html .= '</div>';
989
- //===end left===//
990
-
991
- $html .= '<div class="right">';
992
- //=====Zoom Out====//
993
- $html .= '<div class="single-settings controls custom-data-set">';
994
- $html .= '<span>'.__('Zoom Out: ', 'wpvr').'</span>';
995
-
996
- $html .= '<div class="color-icon">';
997
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-out.jpg'.'" alt="icon" />';
998
- $html .= '</div>';
999
-
1000
- $html .= '<span class="wpvr-switcher">';
1001
- $html .= '<input id="wpvr_panZoomOutControl" class="vr-switcher-check" value="off" name="panZoomOutControl" type="checkbox" disabled />';
1002
- $html .= '<label for="wpvr_panZoomOutControl" title="Pro Feature"></label>';
1003
- $html .= '</span>';
1004
-
1005
- $html .= '</div>';
1006
- //=====Zoom Out End====//
1007
-
1008
- //===== Full Screen====//
1009
- $html .= '<div class="single-settings controls custom-data-set">';
1010
- $html .= '<span>'.__('Full Screen: ', 'wpvr').'</span>';
1011
-
1012
- $html .= '<div class="color-icon">';
1013
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/full-screen.jpg'.'" alt="icon" />';
1014
- $html .= '</div>';
1015
-
1016
- $html .= '<span class="wpvr-switcher">';
1017
- $html .= '<input id="wpvr_panFullscreenControl" class="vr-switcher-check" value="off" name="panFullscreenControl" type="checkbox" disabled />';
1018
- $html .= '<label for="wpvr_panFullscreenControl" title="Pro Feature"></label>';
1019
- $html .= '</span>';
1020
-
1021
- $html .= '</div>';
1022
- //=====Full Screen End====//
1023
-
1024
- //=====Gyroscope====//
1025
- $html .= '<div class="single-settings controls custom-data-set">';
1026
- $html .= '<span>'.__('Gyroscope: ', 'wpvr').'</span>';
1027
-
1028
- $html .= '<div class="color-icon">';
1029
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/gryscop.jpg'.'" alt="icon" />';
1030
- $html .= '</div>';
1031
-
1032
- $html .= '<span class="wpvr-switcher">';
1033
- $html .= '<input id="wpvr_gyroscope" class="vr-switcher-check" value="off" name="gyroscope" type="checkbox" disabled />';
1034
- $html .= '<label for="wpvr_gyroscope" title="Pro Feature"></label>';
1035
- $html .= '</span>';
1036
-
1037
- $html .= '</div>';
1038
- //=====Gyroscope End====//
1039
-
1040
- //=====Back to home====//
1041
- $html .= '<div class="single-settings controls custom-data-set">';
1042
- $html .= '<span>'.__('Home: ', 'wpvr').'</span>';
1043
-
1044
- $html .= '<div class="color-icon">';
1045
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/home.jpg'.'" alt="icon" />';
1046
- $html .= '</div>';
1047
-
1048
- $html .= '<span class="wpvr-switcher">';
1049
- $html .= '<input id="wpvr_backToHome" class="vr-switcher-check" value="off" name="backToHome" type="checkbox" disabled />';
1050
- $html .= '<label for="wpvr_backToHome" title="Pro Feature"></label>';
1051
- $html .= '</span>';
1052
-
1053
- $html .= '</div>';
1054
- //=====Back to home End====//
1055
- $html .= '</div>';
1056
- //===end right===//
1057
-
1058
- $html .= '</div>';
1059
- $html .= '</div>';
1060
- //===end control settings===//
1061
-
1062
- $html .= '</div>';
1063
- //=end inner tab content=
1064
-
1065
- //== Start preview button
1066
- $html .= '<div class="preview-btn-wrapper">';
1067
- $html .= '<div class="preview-btn-area clearfix">';
1068
-
1069
- $html .= '<button id="panolenspreview" class="panolenspreview">' . __('Preview', 'wpvr-pro') . '</button>';
1070
- $html .= '</div>';
1071
- $html .= '</div>';
1072
- //== End preview button
1073
-
1074
- $html .= '<div class="wpvr-use-shortcode">';
1075
- $post = get_post();
1076
- $id = $post->ID;
1077
- $slug = $post->post_name;
1078
- $postdata = get_post_meta($post->ID, 'panodata', true);
1079
-
1080
- $html .= '<h4 class="area-title">'.__('Using this Tour', 'wpvr').'</h4>';
1081
-
1082
- $html .= '<div class="shortcode-wrapper">';
1083
- $html .= '<div class="single-shortcode classic">';
1084
- $html .= '<span class="shortcode-title">'.__('For Classic Editor:', 'wpvr').'</span>';
1085
-
1086
- $html .= '<div class="field-wapper">';
1087
- $html .= '<span>'.__('To use this WP VR tour in your posts or pages use the following shortcode ', 'wpvr').'</span>';
1088
-
1089
- $html .= '<div class="shortcode-field">';
1090
- $html .= '<p class="copycode" id="copy-shortcode">[wpvr id="'.$id.'"]</p>';
1091
-
1092
- $html .= '<span id="wpvr-copy-shortcode" class="wpvr-copy-shortcode">';
1093
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/copy.png'.'" alt="icon" />';
1094
- $html .= '</span>';
1095
- $html .= '</div>';
1096
-
1097
-
1098
- $html .= '<span id="wpvr-copied-notice" class="wpvr-copied-notice"></span>';
1099
-
1100
- $html .= '</div>';
1101
- $html .= '</div>';
1102
-
1103
- $html .= '</div>';
1104
- $html .= '</div>';
1105
- //=end shortcode area=
1106
-
1107
-
1108
-
1109
-
1110
- $html .= '</div>';
1111
- //=end inner tab=
1112
-
1113
-
1114
- $html .= '<script>';
1115
- $html .= '
1116
-
1117
- document.getElementById("wpvr-copy-shortcode").addEventListener("click", function() {
1118
- copyToClipboard(document.getElementById("copy-shortcode"));
1119
- });
1120
-
1121
- function copyToClipboard(elem) {
1122
- // create hidden text element, if it doesn\'t already exist
1123
- var targetId = "_hiddenCopyText_";
1124
- var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
1125
- var origSelectionStart, origSelectionEnd;
1126
- if (isInput) {
1127
- // can just use the original source element for the selection and copy
1128
- target = elem;
1129
- origSelectionStart = elem.selectionStart;
1130
- origSelectionEnd = elem.selectionEnd;
1131
- } else {
1132
- // must use a temporary form element for the selection and copy
1133
- target = document.getElementById(targetId);
1134
- if (!target) {
1135
- var target = document.createElement("textarea");
1136
- target.style.position = "absolute";
1137
- target.style.left = "-9999px";
1138
- target.style.top = "0";
1139
- target.id = targetId;
1140
- document.body.appendChild(target);
1141
- }
1142
- target.textContent = elem.textContent;
1143
- }
1144
- // select the content
1145
- var currentFocus = document.activeElement;
1146
- target.focus();
1147
- target.setSelectionRange(0, target.value.length);
1148
-
1149
- // copy the selection
1150
- var succeed;
1151
- try {
1152
- succeed = document.execCommand("copy");
1153
- document.getElementById("wpvr-copied-notice").innerHTML = "Copied!";
1154
- } catch(e) {
1155
- succeed = false;
1156
- }
1157
- // restore original focus
1158
- if (currentFocus && typeof currentFocus.focus === "function") {
1159
- currentFocus.focus();
1160
- }
1161
-
1162
- setTimeout(function(){
1163
- document.getElementById("wpvr-copied-notice").innerHTML = "";
1164
- }, 2000 );
1165
-
1166
- if (isInput) {
1167
- // restore prior selection
1168
- elem.setSelectionRange(origSelectionStart, origSelectionEnd);
1169
- } else {
1170
- // clear temporary content
1171
- target.textContent = "";
1172
- }
1173
- document.getElementById("wpvr-copy-shortcode").scrollIntoView()
1174
- return succeed;
1175
- }
1176
-
1177
- ';
1178
-
1179
- $html .= '</script>';
1180
-
1181
- $html .='</div>';
1182
- //---end general tab----
1183
-
1184
- $html .='<div class="rex-pano-tab" id="scenes">';
1185
-
1186
- //=Scene and Hotspot repeater=//
1187
- if (empty($pano_data)) {
1188
- $html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
1189
-
1190
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
1191
- $html .= '<ul>';
1192
- $html .= '<li class="active"><span data-index="1" data-href="#scene-1"><i class="fa fa-image"></i></span></li>';
1193
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1194
- $html .= '</ul>';
1195
- $html .= '</nav>';
1196
-
1197
- $html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
1198
-
1199
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
1200
- $html .= '<div class="active_scene_id"><p></p></div>';
1201
- $html .= '<div class="scene-content">';
1202
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1203
-
1204
- $html .= '<div class="scene-left">';
1205
- //==Set Default Scene==//
1206
- $html .= '<div class="single-settings dscene">';
1207
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1208
- $html .= '<select class="dscen" name="dscene">';
1209
- $html .= '<option value="on"> Yes</option>';
1210
- $html .= '<option value="off" selected > No</option>';
1211
- $html .= '</select>';
1212
- $html .= '</div>';
1213
- //==Set Default Scene end==//
1214
-
1215
- $html .= '<div class=scene-setting>';
1216
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1217
- $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1218
- $html .= '</div>';
1219
-
1220
- $html .= '<div class=scene-setting>';
1221
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1222
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1223
- $html .= '</div>';
1224
-
1225
- $html .= '<div class=scene-setting>';
1226
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1227
- $html .= '<div class="form-group">';
1228
- $html .= '<img src="" style="display: none;"><br>';
1229
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1230
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1231
- $html .= '</div>';
1232
- $html .= '</div>';
1233
- $html .= '</div>';
1234
- //---end scene-left---
1235
-
1236
- $html .= '</div>';
1237
-
1238
- //--hotspot setup--
1239
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1240
-
1241
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1242
- $html .= '<ul>';
1243
- $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1244
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1245
- $html .= '</ul>';
1246
- $html .= '</nav>';
1247
-
1248
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1249
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
1250
-
1251
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1252
-
1253
- $html .= '<div class="wrapper">';
1254
- $html .= '<div class="hotspot-setting">';
1255
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1256
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1257
- $html .= '</div>';
1258
-
1259
- $html .= '<div class="hotspot-setting">';
1260
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1261
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1262
- $html .= '</div>';
1263
-
1264
- $html .= '<div class="hotspot-setting">';
1265
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1266
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1267
- $html .= '</div>';
1268
-
1269
- $html .= '<div class="hotspot-setting">';
1270
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1271
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1272
- $html .= '</div>';
1273
-
1274
- $html .= '</div>';
1275
-
1276
- $html .= '<div class="hotspot-type hotspot-setting">';
1277
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1278
- $html .= '<select name="hotspot-type">';
1279
- $html .= '<option value="info" selected> Info</option>';
1280
- $html .= '<option value="scene"> Scene</option>';
1281
- $html .= '</select>';
1282
-
1283
- $html .= '<div class="hotspot-url">';
1284
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1285
- $html .= '<input type="url" name="hotspot-url" value="" />';
1286
- $html .= '</div>';
1287
-
1288
- $html .= '<div class="hotspot-content">';
1289
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1290
- $html .= '<textarea name="hotspot-content"></textarea>';
1291
- $html .= '</div>';
1292
-
1293
- $html .= '<div class="hotspot-hover">';
1294
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1295
- $html .= '<textarea name="hotspot-hover"></textarea>';
1296
- $html .= '</div>';
1297
-
1298
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1299
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1300
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1301
- $html .= '<option value="none" selected> None</option>';
1302
- $html .= '</select>';
1303
- $html .= '</div>';
1304
-
1305
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1306
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
1307
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1308
- $html .= '</div>';
1309
-
1310
- $html .= '</div>';
1311
- //=Hotspot type End=//
1312
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1313
- $html .= '</div>';
1314
- $html .= '</div>';
1315
-
1316
- $html .= '</div>';
1317
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1318
- $html .= '</div>';
1319
-
1320
-
1321
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-1">';
1322
- $html .= '<div class="active_scene_id"><p></p></div>';
1323
- $html .= '<div class="scene-content">';
1324
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1325
-
1326
- $html .= '<div class="scene-left">';
1327
- //==Set Default Scene==//
1328
- $html .= '<div class="single-settings dscene">';
1329
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1330
- $html .= '<select class="dscen" name="dscene">';
1331
- $html .= '<option value="on"> Yes</option>';
1332
- $html .= '<option value="off" selected > No</option>';
1333
- $html .= '</select>';
1334
- $html .= '</div>';
1335
- //==Set Default Scene end==//
1336
-
1337
- $html .= '<div class=scene-setting>';
1338
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1339
- $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1340
- $html .= '</div>';
1341
-
1342
- $html .= '<div class=scene-setting>';
1343
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1344
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1345
- $html .= '</div>';
1346
-
1347
- $html .= '<div class=scene-setting>';
1348
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1349
- $html .= '<div class="form-group">';
1350
- $html .= '<img src="" style="display: none;"><br>';
1351
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1352
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1353
- $html .= '</div>';
1354
- $html .= '</div>';
1355
- $html .= '</div>';
1356
- //----end scene left------
1357
-
1358
- $html .= '</div>';
1359
-
1360
- //--hotspot setup--//
1361
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1362
-
1363
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1364
- $html .= '<ul>';
1365
- $html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1366
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1367
- $html .= '</ul>';
1368
- $html .= '</nav>';
1369
-
1370
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1371
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-1-hotspot-1">';
1372
-
1373
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1374
-
1375
- $html .= '<div class="wrapper">';
1376
- $html .= '<div class="hotspot-setting">';
1377
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1378
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1379
- $html .= '</div>';
1380
-
1381
- $html .= '<div class="hotspot-setting">';
1382
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1383
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1384
- $html .= '</div>';
1385
-
1386
- $html .= '<div class="hotspot-setting">';
1387
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1388
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1389
- $html .= '</div>';
1390
-
1391
- $html .= '<div class="hotspot-setting">';
1392
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1393
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1394
- $html .= '</div>';
1395
-
1396
- $html .= '</div>';
1397
-
1398
- $html .= '<div class="hotspot-type hotspot-setting">';
1399
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1400
- $html .= '<select name="hotspot-type">';
1401
- $html .= '<option value="info" selected> Info</option>';
1402
- $html .= '<option value="scene"> Scene</option>';
1403
- $html .= '</select>';
1404
-
1405
- $html .= '<div class="hotspot-url">';
1406
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1407
- $html .= '<input type="url" name="hotspot-url" value="" />';
1408
- $html .= '</div>';
1409
-
1410
- $html .= '<div class="hotspot-content">';
1411
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1412
- $html .= '<textarea name="hotspot-content"></textarea>';
1413
- $html .= '</div>';
1414
-
1415
- $html .= '<div class="hotspot-hover">';
1416
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1417
- $html .= '<textarea name="hotspot-hover"></textarea>';
1418
- $html .= '</div>';
1419
-
1420
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1421
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1422
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1423
- $html .= '<option value="none"> None</option>';
1424
- $html .= '</select>';
1425
- $html .= '</div>';
1426
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1427
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1428
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1429
- $html .= '</div>';
1430
-
1431
- $html .= '</div>';
1432
- //=Hotspot type End=//
1433
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1434
- $html .= '</div>';
1435
- $html .= '</div>';
1436
- $html .= '</div>';
1437
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1438
- $html .= '</div>';
1439
- $html .= '</div>';
1440
-
1441
- $html .= '</div>';
1442
- } else {
1443
- $html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
1444
-
1445
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
1446
- $html .= '<ul>';
1447
- $i = 1;
1448
- $firstvalue = reset($pano_data["scene-list"]);
1449
- foreach ($pano_data["scene-list"] as $pano_scenes) {
1450
- if ($pano_scenes['scene-id'] == $firstvalue['scene-id']) {
1451
- $html .= '<li class="active"><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
1452
- } else {
1453
- $html .= '<li><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
1454
- }
1455
- $i++;
1456
- }
1457
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1458
- $html .= '</ul>';
1459
- $html .= '</nav>';
1460
-
1461
-
1462
- $html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
1463
-
1464
- //===Default empty repeater declared by nazmus sakib===//
1465
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
1466
- $html .= '<div class="active_scene_id"><p></p></div>';
1467
- $html .= '<div class="scene-content">';
1468
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1469
-
1470
- $html .= '<div class="scene-left">';
1471
- //==Set Default Scene==//
1472
- $html .= '<div class="single-settings dscene">';
1473
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1474
- $html .= '<select class="dscen" name="dscene">';
1475
- $html .= '<option value="on"> Yes</option>';
1476
- $html .= '<option value="off" selected > No</option>';
1477
- $html .= '</select>';
1478
- $html .= '</div>';
1479
- //==Set Default Scene end==//
1480
- $html .= '<div class=scene-setting>';
1481
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1482
- $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1483
- $html .= '</div>';
1484
-
1485
- $html .= '<div class=scene-setting>';
1486
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1487
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1488
- $html .= '</div>';
1489
-
1490
- $html .= '<div class=scene-setting>';
1491
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1492
- $html .= '<div class="form-group">';
1493
- $html .= '<img src="" style="display: none;"><br>';
1494
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1495
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1496
- $html .= '</div>';
1497
- $html .= '</div>';
1498
- $html .= '</div>';
1499
- //-----end scene left------
1500
-
1501
- $html .= '</div>';
1502
-
1503
- //--hotspot setup--//
1504
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1505
-
1506
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1507
- $html .= '<ul>';
1508
- $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1509
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1510
- $html .= '</ul>';
1511
- $html .= '</nav>';
1512
-
1513
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1514
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
1515
-
1516
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1517
-
1518
- $html .= '<div class="wrapper">';
1519
- $html .= '<div class="hotspot-setting">';
1520
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1521
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1522
- $html .= '</div>';
1523
-
1524
- $html .= '<div class="hotspot-setting">';
1525
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1526
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1527
- $html .= '</div>';
1528
-
1529
- $html .= '<div class="hotspot-setting">';
1530
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1531
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1532
- $html .= '</div>';
1533
-
1534
- $html .= '<div class="hotspot-setting">';
1535
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1536
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1537
- $html .= '</div>';
1538
-
1539
- $html .= '</div>';
1540
-
1541
- $html .= '<div class="hotspot-type hotspot-setting">';
1542
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1543
- $html .= '<select name="hotspot-type">';
1544
- $html .= '<option value="info" selected> Info</option>';
1545
- $html .= '<option value="scene"> Scene</option>';
1546
- $html .= '</select>';
1547
-
1548
- $html .= '<div class="hotspot-url">';
1549
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1550
- $html .= '<input type="url" name="hotspot-url" value="" />';
1551
- $html .= '</div>';
1552
-
1553
- $html .= '<div class="hotspot-content">';
1554
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1555
- $html .= '<textarea name="hotspot-content"></textarea>';
1556
- $html .= '</div>';
1557
-
1558
- $html .= '<div class="hotspot-hover">';
1559
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1560
- $html .= '<textarea name="hotspot-hover"></textarea>';
1561
- $html .= '</div>';
1562
-
1563
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1564
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1565
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1566
- $html .= '<option value="none" selected> None</option>';
1567
- $html .= '</select>';
1568
- $html .= '</div>';
1569
-
1570
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1571
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
1572
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1573
- $html .= '</div>';
1574
-
1575
- $html .= '</div>';
1576
- //=Hotspot type End=//
1577
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1578
- $html .= '</div>';
1579
- $html .= '</div>';
1580
-
1581
- $html .= '</div>';
1582
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1583
- $html .= '</div>';
1584
- //==Empty repeater end==//
1585
-
1586
- $s = 1;
1587
- foreach ($pano_data["scene-list"] as $pano_scenes) {
1588
- $dscene = '';
1589
- if (isset($pano_scenes['dscene'])) {
1590
- $dscene = $pano_scenes['dscene'];
1591
- }
1592
- $scene_id = '';
1593
- $scene_id = $pano_scenes["scene-id"];
1594
- $scene_type = 'equirectangular';
1595
- $scene_type = $pano_scenes["scene-type"];
1596
- $scene_photo = '';
1597
- $scene_photo = $pano_scenes["scene-attachment-url"];
1598
-
1599
- $pano_hotspots = array();
1600
- if (isset($pano_scenes["hotspot-list"])) {
1601
- $pano_hotspots = $pano_scenes["hotspot-list"];
1602
- }
1603
-
1604
- $firstvalueset = reset($pano_data["scene-list"]);
1605
- if ($pano_scenes['scene-id'] == $firstvalueset['scene-id']) {
1606
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-'.$s.'">';
1607
- $html .= '<div class="active_scene_id"><p></p></div>';
1608
- $html .= '<div class="scene-content">';
1609
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1610
-
1611
- $html .= '<div class="scene-left">';
1612
- //==Set Default Scene==//
1613
- if ($dscene == 'on') {
1614
- $html .= '<div class="single-settings dscene">';
1615
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1616
- $html .= '<select class="dscen" name="dscene">';
1617
- $html .= '<option value="on" selected > Yes</option>';
1618
- $html .= '<option value="off"> No</option>';
1619
- $html .= '</select>';
1620
- $html .= '</div>';
1621
- } else {
1622
- $html .= '<div class="single-settings dscene">';
1623
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1624
- $html .= '<select class="dscen" name="dscene">';
1625
- $html .= '<option value="on"> Yes</option>';
1626
- $html .= '<option value="off" selected > No</option>';
1627
- $html .= '</select>';
1628
- $html .= '</div>';
1629
- }
1630
- //==Set Default Scene end==//
1631
- $html .= '<div class=scene-setting>';
1632
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1633
- $html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
1634
- $html .= '</div>';
1635
-
1636
- $html .= '<div class=scene-setting>';
1637
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1638
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1639
- $html .= '</div>';
1640
-
1641
- $html .= '<div class=scene-setting>';
1642
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1643
- $html .= '<div class="form-group">';
1644
- $html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
1645
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1646
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
1647
- $html .= '</div>';
1648
- $html .= '</div>';
1649
- $html .= '</div>';
1650
- // ---end scene left---
1651
-
1652
- $html .= '</div>';
1653
-
1654
- if (!empty($pano_hotspots)) {
1655
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1656
-
1657
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1658
- $html .= '<ul>';
1659
- $j = 1;
1660
- $firstvaluehotspot = reset($pano_hotspots);
1661
- foreach ($pano_hotspots as $pano_hotspot) {
1662
- if ($pano_hotspot['hotspot-title'] == $firstvaluehotspot['hotspot-title']) {
1663
- $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1664
- } else {
1665
- $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1666
- }
1667
- $j++;
1668
- }
1669
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1670
- $html .= '</ul>';
1671
- $html .= '</nav>';
1672
-
1673
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1674
-
1675
- $h = 1;
1676
- $firstvaluehotspotset = reset($pano_hotspots);
1677
- $is_wpvr_premium = apply_filters('is_wpvr_premium', false);
1678
- foreach ($pano_hotspots as $pano_hotspot) {
1679
- $hotspot_title = '';
1680
- $hotspot_title = $pano_hotspot['hotspot-title'];
1681
- $hotspot_pitch = '';
1682
- $hotspot_pitch = $pano_hotspot['hotspot-pitch'];
1683
- $hotspot_yaw = '';
1684
- $hotspot_yaw = $pano_hotspot['hotspot-yaw'];
1685
- $hotspot_type = '';
1686
- $hotspot_type = $pano_hotspot['hotspot-type'];
1687
- $hotspot_url = '';
1688
- $hotspot_url = $pano_hotspot['hotspot-url'];
1689
- $hotspot_content = '';
1690
- $hotspot_content = $pano_hotspot['hotspot-content'];
1691
- $hotspot_hover = '';
1692
- $hotspot_hover = $pano_hotspot['hotspot-hover'];
1693
- $hotspot_target_scene = '';
1694
- $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
1695
- $hotspot_custom_class = '';
1696
- if (isset($pano_hotspot['hotspot-customclass'])) {
1697
- $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
1698
- }
1699
-
1700
- if ($pano_hotspot['hotspot-title'] == $firstvaluehotspotset['hotspot-title']) {
1701
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1702
-
1703
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1704
-
1705
- $html .= '<div class="wrapper">';
1706
- $html .= '<div class="hotspot-setting">';
1707
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1708
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
1709
- $html .= '</div>';
1710
-
1711
- $html .= '<div class="hotspot-setting">';
1712
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'
1713
- </label>';
1714
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
1715
- $html .= '</div>';
1716
-
1717
- $html .= '<div class="hotspot-setting">';
1718
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1719
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1720
- $html .= '</div>';
1721
-
1722
- $html .= '<div class="hotspot-setting">';
1723
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1724
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1725
- $html .= '</div>';
1726
-
1727
- $html .= '</div>';
1728
-
1729
- //=Hotspot type=//
1730
- if ($hotspot_type == "info") {
1731
- $html .= '<div class="hotspot-type hotspot-setting">';
1732
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1733
- $html .= '<select name="hotspot-type">';
1734
- $html .= '<option value="info" selected> Info</option>';
1735
- $html .= '<option value="scene"> Scene</option>';
1736
- $html .= '</select>';
1737
-
1738
- $html .= '<div class="hotspot-url">';
1739
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1740
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
1741
- $html .= '</div>';
1742
-
1743
- $html .= '<div class="hotspot-content">';
1744
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1745
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
1746
- $html .= '</div>';
1747
-
1748
- $html .= '<div class="hotspot-hover">';
1749
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
1750
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1751
- $html .= '</div>';
1752
-
1753
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1754
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1755
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1756
- $html .= '<option value="none" selected> None</option>';
1757
- $html .= '</select>';
1758
- $html .= '</div>';
1759
-
1760
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1761
- $html .= '<label for="hotspot-scene"> '.__('Target Scene ID: ', 'wpvr').'</label>';
1762
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1763
- $html .= '</div>';
1764
-
1765
- $html .= '</div>';
1766
- } else {
1767
- $html .= '<div class="hotspot-type hotspot-setting">';
1768
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1769
- $html .= '<select class="trtr" name="hotspot-type">';
1770
- $html .= '<option value="info"> Info</option>';
1771
- $html .= '<option value="scene" selected> Scene</option>';
1772
- $html .= '</select>';
1773
-
1774
- $html .= '<div class="hotspot-url" style="display:none;">';
1775
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1776
- $html .= '<input type="url" name="hotspot-url" />';
1777
- $html .= '</div>';
1778
-
1779
- $html .= '<div class="hotspot-content" style="display:none;">';
1780
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
1781
- $html .= '<textarea name="hotspot-content"></textarea>';
1782
- $html .= '</div>';
1783
-
1784
- $html .= '<div class="hotspot-hover">';
1785
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1786
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1787
- $html .= '</div>';
1788
-
1789
- $html .= '<div class="hotspot-scene" >';
1790
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1791
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1792
- $html .= '<option value="none" selected> None</option>';
1793
- $html .= '</select>';
1794
- $html .= '</div>';
1795
-
1796
- $html .= '<div class="hotspot-scene">';
1797
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1798
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
1799
- $html .= '</div>';
1800
-
1801
- $html .= '</div>';
1802
- }
1803
- //=Hotspot type End=//
1804
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1805
- $html .= '</div>';
1806
- } else {
1807
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1808
-
1809
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1810
-
1811
- $html .= '<div class="wrapper">';
1812
- $html .= '<div class="hotspot-setting">';
1813
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1814
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
1815
- $html .= '</div>';
1816
-
1817
- $html .= '<div class="hotspot-setting">';
1818
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1819
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
1820
- $html .= '</div>';
1821
-
1822
- $html .= '<div class="hotspot-setting">';
1823
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1824
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1825
- $html .= '</div>';
1826
-
1827
- $html .= '<div class="hotspot-setting">';
1828
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1829
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1830
- $html .= '</div>';
1831
-
1832
- $html .= '</div>';
1833
-
1834
- //=Hotspot type=//
1835
- if ($hotspot_type == "info") {
1836
- $html .= '<div class="hotspot-type hotspot-setting">';
1837
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1838
- $html .= '<select name="hotspot-type">';
1839
- $html .= '<option value="info" selected> Info</option>';
1840
- $html .= '<option value="scene"> Scene</option>';
1841
- $html .= '</select>';
1842
-
1843
- $html .= '<div class="hotspot-url">';
1844
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1845
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
1846
- $html .= '</div>';
1847
-
1848
- $html .= '<div class="hotspot-content">';
1849
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1850
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
1851
- $html .= '</div>';
1852
-
1853
- $html .= '<div class="hotspot-hover">';
1854
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1855
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1856
- $html .= '</div>';
1857
-
1858
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1859
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1860
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1861
- $html .= '<option value="none" selected> None</option>';
1862
- $html .= '</select>';
1863
- $html .= '</div>';
1864
-
1865
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1866
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1867
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled />';
1868
- $html .= '</div>';
1869
-
1870
- $html .= '</div>';
1871
- } else {
1872
- $html .= '<div class="hotspot-type hotspot-setting">';
1873
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1874
- $html .= '<select class="trtr" name="hotspot-type">';
1875
- $html .= '<option value="info"> Info</option>';
1876
- $html .= '<option value="scene" selected> Scene</option>';
1877
- $html .= '</select>';
1878
-
1879
- $html .= '<div class="hotspot-url" style="display:none;">';
1880
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1881
- $html .= '<input type="url" name="hotspot-url" />';
1882
- $html .= '</div>';
1883
-
1884
- $html .= '<div class="hotspot-content" style="display:none;">';
1885
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1886
- $html .= '<textarea name="hotspot-content"></textarea>';
1887
- $html .= '</div>';
1888
-
1889
- $html .= '<div class="hotspot-hover">';
1890
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
1891
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1892
- $html .= '</div>';
1893
-
1894
- $html .= '<div class="hotspot-scene" >';
1895
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1896
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1897
- $html .= '<option value="none" selected> None</option>';
1898
- $html .= '</select>';
1899
- $html .= '</div>';
1900
-
1901
- $html .= '<div class="hotspot-scene">';
1902
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1903
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
1904
- $html .= '</div>';
1905
-
1906
- $html .= '</div>';
1907
- }
1908
- //=Hotspot type End=//
1909
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1910
- $html .= '</div>';
1911
- }
1912
- $h++;
1913
- }
1914
- $html .= '</div>';
1915
- $html .= '</div>';
1916
- } else {
1917
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1918
-
1919
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1920
- $html .= '<ul>';
1921
- $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1922
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1923
- $html .= '</ul>';
1924
- $html .= '</nav>';
1925
-
1926
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1927
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
1928
-
1929
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1930
-
1931
- $html .= '<div class="wrapper">';
1932
- $html .= '<div class="hotspot-setting">';
1933
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1934
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1935
- $html .= '</div>';
1936
-
1937
- $html .= '<div class="hotspot-setting">';
1938
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1939
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1940
- $html .= '</div>';
1941
-
1942
- $html .= '<div class="hotspot-setting">';
1943
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1944
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1945
- $html .= '</div>';
1946
-
1947
- $html .= '<div class="hotspot-setting">';
1948
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon class: ', 'wpvr').'</label>';
1949
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1950
- $html .= '</div>';
1951
-
1952
- $html .= '</div>';
1953
-
1954
- $html .= '<div class="hotspot-type hotspot-setting">';
1955
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1956
- $html .= '<select name="hotspot-type">';
1957
- $html .= '<option value="info" selected> Info</option>';
1958
- $html .= '<option value="scene"> Scene</option>';
1959
- $html .= '</select>';
1960
-
1961
- $html .= '<div class="hotspot-url">';
1962
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1963
- $html .= '<input type="url" name="hotspot-url" value="" />';
1964
- $html .= '</div>';
1965
-
1966
- $html .= '<div class="hotspot-content">';
1967
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1968
- $html .= '<textarea name="hotspot-content"></textarea>';
1969
- $html .= '</div>';
1970
-
1971
- $html .= '<div class="hotspot-hover">';
1972
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1973
- $html .= '<textarea name="hotspot-hover"></textarea>';
1974
- $html .= '</div>';
1975
-
1976
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1977
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1978
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1979
- $html .= '<option value="none"> None</option>';
1980
- $html .= '</select>';
1981
- $html .= '</div>';
1982
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1983
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1984
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1985
- $html .= '</div>';
1986
-
1987
- $html .= '</div>';
1988
- //=Hotspot type End=//
1989
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1990
- $html .= '</div>';
1991
- $html .= '</div>';
1992
- $html .= '</div>';
1993
- }
1994
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1995
- $html .= '</div>';
1996
- } else {
1997
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="1" id="scene-'.$s.'">';
1998
- $html .= '<div class="active_scene_id"><p></p></div>';
1999
- $html .= '<div class="scene-content">';
2000
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
2001
-
2002
- $html .= '<div class="scene-left">';
2003
- //==Set Default Scene==//
2004
- if ($dscene == 'on') {
2005
- $html .= '<div class="single-settings dscene">';
2006
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
2007
- $html .= '<select class="dscen" name="dscene">';
2008
- $html .= '<option value="on" selected > Yes</option>';
2009
- $html .= '<option value="off"> No</option>';
2010
- $html .= '</select>';
2011
- $html .= '</div>';
2012
- } else {
2013
- $html .= '<div class="single-settings dscene">';
2014
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
2015
- $html .= '<select class="dscen" name="dscene">';
2016
- $html .= '<option value="on"> Yes</option>';
2017
- $html .= '<option value="off" selected> No</option>';
2018
- $html .= '</select>';
2019
- $html .= '</div>';
2020
- }
2021
- //==Set Default Scene end==//
2022
-
2023
- $html .= '<div class=scene-setting>';
2024
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
2025
- $html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
2026
- $html .= '</div>';
2027
-
2028
- $html .= '<div class=scene-setting>';
2029
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
2030
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
2031
- $html .= '</div>';
2032
-
2033
- $html .= '<div class=scene-setting>';
2034
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
2035
- $html .= '<div class="form-group">';
2036
- $html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
2037
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
2038
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
2039
- $html .= '</div>';
2040
- $html .= '</div>';
2041
- $html .= '</div>';
2042
- //--end scene left----
2043
-
2044
- $html .= '</div>';
2045
-
2046
- if (!empty($pano_hotspots)) {
2047
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2048
-
2049
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2050
- $html .= '<ul>';
2051
- $j = 1;
2052
- foreach ($pano_hotspots as $pano_hotspot) {
2053
- if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
2054
- $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
2055
- } else {
2056
- $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
2057
- }
2058
- $j++;
2059
- }
2060
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
2061
- $html .= '</ul>';
2062
- $html .= '</nav>';
2063
-
2064
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2065
-
2066
- $h = 1;
2067
- foreach ($pano_hotspots as $pano_hotspot) {
2068
- $hotspot_title = '';
2069
- $hotspot_title = $pano_hotspot['hotspot-title'];
2070
- $hotspot_pitch = '';
2071
- $hotspot_pitch = $pano_hotspot['hotspot-pitch'];
2072
- $hotspot_yaw = '';
2073
- $hotspot_yaw = $pano_hotspot['hotspot-yaw'];
2074
- $hotspot_type = '';
2075
- $hotspot_type = $pano_hotspot['hotspot-type'];
2076
- $hotspot_url = '';
2077
- $hotspot_url = $pano_hotspot['hotspot-url'];
2078
- $hotspot_content = '';
2079
- $hotspot_content = $pano_hotspot['hotspot-content'];
2080
- $hotspot_hover = '';
2081
- $hotspot_hover = $pano_hotspot['hotspot-hover'];
2082
- $hotspot_target_scene = '';
2083
- $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
2084
- $hotspot_custom_class = '';
2085
- if (isset($pano_hotspot['hotspot-customclass'])) {
2086
- $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
2087
- }
2088
-
2089
- if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
2090
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
2091
-
2092
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2093
-
2094
- $html .= '<div class="wrapper">';
2095
- $html .= '<div class="hotspot-setting">';
2096
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2097
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
2098
- $html .= '</div>';
2099
-
2100
- $html .= '<div class="hotspot-setting">';
2101
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2102
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
2103
- $html .= '</div>';
2104
-
2105
- $html .= '<div class="hotspot-setting">';
2106
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2107
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
2108
- $html .= '</div>';
2109
-
2110
- $html .= '<div class="hotspot-setting">';
2111
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
2112
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
2113
- $html .= '</div>';
2114
-
2115
- $html .= '</div>';
2116
-
2117
- //=Hotspot type=//
2118
- if ($hotspot_type == "info") {
2119
- $html .= '<div class="hotspot-type hotspot-setting">';
2120
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2121
- $html .= '<select name="hotspot-type">';
2122
- $html .= '<option value="info" selected> Info</option>';
2123
- $html .= '<option value="scene"> Scene</option>';
2124
- $html .= '</select>';
2125
-
2126
- $html .= '<div class="hotspot-url">';
2127
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2128
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
2129
- $html .= '</div>';
2130
-
2131
- $html .= '<div class="hotspot-content">';
2132
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2133
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
2134
- $html .= '</div>';
2135
-
2136
- $html .= '<div class="hotspot-hover">';
2137
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2138
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2139
- $html .= '</div>';
2140
-
2141
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2142
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2143
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2144
- $html .= '<option value="none" selected> None</option>';
2145
- $html .= '</select>';
2146
- $html .= '</div>';
2147
-
2148
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2149
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2150
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene"/>';
2151
- $html .= '</div>';
2152
-
2153
- $html .= '</div>';
2154
- } else {
2155
- $html .= '<div class="hotspot-type hotspot-setting">';
2156
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2157
- $html .= '<select class="trtr" name="hotspot-type">';
2158
- $html .= '<option value="info"> Info</option>';
2159
- $html .= '<option value="scene" selected> Scene</option>';
2160
- $html .= '</select>';
2161
-
2162
- $html .= '<div class="hotspot-url" style="display:none;">';
2163
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2164
- $html .= '<input type="url" name="hotspot-url" />';
2165
- $html .= '</div>';
2166
-
2167
- $html .= '<div class="hotspot-content" style="display:none;">';
2168
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2169
- $html .= '<textarea name="hotspot-content"></textarea>';
2170
- $html .= '</div>';
2171
-
2172
- $html .= '<div class="hotspot-hover">';
2173
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2174
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2175
- $html .= '</div>';
2176
-
2177
- $html .= '<div class="hotspot-scene" >';
2178
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2179
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2180
- $html .= '<option value="none" selected> None</option>';
2181
- $html .= '</select>';
2182
- $html .= '</div>';
2183
-
2184
- $html .= '<div class="hotspot-scene">';
2185
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2186
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
2187
- $html .= '</div>';
2188
-
2189
- $html .= '</div>';
2190
- }
2191
- //=Hotspot type End=//
2192
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2193
- $html .= '</div>';
2194
- } else {
2195
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
2196
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting</h6>';
2197
-
2198
- $html .= '<div class="wrapper">';
2199
- $html .= '<div class="hotspot-setting">';
2200
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2201
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
2202
- $html .= '</div>';
2203
-
2204
- $html .= '<div class="hotspot-setting">';
2205
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2206
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
2207
- $html .= '</div>';
2208
-
2209
- $html .= '<div class="hotspot-setting">';
2210
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2211
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
2212
- $html .= '</div>';
2213
-
2214
- $html .= '<div class="hotspot-setting">';
2215
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom icon Class: ', 'wpvr').'</label>';
2216
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
2217
- $html .= '</div>';
2218
-
2219
- $html .= '</div>';
2220
-
2221
- //=Hotspot type=//
2222
- if ($hotspot_type == "info") {
2223
- $html .= '<div class="hotspot-type hotspot-setting">';
2224
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2225
- $html .= '<select name="hotspot-type">';
2226
- $html .= '<option value="info" selected> Info</option>';
2227
- $html .= '<option value="scene"> Scene</option>';
2228
- $html .= '</select>';
2229
-
2230
- $html .= '<div class="hotspot-url">';
2231
- $html .= '<label for="hotspot-url">'.__(' URL: ', 'wpvr').'</label>';
2232
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
2233
- $html .= '</div>';
2234
-
2235
- $html .= '<div class="hotspot-content">';
2236
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2237
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
2238
- $html .= '</div>';
2239
-
2240
- $html .= '<div class="hotspot-hover">';
2241
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2242
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2243
- $html .= '</div>';
2244
-
2245
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2246
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2247
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2248
- $html .= '<option value="none" selected> None</option>';
2249
- $html .= '</select>';
2250
- $html .= '</div>';
2251
-
2252
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2253
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2254
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled />';
2255
- $html .= '</div>';
2256
-
2257
- $html .= '</div>';
2258
- } else {
2259
- $html .= '<div class="hotspot-type hotspot-setting">';
2260
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2261
- $html .= '<select class="trtr" name="hotspot-type">';
2262
- $html .= '<option value="info"> Info</option>';
2263
- $html .= '<option value="scene" selected> Scene</option>';
2264
- $html .= '</select>';
2265
-
2266
- $html .= '<div class="hotspot-url" style="display:none;">';
2267
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2268
- $html .= '<input type="url" name="hotspot-url" />';
2269
- $html .= '</div>';
2270
-
2271
- $html .= '<div class="hotspot-content" style="display:none;">';
2272
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2273
- $html .= '<textarea name="hotspot-content"></textarea>';
2274
- $html .= '</div>';
2275
-
2276
- $html .= '<div class="hotspot-hover">';
2277
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2278
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2279
- $html .= '</div>';
2280
-
2281
- $html .= '<div class="hotspot-scene" >';
2282
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2283
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2284
- $html .= '<option value="none" selected> None</option>';
2285
- $html .= '</select>';
2286
- $html .= '</div>';
2287
-
2288
- $html .= '<div class="hotspot-scene">';
2289
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2290
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
2291
- $html .= '</div>';
2292
-
2293
- $html .= '</div>';
2294
- }
2295
- //=Hotspot type End=//
2296
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2297
- $html .= '</div>';
2298
- }
2299
- $h++;
2300
- }
2301
- $html .= '</div>';
2302
- $html .= '</div>';
2303
- } else {
2304
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2305
-
2306
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2307
- $html .= '<ul>';
2308
- $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
2309
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
2310
- $html .= '</ul>';
2311
- $html .= '</nav>';
2312
-
2313
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2314
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
2315
-
2316
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2317
-
2318
- $html .= '<div class="wrapper">';
2319
- $html .= '<div class="hotspot-setting">';
2320
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2321
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
2322
- $html .= '</div>';
2323
-
2324
- $html .= '<div class="hotspot-setting">';
2325
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2326
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
2327
- $html .= '</div>';
2328
-
2329
- $html .= '<div class="hotspot-setting">';
2330
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2331
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
2332
- $html .= '</div>';
2333
-
2334
- $html .= '<div class="hotspot-setting">';
2335
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
2336
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
2337
- $html .= '</div>';
2338
-
2339
- $html .= '</div>';
2340
-
2341
- $html .= '<div class="hotspot-type hotspot-setting">';
2342
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2343
- $html .= '<select name="hotspot-type">';
2344
- $html .= '<option value="info" selected> Info</option>';
2345
- $html .= '<option value="scene"> Scene</option>';
2346
- $html .= '</select>';
2347
-
2348
- $html .= '<div class="hotspot-url">';
2349
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
2350
- $html .= '<input type="url" name="hotspot-url" value="" />';
2351
- $html .= '</div>';
2352
-
2353
- $html .= '<div class="hotspot-content">';
2354
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2355
- $html .= '<textarea name="hotspot-content"></textarea>';
2356
- $html .= '</div>';
2357
-
2358
- $html .= '<div class="hotspot-hover">';
2359
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2360
- $html .= '<textarea name="hotspot-hover"></textarea>';
2361
- $html .= '</div>';
2362
-
2363
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2364
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2365
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2366
- $html .= '<option value="none"> None</option>';
2367
- $html .= '</select>';
2368
- $html .= '</div>';
2369
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2370
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2371
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
2372
- $html .= '</div>';
2373
-
2374
- $html .= '</div>';
2375
- //=Hotspot type End=//
2376
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2377
- $html .= '</div>';
2378
- $html .= '</div>';
2379
- $html .= '</div>';
2380
- }
2381
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
2382
- $html .= '</div>';
2383
- }
2384
- $s++;
2385
- }
2386
- $html .= '</div>';
2387
-
2388
- $html .= '</div>';
2389
- }
2390
-
2391
- $html .= '<div class="preview-btn-wrapper">';
2392
- $html .= '<div class="preview-btn-area clearfix">';
2393
-
2394
- $html .= '<button id="panolenspreview" class="panolenspreview">'.__('Preview', 'wpvr').'</button>';
2395
- $html .= '</div>';
2396
- $html .= '</div>';
2397
- $html .='</div>';
2398
- //---end scenes tab----
2399
-
2400
- //-----start pano eror alert------
2401
- $html .= '<div id="error_occured">';
2402
- $html .= '<div class="pano-error-wrapper">';
2403
- $html .= '<div class="pano-error-body">';
2404
- $html .= '<span class="cross pano-error-close-btn">
2405
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2406
- <path fill-rule="evenodd" clip-rule="evenodd" d="M18.7778 18.7786C14.4819 23.074 7.51728 23.0738 3.22169 18.778C-1.0739 14.4823 -1.0739 7.51769 3.22169 3.22196C7.51728 -1.07378 14.4819 -1.07402 18.7778 3.22143C20.8409 5.28436 22 8.08242 22 11C22 13.9176 20.8409 16.7156 18.7778 18.7786ZM14.9278 8.21857L12.1071 11L14.9278 13.7814C15.0865 13.93 15.1765 14.1376 15.1765 14.355C15.1765 14.5724 15.0865 14.78 14.9278 14.9286C14.7795 15.0756 14.5788 15.1576 14.3699 15.1564C14.1638 15.1556 13.9663 15.0737 13.8199 14.9286L10.9992 12.1079L8.21778 14.9286C8.07143 15.0737 7.8739 15.1556 7.66778 15.1564C7.45893 15.1576 7.2582 15.0756 7.10992 14.9286C6.80528 14.6221 6.80528 14.1272 7.10992 13.8207L9.89135 11L7.10992 8.21857C6.84295 7.90683 6.8609 7.44213 7.15112 7.15191C7.44134 6.8617 7.90604 6.84375 8.21778 7.11071L10.9992 9.89214L13.7806 7.11071C13.9785 6.9058 14.2707 6.82202 14.5471 6.89095C14.8236 6.95988 15.0422 7.17104 15.1207 7.44488C15.1992 7.71872 15.1257 8.01365 14.9278 8.21857ZM4.34363 4.34471C8.02058 0.663508 13.9845 0.656605 17.6699 4.32929C19.4452 6.09842 20.4431 8.50157 20.4431 11.0079C20.4431 13.5141 19.4452 15.9173 17.6699 17.6864C13.9845 21.3591 8.02058 21.3522 4.34363 17.671C0.666691 13.9898 0.666691 8.02591 4.34363 4.34471Z" fill="#A8A7BE"/>
2407
- </svg>
2408
- </span>';
2409
-
2410
- $html .= '<span class="icon pano-warning">
2411
- <svg width="36" height="30" viewBox="0 0 36 30" fill="none" xmlns="http://www.w3.org/2000/svg">
2412
- <path fill-rule="evenodd" clip-rule="evenodd" d="M21.4802 1.86951L35.4553 24.3914C36.1816 25.5621 36.1816 26.9598 35.4553 28.1305C34.7289 29.3011 33.4278 30 31.9751 30H4.025C2.5722 30 1.2712 29.3011 0.5448 28.1305C-0.1816 26.9598 -0.1816 25.5621 0.5448 24.3914L14.5198 1.86951C15.2462 0.698907 16.5473 0 18 0C19.4527 0 20.7538 0.698841 21.4802 1.86951ZM31.9751 28.0358C32.6647 28.0358 33.2822 27.7041 33.6271 27.1484C33.9719 26.5927 33.9719 25.9291 33.6271 25.3734L19.6521 2.8515C19.3072 2.2958 18.6896 1.96404 18 1.96404C17.3104 1.96404 16.6928 2.2958 16.3479 2.8515L2.37293 25.3734C2.02812 25.9291 2.02812 26.5927 2.37293 27.1484C2.71774 27.7041 3.33537 28.0358 4.025 28.0358H31.9751Z" fill="#FAAC14"/>
2413
- <path d="M18 22C17.4486 22 17 22.4486 17 23C17 23.5514 17.4486 24 18 24C18.5514 24 19 23.5514 19 23C19 22.4486 18.5514 22 18 22Z" fill="#FAAC14"/>
2414
- <rect x="17" y="11" width="2" height="9" fill="#FAAC14"/>
2415
- </svg>
2416
- </span>';
2417
-
2418
- $html .= '<div class="pano-error-message"></div>';
2419
-
2420
- $html .= '</div>';
2421
- //---end error body---
2422
-
2423
- //---error footer---
2424
- $html .= '<div class="pano-error-footer">';
2425
- $html .= '<ul>';
2426
- $html .= '<li class="pano-error-close">';
2427
- $html .= '<button type="button" class="pano-error-close-btn">Ok</button>';
2428
- $html .= '</li>';
2429
- $html .= '</ul>';
2430
- $html .= '</div>';
2431
- $html .= '</div>';
2432
- $html .= '</div>';
2433
- //-----end pano eror alert------
2434
-
2435
- //----start video tab content---------
2436
- $html .='<div class="rex-pano-tab video" id="video">';
2437
- $html .= '<h6 class="title"> '.__('Video Settings : ', 'wpvr').'</h6>';
2438
- //==Video Setup==//
2439
- if (isset($postdata['vidid'])) {
2440
- $vidautoplay = $postdata['vidautoplay'];
2441
- $vidautoplay_on = '';
2442
- $vidautoplay_off = '';
2443
- if (!empty($vidautoplay)) {
2444
- $vidautoplay_on = 'checked';
2445
- } else {
2446
- $vidautoplay_off = 'checked';
2447
- }
2448
-
2449
- $vidcontrol = $postdata['vidcontrol'];
2450
- $vidcontrol_on = '';
2451
- $vidcontrol_off = '';
2452
- if (!empty($vidcontrol)) {
2453
- $vidcontrol_on = 'checked';
2454
- } else {
2455
- $vidcontrol_off = 'checked';
2456
- }
2457
- $html .= '<div class="single-settings videosetup">';
2458
- $html .= '<span>'.__('Enable Video:', 'wpvr').'</span>';
2459
- $html .= '<ul>';
2460
- $html .= '<li class="radio-btn">';
2461
- $html .= '<input class="styled-radio video_status video_off" id="styled-radio" type="radio" name="panovideo" value="off" >';
2462
- $html .= '<label for="styled-radio">Off</label>';
2463
- $html .= '</li>';
2464
-
2465
- $html .= '<li class="radio-btn">';
2466
- $html .= '<input class="styled-radio video_status video_on" id="styled-radio-0" type="radio" name="panovideo" value="on" checked>';
2467
- $html .= '<label for="styled-radio-0">On</label>';
2468
- $html .= '</li>';
2469
- $html .= '</ul>';
2470
- $html .= '</div>';
2471
-
2472
-
2473
- $html .= '<div class="video-setting" style="display:none;">';
2474
- $html .= '<div class="single-settings">';
2475
- $html .= '<span>'.__('Upload or Add Link: ', 'wpvr').'</span>';
2476
- $html .= '<div class="form-group">';
2477
- $html .= '<input type="text" name="video-attachment-url" placeholder="Paste Youtube or Vimeo link or upload" class="video-attachment-url" value="'.$postdata['vidurl'].'">';
2478
- $html .= '<input type="button" class="video-upload" data-info="" value="Upload" />';
2479
- $html .= '</div>';
2480
- $html .= '</div>';
2481
- $html .= '<button id="videopreview">Preview</button>';
2482
- $html .= '</div>';
2483
- } else {
2484
- $html .= '<div class="single-settings videosetup">';
2485
- $html .= '<span>'.__('Enable Video: ', 'wpvr').'</span>';
2486
- $html .= '<ul>';
2487
- $html .= '<li class="radio-btn">';
2488
- $html .= '<input class="styled-radio video_off" id="styled-radio" type="radio" name="panovideo" value="off" checked >';
2489
- $html .= '<label for="styled-radio">Off</label>';
2490
- $html .= '</li>';
2491
-
2492
- $html .= '<li class="radio-btn">';
2493
- $html .= '<input class="styled-radio video_on" id="styled-radio-0" type="radio" name="panovideo" value="on" >';
2494
- $html .= '<label for="styled-radio-0">On</label>';
2495
- $html .= '</li>';
2496
- $html .= '</ul>';
2497
- $html .= '</div>';
2498
-
2499
- //==Video setup end==//
2500
-
2501
- //==Video Setting==/
2502
- $html .= '<div class="video-setting" style="display:none;">';
2503
- $html .= '<div class="single-settings">';
2504
- $html .= '<span>'.__('Upload or Add Link: ', 'wpvr').'</span>';
2505
- $html .= '<div class="form-group">';
2506
- $html .= '<input type="text" placeholder="Paste Youtube or Vimeo link or upload" name="video-attachment-url" class="video-attachment-url" value="">';
2507
- $html .= '<input type="button" class="video-upload" data-info="" value="Upload"/>';
2508
- $html .= '</div>';
2509
- $html .= '</div>';
2510
- $html .= '<button id="videopreview">Preview</button>';
2511
- $html .= '</div>';
2512
- }
2513
-
2514
- $html .= '<div class="wpvr-use-shortcode">';
2515
- $post = get_post();
2516
- $id = $post->ID;
2517
- $slug = $post->post_name;
2518
- $postdata = get_post_meta($post->ID, 'panodata', true);
2519
-
2520
- $html .= '<h4 class="area-title">'.__('Using this Tour', 'wpvr').'</h4>';
2521
-
2522
- $html .= '<div class="shortcode-wrapper">';
2523
- $html .= '<div class="single-shortcode classic">';
2524
- $html .= '<span class="shortcode-title">'.__('For Classic Editor:', 'wpvr').'</span>';
2525
-
2526
- $html .= '<div class="field-wapper">';
2527
- $html .= '<span>'.__('To use this WP VR tour in your posts or pages use the following shortcode ', 'wpvr').'</span>';
2528
-
2529
- $html .= '<div class="shortcode-field">';
2530
- $html .= '<p class="copycode" id="copy-shortcode-video">[wpvr id="'.$id.'"]</p>';
2531
- $html .= '<span id="wpvr-copy-shortcode-video" class="wpvr-copy-shortcode">';
2532
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/copy.png'.'" alt="icon" />';
2533
- $html .= '</span>';
2534
- $html .= '</div>';
2535
-
2536
- $html .= '<span id="wpvr-copied-notice-video" class="wpvr-copied-notice"></span>';
2537
-
2538
- $html .= '</div>';
2539
- $html .= '</div>';
2540
- $html .= '</div>';
2541
-
2542
- $html .= '<script>';
2543
- $html .= '
2544
-
2545
- document.getElementById("wpvr-copy-shortcode-video").addEventListener("click", function() {
2546
- copyToClipboardVideo(document.getElementById("copy-shortcode-video"));
2547
- });
2548
-
2549
- function copyToClipboardVideo(elem) {
2550
- // create hidden text element, if it doesn\'t already exist
2551
- var targetId = "_hiddenCopyText_";
2552
- var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
2553
- var origSelectionStart, origSelectionEnd;
2554
- if (isInput) {
2555
- // can just use the original source element for the selection and copy
2556
- target = elem;
2557
- origSelectionStart = elem.selectionStart;
2558
- origSelectionEnd = elem.selectionEnd;
2559
- } else {
2560
- // must use a temporary form element for the selection and copy
2561
- target = document.getElementById(targetId);
2562
- if (!target) {
2563
- var target = document.createElement("textarea");
2564
- target.style.position = "absolute";
2565
- target.style.left = "-9999px";
2566
- target.style.top = "0";
2567
- target.id = targetId;
2568
- document.body.appendChild(target);
2569
- }
2570
- target.textContent = elem.textContent;
2571
- }
2572
- // select the content
2573
- var currentFocus = document.activeElement;
2574
- target.focus();
2575
- target.setSelectionRange(0, target.value.length);
2576
-
2577
- // copy the selection
2578
- var succeed;
2579
- try {
2580
- succeed = document.execCommand("copy");
2581
- document.getElementById("wpvr-copied-notice-video").innerHTML = "Copied!";
2582
- } catch(e) {
2583
- succeed = false;
2584
- }
2585
- // restore original focus
2586
- if (currentFocus && typeof currentFocus.focus === "function") {
2587
- currentFocus.focus();
2588
- }
2589
-
2590
- setTimeout(function(){
2591
- document.getElementById("wpvr-copied-notice-video").innerHTML = "";
2592
- }, 2000 );
2593
-
2594
- if (isInput) {
2595
- // restore prior selection
2596
- elem.setSelectionRange(origSelectionStart, origSelectionEnd);
2597
- } else {
2598
- // clear temporary content
2599
- target.textContent = "";
2600
- }
2601
- document.getElementById("wpvr-copy-shortcode-video").scrollIntoView()
2602
- return succeed;
2603
- }
2604
-
2605
- ';
2606
-
2607
- $html .= '</script>';
2608
- $html .= '</div>';
2609
- //=end shortcode area=
2610
- //==Video Setting End==//
2611
-
2612
- $html .='</div>';
2613
- //---end video tab----
2614
- $html .='</div>';
2615
- //---end rex-pano-tab-content----
2616
- $html .='</div>';
2617
- //---end rex-pano-tabs---
2618
- $html .= '</div>';
2619
- $html .= '<div class="wpvr-loading" style="display:none;">Loading&#8230;</div>';
2620
- echo $html;
2621
- }
2622
-
2623
- /**
2624
- * Rollback execution
2625
- */
2626
- public function trigger_rollback()
2627
- {
2628
- if (isset($_GET['wpvr_version'])) {
2629
- $version = $_GET['wpvr_version'];
2630
- $plugin_slug = 'wpvr';
2631
- $rollback = new WPVR_Rollback(
2632
- [
2633
- 'version' => $version,
2634
- 'plugin_name' => 'wpvr',
2635
- 'plugin_slug' => $plugin_slug,
2636
- 'package_url' => sprintf('https://downloads.wordpress.org/plugin/%s.%s.zip', $plugin_slug, $version),
2637
- ]
2638
- );
2639
-
2640
- $rollback->run();
2641
- }
2642
- }
2643
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (! defined('ABSPATH')) {
3
+ exit;
4
+ } // Exit if accessed directly
5
+ /**
6
+ * The admin-specific functionality of the plugin.
7
+ *
8
+ * @link http://rextheme.com/
9
+ * @since 1.0.0
10
+ *
11
+ * @package Wpvr
12
+ * @subpackage Wpvr/admin
13
+ */
14
+
15
+ /**
16
+ * The admin-specific functionality of the plugin.
17
+ *
18
+ * Defines the plugin name, version, and two examples hooks for how to
19
+ * enqueue the admin-specific stylesheet and JavaScript.
20
+ *
21
+ * @package Wpvr
22
+ * @subpackage Wpvr/admin
23
+ * @author Rextheme <sakib@coderex.co>t
24
+ */
25
+ class Wpvr_Admin
26
+ {
27
+
28
+ /**
29
+ * The ID of this plugin.
30
+ *
31
+ * @since 1.0.0
32
+ * @access private
33
+ * @var string $plugin_name The ID of this plugin.
34
+ */
35
+ private $plugin_name;
36
+
37
+ /**
38
+ * The version of this plugin.
39
+ *
40
+ * @since 1.0.0
41
+ * @access private
42
+ * @var string $version The current version of this plugin.
43
+ */
44
+ private $version;
45
+
46
+ /**
47
+ * The post type of this plugin.
48
+ *
49
+ * @since 1.0.0
50
+ */
51
+ private $post_type;
52
+
53
+ /**
54
+ * Initialize the class and set its properties.
55
+ *
56
+ * @since 1.0.0
57
+ * @param string $plugin_name The name of this plugin.
58
+ * @param string $version The version of this plugin.
59
+ */
60
+ public function __construct($plugin_name, $version, $post_type)
61
+ {
62
+ $this->plugin_name = $plugin_name;
63
+ $this->version = $version;
64
+ $this->post_type = $post_type;
65
+ }
66
+
67
+ /**
68
+ * Register the stylesheets for the admin area.
69
+ *
70
+ * @since 1.0.0
71
+ */
72
+ public function enqueue_styles()
73
+ {
74
+
75
+ /**
76
+ * This function is provided for demonstration purposes only.
77
+ *
78
+ * An instance of this class should be passed to the run() function
79
+ * defined in Wpvr_Loader as all of the hooks are defined
80
+ * in that particular class.
81
+ *
82
+ * The Wpvr_Loader will then create the relationship
83
+ * between the defined hooks and the functions defined in this
84
+ * class.
85
+ */
86
+
87
+ $screen = get_current_screen();
88
+ if ($screen->id=="toplevel_page_wpvr") {
89
+ wp_enqueue_style('materialize-css', plugin_dir_url(__FILE__) . 'css/materialize.min.css', array(), $this->version, 'all');
90
+ wp_enqueue_style('materialize-icons', plugin_dir_url(__FILE__) . 'lib/materializeicon.css', array(), $this->version, 'all');
91
+ wp_enqueue_style('owl-css', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', array(), $this->version, 'all');
92
+
93
+ wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
94
+ }
95
+
96
+ if ($screen->id=="wpvr_item") {
97
+ wp_enqueue_style($this->plugin_name . 'fontawesome', plugin_dir_url(__FILE__) . 'lib/fontawesome/css/all.css', array(), $this->version, 'all');
98
+ wp_enqueue_style('icon-picker-css', plugin_dir_url(__FILE__) . 'css/jquery.fonticonpicker.min.css', array(), $this->version, 'all');
99
+ wp_enqueue_style('icon-picker-css-theme', plugin_dir_url(__FILE__) . 'css/jquery.fonticonpicker.grey.min.css', array(), $this->version, 'all');
100
+ wp_enqueue_style('owl-css', plugin_dir_url(__FILE__) . 'css/owl.carousel.css', array(), $this->version, 'all');
101
+ wp_enqueue_style('panellium-css', plugin_dir_url(__FILE__) . 'lib/pannellum/src/css/pannellum.css', array(), true);
102
+ wp_enqueue_style('videojs-css', plugin_dir_url(__FILE__) . 'lib/pannellum/src/css/video-js.css', array(), true);
103
+ wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
104
+ }
105
+ }
106
+
107
+ /**
108
+ * Register the JavaScript for the admin area.
109
+ *
110
+ * @since 1.0.0
111
+ */
112
+ public function enqueue_scripts()
113
+ {
114
+
115
+ /**
116
+ * This function is provided for demonstration purposes only.
117
+ *
118
+ * An instance of this class should be passed to the run() function
119
+ * defined in Wpvr_Loader as all of the hooks are defined
120
+ * in that particular class.
121
+ *
122
+ * The Wpvr_Loader will then create the relationship
123
+ * between the defined hooks and the functions defined in this
124
+ * class.
125
+ */
126
+
127
+ $wpvr_list = array();
128
+ $wpvr_list[] = array('value'=>0,'label'=>'None');
129
+ $args = array(
130
+ 'numberposts' => -1,
131
+ 'post_type' => 'wpvr_item'
132
+ );
133
+
134
+ $wpvr_posts = get_posts( $args );
135
+ foreach ($wpvr_posts as $wpvr_post) {
136
+ $wpvr_list[] = array('value'=>$wpvr_post->ID,'label'=>$wpvr_post->post_title);
137
+ }
138
+
139
+ wp_enqueue_script('wp-api');
140
+ $adscreen = get_current_screen();
141
+ wp_enqueue_media();
142
+ if ($adscreen->id=="wpvr_item" || $adscreen->id=="toplevel_page_wpvr") {
143
+ wp_enqueue_script('wpvr-icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
144
+ wp_enqueue_script('panellium-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/pannellum.js', array(), true);
145
+ wp_enqueue_script('panelliumlib-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
146
+ wp_enqueue_script('videojs-js', plugin_dir_url(__FILE__) .'js/video.js', array('jquery'), true);
147
+ wp_enqueue_script('panelliumvid-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/videojs-pannellum-plugin.js', array(), true);
148
+ wp_enqueue_script('jquery-repeater', plugin_dir_url(__FILE__) .'js/jquery.repeater.min.js', array('jquery'), true);
149
+ wp_enqueue_script('icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
150
+ wp_enqueue_script('owl', plugin_dir_url(__FILE__) . 'js/owl.carousel.js', array( 'jquery' ), false);
151
+ wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/wpvr-admin.js', array( 'jquery' ), $this->version, true);
152
+ wp_localize_script($this->plugin_name, 'wpvr_obj', array(
153
+ 'ajaxurl' => admin_url('admin-ajax.php'),
154
+ 'ajax_nonce' => wp_create_nonce('wpvr'),
155
+ ));
156
+
157
+
158
+
159
+ }
160
+
161
+ if ($adscreen->id=="toplevel_page_wpvr") {
162
+ wp_enqueue_script('materialize-js', plugin_dir_url(__FILE__) . 'js/materialize.min.js', array( 'jquery' ), $this->version, false);
163
+ }
164
+
165
+ wp_enqueue_script('owl-js', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js', array( 'jquery' ), false);
166
+ wp_enqueue_script('wpvr-global', plugin_dir_url(__FILE__) . 'js/wpvr-global.js', array( 'jquery' ), $this->version, false);
167
+ wp_localize_script('wpvr-global', 'wpvr_global_obj', array(
168
+ 'ajaxurl' => admin_url('admin-ajax.php'),
169
+ 'site_url' => site_url() . '/wp-json/',
170
+ 'ajax_nonce' => wp_create_nonce('wpvr_global'),
171
+ ));
172
+ wp_localize_script('wpvr-global', 'wpvr_id_options', $wpvr_list);
173
+ }
174
+
175
+
176
+ /**
177
+ * Plugin action links
178
+ *
179
+ * @param $links
180
+ * @return array
181
+ */
182
+ public function plugin_action_links_wpvr($actions, $plugin_file, $plugin_data, $context)
183
+ {
184
+ $actions['get_started'] = sprintf(
185
+ '<a href="%s">%s</a>',
186
+ esc_url(admin_url('admin.php?page=wpvr')),
187
+ esc_html__('Get Started', 'wpvr')
188
+ );
189
+ $actions['documentation'] = sprintf(
190
+ '<a href="%s" target="_blank">%s</a>',
191
+ esc_url('https://rextheme.com/docs-category/wp-vr/'),
192
+ esc_html__('Documentation', 'wpvr')
193
+ );
194
+
195
+ if (!apply_filters('is_wpvr_pro_active', false)) {
196
+ $actions['go-pro'] = sprintf(
197
+ '<a href="%s" target="_blank" style="color: #201cfe; font-weight: bold;">%s</a>',
198
+ esc_url('https://rextheme.com/wpvr/#pricing'),
199
+ esc_html__('Go Pro', 'wpvr')
200
+ );
201
+ }
202
+ return $actions;
203
+ }
204
+
205
+
206
+ /**
207
+ * Init the edit screen of the plugin post type item
208
+ *
209
+ * @since 1.0.0
210
+ */
211
+ public function wpvr_admin_init()
212
+ {
213
+ /*
214
+ * Documentation : https://developer.wordpress.org/reference/functions/add_meta_box/
215
+ */
216
+
217
+ add_meta_box(
218
+ $this->post_type . '_builder__box',
219
+ __('Tour Preview', $this->plugin_name),
220
+ array($this, 'wpvr_display_meta_box_builder'),
221
+ $this->post_type,
222
+ 'side',
223
+ 'high'
224
+ );
225
+ }
226
+
227
+
228
+ /**
229
+ * Register the custom post type
230
+ *
231
+ * @since 1.0.0
232
+ */
233
+ public function wpvr_add_plugin_custom_post_type()
234
+ {
235
+ $labels = array(
236
+ 'name' => __('Tours', $this->plugin_name),
237
+ 'singular_name' => __('Tours', $this->plugin_name),
238
+ 'add_new' => __('Add New Tour', $this->plugin_name),
239
+ 'add_new_item' => __('Add New Tour', $this->plugin_name),
240
+ 'edit_item' => __('Edit Tour', $this->plugin_name),
241
+ 'new_item' => __('New Tour', $this->plugin_name),
242
+ 'view_item' => __('View Tour', $this->plugin_name),
243
+ 'search_items' => __('Search Wpvr Tour', $this->plugin_name),
244
+ 'not_found' => __('No Wpvr Tour found', $this->plugin_name),
245
+ 'not_found_in_trash'=> __('No Wpvr Tour found in Trash', $this->plugin_name),
246
+ 'parent_item_colon' => '',
247
+ 'all_items' => __('All Tours', $this->plugin_name),
248
+ 'menu_name' => __('WP VR', $this->plugin_name),
249
+ );
250
+
251
+ $args = array(
252
+ 'labels' => $labels,
253
+ 'public' => false,
254
+ 'show_ui' => true,
255
+ 'show_in_menu' => false,
256
+ 'menu_position' => 100,
257
+ 'supports' => array( 'title' ),
258
+ 'menu_icon' => plugins_url(). '/wpvr/images/icon.png',
259
+ 'capabilities' => array(
260
+ 'edit_post' => 'edit_wpvr_tour',
261
+ 'edit_posts' => 'edit_wpvr_tours',
262
+ 'edit_others_posts' => 'edit_other_wpvr_tours',
263
+ 'publish_posts' => 'publish_wpvr_tours',
264
+ 'read_post' => 'read_wpvr_tour',
265
+ 'read_private_posts' => 'read_private_wpvr_tours',
266
+ 'delete_post' => 'delete_wpvr_tour'
267
+ ),
268
+ 'map_meta_cap' => true,
269
+ );
270
+
271
+ /**
272
+ * Documentation : https://codex.wordpress.org/Function_Reference/register_post_type
273
+ */
274
+ register_post_type($this->post_type, $args);
275
+ }
276
+
277
+ /**
278
+ * Populates the data in the custom columns
279
+ *
280
+ * @since 1.0.0
281
+ */
282
+ public function wpvr_manage_posts_custom_column($column_name)
283
+ {
284
+ $post = get_post();
285
+
286
+ switch ($column_name) {
287
+ case 'shortcode':
288
+ echo '<code>[wpvr id="' . $post->ID . '"]</code>';
289
+ break;
290
+ default:
291
+ break;
292
+ }
293
+ }
294
+
295
+ /**
296
+ * Adds the custom columns to the post type admin screen
297
+ *
298
+ * @since 1.0.0
299
+ */
300
+ public function wpvr_manage_post_columns()
301
+ {
302
+ $columns = array(
303
+ 'cb' => '<input type="checkbox" />',
304
+ 'title' => __('Title', $this->plugin_name),
305
+ 'shortcode' => __('Shortcodes', $this->plugin_name),
306
+ 'author' => __('Author', $this->plugin_name),
307
+ 'date' => __('Date', $this->plugin_name)
308
+ );
309
+ return $columns;
310
+ }
311
+
312
+ /**
313
+ * Sets the messages for the custom post type
314
+ *
315
+ * @since 1.0.0
316
+ */
317
+ public function wpvr_post_updated_messages($messages)
318
+ {
319
+ $messages[$this->post_type][1] = __('WP VR item updated.', $this->plugin_name);
320
+ $messages[$this->post_type][4] = __('WP VR item updated.', $this->plugin_name);
321
+
322
+ return $messages;
323
+ }
324
+
325
+ /**
326
+ * Render the shortcode box for this plugin.
327
+ *
328
+ * @since 1.0.0
329
+ */
330
+ public function wpvr_display_meta_box_shortcode()
331
+ {
332
+ include_once('partials/wpvr-meta-box-shortcode-display.php');
333
+ }
334
+
335
+ /**
336
+ * Render the builder box for this plugin.
337
+ *
338
+ * @since 1.0.0
339
+ */
340
+ public function wpvr_display_meta_box_builder()
341
+ {
342
+ include_once('partials/wpvr-meta-box-builder-display.php');
343
+ }
344
+
345
+ /**
346
+ * Custom Metabox
347
+ */
348
+ public function wpvr_add_setup_metabox()
349
+ {
350
+ add_meta_box('setup', __('Setup'), array($this, 'wpvr_setup'), 'wpvr_item', 'normal', 'high');
351
+ }
352
+ public function wpvr_setup($post)
353
+ {
354
+ $data_limit = 5;
355
+
356
+ $scene_limit = $data_limit + 1;
357
+ $postdata = get_post_meta($post->ID, 'panodata', true);
358
+
359
+
360
+ $autoload = true;
361
+ if (isset($postdata["autoLoad"])) {
362
+ $autoload = $postdata["autoLoad"];
363
+ }
364
+
365
+ $control = true;
366
+ if (isset($postdata["showControls"])) {
367
+ $control = $postdata["showControls"];
368
+ }
369
+
370
+ $default_scene = '';
371
+ if (isset($postdata["defaultscene"])) {
372
+ $default_scene = $postdata["defaultscene"];
373
+ }
374
+
375
+ $preview = '';
376
+ if (isset($postdata['preview'])) {
377
+ $preview = $postdata['preview'];
378
+ }
379
+ $previewtext = '';
380
+ if (isset($postdata['previewtext'])) {
381
+ $previewtext = $postdata['previewtext'];
382
+ }
383
+
384
+ $autorotation = '';
385
+ if (isset($postdata["autoRotate"])) {
386
+ $autorotation = $postdata["autoRotate"];
387
+ } else {
388
+ $autorotation = -5;
389
+ }
390
+ $autorotationinactivedelay = '';
391
+ if (isset($postdata["autoRotateInactivityDelay"])) {
392
+ $autorotationinactivedelay = $postdata["autoRotateInactivityDelay"];
393
+ }
394
+
395
+ $autorotationstopdelay = '';
396
+ if (isset($postdata["autoRotateStopDelay"])) {
397
+ $autorotationstopdelay = $postdata["autoRotateStopDelay"];
398
+ }
399
+
400
+ $scene_fade_duration = '';
401
+ if (isset($postdata["scenefadeduration"])) {
402
+ $scene_fade_duration = $postdata["scenefadeduration"];
403
+ }
404
+
405
+ $pano_data = '';
406
+ if (isset($postdata["panodata"])) {
407
+ $pano_data = $postdata["panodata"];
408
+ }
409
+
410
+ $custom_icon_array = new Wpvr_fontawesome_icons();
411
+ $custom_icon = $custom_icon_array->icon;
412
+
413
+ $html = '';
414
+
415
+
416
+
417
+ $html .= '<div class="pano-setup">';
418
+
419
+ // active tab variables
420
+ $active_tab = 'general';
421
+ $scene_active_tab = 1;
422
+ $hotspot_active_tab = 1;
423
+ if (isset($_GET['active_tab'])) {
424
+ $active_tab = $_GET['active_tab'];
425
+ }
426
+ if (isset($_GET['scene'])) {
427
+ $scene_active_tab = $_GET['scene'];
428
+ }
429
+ if (isset($_GET['hotspot'])) {
430
+ $hotspot_active_tab = $_GET['hotspot'];
431
+ }
432
+
433
+ $html = '';
434
+
435
+ $html .= '<div class="pano-setup">';
436
+
437
+ $html .= '<input type="hidden" value="'.$active_tab.'" name="wpvr_active_tab" id="wpvr_active_tab"/>';
438
+ $html .= '<input type="hidden" value="'.$scene_active_tab.'" name="wpvr_active_scenes" id="wpvr_active_scenes"/>';
439
+ $html .= '<input type="hidden" value="'.$hotspot_active_tab.'" name="wpvr_active_hotspot" id="wpvr_active_hotspot"/>';
440
+
441
+ //--------start pano alert------
442
+ $html .= '<div class="pano-alert scene-alert">';
443
+ $html .= '<div class="pano-error-wrapper">';
444
+ $html .= '<div class="pano-error-body">';
445
+ $html .= '<span class="cross pano-error-close-btn">
446
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
447
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M18.7778 18.7786C14.4819 23.074 7.51728 23.0738 3.22169 18.778C-1.0739 14.4823 -1.0739 7.51769 3.22169 3.22196C7.51728 -1.07378 14.4819 -1.07402 18.7778 3.22143C20.8409 5.28436 22 8.08242 22 11C22 13.9176 20.8409 16.7156 18.7778 18.7786ZM14.9278 8.21857L12.1071 11L14.9278 13.7814C15.0865 13.93 15.1765 14.1376 15.1765 14.355C15.1765 14.5724 15.0865 14.78 14.9278 14.9286C14.7795 15.0756 14.5788 15.1576 14.3699 15.1564C14.1638 15.1556 13.9663 15.0737 13.8199 14.9286L10.9992 12.1079L8.21778 14.9286C8.07143 15.0737 7.8739 15.1556 7.66778 15.1564C7.45893 15.1576 7.2582 15.0756 7.10992 14.9286C6.80528 14.6221 6.80528 14.1272 7.10992 13.8207L9.89135 11L7.10992 8.21857C6.84295 7.90683 6.8609 7.44213 7.15112 7.15191C7.44134 6.8617 7.90604 6.84375 8.21778 7.11071L10.9992 9.89214L13.7806 7.11071C13.9785 6.9058 14.2707 6.82202 14.5471 6.89095C14.8236 6.95988 15.0422 7.17104 15.1207 7.44488C15.1992 7.71872 15.1257 8.01365 14.9278 8.21857ZM4.34363 4.34471C8.02058 0.663508 13.9845 0.656605 17.6699 4.32929C19.4452 6.09842 20.4431 8.50157 20.4431 11.0079C20.4431 13.5141 19.4452 15.9173 17.6699 17.6864C13.9845 21.3591 8.02058 21.3522 4.34363 17.671C0.666691 13.9898 0.666691 8.02591 4.34363 4.34471Z" fill="#A8A7BE"/>
448
+ </svg>
449
+ </span>';
450
+
451
+ $html .= '<span class="icon pano-warning">
452
+ <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
453
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M0 15C0 23.2843 6.71573 30 15 30C23.2843 30 30 23.2843 30 15C30 6.71573 23.2843 0 15 0C6.71573 0 0 6.71573 0 15ZM2 15C2 7.8203 7.8203 2 15 2C22.1797 2 28 7.8203 28 15C28 22.1797 22.1797 28 15 28C7.8203 28 2 22.1797 2 15Z" fill="#004EFA"/>
454
+ <circle cx="8.5" cy="11.5" r="1.5" fill="#004EFA"/>
455
+ <circle cx="21.5" cy="11.5" r="1.5" fill="#004EFA"/>
456
+ <path d="M20.9993 21.9932C20.7336 21.995 20.4781 21.8728 20.2894 21.6537C17.6429 18.5603 13.3571 18.5603 10.7106 21.6537C10.5228 21.8753 10.2673 22 10.0007 22C9.73407 22 9.4785 21.8753 9.29076 21.6537C8.90308 21.1971 8.90308 20.4596 9.29076 20.0029C12.7241 15.999 18.2759 15.999 21.7092 20.0029C22.0969 20.4596 22.0969 21.1971 21.7092 21.6537C21.5205 21.8728 21.2651 21.995 20.9993 21.9932V21.9932Z" fill="#004EFA"/>
457
+ </svg>
458
+ </span>';
459
+
460
+ $html .= '<div class="pano-error-message"></div>';
461
+
462
+ $html .= '</div>';
463
+ //---end error body---
464
+
465
+ //---error footer---
466
+ $html .= '<div class="pano-error-footer">';
467
+ $html .= '<ul>';
468
+ $html .= '<li class="pano-error-close">';
469
+ $html .= '<a href="https://rextheme.com/wpvr/" target="_blank" >Upgrade to Pro</a>';
470
+ $html .= '</li>';
471
+ $html .= '</ul>';
472
+ $html .= '</div>';
473
+ $html .= '</div>';
474
+ $html .= '</div>';
475
+ //--------end pano alert------
476
+
477
+ $html .='<div class="rex-pano-tabs">';
478
+ $html .='<nav class="rex-pano-tab-nav rex-pano-nav-menu main-nav" id="wpvr-main-nav">';
479
+ $html .='<ul>';
480
+ $html .='<li class="logo"><img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/logo.png'.'" alt="logo" /></li>';
481
+
482
+ $html .='<li class="general active" data-screen="general">';
483
+ $html .='<span data-href="#general">';
484
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-regular.png'.'" alt="icon" class="regular" />';
485
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-hover.png'.'" alt="icon" class="hover" />';
486
+ $html .=''.__('General', 'wpvr').'</span>';
487
+ $html .='</li>';
488
+
489
+ $html .='<li class="scene" data-screen="scene">';
490
+ $html .='<span data-href="#scenes">';
491
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-regular.png'.'" alt="icon" class="regular" />';
492
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-hover.png'.'" alt="icon" class="hover" />';
493
+ $html .=''.__('Scenes', 'wpvr').'</span>';
494
+ $html .='</li>';
495
+
496
+ $html .='<li class="hotspot" data-screen="hotspot">';
497
+ $html .='<span data-href="#scenes">';
498
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-regular.png'.'" alt="icon" class="regular" />';
499
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-hover.png'.'" alt="icon" class="hover" />';
500
+ $html .=''.__('Hotspot', 'wpvr').'</span>';
501
+ $html .='</li>';
502
+
503
+ $html .='<li class="videos" data-screen="video">';
504
+ $html .='<span data-href="#video">';
505
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-regular.png'.'" alt="icon" class="regular" />';
506
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-hover.png'.'" alt="icon" class="hover" />';
507
+ $html .=''.__('Video', 'wpvr').'</span>';
508
+ $html .='</li>';
509
+ $html .='</ul>';
510
+ $html .='</nav>';
511
+
512
+ $html .='<div class="rex-pano-tab-content" id="wpvr-main-tab-contents">';
513
+ $html .='<div class="rex-pano-tab general active" id="general">';
514
+
515
+ //=start inner tab=
516
+ $html .= '<div class="general-inner-tab">';
517
+ //=start inner nav=
518
+ $html .= '<ul class="inner-nav">';
519
+
520
+ $html .='<li class="gen-basic active">';
521
+ $html .='<span data-href="#gen-basic">';
522
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-regular.png'.'" alt="icon" class="regular" />';
523
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-hover.png'.'" alt="icon" class="hover" />';
524
+ $html .=''.__('Basic Settings ', 'wpvr').'</span>';
525
+ $html .='</li>';
526
+
527
+ $html .='<li class="gen-advanced">';
528
+ $html .='<span data-href="#gen-advanced">';
529
+ $html .='<span class="pro-tag">pro</span>';
530
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-regular.png'.'" alt="icon" class="regular" />';
531
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-hover.png'.'" alt="icon" class="hover" />';
532
+ $html .=''.__('Advanced Controls ', 'wpvr').'</span>';
533
+ $html .='</li>';
534
+
535
+ $html .='<li class="gen-control">';
536
+ $html .='<span data-href="#gen-control">';
537
+ $html .='<span class="pro-tag">pro</span>';
538
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-regular.png'.'" alt="icon" class="regular" />';
539
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-hover.png'.'" alt="icon" class="hover" />';
540
+ $html .=''.__('Control Buttons ', 'wpvr').'</span>';
541
+ $html .='</li>';
542
+
543
+ $html .='<li class="vr-documentation">';
544
+ $html .='<a href="https://rextheme.com/docs-category/wp-vr/" target="_blank">'.__('Documentation ', 'wpvr').'</a>';
545
+ $html .='</li>';
546
+
547
+ $html .= '</ul>';
548
+ //=end inner nav=
549
+
550
+ $html .= '<div class="inner-nav-content">';
551
+ $html .= '<div class="basic-settings-content inner-single-content active" id="gen-basic">';
552
+ $html .= '<div class="content-wrapper">';
553
+ $html .= '<div class="left">';
554
+ //===preview image===//
555
+ if (!empty($preview)) {
556
+ $html .= '<div class="single-settings preview-setting">';
557
+ $html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
558
+ $html .= '<div class="form-group">';
559
+ $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="'.$preview.'">';
560
+ $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
561
+ $html .= '<div class="img-upload-frame img-uploaded" style="background-image: url('.$preview.')">';
562
+ $html .= '<span class="remove-attachment">x</span>';
563
+ $html .= '<label for="vr-preview-img">';
564
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="preview img" />';
565
+ $html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
566
+ $html .= '</label>';
567
+ $html .= '</div>';
568
+
569
+ $html .= '</div>';
570
+ $html .= '<span class="hints">'.__('This option will not work if the "Tour Autoload" is turned on.', 'wpvr').'</span>';
571
+ $html .= '</div>';
572
+ } else {
573
+ $html .= '<div class="single-settings preview-setting">';
574
+ $html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
575
+ $html .= '<div class="form-group">';
576
+ $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="">';
577
+ $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
578
+ $html .= '<div class="img-upload-frame">';
579
+ $html .= '<span class="remove-attachment">x</span>';
580
+ $html .= '<label for="vr-preview-img">';
581
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="icon" />';
582
+ $html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
583
+ $html .= '</label>';
584
+ $html .= '</div>';
585
+ $html .= '</div>';
586
+ $html .= '</div>';
587
+ }
588
+ //===preview image end===//
589
+
590
+ //=Message on Tour Preview Image=//
591
+ if(!empty($previewtext)){
592
+ $html .= '<div class="single-settings preview-img-message">';
593
+ $html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
594
+ $html .= '<input class="previewtext" type="text" name="previewtext" value="'.$previewtext.'"/>';
595
+ $html .= '</div>';
596
+ }else{
597
+ $html .= '<div class="single-settings preview-img-message">';
598
+ $html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
599
+ $html .= '<input class="previewtext" type="text" name="previewtext" value="Click To Load Panorama"/>';
600
+ $html .= '</div>';
601
+ }
602
+
603
+ //=Autoload setup=//
604
+ if ($autoload == true) {
605
+ $html .= '<div class="single-settings autoload">';
606
+ $html .= '<span>'.__('Tour Autoload: ', 'wpvr').'</span>';
607
+
608
+ $html .= '<span class="wpvr-switcher">';
609
+ $html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="on" checked />';
610
+ $html .= '<label for="wpvr_autoload"></label>';
611
+ $html .= '</span>';
612
+
613
+ $html .= '<div class="field-tooltip">';
614
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
615
+ $html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
616
+ $html .= '</div>';
617
+ $html .= '</div>';
618
+ } else {
619
+ $html .= '<div class="single-settings autoload">';
620
+ $html .= '<span>'.__('Tour Autoload: ', 'wpvr').' </span>';
621
+
622
+ $html .= '<span class="wpvr-switcher">';
623
+ $html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="off" />';
624
+ $html .= '<label for="wpvr_autoload"></label>';
625
+ $html .= '</span>';
626
+
627
+ $html .= '<div class="field-tooltip">';
628
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
629
+ $html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
630
+ $html .= '</div>';
631
+ $html .= '</div>';
632
+ }
633
+ //=Autoload setup End=//
634
+
635
+
636
+
637
+ //=Control Setup=
638
+ if ($control == false) {
639
+ $html .= '<div class="single-settings controls">';
640
+ $html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
641
+
642
+ $html .= '<span class="wpvr-switcher">';
643
+ $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="off" name="controls" type="checkbox" />';
644
+ $html .= '<label for="wpvr_controls"></label>';
645
+ $html .= '</span>';
646
+
647
+ $html .= '<div class="field-tooltip">';
648
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
649
+ $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
650
+ $html .= '</div>';
651
+ $html .= '</div>';
652
+ } else {
653
+ $html .= '<div class="single-settings controls">';
654
+ $html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
655
+
656
+ $html .= '<span class="wpvr-switcher">';
657
+ $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="on" name="controls" type="checkbox" checked />';
658
+ $html .= '<label for="wpvr_controls"></label>';
659
+ $html .= '</span>';
660
+
661
+ $html .= '<div class="field-tooltip">';
662
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
663
+ $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
664
+ $html .= '</div>';
665
+ $html .= '</div>';
666
+ }
667
+ //=Control setup End=//
668
+
669
+ $html .= '</div>';
670
+ //===end left===//
671
+
672
+ $html .= '<div class="right">';
673
+ //=scene fade duration=//
674
+ $html .= '<div class="single-settings scene-fade-duration">';
675
+ $html .= '<span>'.__('Scene Fade Duration: ', 'wpvr').'</span>';
676
+ $html .= '<input type="number" name="scene-fade-duration" value="'.$scene_fade_duration.'" />';
677
+
678
+ $html .= '<div class="field-tooltip">';
679
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
680
+ $html .= '<span>'.__('This will set the scene fade effect and execution time.', 'wpvr').'</span>';
681
+ $html .= '</div>';
682
+ $html .= '</div>';
683
+ //=scene fade duration End=//
684
+
685
+ //===Autorotation on off set==//
686
+ if (isset($postdata["autoRotate"])) {
687
+ $html .= '<div class="single-settings autoload">';
688
+ $html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
689
+
690
+ $html .= '<span class="wpvr-switcher">';
691
+ $html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="on" name="autorotation" type="checkbox" checked />';
692
+ $html .= '<label for="wpvr_autorotation"></label>';
693
+ $html .= '</span>';
694
+ $html .= '</div>';
695
+ } else {
696
+ $html .= '<div class="single-settings autoload">';
697
+ $html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
698
+
699
+ $html .= '<span class="wpvr-switcher">';
700
+ $html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="off" name="autorotation" type="checkbox" />';
701
+ $html .= '<label for="wpvr_autorotation"></label>';
702
+ $html .= '</span>';
703
+ $html .= '</div>';
704
+ }
705
+ //===end Autorotation on off set==//
706
+
707
+ //=Auto Rotation=//
708
+ $html .= '<div class="autorotationdata-wrapper">';
709
+ $html .= '<div class="single-settings autorotationdata" >';
710
+ $html .= '<span>'.__('Rotation Speed and Direction: ', 'wpvr').'</span>';
711
+ $html .= '<input type="number" name="auto-rotation" value="'.$autorotation.'" placeholder="-5" />';
712
+
713
+ $html .= '<div class="field-tooltip">';
714
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
715
+ $html .= '<span>'.__('Set a value to determine the speed of rotation. The higher the number, the faster it will rotate. Positive values will make it rotate clockwise and negative values will make it rotate anti clockwise', 'wpvr').'</span>';
716
+ $html .= '</div>';
717
+ $html .= '</div>';
718
+ //=Auto Rotation=//
719
+
720
+ //=Auto rotation inactive delay=//
721
+ $html .= '<div class="single-settings autorotationdata" >';
722
+ $html .= '<span>'.__('Resume Auto-rotation after: ', 'wpvr').'</span>';
723
+ $html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" placeholder="2000" />';
724
+
725
+ $html .= '<div class="field-tooltip">';
726
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
727
+ $html .= '<span>'.__('When someone clicks on the tour, auto-rotation stops. Here, set a time after which auto rotation will start again. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
728
+ $html .= '</div>';
729
+ $html .= '</div>';
730
+ //=Auto rotation inactive delay=//
731
+
732
+ //=Auto rotation stop delay=//
733
+ $html .= '<div class="single-settings autorotationdata" >';
734
+ $html .= '<span>'.__('Stop Auto-rotation after: ', 'wpvr').'</span>';
735
+ $html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" placeholder="2000" />';
736
+
737
+ $html .= '<div class="field-tooltip">';
738
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
739
+ $html .= '<span>'.__('Set a time after which auto rotation will stop. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
740
+ $html .= '</div>';
741
+ $html .= '</div>';
742
+ $html .= '</div>';
743
+ //=Auto rotation stop delay=//
744
+
745
+
746
+ //=end backgound tour=//
747
+
748
+
749
+
750
+ $html .= '</div>';
751
+ //===end right===//
752
+
753
+ $html .= '</div>';
754
+ $html .= '</div>';
755
+ //===end basic settings===//
756
+
757
+ $html .= '<div class="advanced-settings-content inner-single-content" id="gen-advanced">';
758
+ $html .= '<div class="content-wrapper">';
759
+ $html .= '<div class="left">';
760
+
761
+ //=Keyboard Movement Control=//
762
+ $html .= '<div class="single-settings compass">';
763
+ $html .= '<span>'.__('Keyboard Movement Control: ', 'wpvr').'</span>';
764
+
765
+ $html .= '<span class="wpvr-switcher">';
766
+ $html .= '<input id="wpvr_diskeyboard" class="vr-switcher-check" value="off" name="diskeyboard" type="checkbox" disabled />';
767
+ $html .= '<label for="wpvr_diskeyboard" title="Pro Feature"></label>';
768
+ $html .= '</span>';
769
+ $html .= '</div>';
770
+ //=Keyboard Movement Control end=//
771
+
772
+ //=Keyboard Zoom Control Setup=//
773
+ $html .= '<div class="single-settings">';
774
+ $html .= '<span>'.__('Keyboard Zoom Control: ', 'wpvr').'</span>';
775
+
776
+ $html .= '<span class="wpvr-switcher">';
777
+ $html .= '<input id="wpvr_keyboardzoom" class="vr-switcher-check" value="off" name="keyboardzoom" type="checkbox" disabled />';
778
+ $html .= '<label for="wpvr_keyboardzoom" title="Pro Feature"></label>';
779
+ $html .= '</span>';
780
+ $html .= '</div>';
781
+ //=Keyboard Zoom Control End=//
782
+
783
+ //=Mouse Drag Control=//
784
+ $html .= '<div class="single-settings">';
785
+ $html .= '<span>'.__('Mouse Drag Control: ', 'wpvr').'</span>';
786
+
787
+ $html .= '<span class="wpvr-switcher">';
788
+ $html .= '<input id="wpvr_draggable" class="vr-switcher-check" name="draggable" type="checkbox" value="off" disabled />';
789
+ $html .= '<label for="wpvr_draggable" title="Pro Feature"></label>';
790
+ $html .= '</span>';
791
+ $html .= '</div>';
792
+ //=Mouse Drag Control End=//
793
+
794
+ //=Mouse Zoom Control=//
795
+ $html .= '<div class="single-settings">';
796
+ $html .= '<span>'.__('Mouse Zoom Control: ', 'wpvr').'</span>';
797
+
798
+ $html .= '<span class="wpvr-switcher">';
799
+ $html .= '<input id="wpvr_mouseZoom" class="vr-switcher-check" value="off" name="mouseZoom" type="checkbox" disabled />';
800
+ $html .= '<label for="wpvr_mouseZoom" title="Pro Feature"></label>';
801
+ $html .= '</span>';
802
+ $html .= '</div>';
803
+ //=Mouse Zoom Control End=//
804
+
805
+ //=Gyroscope Control=//
806
+ $html .= '<div class="single-settings gyro">';
807
+ $html .= '<span>'.__('Gyroscope Control: ', 'wpvr').'</span>';
808
+
809
+ $html .= '<span class="wpvr-switcher">';
810
+ $html .= '<input id="wpvr_gyro" class="vr-switcher-check" value="off" name="gyro" type="checkbox" disabled />';
811
+ $html .= '<label for="wpvr_gyro" title="Pro Feature"></label>';
812
+ $html .= '</span>';
813
+ $html .= '</div>';
814
+ //=Gyroscope Control End=//
815
+
816
+ //=Auto Gyroscope Support=//
817
+ $html .= '<div class="single-settings orientation">';
818
+ $html .= '<span>'.__('Auto Gyroscope Support: ', 'wpvr').'</span>';
819
+
820
+ $html .= '<span class="wpvr-switcher">';
821
+ $html .= '<input id="wpvr_deviceorientationcontrol" class="vr-switcher-check" value="off" name="deviceorientationcontrol" type="checkbox" disabled />';
822
+ $html .= '<label for="wpvr_deviceorientationcontrol" title="Pro Feature"></label>';
823
+ $html .= '</span>';
824
+
825
+ $html .= '<div class="field-tooltip">';
826
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
827
+ $html .= '<span>'.__('If set to true, device orientation control will be used when the panorama is loaded, if the device supports it. If false, device orientation control needs to be activated by pressing a button. Defaults to false. Will work if gyroscope is enabled', 'wpvr').'</span>';
828
+ $html .= '</div>';
829
+ $html .= '</div>';
830
+ //=Auto Gyroscope Support End=//
831
+
832
+ //=Compass Setup=//
833
+ $html .= '<div class="single-settings compass">';
834
+ $html .= '<span>'.__('Compass: ', 'wpvr').'</span>';
835
+
836
+ $html .= '<span class="wpvr-switcher">';
837
+ $html .= '<input id="wpvr_compass" class="vr-switcher-check" value="off" name="compass" type="checkbox" disabled />';
838
+ $html .= '<label for="wpvr_compass" title="Pro Feature"></label>';
839
+ $html .= '</span>';
840
+ $html .= '</div>';
841
+ //=Compass setup End=//
842
+
843
+ $html .= '</div>';
844
+ //===end left===//
845
+
846
+ $html .= '<div class="right">';
847
+ //= Scene Gallery=//
848
+ $html .= '<div class="single-settings gallery">';
849
+ $html .= '<span>'.__('Scene Gallery: ', 'wpvr').'</span>';
850
+
851
+ $html .= '<span class="wpvr-switcher">';
852
+ $html .= '<input id="wpvr_vrgallery" class="vr-switcher-check" value="off" name="vrgallery" type="checkbox" disabled />';
853
+ $html .= '<label for="wpvr_vrgallery" title="Pro Feature"></label>';
854
+ $html .= '</span>';
855
+
856
+ $html .= '<div class="field-tooltip">';
857
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
858
+ $html .= '<span>'.__('Turning it On will display a gallery with all the scenes on your tour. By double clicking on a scene thumbnail on the gallery, you can move to that specific scene. The gallery will only show up on the front end and not on the preview.', 'wpvr').'</span>';
859
+ $html .= '</div>';
860
+ $html .= '</div>';
861
+ //= Scene Gallery end=//
862
+
863
+ //=Scene Titles on Gallery=//
864
+ $html .= '<div class="single-settings">';
865
+ $html .= '<span>'.__('Scene Titles on Gallery: ', 'wpvr').'</span>';
866
+
867
+ $html .= '<span class="wpvr-switcher">';
868
+ $html .= '<input id="wpvr_vrgallery_title" class="vr-switcher-check" value="off" name="vrgallery_title" type="checkbox" disabled />';
869
+ $html .= '<label for="wpvr_vrgallery_title" title="Pro Feature"></label>';
870
+ $html .= '</span>';
871
+
872
+ $html .= '<div class="field-tooltip">';
873
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
874
+ $html .= '<span>'.__('Turning it on will display scene titles on each scene thumbnail inside the Scene Gallery. The Scene IDs will be used as the Scene Title.', 'wpvr').'</span>';
875
+ $html .= '</div>';
876
+ $html .= '</div>';
877
+ //=Scene Titles on Gallery End=//
878
+
879
+ //===VR Audio setup===//
880
+ $html .= '<div class="single-settings">';
881
+ $html .= '<span>Tour Background Music: </span>';
882
+
883
+ $html .= '<span class="wpvr-switcher">';
884
+ $html .= '<input id="wpvr_bg_music" class="vr-switcher-check" value="off" name="bg_music" type="checkbox" disabled />';
885
+ $html .= '<label for="wpvr_bg_music" title="Pro Feature"></label>';
886
+ $html .= '</span>';
887
+ $html .= '</div>';
888
+ //==VR audio End==//
889
+
890
+ //===Company logo===//
891
+ $html .= '<div class="single-settings company-info">';
892
+ $html .= '<span>'.__('Add Company Information: ', 'wpvr').' </span>';
893
+
894
+ $html .= '<span class="wpvr-switcher">';
895
+ $html .= '<input id="wpvr_cpLogoSwitch" class="vr-switcher-check" value="off" name="cpLogoSwitch" type="checkbox" disabled />';
896
+ $html .= '<label for="wpvr_cpLogoSwitch" title="Pro Feature"></label>';
897
+ $html .= '</span>';
898
+ $html .= '</div>';
899
+ //===Company logo end===//
900
+
901
+ $html .= '</div>';
902
+ //===end right===//
903
+
904
+ $html .= '</div>';
905
+ $html .= '</div>';
906
+ //===end advanced settings===//
907
+
908
+ $html .= '<div class="control-settings-content inner-single-content" id="gen-control">';
909
+ $html .= '<div class="content-wrapper">';
910
+ $html .= '<div class="left">';
911
+ //=====Move up====//
912
+ $html .= '<div class="single-settings controls custom-data-set">';
913
+ $html .= '<span>'.__('Move Up: ', 'wpvr').'</span>';
914
+
915
+ $html .= '<div class="color-icon">';
916
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-up.jpg'.'" alt="icon" />';
917
+ $html .= '</div>';
918
+
919
+ $html .= '<span class="wpvr-switcher">';
920
+ $html .= '<input id="wpvr_panupControl" class="vr-switcher-check" value="off" name="panupControl" type="checkbox" disabled />';
921
+ $html .= '<label for="wpvr_panupControl" title="Pro Feature"></label>';
922
+ $html .= '</span>';
923
+
924
+ $html .= '</div>';
925
+ //=====Moveup End====//
926
+
927
+ //=====Move Down====//
928
+ $html .= '<div class="single-settings controls custom-data-set">';
929
+ $html .= '<span>'.__('Move Down: ', 'wpvr').'</span>';
930
+
931
+ $html .= '<div class="color-icon">';
932
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-down.jpg'.'" alt="icon" />';
933
+ $html .= '</div>';
934
+
935
+ $html .= '<span class="wpvr-switcher">';
936
+ $html .= '<input id="wpvr_panDownControl" class="vr-switcher-check" value="off" name="panDownControl" type="checkbox" disabled />';
937
+ $html .= '<label for="wpvr_panDownControl" title="Pro Feature"></label>';
938
+ $html .= '</span>';
939
+ $html .= '</div>';
940
+ //=====Move down End====//
941
+
942
+ //=====Move Left====//
943
+ $html .= '<div class="single-settings controls custom-data-set">';
944
+ $html .= '<span>'.__('Move Left: ', 'wpvr').'</span>';
945
+
946
+ $html .= '<div class="color-icon">';
947
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-left.jpg'.'" alt="icon" />';
948
+ $html .= '</div>';
949
+
950
+ $html .= '<span class="wpvr-switcher">';
951
+ $html .= '<input id="wpvr_panLeftControl" class="vr-switcher-check" value="off" name="panLeftControl" type="checkbox" disabled />';
952
+ $html .= '<label for="wpvr_panLeftControl" title="Pro Feature"></label>';
953
+ $html .= '</span>';
954
+ $html .= '</div>';
955
+ //=====Move Left End====//
956
+
957
+ //=====Move Right====//
958
+ $html .= '<div class="single-settings controls custom-data-set">';
959
+ $html .= '<span>'.__('Move Right: ', 'wpvr').'</span>';
960
+
961
+ $html .= '<div class="color-icon">';
962
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-right.jpg'.'" alt="icon" />';
963
+ $html .= '</div>';
964
+
965
+ $html .= '<span class="wpvr-switcher">';
966
+ $html .= '<input id="wpvr_panRightControl" class="vr-switcher-check" value="off" name="panRightControl" type="checkbox" disabled />';
967
+ $html .= '<label for="wpvr_panRightControl" title="Pro Feature"></label>';
968
+ $html .= '</span>';
969
+ $html .= '</div>';
970
+ //=====Move Right End====//
971
+
972
+ //=====Zoom In====//
973
+ $html .= '<div class="single-settings controls custom-data-set">';
974
+ $html .= '<span>'.__('Zoom In: ', 'wpvr').'</span>';
975
+
976
+ $html .= '<div class="color-icon">';
977
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-in.jpg'.'" alt="icon" />';
978
+ $html .= '</div>';
979
+
980
+ $html .= '<span class="wpvr-switcher">';
981
+ $html .= '<input id="wpvr_panZoomInControl" class="vr-switcher-check" value="off" name="panZoomInControl" type="checkbox" disabled />';
982
+ $html .= '<label for="wpvr_panZoomInControl" title="Pro Feature"></label>';
983
+ $html .= '</span>';
984
+
985
+ $html .= '</div>';
986
+ //=====Zoom In End====//
987
+
988
+ $html .= '</div>';
989
+ //===end left===//
990
+
991
+ $html .= '<div class="right">';
992
+ //=====Zoom Out====//
993
+ $html .= '<div class="single-settings controls custom-data-set">';
994
+ $html .= '<span>'.__('Zoom Out: ', 'wpvr').'</span>';
995
+
996
+ $html .= '<div class="color-icon">';
997
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-out.jpg'.'" alt="icon" />';
998
+ $html .= '</div>';
999
+
1000
+ $html .= '<span class="wpvr-switcher">';
1001
+ $html .= '<input id="wpvr_panZoomOutControl" class="vr-switcher-check" value="off" name="panZoomOutControl" type="checkbox" disabled />';
1002
+ $html .= '<label for="wpvr_panZoomOutControl" title="Pro Feature"></label>';
1003
+ $html .= '</span>';
1004
+
1005
+ $html .= '</div>';
1006
+ //=====Zoom Out End====//
1007
+
1008
+ //===== Full Screen====//
1009
+ $html .= '<div class="single-settings controls custom-data-set">';
1010
+ $html .= '<span>'.__('Full Screen: ', 'wpvr').'</span>';
1011
+
1012
+ $html .= '<div class="color-icon">';
1013
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/full-screen.jpg'.'" alt="icon" />';
1014
+ $html .= '</div>';
1015
+
1016
+ $html .= '<span class="wpvr-switcher">';
1017
+ $html .= '<input id="wpvr_panFullscreenControl" class="vr-switcher-check" value="off" name="panFullscreenControl" type="checkbox" disabled />';
1018
+ $html .= '<label for="wpvr_panFullscreenControl" title="Pro Feature"></label>';
1019
+ $html .= '</span>';
1020
+
1021
+ $html .= '</div>';
1022
+ //=====Full Screen End====//
1023
+
1024
+ //=====Gyroscope====//
1025
+ $html .= '<div class="single-settings controls custom-data-set">';
1026
+ $html .= '<span>'.__('Gyroscope: ', 'wpvr').'</span>';
1027
+
1028
+ $html .= '<div class="color-icon">';
1029
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/gryscop.jpg'.'" alt="icon" />';
1030
+ $html .= '</div>';
1031
+
1032
+ $html .= '<span class="wpvr-switcher">';
1033
+ $html .= '<input id="wpvr_gyroscope" class="vr-switcher-check" value="off" name="gyroscope" type="checkbox" disabled />';
1034
+ $html .= '<label for="wpvr_gyroscope" title="Pro Feature"></label>';
1035
+ $html .= '</span>';
1036
+
1037
+ $html .= '</div>';
1038
+ //=====Gyroscope End====//
1039
+
1040
+ //=====Back to home====//
1041
+ $html .= '<div class="single-settings controls custom-data-set">';
1042
+ $html .= '<span>'.__('Home: ', 'wpvr').'</span>';
1043
+
1044
+ $html .= '<div class="color-icon">';
1045
+ $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/home.jpg'.'" alt="icon" />';
1046
+ $html .= '</div>';
1047
+
1048
+ $html .= '<span class="wpvr-switcher">';
1049
+ $html .= '<input id="wpvr_backToHome" class="vr-switcher-check" value="off" name="backToHome" type="checkbox" disabled />';
1050
+ $html .= '<label for="wpvr_backToHome" title="Pro Feature"></label>';
1051
+ $html .= '</span>';
1052
+
1053
+ $html .= '</div>';
1054
+ //=====Back to home End====//
1055
+ $html .= '</div>';
1056
+ //===end right===//
1057
+
1058
+ $html .= '</div>';
1059
+ $html .= '</div>';
1060
+ //===end control settings===//
1061
+
1062
+ $html .= '</div>';
1063
+ //=end inner tab content=
1064
+
1065
+ //== Start preview button
1066
+ $html .= '<div class="preview-btn-wrapper">';
1067
+ $html .= '<div class="preview-btn-area clearfix">';
1068
+
1069
+ $html .= '<button id="panolenspreview" class="panolenspreview">' . __('Preview', 'wpvr-pro') . '</button>';
1070
+ $html .= '</div>';
1071
+ $html .= '</div>';
1072
+ //== End preview button
1073
+
1074
+ $html .= '<div class="wpvr-use-shortcode">';
1075
+ $post = get_post();
1076
+ $id = $post->ID;
1077
+ $slug = $post->post_name;
1078
+ $postdata = get_post_meta($post->ID, 'panodata', true);
1079
+
1080
+ $html .= '<h4 class="area-title">'.__('Using this Tour', 'wpvr').'</h4>';
1081
+
1082
+ $html .= '<div class="shortcode-wrapper">';
1083
+ $html .= '<div class="single-shortcode classic">';
1084
+ $html .= '<span class="shortcode-title">'.__('For Classic Editor:', 'wpvr').'</span>';
1085
+
1086
+ $html .= '<div class="field-wapper">';
1087
+ $html .= '<span>'.__('To use this WP VR tour in your posts or pages use the following shortcode ', 'wpvr').'</span>';
1088
+
1089
+ $html .= '<div class="shortcode-field">';
1090
+ $html .= '<p class="copycode" id="copy-shortcode">[wpvr id="'.$id.'"]</p>';
1091
+
1092
+ $html .= '<span id="wpvr-copy-shortcode" class="wpvr-copy-shortcode">';
1093
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/copy.png'.'" alt="icon" />';
1094
+ $html .= '</span>';
1095
+ $html .= '</div>';
1096
+
1097
+
1098
+ $html .= '<span id="wpvr-copied-notice" class="wpvr-copied-notice"></span>';
1099
+
1100
+ $html .= '</div>';
1101
+ $html .= '</div>';
1102
+
1103
+ $html .= '</div>';
1104
+ $html .= '</div>';
1105
+ //=end shortcode area=
1106
+
1107
+
1108
+ $html .= '</div>';
1109
+ //=end inner tab=
1110
+
1111
+
1112
+ $html .= '<script>';
1113
+ $html .= '
1114
+
1115
+ document.getElementById("wpvr-copy-shortcode").addEventListener("click", function() {
1116
+ copyToClipboard(document.getElementById("copy-shortcode"));
1117
+ });
1118
+
1119
+ function copyToClipboard(elem) {
1120
+ // create hidden text element, if it doesn\'t already exist
1121
+ var targetId = "_hiddenCopyText_";
1122
+ var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
1123
+ var origSelectionStart, origSelectionEnd;
1124
+ if (isInput) {
1125
+ // can just use the original source element for the selection and copy
1126
+ target = elem;
1127
+ origSelectionStart = elem.selectionStart;
1128
+ origSelectionEnd = elem.selectionEnd;
1129
+ } else {
1130
+ // must use a temporary form element for the selection and copy
1131
+ target = document.getElementById(targetId);
1132
+ if (!target) {
1133
+ var target = document.createElement("textarea");
1134
+ target.style.position = "absolute";
1135
+ target.style.left = "-9999px";
1136
+ target.style.top = "0";
1137
+ target.id = targetId;
1138
+ document.body.appendChild(target);
1139
+ }
1140
+ target.textContent = elem.textContent;
1141
+ }
1142
+ // select the content
1143
+ var currentFocus = document.activeElement;
1144
+ target.focus();
1145
+ target.setSelectionRange(0, target.value.length);
1146
+
1147
+ // copy the selection
1148
+ var succeed;
1149
+ try {
1150
+ succeed = document.execCommand("copy");
1151
+ document.getElementById("wpvr-copied-notice").innerHTML = "Copied!";
1152
+ } catch(e) {
1153
+ succeed = false;
1154
+ }
1155
+ // restore original focus
1156
+ if (currentFocus && typeof currentFocus.focus === "function") {
1157
+ currentFocus.focus();
1158
+ }
1159
+
1160
+ setTimeout(function(){
1161
+ document.getElementById("wpvr-copied-notice").innerHTML = "";
1162
+ }, 2000 );
1163
+
1164
+ if (isInput) {
1165
+ // restore prior selection
1166
+ elem.setSelectionRange(origSelectionStart, origSelectionEnd);
1167
+ } else {
1168
+ // clear temporary content
1169
+ target.textContent = "";
1170
+ }
1171
+ document.getElementById("wpvr-copy-shortcode").scrollIntoView()
1172
+ return succeed;
1173
+ }
1174
+
1175
+ ';
1176
+
1177
+ $html .= '</script>';
1178
+
1179
+ $html .='</div>';
1180
+ //---end general tab----
1181
+
1182
+ $html .='<div class="rex-pano-tab" id="scenes">';
1183
+
1184
+ //=Scene and Hotspot repeater=//
1185
+ if (empty($pano_data)) {
1186
+ $html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
1187
+
1188
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
1189
+ $html .= '<ul>';
1190
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-1"><i class="fa fa-image"></i></span></li>';
1191
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1192
+ $html .= '</ul>';
1193
+ $html .= '</nav>';
1194
+
1195
+ $html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
1196
+
1197
+ $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
1198
+ $html .= '<div class="active_scene_id"><p></p></div>';
1199
+ $html .= '<div class="scene-content">';
1200
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1201
+
1202
+ $html .= '<div class="scene-left">';
1203
+ //==Set Default Scene==//
1204
+ $html .= '<div class="single-settings dscene">';
1205
+ $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1206
+ $html .= '<select class="dscen" name="dscene">';
1207
+ $html .= '<option value="on"> Yes</option>';
1208
+ $html .= '<option value="off" selected > No</option>';
1209
+ $html .= '</select>';
1210
+ $html .= '</div>';
1211
+ //==Set Default Scene end==//
1212
+
1213
+ $html .= '<div class=scene-setting>';
1214
+ $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1215
+ $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1216
+ $html .= '</div>';
1217
+
1218
+ $html .= '<div class=scene-setting>';
1219
+ $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1220
+ $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1221
+ $html .= '</div>';
1222
+
1223
+ $html .= '<div class=scene-setting>';
1224
+ $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1225
+ $html .= '<div class="form-group">';
1226
+ $html .= '<img src="" style="display: none;"><br>';
1227
+ $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1228
+ $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1229
+ $html .= '</div>';
1230
+ $html .= '</div>';
1231
+ $html .= '</div>';
1232
+ //---end scene-left---
1233
+
1234
+ $html .= '</div>';
1235
+
1236
+ //--hotspot setup--
1237
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1238
+
1239
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1240
+ $html .= '<ul>';
1241
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1242
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1243
+ $html .= '</ul>';
1244
+ $html .= '</nav>';
1245
+
1246
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1247
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
1248
+
1249
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1250
+
1251
+ $html .= '<div class="wrapper">';
1252
+ $html .= '<div class="hotspot-setting">';
1253
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1254
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1255
+ $html .= '</div>';
1256
+
1257
+ $html .= '<div class="hotspot-setting">';
1258
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1259
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1260
+ $html .= '</div>';
1261
+
1262
+ $html .= '<div class="hotspot-setting">';
1263
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1264
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1265
+ $html .= '</div>';
1266
+
1267
+ $html .= '<div class="hotspot-setting">';
1268
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1269
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1270
+ $html .= '</div>';
1271
+
1272
+ $html .= '</div>';
1273
+
1274
+ $html .= '<div class="hotspot-type hotspot-setting">';
1275
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1276
+ $html .= '<select name="hotspot-type">';
1277
+ $html .= '<option value="info" selected> Info</option>';
1278
+ $html .= '<option value="scene"> Scene</option>';
1279
+ $html .= '</select>';
1280
+
1281
+ $html .= '<div class="hotspot-url">';
1282
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1283
+ $html .= '<input type="url" name="hotspot-url" value="" />';
1284
+ $html .= '</div>';
1285
+
1286
+ //====Hotspot open in same tab===//
1287
+ $html .= '<div class="single-settings s_tab">';
1288
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1289
+ $html .= '<label class="wpvr-switcher-v2">';
1290
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1291
+ $html .= '<span class="switcher-box"></span>';
1292
+ $html .= '</label>';
1293
+ $html .= '</div>';
1294
+ //====Hotspot open in same tab end===//
1295
+
1296
+ $html .= '<div class="hotspot-content">';
1297
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1298
+ $html .= '<textarea name="hotspot-content"></textarea>';
1299
+ $html .= '</div>';
1300
+
1301
+ $html .= '<div class="hotspot-hover">';
1302
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1303
+ $html .= '<textarea name="hotspot-hover"></textarea>';
1304
+ $html .= '</div>';
1305
+
1306
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1307
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1308
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1309
+ $html .= '<option value="none" selected> None</option>';
1310
+ $html .= '</select>';
1311
+ $html .= '</div>';
1312
+
1313
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1314
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
1315
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1316
+ $html .= '</div>';
1317
+
1318
+ $html .= '</div>';
1319
+ //=Hotspot type End=//
1320
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1321
+ $html .= '</div>';
1322
+ $html .= '</div>';
1323
+
1324
+ $html .= '</div>';
1325
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1326
+ $html .= '</div>';
1327
+
1328
+
1329
+ $html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-1">';
1330
+ $html .= '<div class="active_scene_id"><p></p></div>';
1331
+ $html .= '<div class="scene-content">';
1332
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1333
+
1334
+ $html .= '<div class="scene-left">';
1335
+ //==Set Default Scene==//
1336
+ $html .= '<div class="single-settings dscene">';
1337
+ $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1338
+ $html .= '<select class="dscen" name="dscene">';
1339
+ $html .= '<option value="on"> Yes</option>';
1340
+ $html .= '<option value="off" selected > No</option>';
1341
+ $html .= '</select>';
1342
+ $html .= '</div>';
1343
+ //==Set Default Scene end==//
1344
+
1345
+ $html .= '<div class=scene-setting>';
1346
+ $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1347
+ $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1348
+ $html .= '</div>';
1349
+
1350
+ $html .= '<div class=scene-setting>';
1351
+ $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1352
+ $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1353
+ $html .= '</div>';
1354
+
1355
+ $html .= '<div class=scene-setting>';
1356
+ $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1357
+ $html .= '<div class="form-group">';
1358
+ $html .= '<img src="" style="display: none;"><br>';
1359
+ $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1360
+ $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1361
+ $html .= '</div>';
1362
+ $html .= '</div>';
1363
+ $html .= '</div>';
1364
+ //----end scene left------
1365
+
1366
+ $html .= '</div>';
1367
+
1368
+ //--hotspot setup--//
1369
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1370
+
1371
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1372
+ $html .= '<ul>';
1373
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1374
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1375
+ $html .= '</ul>';
1376
+ $html .= '</nav>';
1377
+
1378
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1379
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-1-hotspot-1">';
1380
+
1381
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1382
+
1383
+ $html .= '<div class="wrapper">';
1384
+ $html .= '<div class="hotspot-setting">';
1385
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1386
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1387
+ $html .= '</div>';
1388
+
1389
+ $html .= '<div class="hotspot-setting">';
1390
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1391
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1392
+ $html .= '</div>';
1393
+
1394
+ $html .= '<div class="hotspot-setting">';
1395
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1396
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1397
+ $html .= '</div>';
1398
+
1399
+ $html .= '<div class="hotspot-setting">';
1400
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1401
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1402
+ $html .= '</div>';
1403
+
1404
+ $html .= '</div>';
1405
+
1406
+ $html .= '<div class="hotspot-type hotspot-setting">';
1407
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1408
+ $html .= '<select name="hotspot-type">';
1409
+ $html .= '<option value="info" selected> Info</option>';
1410
+ $html .= '<option value="scene"> Scene</option>';
1411
+ $html .= '</select>';
1412
+
1413
+ $html .= '<div class="hotspot-url">';
1414
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1415
+ $html .= '<input type="url" name="hotspot-url" value="" />';
1416
+ $html .= '</div>';
1417
+
1418
+ //====Hotspot open in same tab===//
1419
+ $html .= '<div class="single-settings s_tab">';
1420
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1421
+ $html .= '<label class="wpvr-switcher-v2">';
1422
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1423
+ $html .= '<span class="switcher-box"></span>';
1424
+ $html .= '</label>';
1425
+ $html .= '</div>';
1426
+ //====Hotspot open in same tab end===//
1427
+
1428
+ $html .= '<div class="hotspot-content">';
1429
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1430
+ $html .= '<textarea name="hotspot-content"></textarea>';
1431
+ $html .= '</div>';
1432
+
1433
+ $html .= '<div class="hotspot-hover">';
1434
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1435
+ $html .= '<textarea name="hotspot-hover"></textarea>';
1436
+ $html .= '</div>';
1437
+
1438
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1439
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1440
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1441
+ $html .= '<option value="none"> None</option>';
1442
+ $html .= '</select>';
1443
+ $html .= '</div>';
1444
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1445
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1446
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1447
+ $html .= '</div>';
1448
+
1449
+ $html .= '</div>';
1450
+ //=Hotspot type End=//
1451
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1452
+ $html .= '</div>';
1453
+ $html .= '</div>';
1454
+ $html .= '</div>';
1455
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1456
+ $html .= '</div>';
1457
+ $html .= '</div>';
1458
+
1459
+ $html .= '</div>';
1460
+ } else {
1461
+ $html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
1462
+
1463
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
1464
+ $html .= '<ul>';
1465
+ $i = 1;
1466
+ $firstvalue = reset($pano_data["scene-list"]);
1467
+ foreach ($pano_data["scene-list"] as $pano_scenes) {
1468
+ if ($pano_scenes['scene-id'] == $firstvalue['scene-id']) {
1469
+ $html .= '<li class="active"><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
1470
+ } else {
1471
+ $html .= '<li><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
1472
+ }
1473
+ $i++;
1474
+ }
1475
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1476
+ $html .= '</ul>';
1477
+ $html .= '</nav>';
1478
+
1479
+
1480
+ $html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
1481
+
1482
+ //===Default empty repeater declared by nazmus sakib===//
1483
+ $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
1484
+ $html .= '<div class="active_scene_id"><p></p></div>';
1485
+ $html .= '<div class="scene-content">';
1486
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1487
+
1488
+ $html .= '<div class="scene-left">';
1489
+ //==Set Default Scene==//
1490
+ $html .= '<div class="single-settings dscene">';
1491
+ $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1492
+ $html .= '<select class="dscen" name="dscene">';
1493
+ $html .= '<option value="on"> Yes</option>';
1494
+ $html .= '<option value="off" selected > No</option>';
1495
+ $html .= '</select>';
1496
+ $html .= '</div>';
1497
+ //==Set Default Scene end==//
1498
+ $html .= '<div class=scene-setting>';
1499
+ $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1500
+ $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1501
+ $html .= '</div>';
1502
+
1503
+ $html .= '<div class=scene-setting>';
1504
+ $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1505
+ $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1506
+ $html .= '</div>';
1507
+
1508
+ $html .= '<div class=scene-setting>';
1509
+ $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1510
+ $html .= '<div class="form-group">';
1511
+ $html .= '<img src="" style="display: none;"><br>';
1512
+ $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1513
+ $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1514
+ $html .= '</div>';
1515
+ $html .= '</div>';
1516
+ $html .= '</div>';
1517
+ //-----end scene left------
1518
+
1519
+ $html .= '</div>';
1520
+
1521
+ //--hotspot setup--//
1522
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1523
+
1524
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1525
+ $html .= '<ul>';
1526
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1527
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1528
+ $html .= '</ul>';
1529
+ $html .= '</nav>';
1530
+
1531
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1532
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
1533
+
1534
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1535
+
1536
+ $html .= '<div class="wrapper">';
1537
+ $html .= '<div class="hotspot-setting">';
1538
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1539
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1540
+ $html .= '</div>';
1541
+
1542
+ $html .= '<div class="hotspot-setting">';
1543
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1544
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1545
+ $html .= '</div>';
1546
+
1547
+ $html .= '<div class="hotspot-setting">';
1548
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1549
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1550
+ $html .= '</div>';
1551
+
1552
+ $html .= '<div class="hotspot-setting">';
1553
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1554
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1555
+ $html .= '</div>';
1556
+
1557
+ $html .= '</div>';
1558
+
1559
+ $html .= '<div class="hotspot-type hotspot-setting">';
1560
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1561
+ $html .= '<select name="hotspot-type">';
1562
+ $html .= '<option value="info" selected> Info</option>';
1563
+ $html .= '<option value="scene"> Scene</option>';
1564
+ $html .= '</select>';
1565
+
1566
+ $html .= '<div class="hotspot-url">';
1567
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1568
+ $html .= '<input type="url" name="hotspot-url" value="" />';
1569
+ $html .= '</div>';
1570
+
1571
+ //====Hotspot open in same tab===//
1572
+ $html .= '<div class="single-settings s_tab">';
1573
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1574
+ $html .= '<label class="wpvr-switcher-v2">';
1575
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1576
+ $html .= '<span class="switcher-box"></span>';
1577
+ $html .= '</label>';
1578
+ $html .= '</div>';
1579
+ //====Hotspot open in same tab end===//
1580
+
1581
+ $html .= '<div class="hotspot-content">';
1582
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1583
+ $html .= '<textarea name="hotspot-content"></textarea>';
1584
+ $html .= '</div>';
1585
+
1586
+ $html .= '<div class="hotspot-hover">';
1587
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1588
+ $html .= '<textarea name="hotspot-hover"></textarea>';
1589
+ $html .= '</div>';
1590
+
1591
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1592
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1593
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1594
+ $html .= '<option value="none" selected> None</option>';
1595
+ $html .= '</select>';
1596
+ $html .= '</div>';
1597
+
1598
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1599
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
1600
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1601
+ $html .= '</div>';
1602
+
1603
+ $html .= '</div>';
1604
+ //=Hotspot type End=//
1605
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1606
+ $html .= '</div>';
1607
+ $html .= '</div>';
1608
+
1609
+ $html .= '</div>';
1610
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1611
+ $html .= '</div>';
1612
+ //==Empty repeater end==//
1613
+
1614
+ $s = 1;
1615
+ foreach ($pano_data["scene-list"] as $pano_scenes) {
1616
+ $dscene = '';
1617
+ if (isset($pano_scenes['dscene'])) {
1618
+ $dscene = $pano_scenes['dscene'];
1619
+ }
1620
+ $scene_id = '';
1621
+ $scene_id = $pano_scenes["scene-id"];
1622
+ $scene_type = 'equirectangular';
1623
+ $scene_type = $pano_scenes["scene-type"];
1624
+ $scene_photo = '';
1625
+ $scene_photo = $pano_scenes["scene-attachment-url"];
1626
+
1627
+ $pano_hotspots = array();
1628
+ if (isset($pano_scenes["hotspot-list"])) {
1629
+ $pano_hotspots = $pano_scenes["hotspot-list"];
1630
+ }
1631
+
1632
+ $firstvalueset = reset($pano_data["scene-list"]);
1633
+ if ($pano_scenes['scene-id'] == $firstvalueset['scene-id']) {
1634
+ $html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-'.$s.'">';
1635
+ $html .= '<div class="active_scene_id"><p></p></div>';
1636
+ $html .= '<div class="scene-content">';
1637
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1638
+
1639
+ $html .= '<div class="scene-left">';
1640
+ //==Set Default Scene==//
1641
+ if ($dscene == 'on') {
1642
+ $html .= '<div class="single-settings dscene">';
1643
+ $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1644
+ $html .= '<select class="dscen" name="dscene">';
1645
+ $html .= '<option value="on" selected > Yes</option>';
1646
+ $html .= '<option value="off"> No</option>';
1647
+ $html .= '</select>';
1648
+ $html .= '</div>';
1649
+ } else {
1650
+ $html .= '<div class="single-settings dscene">';
1651
+ $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1652
+ $html .= '<select class="dscen" name="dscene">';
1653
+ $html .= '<option value="on"> Yes</option>';
1654
+ $html .= '<option value="off" selected > No</option>';
1655
+ $html .= '</select>';
1656
+ $html .= '</div>';
1657
+ }
1658
+ //==Set Default Scene end==//
1659
+ $html .= '<div class=scene-setting>';
1660
+ $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1661
+ $html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
1662
+ $html .= '</div>';
1663
+
1664
+ $html .= '<div class=scene-setting>';
1665
+ $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1666
+ $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1667
+ $html .= '</div>';
1668
+
1669
+ $html .= '<div class=scene-setting>';
1670
+ $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1671
+ $html .= '<div class="form-group">';
1672
+ $html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
1673
+ $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1674
+ $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
1675
+ $html .= '</div>';
1676
+ $html .= '</div>';
1677
+ $html .= '</div>';
1678
+ // ---end scene left---
1679
+
1680
+ $html .= '</div>';
1681
+
1682
+ if (!empty($pano_hotspots)) {
1683
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1684
+
1685
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1686
+ $html .= '<ul>';
1687
+ $j = 1;
1688
+ $firstvaluehotspot = reset($pano_hotspots);
1689
+ foreach ($pano_hotspots as $pano_hotspot) {
1690
+ if ($pano_hotspot['hotspot-title'] == $firstvaluehotspot['hotspot-title']) {
1691
+ $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1692
+ } else {
1693
+ $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1694
+ }
1695
+ $j++;
1696
+ }
1697
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1698
+ $html .= '</ul>';
1699
+ $html .= '</nav>';
1700
+
1701
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1702
+
1703
+ $h = 1;
1704
+ $firstvaluehotspotset = reset($pano_hotspots);
1705
+ $is_wpvr_premium = apply_filters('is_wpvr_premium', false);
1706
+ foreach ($pano_hotspots as $pano_hotspot) {
1707
+ $hotspot_title = '';
1708
+ $hotspot_title = $pano_hotspot['hotspot-title'];
1709
+ $hotspot_pitch = '';
1710
+ $hotspot_pitch = $pano_hotspot['hotspot-pitch'];
1711
+ $hotspot_yaw = '';
1712
+ $hotspot_yaw = $pano_hotspot['hotspot-yaw'];
1713
+ $hotspot_type = '';
1714
+ $hotspot_type = $pano_hotspot['hotspot-type'];
1715
+ $hotspot_url = '';
1716
+ $hotspot_url = $pano_hotspot['hotspot-url'];
1717
+ $hotspot_content = '';
1718
+ $hotspot_content = $pano_hotspot['hotspot-content'];
1719
+ $hotspot_hover = '';
1720
+ $hotspot_hover = $pano_hotspot['hotspot-hover'];
1721
+ $hotspot_target_scene = '';
1722
+ $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
1723
+ $hotspot_custom_class = '';
1724
+ if (isset($pano_hotspot['hotspot-customclass'])) {
1725
+ $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
1726
+ }
1727
+
1728
+ if ($pano_hotspot['hotspot-title'] == $firstvaluehotspotset['hotspot-title']) {
1729
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1730
+
1731
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1732
+
1733
+ $html .= '<div class="wrapper">';
1734
+ $html .= '<div class="hotspot-setting">';
1735
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1736
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
1737
+ $html .= '</div>';
1738
+
1739
+ $html .= '<div class="hotspot-setting">';
1740
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'
1741
+ </label>';
1742
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
1743
+ $html .= '</div>';
1744
+
1745
+ $html .= '<div class="hotspot-setting">';
1746
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1747
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1748
+ $html .= '</div>';
1749
+
1750
+ $html .= '<div class="hotspot-setting">';
1751
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1752
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1753
+ $html .= '</div>';
1754
+
1755
+ $html .= '</div>';
1756
+
1757
+ //=Hotspot type=//
1758
+ if ($hotspot_type == "info") {
1759
+ $html .= '<div class="hotspot-type hotspot-setting">';
1760
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1761
+ $html .= '<select name="hotspot-type">';
1762
+ $html .= '<option value="info" selected> Info</option>';
1763
+ $html .= '<option value="scene"> Scene</option>';
1764
+ $html .= '</select>';
1765
+
1766
+ $html .= '<div class="hotspot-url">';
1767
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1768
+ $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
1769
+ $html .= '</div>';
1770
+
1771
+ //====Hotspot open in same tab===//
1772
+ $wpvr_url_open_checked = '';
1773
+ $wpvr_url_open_data = 'off';
1774
+ if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
1775
+ $wpvr_url_open_checked = 'checked';
1776
+ $wpvr_url_open_data = 'on';
1777
+ }
1778
+
1779
+ $html .= '<div class="single-settings s_tab">';
1780
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1781
+ $html .= '<label class="wpvr-switcher-v2">';
1782
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
1783
+ $html .= '<span class="switcher-box"></span>';
1784
+ $html .= '</label>';
1785
+ $html .= '</div>';
1786
+ //====Hotspot open in same tab end===//
1787
+
1788
+ $html .= '<div class="hotspot-content">';
1789
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1790
+ $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
1791
+ $html .= '</div>';
1792
+
1793
+ $html .= '<div class="hotspot-hover">';
1794
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
1795
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1796
+ $html .= '</div>';
1797
+
1798
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1799
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1800
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1801
+ $html .= '<option value="none" selected> None</option>';
1802
+ $html .= '</select>';
1803
+ $html .= '</div>';
1804
+
1805
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1806
+ $html .= '<label for="hotspot-scene"> '.__('Target Scene ID: ', 'wpvr').'</label>';
1807
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1808
+ $html .= '</div>';
1809
+
1810
+ $html .= '</div>';
1811
+ } else {
1812
+ $html .= '<div class="hotspot-type hotspot-setting">';
1813
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1814
+ $html .= '<select class="trtr" name="hotspot-type">';
1815
+ $html .= '<option value="info"> Info</option>';
1816
+ $html .= '<option value="scene" selected> Scene</option>';
1817
+ $html .= '</select>';
1818
+
1819
+ $html .= '<div class="hotspot-url" style="display:none;">';
1820
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1821
+ $html .= '<input type="url" name="hotspot-url" />';
1822
+ $html .= '</div>';
1823
+
1824
+ //====Hotspot open in same tab===//
1825
+ $html .= '<div class="single-settings s_tab" style="display:none;">';
1826
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1827
+ $html .= '<label class="wpvr-switcher-v2">';
1828
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1829
+ $html .= '<span class="switcher-box"></span>';
1830
+ $html .= '</label>';
1831
+ $html .= '</div>';
1832
+ //====Hotspot open in same tab end===//
1833
+
1834
+ $html .= '<div class="hotspot-content" style="display:none;">';
1835
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
1836
+ $html .= '<textarea name="hotspot-content"></textarea>';
1837
+ $html .= '</div>';
1838
+
1839
+ $html .= '<div class="hotspot-hover">';
1840
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1841
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1842
+ $html .= '</div>';
1843
+
1844
+ $html .= '<div class="hotspot-scene" >';
1845
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1846
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1847
+ $html .= '<option value="none" selected> None</option>';
1848
+ $html .= '</select>';
1849
+ $html .= '</div>';
1850
+
1851
+ $html .= '<div class="hotspot-scene">';
1852
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1853
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
1854
+ $html .= '</div>';
1855
+
1856
+ $html .= '</div>';
1857
+ }
1858
+ //=Hotspot type End=//
1859
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1860
+ $html .= '</div>';
1861
+ } else {
1862
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1863
+
1864
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1865
+
1866
+ $html .= '<div class="wrapper">';
1867
+ $html .= '<div class="hotspot-setting">';
1868
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1869
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
1870
+ $html .= '</div>';
1871
+
1872
+ $html .= '<div class="hotspot-setting">';
1873
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1874
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
1875
+ $html .= '</div>';
1876
+
1877
+ $html .= '<div class="hotspot-setting">';
1878
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1879
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1880
+ $html .= '</div>';
1881
+
1882
+ $html .= '<div class="hotspot-setting">';
1883
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1884
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1885
+ $html .= '</div>';
1886
+
1887
+ $html .= '</div>';
1888
+
1889
+ //=Hotspot type=//
1890
+ if ($hotspot_type == "info") {
1891
+ $html .= '<div class="hotspot-type hotspot-setting">';
1892
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1893
+ $html .= '<select name="hotspot-type">';
1894
+ $html .= '<option value="info" selected> Info</option>';
1895
+ $html .= '<option value="scene"> Scene</option>';
1896
+ $html .= '</select>';
1897
+
1898
+ $html .= '<div class="hotspot-url">';
1899
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1900
+ $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
1901
+ $html .= '</div>';
1902
+
1903
+ //====Hotspot open in same tab===//
1904
+ $wpvr_url_open_checked = '';
1905
+ $wpvr_url_open_data = 'off';
1906
+
1907
+ if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
1908
+ $wpvr_url_open_checked = 'checked';
1909
+ $wpvr_url_open_data = 'on';
1910
+ }
1911
+
1912
+ $html .= '<div class="single-settings s_tab">';
1913
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1914
+ $html .= '<label class="wpvr-switcher-v2">';
1915
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
1916
+ $html .= '<span class="switcher-box"></span>';
1917
+ $html .= '</label>';
1918
+ $html .= '</div>';
1919
+ //====Hotspot open in same tab end===//
1920
+
1921
+ $html .= '<div class="hotspot-content">';
1922
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1923
+ $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
1924
+ $html .= '</div>';
1925
+
1926
+ $html .= '<div class="hotspot-hover">';
1927
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1928
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1929
+ $html .= '</div>';
1930
+
1931
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1932
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1933
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1934
+ $html .= '<option value="none" selected> None</option>';
1935
+ $html .= '</select>';
1936
+ $html .= '</div>';
1937
+
1938
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1939
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1940
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled />';
1941
+ $html .= '</div>';
1942
+
1943
+ $html .= '</div>';
1944
+ } else {
1945
+ $html .= '<div class="hotspot-type hotspot-setting">';
1946
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1947
+ $html .= '<select class="trtr" name="hotspot-type">';
1948
+ $html .= '<option value="info"> Info</option>';
1949
+ $html .= '<option value="scene" selected> Scene</option>';
1950
+ $html .= '</select>';
1951
+
1952
+ $html .= '<div class="hotspot-url" style="display:none;">';
1953
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1954
+ $html .= '<input type="url" name="hotspot-url" />';
1955
+ $html .= '</div>';
1956
+
1957
+ //====Hotspot open in same tab===//
1958
+ $html .= '<div class="single-settings s_tab" style="display:none;">';
1959
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1960
+ $html .= '<label class="wpvr-switcher-v2">';
1961
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1962
+ $html .= '<span class="switcher-box"></span>';
1963
+ $html .= '</label>';
1964
+ $html .= '</div>';
1965
+ //====Hotspot open in same tab end===//
1966
+
1967
+ $html .= '<div class="hotspot-content" style="display:none;">';
1968
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1969
+ $html .= '<textarea name="hotspot-content"></textarea>';
1970
+ $html .= '</div>';
1971
+
1972
+ $html .= '<div class="hotspot-hover">';
1973
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
1974
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1975
+ $html .= '</div>';
1976
+
1977
+ $html .= '<div class="hotspot-scene" >';
1978
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1979
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1980
+ $html .= '<option value="none" selected> None</option>';
1981
+ $html .= '</select>';
1982
+ $html .= '</div>';
1983
+
1984
+ $html .= '<div class="hotspot-scene">';
1985
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1986
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
1987
+ $html .= '</div>';
1988
+
1989
+ $html .= '</div>';
1990
+ }
1991
+ //=Hotspot type End=//
1992
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1993
+ $html .= '</div>';
1994
+ }
1995
+ $h++;
1996
+ }
1997
+ $html .= '</div>';
1998
+ $html .= '</div>';
1999
+ } else {
2000
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2001
+
2002
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2003
+ $html .= '<ul>';
2004
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
2005
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
2006
+ $html .= '</ul>';
2007
+ $html .= '</nav>';
2008
+
2009
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2010
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
2011
+
2012
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2013
+
2014
+ $html .= '<div class="wrapper">';
2015
+ $html .= '<div class="hotspot-setting">';
2016
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2017
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
2018
+ $html .= '</div>';
2019
+
2020
+ $html .= '<div class="hotspot-setting">';
2021
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2022
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
2023
+ $html .= '</div>';
2024
+
2025
+ $html .= '<div class="hotspot-setting">';
2026
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2027
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
2028
+ $html .= '</div>';
2029
+
2030
+ $html .= '<div class="hotspot-setting">';
2031
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon class: ', 'wpvr').'</label>';
2032
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
2033
+ $html .= '</div>';
2034
+
2035
+ $html .= '</div>';
2036
+
2037
+ $html .= '<div class="hotspot-type hotspot-setting">';
2038
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2039
+ $html .= '<select name="hotspot-type">';
2040
+ $html .= '<option value="info" selected> Info</option>';
2041
+ $html .= '<option value="scene"> Scene</option>';
2042
+ $html .= '</select>';
2043
+
2044
+ $html .= '<div class="hotspot-url">';
2045
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
2046
+ $html .= '<input type="url" name="hotspot-url" value="" />';
2047
+ $html .= '</div>';
2048
+
2049
+ //====Hotspot open in same tab===//
2050
+ $html .= '<div class="single-settings s_tab">';
2051
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2052
+ $html .= '<label class="wpvr-switcher-v2">';
2053
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2054
+ $html .= '<span class="switcher-box"></span>';
2055
+ $html .= '</label>';
2056
+ $html .= '</div>';
2057
+ //====Hotspot open in same tab end===//
2058
+
2059
+ $html .= '<div class="hotspot-content">';
2060
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2061
+ $html .= '<textarea name="hotspot-content"></textarea>';
2062
+ $html .= '</div>';
2063
+
2064
+ $html .= '<div class="hotspot-hover">';
2065
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2066
+ $html .= '<textarea name="hotspot-hover"></textarea>';
2067
+ $html .= '</div>';
2068
+
2069
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2070
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2071
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2072
+ $html .= '<option value="none"> None</option>';
2073
+ $html .= '</select>';
2074
+ $html .= '</div>';
2075
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2076
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2077
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
2078
+ $html .= '</div>';
2079
+
2080
+ $html .= '</div>';
2081
+ //=Hotspot type End=//
2082
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2083
+ $html .= '</div>';
2084
+ $html .= '</div>';
2085
+ $html .= '</div>';
2086
+ }
2087
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
2088
+ $html .= '</div>';
2089
+ } else {
2090
+ $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="1" id="scene-'.$s.'">';
2091
+ $html .= '<div class="active_scene_id"><p></p></div>';
2092
+ $html .= '<div class="scene-content">';
2093
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
2094
+
2095
+ $html .= '<div class="scene-left">';
2096
+ //==Set Default Scene==//
2097
+ if ($dscene == 'on') {
2098
+ $html .= '<div class="single-settings dscene">';
2099
+ $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
2100
+ $html .= '<select class="dscen" name="dscene">';
2101
+ $html .= '<option value="on" selected > Yes</option>';
2102
+ $html .= '<option value="off"> No</option>';
2103
+ $html .= '</select>';
2104
+ $html .= '</div>';
2105
+ } else {
2106
+ $html .= '<div class="single-settings dscene">';
2107
+ $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
2108
+ $html .= '<select class="dscen" name="dscene">';
2109
+ $html .= '<option value="on"> Yes</option>';
2110
+ $html .= '<option value="off" selected> No</option>';
2111
+ $html .= '</select>';
2112
+ $html .= '</div>';
2113
+ }
2114
+ //==Set Default Scene end==//
2115
+
2116
+ $html .= '<div class=scene-setting>';
2117
+ $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
2118
+ $html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
2119
+ $html .= '</div>';
2120
+
2121
+ $html .= '<div class=scene-setting>';
2122
+ $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
2123
+ $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
2124
+ $html .= '</div>';
2125
+
2126
+ $html .= '<div class=scene-setting>';
2127
+ $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
2128
+ $html .= '<div class="form-group">';
2129
+ $html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
2130
+ $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
2131
+ $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
2132
+ $html .= '</div>';
2133
+ $html .= '</div>';
2134
+ $html .= '</div>';
2135
+ //--end scene left----
2136
+
2137
+ $html .= '</div>';
2138
+
2139
+ if (!empty($pano_hotspots)) {
2140
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2141
+
2142
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2143
+ $html .= '<ul>';
2144
+ $j = 1;
2145
+ foreach ($pano_hotspots as $pano_hotspot) {
2146
+ if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
2147
+ $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
2148
+ } else {
2149
+ $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
2150
+ }
2151
+ $j++;
2152
+ }
2153
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
2154
+ $html .= '</ul>';
2155
+ $html .= '</nav>';
2156
+
2157
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2158
+
2159
+ $h = 1;
2160
+ foreach ($pano_hotspots as $pano_hotspot) {
2161
+ $hotspot_title = '';
2162
+ $hotspot_title = $pano_hotspot['hotspot-title'];
2163
+ $hotspot_pitch = '';
2164
+ $hotspot_pitch = $pano_hotspot['hotspot-pitch'];
2165
+ $hotspot_yaw = '';
2166
+ $hotspot_yaw = $pano_hotspot['hotspot-yaw'];
2167
+ $hotspot_type = '';
2168
+ $hotspot_type = $pano_hotspot['hotspot-type'];
2169
+ $hotspot_url = '';
2170
+ $hotspot_url = $pano_hotspot['hotspot-url'];
2171
+ $hotspot_content = '';
2172
+ $hotspot_content = $pano_hotspot['hotspot-content'];
2173
+ $hotspot_hover = '';
2174
+ $hotspot_hover = $pano_hotspot['hotspot-hover'];
2175
+ $hotspot_target_scene = '';
2176
+ $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
2177
+ $hotspot_custom_class = '';
2178
+ if (isset($pano_hotspot['hotspot-customclass'])) {
2179
+ $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
2180
+ }
2181
+
2182
+ if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
2183
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
2184
+
2185
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2186
+
2187
+ $html .= '<div class="wrapper">';
2188
+ $html .= '<div class="hotspot-setting">';
2189
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2190
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
2191
+ $html .= '</div>';
2192
+
2193
+ $html .= '<div class="hotspot-setting">';
2194
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2195
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
2196
+ $html .= '</div>';
2197
+
2198
+ $html .= '<div class="hotspot-setting">';
2199
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2200
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
2201
+ $html .= '</div>';
2202
+
2203
+ $html .= '<div class="hotspot-setting">';
2204
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
2205
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
2206
+ $html .= '</div>';
2207
+
2208
+ $html .= '</div>';
2209
+
2210
+ //=Hotspot type=//
2211
+ if ($hotspot_type == "info") {
2212
+ $html .= '<div class="hotspot-type hotspot-setting">';
2213
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2214
+ $html .= '<select name="hotspot-type">';
2215
+ $html .= '<option value="info" selected> Info</option>';
2216
+ $html .= '<option value="scene"> Scene</option>';
2217
+ $html .= '</select>';
2218
+
2219
+ $html .= '<div class="hotspot-url">';
2220
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2221
+ $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
2222
+ $html .= '</div>';
2223
+
2224
+ //====Hotspot open in same tab===//
2225
+ $wpvr_url_open_checked = '';
2226
+ $wpvr_url_open_data = 'off';
2227
+
2228
+ if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2229
+ $wpvr_url_open_checked = 'checked';
2230
+ $wpvr_url_open_data = 'on';
2231
+ }
2232
+
2233
+ $html .= '<div class="single-settings s_tab">';
2234
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2235
+ $html .= '<label class="wpvr-switcher-v2">';
2236
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
2237
+ $html .= '<span class="switcher-box"></span>';
2238
+ $html .= '</label>';
2239
+ $html .= '</div>';
2240
+ //====Hotspot open in same tab end===//
2241
+
2242
+ $html .= '<div class="hotspot-content">';
2243
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2244
+ $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
2245
+ $html .= '</div>';
2246
+
2247
+ $html .= '<div class="hotspot-hover">';
2248
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2249
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2250
+ $html .= '</div>';
2251
+
2252
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2253
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2254
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2255
+ $html .= '<option value="none" selected> None</option>';
2256
+ $html .= '</select>';
2257
+ $html .= '</div>';
2258
+
2259
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2260
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2261
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene"/>';
2262
+ $html .= '</div>';
2263
+
2264
+ $html .= '</div>';
2265
+ } else {
2266
+ $html .= '<div class="hotspot-type hotspot-setting">';
2267
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2268
+ $html .= '<select class="trtr" name="hotspot-type">';
2269
+ $html .= '<option value="info"> Info</option>';
2270
+ $html .= '<option value="scene" selected> Scene</option>';
2271
+ $html .= '</select>';
2272
+
2273
+ $html .= '<div class="hotspot-url" style="display:none;">';
2274
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2275
+ $html .= '<input type="url" name="hotspot-url" />';
2276
+ $html .= '</div>';
2277
+
2278
+ //====Hotspot open in same tab===//
2279
+ $html .= '<div class="single-settings s_tab" style="display:none;">';
2280
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2281
+ $html .= '<label class="wpvr-switcher-v2">';
2282
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2283
+ $html .= '<span class="switcher-box"></span>';
2284
+ $html .= '</label>';
2285
+ $html .= '</div>';
2286
+ //====Hotspot open in same tab end===//
2287
+
2288
+ $html .= '<div class="hotspot-content" style="display:none;">';
2289
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2290
+ $html .= '<textarea name="hotspot-content"></textarea>';
2291
+ $html .= '</div>';
2292
+
2293
+ $html .= '<div class="hotspot-hover">';
2294
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2295
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2296
+ $html .= '</div>';
2297
+
2298
+ $html .= '<div class="hotspot-scene" >';
2299
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2300
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2301
+ $html .= '<option value="none" selected> None</option>';
2302
+ $html .= '</select>';
2303
+ $html .= '</div>';
2304
+
2305
+ $html .= '<div class="hotspot-scene">';
2306
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2307
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
2308
+ $html .= '</div>';
2309
+
2310
+ $html .= '</div>';
2311
+ }
2312
+ //=Hotspot type End=//
2313
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2314
+ $html .= '</div>';
2315
+ } else {
2316
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
2317
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting</h6>';
2318
+
2319
+ $html .= '<div class="wrapper">';
2320
+ $html .= '<div class="hotspot-setting">';
2321
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2322
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
2323
+ $html .= '</div>';
2324
+
2325
+ $html .= '<div class="hotspot-setting">';
2326
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2327
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
2328
+ $html .= '</div>';
2329
+
2330
+ $html .= '<div class="hotspot-setting">';
2331
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2332
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
2333
+ $html .= '</div>';
2334
+
2335
+ $html .= '<div class="hotspot-setting">';
2336
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom icon Class: ', 'wpvr').'</label>';
2337
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
2338
+ $html .= '</div>';
2339
+
2340
+ $html .= '</div>';
2341
+
2342
+ //=Hotspot type=//
2343
+ if ($hotspot_type == "info") {
2344
+ $html .= '<div class="hotspot-type hotspot-setting">';
2345
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2346
+ $html .= '<select name="hotspot-type">';
2347
+ $html .= '<option value="info" selected> Info</option>';
2348
+ $html .= '<option value="scene"> Scene</option>';
2349
+ $html .= '</select>';
2350
+
2351
+ $html .= '<div class="hotspot-url">';
2352
+ $html .= '<label for="hotspot-url">'.__(' URL: ', 'wpvr').'</label>';
2353
+ $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
2354
+ $html .= '</div>';
2355
+
2356
+ //====Hotspot open in same tab===//
2357
+ $wpvr_url_open_checked = '';
2358
+ $wpvr_url_open_data = 'off';
2359
+
2360
+ if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2361
+ $wpvr_url_open_checked = 'checked';
2362
+ $wpvr_url_open_data = 'on';
2363
+ }
2364
+
2365
+ $html .= '<div class="single-settings s_tab">';
2366
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2367
+ $html .= '<label class="wpvr-switcher-v2">';
2368
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
2369
+ $html .= '<span class="switcher-box"></span>';
2370
+ $html .= '</label>';
2371
+ $html .= '</div>';
2372
+ //====Hotspot open in same tab end===//
2373
+
2374
+ $html .= '<div class="hotspot-content">';
2375
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2376
+ $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
2377
+ $html .= '</div>';
2378
+
2379
+ $html .= '<div class="hotspot-hover">';
2380
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2381
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2382
+ $html .= '</div>';
2383
+
2384
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2385
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2386
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2387
+ $html .= '<option value="none" selected> None</option>';
2388
+ $html .= '</select>';
2389
+ $html .= '</div>';
2390
+
2391
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2392
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2393
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled />';
2394
+ $html .= '</div>';
2395
+
2396
+ $html .= '</div>';
2397
+ } else {
2398
+ $html .= '<div class="hotspot-type hotspot-setting">';
2399
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2400
+ $html .= '<select class="trtr" name="hotspot-type">';
2401
+ $html .= '<option value="info"> Info</option>';
2402
+ $html .= '<option value="scene" selected> Scene</option>';
2403
+ $html .= '</select>';
2404
+
2405
+ $html .= '<div class="hotspot-url" style="display:none;">';
2406
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2407
+ $html .= '<input type="url" name="hotspot-url" />';
2408
+ $html .= '</div>';
2409
+
2410
+ //====Hotspot open in same tab===//
2411
+ $html .= '<div class="single-settings s_tab" style="display:none;">';
2412
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2413
+ $html .= '<label class="wpvr-switcher-v2">';
2414
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2415
+ $html .= '<span class="switcher-box"></span>';
2416
+ $html .= '</label>';
2417
+ $html .= '</div>';
2418
+ //====Hotspot open in same tab end===//
2419
+
2420
+ $html .= '<div class="hotspot-content" style="display:none;">';
2421
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2422
+ $html .= '<textarea name="hotspot-content"></textarea>';
2423
+ $html .= '</div>';
2424
+
2425
+ $html .= '<div class="hotspot-hover">';
2426
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2427
+ $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2428
+ $html .= '</div>';
2429
+
2430
+ $html .= '<div class="hotspot-scene" >';
2431
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2432
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2433
+ $html .= '<option value="none" selected> None</option>';
2434
+ $html .= '</select>';
2435
+ $html .= '</div>';
2436
+
2437
+ $html .= '<div class="hotspot-scene">';
2438
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2439
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
2440
+ $html .= '</div>';
2441
+
2442
+ $html .= '</div>';
2443
+ }
2444
+ //=Hotspot type End=//
2445
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2446
+ $html .= '</div>';
2447
+ }
2448
+ $h++;
2449
+ }
2450
+ $html .= '</div>';
2451
+ $html .= '</div>';
2452
+ } else {
2453
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2454
+
2455
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2456
+ $html .= '<ul>';
2457
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
2458
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
2459
+ $html .= '</ul>';
2460
+ $html .= '</nav>';
2461
+
2462
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2463
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
2464
+
2465
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2466
+
2467
+ $html .= '<div class="wrapper">';
2468
+ $html .= '<div class="hotspot-setting">';
2469
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2470
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
2471
+ $html .= '</div>';
2472
+
2473
+ $html .= '<div class="hotspot-setting">';
2474
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2475
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
2476
+ $html .= '</div>';
2477
+
2478
+ $html .= '<div class="hotspot-setting">';
2479
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2480
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
2481
+ $html .= '</div>';
2482
+
2483
+ $html .= '<div class="hotspot-setting">';
2484
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
2485
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
2486
+ $html .= '</div>';
2487
+
2488
+ $html .= '</div>';
2489
+
2490
+ $html .= '<div class="hotspot-type hotspot-setting">';
2491
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2492
+ $html .= '<select name="hotspot-type">';
2493
+ $html .= '<option value="info" selected> Info</option>';
2494
+ $html .= '<option value="scene"> Scene</option>';
2495
+ $html .= '</select>';
2496
+
2497
+ $html .= '<div class="hotspot-url">';
2498
+ $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
2499
+ $html .= '<input type="url" name="hotspot-url" value="" />';
2500
+ $html .= '</div>';
2501
+
2502
+ //====Hotspot open in same tab===//
2503
+ $html .= '<div class="single-settings s_tab">';
2504
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2505
+ $html .= '<label class="wpvr-switcher-v2">';
2506
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2507
+ $html .= '<span class="switcher-box"></span>';
2508
+ $html .= '</label>';
2509
+ $html .= '</div>';
2510
+ //====Hotspot open in same tab end===//
2511
+
2512
+ $html .= '<div class="hotspot-content">';
2513
+ $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2514
+ $html .= '<textarea name="hotspot-content"></textarea>';
2515
+ $html .= '</div>';
2516
+
2517
+ $html .= '<div class="hotspot-hover">';
2518
+ $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2519
+ $html .= '<textarea name="hotspot-hover"></textarea>';
2520
+ $html .= '</div>';
2521
+
2522
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2523
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2524
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2525
+ $html .= '<option value="none"> None</option>';
2526
+ $html .= '</select>';
2527
+ $html .= '</div>';
2528
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2529
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2530
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
2531
+ $html .= '</div>';
2532
+
2533
+ $html .= '</div>';
2534
+ //=Hotspot type End=//
2535
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2536
+ $html .= '</div>';
2537
+ $html .= '</div>';
2538
+ $html .= '</div>';
2539
+ }
2540
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
2541
+ $html .= '</div>';
2542
+ }
2543
+ $s++;
2544
+ }
2545
+ $html .= '</div>';
2546
+
2547
+ $html .= '</div>';
2548
+ }
2549
+
2550
+ $html .= '<div class="preview-btn-wrapper">';
2551
+ $html .= '<div class="preview-btn-area clearfix">';
2552
+
2553
+ $html .= '<button id="panolenspreview" class="panolenspreview">'.__('Preview', 'wpvr').'</button>';
2554
+ $html .= '</div>';
2555
+ $html .= '</div>';
2556
+ $html .='</div>';
2557
+ //---end scenes tab----
2558
+
2559
+ //-----start pano eror alert------
2560
+ $html .= '<div id="error_occured">';
2561
+ $html .= '<div class="pano-error-wrapper">';
2562
+ $html .= '<div class="pano-error-body">';
2563
+ $html .= '<span class="cross pano-error-close-btn">
2564
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2565
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M18.7778 18.7786C14.4819 23.074 7.51728 23.0738 3.22169 18.778C-1.0739 14.4823 -1.0739 7.51769 3.22169 3.22196C7.51728 -1.07378 14.4819 -1.07402 18.7778 3.22143C20.8409 5.28436 22 8.08242 22 11C22 13.9176 20.8409 16.7156 18.7778 18.7786ZM14.9278 8.21857L12.1071 11L14.9278 13.7814C15.0865 13.93 15.1765 14.1376 15.1765 14.355C15.1765 14.5724 15.0865 14.78 14.9278 14.9286C14.7795 15.0756 14.5788 15.1576 14.3699 15.1564C14.1638 15.1556 13.9663 15.0737 13.8199 14.9286L10.9992 12.1079L8.21778 14.9286C8.07143 15.0737 7.8739 15.1556 7.66778 15.1564C7.45893 15.1576 7.2582 15.0756 7.10992 14.9286C6.80528 14.6221 6.80528 14.1272 7.10992 13.8207L9.89135 11L7.10992 8.21857C6.84295 7.90683 6.8609 7.44213 7.15112 7.15191C7.44134 6.8617 7.90604 6.84375 8.21778 7.11071L10.9992 9.89214L13.7806 7.11071C13.9785 6.9058 14.2707 6.82202 14.5471 6.89095C14.8236 6.95988 15.0422 7.17104 15.1207 7.44488C15.1992 7.71872 15.1257 8.01365 14.9278 8.21857ZM4.34363 4.34471C8.02058 0.663508 13.9845 0.656605 17.6699 4.32929C19.4452 6.09842 20.4431 8.50157 20.4431 11.0079C20.4431 13.5141 19.4452 15.9173 17.6699 17.6864C13.9845 21.3591 8.02058 21.3522 4.34363 17.671C0.666691 13.9898 0.666691 8.02591 4.34363 4.34471Z" fill="#A8A7BE"/>
2566
+ </svg>
2567
+ </span>';
2568
+
2569
+ $html .= '<span class="icon pano-warning">
2570
+ <svg width="36" height="30" viewBox="0 0 36 30" fill="none" xmlns="http://www.w3.org/2000/svg">
2571
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M21.4802 1.86951L35.4553 24.3914C36.1816 25.5621 36.1816 26.9598 35.4553 28.1305C34.7289 29.3011 33.4278 30 31.9751 30H4.025C2.5722 30 1.2712 29.3011 0.5448 28.1305C-0.1816 26.9598 -0.1816 25.5621 0.5448 24.3914L14.5198 1.86951C15.2462 0.698907 16.5473 0 18 0C19.4527 0 20.7538 0.698841 21.4802 1.86951ZM31.9751 28.0358C32.6647 28.0358 33.2822 27.7041 33.6271 27.1484C33.9719 26.5927 33.9719 25.9291 33.6271 25.3734L19.6521 2.8515C19.3072 2.2958 18.6896 1.96404 18 1.96404C17.3104 1.96404 16.6928 2.2958 16.3479 2.8515L2.37293 25.3734C2.02812 25.9291 2.02812 26.5927 2.37293 27.1484C2.71774 27.7041 3.33537 28.0358 4.025 28.0358H31.9751Z" fill="#FAAC14"/>
2572
+ <path d="M18 22C17.4486 22 17 22.4486 17 23C17 23.5514 17.4486 24 18 24C18.5514 24 19 23.5514 19 23C19 22.4486 18.5514 22 18 22Z" fill="#FAAC14"/>
2573
+ <rect x="17" y="11" width="2" height="9" fill="#FAAC14"/>
2574
+ </svg>
2575
+ </span>';
2576
+
2577
+ $html .= '<div class="pano-error-message"></div>';
2578
+
2579
+ $html .= '</div>';
2580
+ //---end error body---
2581
+
2582
+ //---error footer---
2583
+ $html .= '<div class="pano-error-footer">';
2584
+ $html .= '<ul>';
2585
+ $html .= '<li class="pano-error-close">';
2586
+ $html .= '<button type="button" class="pano-error-close-btn">Ok</button>';
2587
+ $html .= '</li>';
2588
+ $html .= '</ul>';
2589
+ $html .= '</div>';
2590
+ $html .= '</div>';
2591
+ $html .= '</div>';
2592
+ //-----end pano eror alert------
2593
+
2594
+ //----start video tab content---------
2595
+ $html .='<div class="rex-pano-tab video" id="video">';
2596
+ $html .= '<h6 class="title"> '.__('Video Settings : ', 'wpvr').'</h6>';
2597
+ //==Video Setup==//
2598
+ if (isset($postdata['vidid'])) {
2599
+ $vidautoplay = $postdata['vidautoplay'];
2600
+ $vidautoplay_on = '';
2601
+ $vidautoplay_off = '';
2602
+ if (!empty($vidautoplay)) {
2603
+ $vidautoplay_on = 'checked';
2604
+ } else {
2605
+ $vidautoplay_off = 'checked';
2606
+ }
2607
+
2608
+ $vidcontrol = $postdata['vidcontrol'];
2609
+ $vidcontrol_on = '';
2610
+ $vidcontrol_off = '';
2611
+ if (!empty($vidcontrol)) {
2612
+ $vidcontrol_on = 'checked';
2613
+ } else {
2614
+ $vidcontrol_off = 'checked';
2615
+ }
2616
+ $html .= '<div class="single-settings videosetup">';
2617
+ $html .= '<span>'.__('Enable Video:', 'wpvr').'</span>';
2618
+ $html .= '<ul>';
2619
+ $html .= '<li class="radio-btn">';
2620
+ $html .= '<input class="styled-radio video_status video_off" id="styled-radio" type="radio" name="panovideo" value="off" >';
2621
+ $html .= '<label for="styled-radio">Off</label>';
2622
+ $html .= '</li>';
2623
+
2624
+ $html .= '<li class="radio-btn">';
2625
+ $html .= '<input class="styled-radio video_status video_on" id="styled-radio-0" type="radio" name="panovideo" value="on" checked>';
2626
+ $html .= '<label for="styled-radio-0">On</label>';
2627
+ $html .= '</li>';
2628
+ $html .= '</ul>';
2629
+ $html .= '</div>';
2630
+
2631
+
2632
+ $html .= '<div class="video-setting" style="display:none;">';
2633
+ $html .= '<div class="single-settings">';
2634
+ $html .= '<span>'.__('Upload or Add Link: ', 'wpvr').'</span>';
2635
+ $html .= '<div class="form-group">';
2636
+ $html .= '<input type="text" name="video-attachment-url" placeholder="Paste Youtube or Vimeo link or upload" class="video-attachment-url" value="'.$postdata['vidurl'].'">';
2637
+ $html .= '<input type="button" class="video-upload" data-info="" value="Upload" />';
2638
+ $html .= '</div>';
2639
+ $html .= '</div>';
2640
+ $html .= '<button id="videopreview">Preview</button>';
2641
+ $html .= '</div>';
2642
+ } else {
2643
+ $html .= '<div class="single-settings videosetup">';
2644
+ $html .= '<span>'.__('Enable Video: ', 'wpvr').'</span>';
2645
+ $html .= '<ul>';
2646
+ $html .= '<li class="radio-btn">';
2647
+ $html .= '<input class="styled-radio video_off" id="styled-radio" type="radio" name="panovideo" value="off" checked >';
2648
+ $html .= '<label for="styled-radio">Off</label>';
2649
+ $html .= '</li>';
2650
+
2651
+ $html .= '<li class="radio-btn">';
2652
+ $html .= '<input class="styled-radio video_on" id="styled-radio-0" type="radio" name="panovideo" value="on" >';
2653
+ $html .= '<label for="styled-radio-0">On</label>';
2654
+ $html .= '</li>';
2655
+ $html .= '</ul>';
2656
+ $html .= '</div>';
2657
+
2658
+ //==Video setup end==//
2659
+
2660
+ //==Video Setting==/
2661
+ $html .= '<div class="video-setting" style="display:none;">';
2662
+ $html .= '<div class="single-settings">';
2663
+ $html .= '<span>'.__('Upload or Add Link: ', 'wpvr').'</span>';
2664
+ $html .= '<div class="form-group">';
2665
+ $html .= '<input type="text" placeholder="Paste Youtube or Vimeo link or upload" name="video-attachment-url" class="video-attachment-url" value="">';
2666
+ $html .= '<input type="button" class="video-upload" data-info="" value="Upload"/>';
2667
+ $html .= '</div>';
2668
+ $html .= '</div>';
2669
+ $html .= '<button id="videopreview">Preview</button>';
2670
+ $html .= '</div>';
2671
+ }
2672
+
2673
+ $html .= '<div class="wpvr-use-shortcode">';
2674
+ $post = get_post();
2675
+ $id = $post->ID;
2676
+ $slug = $post->post_name;
2677
+ $postdata = get_post_meta($post->ID, 'panodata', true);
2678
+
2679
+ $html .= '<h4 class="area-title">'.__('Using this Tour', 'wpvr').'</h4>';
2680
+
2681
+ $html .= '<div class="shortcode-wrapper">';
2682
+ $html .= '<div class="single-shortcode classic">';
2683
+ $html .= '<span class="shortcode-title">'.__('For Classic Editor:', 'wpvr').'</span>';
2684
+
2685
+ $html .= '<div class="field-wapper">';
2686
+ $html .= '<span>'.__('To use this WP VR tour in your posts or pages use the following shortcode ', 'wpvr').'</span>';
2687
+
2688
+ $html .= '<div class="shortcode-field">';
2689
+ $html .= '<p class="copycode" id="copy-shortcode-video">[wpvr id="'.$id.'"]</p>';
2690
+ $html .= '<span id="wpvr-copy-shortcode-video" class="wpvr-copy-shortcode">';
2691
+ $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/copy.png'.'" alt="icon" />';
2692
+ $html .= '</span>';
2693
+ $html .= '</div>';
2694
+
2695
+ $html .= '<span id="wpvr-copied-notice-video" class="wpvr-copied-notice"></span>';
2696
+
2697
+ $html .= '</div>';
2698
+ $html .= '</div>';
2699
+ $html .= '</div>';
2700
+
2701
+ $html .= '<script>';
2702
+ $html .= '
2703
+
2704
+ document.getElementById("wpvr-copy-shortcode-video").addEventListener("click", function() {
2705
+ copyToClipboardVideo(document.getElementById("copy-shortcode-video"));
2706
+ });
2707
+
2708
+ function copyToClipboardVideo(elem) {
2709
+ // create hidden text element, if it doesn\'t already exist
2710
+ var targetId = "_hiddenCopyText_";
2711
+ var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
2712
+ var origSelectionStart, origSelectionEnd;
2713
+ if (isInput) {
2714
+ // can just use the original source element for the selection and copy
2715
+ target = elem;
2716
+ origSelectionStart = elem.selectionStart;
2717
+ origSelectionEnd = elem.selectionEnd;
2718
+ } else {
2719
+ // must use a temporary form element for the selection and copy
2720
+ target = document.getElementById(targetId);
2721
+ if (!target) {
2722
+ var target = document.createElement("textarea");
2723
+ target.style.position = "absolute";
2724
+ target.style.left = "-9999px";
2725
+ target.style.top = "0";
2726
+ target.id = targetId;
2727
+ document.body.appendChild(target);
2728
+ }
2729
+ target.textContent = elem.textContent;
2730
+ }
2731
+ // select the content
2732
+ var currentFocus = document.activeElement;
2733
+ target.focus();
2734
+ target.setSelectionRange(0, target.value.length);
2735
+
2736
+ // copy the selection
2737
+ var succeed;
2738
+ try {
2739
+ succeed = document.execCommand("copy");
2740
+ document.getElementById("wpvr-copied-notice-video").innerHTML = "Copied!";
2741
+ } catch(e) {
2742
+ succeed = false;
2743
+ }
2744
+ // restore original focus
2745
+ if (currentFocus && typeof currentFocus.focus === "function") {
2746
+ currentFocus.focus();
2747
+ }
2748
+
2749
+ setTimeout(function(){
2750
+ document.getElementById("wpvr-copied-notice-video").innerHTML = "";
2751
+ }, 2000 );
2752
+
2753
+ if (isInput) {
2754
+ // restore prior selection
2755
+ elem.setSelectionRange(origSelectionStart, origSelectionEnd);
2756
+ } else {
2757
+ // clear temporary content
2758
+ target.textContent = "";
2759
+ }
2760
+ document.getElementById("wpvr-copy-shortcode-video").scrollIntoView()
2761
+ return succeed;
2762
+ }
2763
+
2764
+ ';
2765
+
2766
+ $html .= '</script>';
2767
+ $html .= '</div>';
2768
+ //=end shortcode area=
2769
+ //==Video Setting End==//
2770
+
2771
+ $html .='</div>';
2772
+ //---end video tab----
2773
+ $html .='</div>';
2774
+ //---end rex-pano-tab-content----
2775
+ $html .='</div>';
2776
+ //---end rex-pano-tabs---
2777
+ $html .= '</div>';
2778
+ $html .= '<div class="wpvr-loading" style="display:none;">Loading&#8230;</div>';
2779
+ echo $html;
2780
+ }
2781
+
2782
+ /**
2783
+ * Rollback execution
2784
+ */
2785
+ public function trigger_rollback()
2786
+ {
2787
+ if (isset($_GET['wpvr_version'])) {
2788
+ $version = $_GET['wpvr_version'];
2789
+ $plugin_slug = 'wpvr';
2790
+ $rollback = new WPVR_Rollback(
2791
+ [
2792
+ 'version' => $version,
2793
+ 'plugin_name' => 'wpvr',
2794
+ 'plugin_slug' => $plugin_slug,
2795
+ 'package_url' => sprintf('https://downloads.wordpress.org/plugin/%s.%s.zip', $plugin_slug, $version),
2796
+ ]
2797
+ );
2798
+
2799
+ $rollback->run();
2800
+ }
2801
+ }
2802
+ }
admin/class-wpvr-ajax.php CHANGED
@@ -1,1711 +1,1713 @@
1
- <?php
2
- if (!defined('ABSPATH')) exit; // Exit if accessed directly
3
- /**
4
- * The admin-specific Ajax files.
5
- *
6
- * @link http://rextheme.com/
7
- * @since 1.0.0
8
- *
9
- * @package Wpvr
10
- * @subpackage Wpvr/admin
11
- */
12
-
13
- class Wpvr_Ajax
14
- {
15
-
16
- /**
17
- * Preview show ajax function
18
- */
19
- function wpvr_show_preview()
20
- {
21
- $panoid = '';
22
- $postid = sanitize_text_field($_POST['postid']);
23
- $post_type = get_post_type($postid);
24
-
25
- $panoid = 'pano' . $postid;
26
-
27
- $control = sanitize_text_field($_POST['control']);
28
- if ($control == 'on') {
29
- $control = true;
30
- } else {
31
- $control = false;
32
- }
33
-
34
- $compass = sanitize_text_field($_POST['compass']);
35
- if ($compass == 'on') {
36
- $compass = true;
37
- } else {
38
- $compass = false;
39
- }
40
-
41
- $mouseZoom = sanitize_text_field($_POST['mouseZoom']);
42
- if ($mouseZoom == 'off') {
43
- $mouseZoom = false;
44
- } else {
45
- $mouseZoom = true;
46
- }
47
-
48
- $draggable = sanitize_text_field($_POST['draggable']);
49
- if ($draggable == 'off') {
50
- $draggable = false;
51
- } else {
52
- $draggable = true;
53
- }
54
-
55
- $diskeyboard = sanitize_text_field($_POST['diskeyboard']);
56
- if ($diskeyboard == 'on') {
57
- $diskeyboard = true;
58
- } else {
59
- $diskeyboard = false;
60
- }
61
-
62
- $keyboardzoom = sanitize_text_field($_POST['keyboardzoom']);
63
- if ($keyboardzoom == 'off') {
64
- $keyboardzoom = false;
65
- } else {
66
- $keyboardzoom = true;
67
- }
68
-
69
- $autoload = sanitize_text_field($_POST['autoload']);
70
- if ($autoload == 'on') {
71
- $autoload = true;
72
- } else {
73
- $autoload = false;
74
- }
75
-
76
- $default_scene = '';
77
- // $default_scene = sanitize_text_field($_POST['defaultscene']);
78
- $preview = '';
79
- $preview = esc_url($_POST['preview']);
80
-
81
- $rotation = '';
82
- $rotation = sanitize_text_field($_POST['rotation']);
83
-
84
- $autorotation = '';
85
- $autorotation = sanitize_text_field($_POST['autorotation']);
86
- $autorotationinactivedelay = '';
87
- $autorotationinactivedelay = sanitize_text_field($_POST['autorotationinactivedelay']);
88
- $autorotationstopdelay = '';
89
- $autorotationstopdelay = sanitize_text_field($_POST['autorotationstopdelay']);
90
-
91
- $default_global_zoom = '';
92
- $max_global_zoom = '';
93
- $min_global_zoom = '';
94
- if (isset($_POST['gzoom']) == 'on') {
95
- $default_global_zoom = $_POST['dzoom'];
96
- $max_global_zoom = $_POST['maxzoom'];
97
- $min_global_zoom = $_POST['minzoom'];
98
- }
99
- if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
100
- wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
101
-
102
- die();
103
- }
104
-
105
- $scene_fade_duration = '';
106
- $scene_fade_duration = sanitize_text_field($_POST['scenefadeduration']);
107
-
108
- $panodata = $_POST['panodata'];
109
- $panolist = stripslashes($panodata);
110
- $panodata = (array)json_decode($panolist);
111
- $panolist = array();
112
- if (is_array($panodata["scene-list"])) {
113
- foreach ($panodata["scene-list"] as $scenes_data) {
114
- $temp_array = array();
115
- $temp_array = (array)$scenes_data;
116
- if ($temp_array['hotspot-list']) {
117
- $_hotspot_array = array();
118
- foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
119
- $temp_hotspot = (array)$temp_hotspot;
120
- $_hotspot_array[] = $temp_hotspot;
121
- }
122
- }
123
- $temp_array['hotspot-list'] = $_hotspot_array;
124
- $panolist['scene-list'][] = $temp_array;
125
- }
126
- }
127
- $panodata = $panolist;
128
-
129
- //===Error Control and Validation===//
130
-
131
- if ($panodata["scene-list"] != "") {
132
- foreach ($panodata["scene-list"] as $scenes_val) {
133
-
134
- $scene_id_validate = $scenes_val["scene-id"];
135
-
136
-
137
- if (!empty($scene_id_validate)) {
138
- $scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $scene_id_validate);
139
- if ($scene_id_validated != $scene_id_validate) {
140
- wp_send_json_error('<span class="pano-error-title">Invalid Scene ID</span> <p>Scene ID can\'t contain spaces and special characters. <br/>Please assign a unique Scene ID with letters and numbers where Scene ID is : ' . $scene_id_validate . '</p>');
141
- die();
142
- }
143
-
144
- if ($scenes_val['scene-type'] == 'cubemap') {
145
- if (empty($scenes_val["scene-attachment-url-face0"])) {
146
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 0</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
147
- die();
148
- }
149
-
150
- if (empty($scenes_val["scene-attachment-url-face1"])) {
151
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 1</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
152
- die();
153
- }
154
-
155
- if (empty($scenes_val["scene-attachment-url-face2"])) {
156
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 2</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
157
- die();
158
- }
159
-
160
- if (empty($scenes_val["scene-attachment-url-face3"])) {
161
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 3</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
162
- die();
163
- }
164
-
165
- if (empty($scenes_val["scene-attachment-url-face4"])) {
166
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 4</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
167
- die();
168
- }
169
-
170
- if (empty($scenes_val["scene-attachment-url-face5"])) {
171
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 5</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
172
- die();
173
- }
174
- } else {
175
- if (empty($scenes_val["scene-attachment-url"])) {
176
- wp_send_json_error('<span class="pano-error-title">Missing Scene Image</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
177
- die();
178
- }
179
- }
180
-
181
- if (!empty($scenes_val["scene-pitch"])) {
182
- $validate_scene_pitch = $scenes_val["scene-pitch"];
183
- $validated_scene_pitch = preg_replace('/[^0-9.-]/', '', $validate_scene_pitch);
184
- if ($validated_scene_pitch != $validate_scene_pitch) {
185
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
186
- die();
187
- }
188
- }
189
-
190
- if (!empty($scenes_val["scene-yaw"])) {
191
- $validate_scene_yaw = $scenes_val["scene-yaw"];
192
- $validated_scene_yaw = preg_replace('/[^0-9.-]/', '', $validate_scene_yaw);
193
- if ($validated_scene_yaw != $validate_scene_yaw) {
194
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
195
- die();
196
- }
197
- }
198
-
199
- if (!empty($scenes_val["scene-zoom"])) {
200
- $validate_default_zoom = $scenes_val["scene-zoom"];
201
- $validated_default_zoom = preg_replace('/[^0-9-]/', '', $validate_default_zoom);
202
- if ($validated_default_zoom != $validate_default_zoom) {
203
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
204
- die();
205
- }
206
- $default_zoom_value = (int)$scenes_val["scene-zoom"];
207
- if ($default_zoom_value > 120 || $default_zoom_value < 50) {
208
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
209
-
210
- die();
211
- }
212
- }
213
-
214
- if (!empty($scenes_val["scene-maxzoom"])) {
215
- $validate_max_zoom = $scenes_val["scene-maxzoom"];
216
- $validated_max_zoom = preg_replace('/[^0-9-]/', '', $validate_max_zoom);
217
- if ($validated_max_zoom != $validate_max_zoom) {
218
- wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
219
-
220
- die();
221
- }
222
- $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
223
- if ($max_zoom_value > 120) {
224
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
225
- die();
226
- }
227
-
228
- if ($max_zoom_value < 50) {
229
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can not set the Max-zoom Value lower than 50 degrees.</p>');
230
- die();
231
- }
232
- }
233
-
234
- if (!empty($scenes_val["scene-minzoom"])) {
235
- $validate_min_zoom = $scenes_val["scene-minzoom"];
236
- $validated_min_zoom = preg_replace('/[^0-9-]/', '', $validate_min_zoom);
237
- if ($validated_min_zoom != $validate_min_zoom) {
238
- wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
239
- die();
240
- }
241
- $min_zoom_value = (int)$scenes_val["scene-minzoom"];
242
- if ($min_zoom_value < 50) {
243
- wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
244
- die();
245
- }
246
-
247
- if ($min_zoom_value > 120) {
248
- wp_send_json_error('<span class="pano-error-title">High Min-Zoom Value</span><p> The Min-zoom value must be less than 120 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
249
- die();
250
- }
251
- }
252
-
253
- if ($scenes_val["hotspot-list"] != "") {
254
- foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
255
-
256
- $hotspot_title_validate = $hotspot_val["hotspot-title"];
257
-
258
-
259
- if (!empty($hotspot_title_validate)) {
260
- $hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $hotspot_title_validate);
261
- if ($hotspot_title_validated != $hotspot_title_validate) {
262
- wp_send_json_error('<span class="pano-error-title">Invalid Hotspot ID</span> <p>Hotspot ID can\'t contain spaces and special characters. <br/>Please assign a unique Hotspot ID with letters and numbers where Scene id: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
263
- die();
264
- }
265
-
266
- $hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
267
- if (!empty($hotspot_pitch_validate)) {
268
- $hotspot_pitch_validated = preg_replace('/[^0-9.-]/', '', $hotspot_pitch_validate);
269
- if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
270
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
271
-
272
- die();
273
- }
274
- }
275
-
276
- $hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
277
- if (!empty($hotspot_yaw_validate)) {
278
- $hotspot_yaw_validated = preg_replace('/[^0-9.-]/', '', $hotspot_yaw_validate);
279
- if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
280
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
281
-
282
- die();
283
- }
284
- }
285
-
286
- if (is_plugin_active('wpvr-pro/wpvr-pro.php')) {
287
- $status = get_option('wpvr_edd_license_status');
288
- if ($status !== false && $status == 'valid') {
289
- if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
290
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not use both Custom Icon and Custom Icon Class for a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
291
- die();
292
- }
293
- }
294
- }
295
- $hotspot_type_validate = $hotspot_val["hotspot-type"];
296
- $hotspot_url_validate = $hotspot_val["hotspot-url"];
297
- if (!empty($hotspot_url_validate)) {
298
- $hotspot_url_validated = esc_url($hotspot_url_validate);
299
- if ($hotspot_url_validated != $hotspot_url_validate) {
300
- wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
301
- die();
302
- }
303
- }
304
- $hotspot_content_validate = $hotspot_val["hotspot-content"];
305
-
306
- $hotspot_scene_validate = $hotspot_val["hotspot-scene"];
307
-
308
- if ($hotspot_type_validate == "info") {
309
- if (!empty($hotspot_scene_validate)) {
310
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
311
- die();
312
- }
313
- if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
314
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not set both On Click Content and URL on a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
315
- die();
316
- }
317
- }
318
-
319
- if ($hotspot_type_validate == "scene") {
320
- if (empty($hotspot_scene_validate)) {
321
- wp_send_json_error('<span class="pano-error-title">Target Scene Missing</span> <p>Assign a Target Scene to the Scene-type Hotspot where Scene ID: ' . $scene_id_validate . ' and Hotspot ID : ' . $hotspot_title_validate . '</p>');
322
- die();
323
- }
324
- if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
325
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
326
- die();
327
- }
328
- }
329
- }
330
- }
331
- }
332
- }
333
- }
334
- }
335
- //===Error Control and Validation===//
336
- foreach ($panodata["scene-list"] as $panoscenes) {
337
- if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
338
- wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
339
- die();
340
- }
341
- }
342
-
343
- $allsceneids = array();
344
-
345
- foreach ($panodata["scene-list"] as $panoscenes) {
346
- if (!empty($panoscenes['scene-id'])) {
347
- array_push($allsceneids, $panoscenes['scene-id']);
348
- }
349
- }
350
-
351
- foreach ($panodata["scene-list"] as $panoscenes) {
352
-
353
- if ($panoscenes['dscene'] == 'on') {
354
- $default_scene = $panoscenes['scene-id'];
355
- }
356
- }
357
- if (empty($default_scene)) {
358
- if ($allsceneids) {
359
- $default_scene = $allsceneids[0];
360
- } else {
361
- wp_send_json_error('<span class="pano-error-title">Missing Image & Scene ID</span> <p>Please Upload An Image and Set A Scene ID To See The Preview</p>');
362
- die();
363
- }
364
- }
365
-
366
- $allsceneids_count = array_count_values($allsceneids);
367
- foreach ($allsceneids_count as $key => $value) {
368
- if ($value > 1) {
369
- wp_send_json_error('<span class="pano-error-title">Duplicate Scene ID</span> <p>You\'ve assigned a duplicate Scene ID. <br/>Please assign unique Scene IDs to each scene. </p>');
370
- die();
371
- }
372
- }
373
-
374
- foreach ($panodata["scene-list"] as $panoscenes) {
375
- if (!empty($panoscenes['scene-id'])) {
376
- $allhotspot = array();
377
- foreach ($panoscenes["hotspot-list"] as $hotspot_val) {
378
-
379
- if (!empty($hotspot_val["hotspot-title"])) {
380
- array_push($allhotspot, $hotspot_val["hotspot-title"]);
381
- }
382
- }
383
- $allhotspotcount = array_count_values($allhotspot);
384
- foreach ($allhotspotcount as $key => $value) {
385
- if ($value > 1) {
386
- wp_send_json_error('<span class="pano-error-title">Duplicate Hotspot ID</span> <p>You\'ve assigned a duplicate Hotspot ID. <br/>Please assign unique Hotspot IDs to each Hotspot.</p>');
387
- die();
388
- }
389
- }
390
- }
391
- }
392
-
393
- $default_data = array();
394
- if ($_POST['gzoom'] == 'on') {
395
- $default_data = array("firstScene" => $default_scene, "sceneFadeDuration" => $scene_fade_duration, "hfov" => $default_global_zoom, "maxHfov" => $max_global_zoom, "minHfov" => $min_global_zoom);
396
- } else {
397
- $default_data = array("firstScene" => $default_scene, "sceneFadeDuration" => $scene_fade_duration);
398
- }
399
- $scene_data = array();
400
- foreach ($panodata["scene-list"] as $panoscenes) {
401
- if (!empty($panoscenes['scene-id'])) {
402
- $scene_ititle = '';
403
- $scene_ititle = sanitize_text_field($panoscenes["scene-ititle"]);
404
- $scene_author = '';
405
- $scene_author = sanitize_text_field($panoscenes["scene-author"]);
406
-
407
- $scene_vaov = 180;
408
- $scene_vaov = (float)$panoscenes["scene-vaov"];
409
-
410
- $scene_haov = 360;
411
- $scene_haov = (float)$panoscenes["scene-haov"];
412
-
413
- $scene_vertical_offset = 0;
414
- $scene_vertical_offset = (float)$panoscenes["scene-vertical-offset"];
415
-
416
- $default_scene_pitch = null;
417
- $default_scene_pitch = (float)$panoscenes["scene-pitch"];
418
-
419
- $default_scene_yaw = null;
420
- $default_scene_yaw = (float)$panoscenes["scene-yaw"];
421
-
422
- $scene_max_pitch = '';
423
- $scene_max_pitch = (float)$panoscenes["scene-maxpitch"];
424
-
425
- $scene_min_pitch = '';
426
- $scene_min_pitch = (float)$panoscenes["scene-minpitch"];
427
-
428
- $scene_max_yaw = '';
429
- $scene_max_yaw = (float)$panoscenes["scene-maxyaw"];
430
-
431
- $scene_min_yaw = '';
432
- $scene_min_yaw = (float)$panoscenes["scene-minyaw"];
433
-
434
- $default_zoom = 100;
435
- $default_zoom = $panoscenes["scene-zoom"];
436
- if (!empty($default_zoom)) {
437
- $default_zoom = (int)$panoscenes["scene-zoom"];
438
- } else {
439
- $default_zoom = 100;
440
- }
441
-
442
- $max_zoom = 120;
443
- $max_zoom = $panoscenes["scene-maxzoom"];
444
- if (!empty($max_zoom)) {
445
- $max_zoom = (int)$panoscenes["scene-maxzoom"];
446
- } else {
447
- $max_zoom = 120;
448
- }
449
-
450
- $min_zoom = 50;
451
- $min_zoom = $panoscenes["scene-minzoom"];
452
- if (!empty($min_zoom)) {
453
- $min_zoom = (int)$panoscenes["scene-minzoom"];
454
- } else {
455
- $min_zoom = 50;
456
- }
457
-
458
- $hotspot_datas = $panoscenes["hotspot-list"];
459
-
460
- $hotspots = array();
461
- foreach ($hotspot_datas as $hotspot_data) {
462
-
463
- if (!empty($hotspot_data["hotspot-title"])) {
464
-
465
- $hotspot_type = $hotspot_data["hotspot-type"] !== 'scene' ? 'info' : $hotspot_data["hotspot-type"];
466
- $hotspot_content = '';
467
-
468
- ob_start();
469
- do_action('wpvr_hotspot_content_admin', $hotspot_data);
470
- $hotspot_content = ob_get_clean();
471
-
472
-
473
- if (!$hotspot_content) $hotspot_content = $hotspot_data["hotspot-content"];
474
-
475
-
476
- $hotspot_info = array(
477
- "text" => $hotspot_data["hotspot-title"],
478
- "pitch" => $hotspot_data["hotspot-pitch"],
479
- "yaw" => $hotspot_data["hotspot-yaw"],
480
- "type" => $hotspot_type,
481
- "URL" => $hotspot_data["hotspot-url"],
482
- "clickHandlerArgs" => $hotspot_content,
483
- "createTooltipArgs" => $hotspot_data["hotspot-hover"],
484
- "sceneId" => $hotspot_data["hotspot-scene"],
485
- "targetPitch" => (float)$hotspot_data["hotspot-scene-pitch"],
486
- "targetYaw" => (float)$hotspot_data["hotspot-scene-yaw"],
487
- 'hotspot_type' => $hotspot_data['hotspot-type']
488
- );
489
-
490
- array_push($hotspots, $hotspot_info);
491
- if (empty($hotspot_data["hotspot-scene"])) {
492
- unset($hotspot_info['targetPitch']);
493
- unset($hotspot_info['targetYaw']);
494
- }
495
- }
496
- }
497
-
498
- $scene_info = array();
499
- if ($panoscenes["scene-type"] == 'cubemap') {
500
- $pano_type = 'cubemap';
501
- $pano_attachment = array(
502
- $panoscenes["scene-attachment-url-face0"],
503
- $panoscenes["scene-attachment-url-face1"],
504
- $panoscenes["scene-attachment-url-face2"],
505
- $panoscenes["scene-attachment-url-face3"],
506
- $panoscenes["scene-attachment-url-face4"],
507
- $panoscenes["scene-attachment-url-face5"]
508
- );
509
-
510
- $scene_info = array("type" => $panoscenes["scene-type"], "cubeMap" => $pano_attachment, "pitch" => $default_scene_pitch, "maxPitch" => $scene_max_pitch, "minPitch" => $scene_min_pitch, "maxYaw" => $scene_max_yaw, "minYaw" => $scene_min_yaw, "yaw" => $default_scene_yaw, "hfov" => $default_zoom, "maxHfov" => $max_zoom, "minHfov" => $min_zoom, "title" => $scene_ititle, "author" => $scene_author, "vaov" => $scene_vaov, "haov" => $scene_haov, "vOffset" => $scene_vertical_offset, "hotSpots" => $hotspots);
511
- } else {
512
- $scene_info = array("type" => $panoscenes["scene-type"], "panorama" => $panoscenes["scene-attachment-url"], "pitch" => $default_scene_pitch, "maxPitch" => $scene_max_pitch, "minPitch" => $scene_min_pitch, "maxYaw" => $scene_max_yaw, "minYaw" => $scene_min_yaw, "yaw" => $default_scene_yaw, "hfov" => $default_zoom, "maxHfov" => $max_zoom, "minHfov" => $min_zoom, "title" => $scene_ititle, "author" => $scene_author, "vaov" => $scene_vaov, "haov" => $scene_haov, "vOffset" => $scene_vertical_offset, "hotSpots" => $hotspots);
513
- }
514
-
515
-
516
- if ($panoscenes["ptyscene"] == "off") {
517
- unset($scene_info['pitch']);
518
- unset($scene_info['yaw']);
519
- }
520
-
521
- if (empty($panoscenes["scene-ititle"])) {
522
- unset($scene_info['title']);
523
- }
524
- if (empty($panoscenes["scene-author"])) {
525
- unset($scene_info['author']);
526
- }
527
-
528
- if (empty($scene_vaov)) {
529
- unset($scene_info['vaov']);
530
- }
531
-
532
- if (empty($scene_haov)) {
533
- unset($scene_info['haov']);
534
- }
535
-
536
- if (empty($scene_vertical_offset)) {
537
- unset($scene_info['vOffset']);
538
- }
539
-
540
- if ($panoscenes["cvgscene"] == "off") {
541
- unset($scene_info['maxPitch']);
542
- unset($scene_info['minPitch']);
543
- }
544
- if (empty($panoscenes["scene-maxpitch"])) {
545
- unset($scene_info['maxPitch']);
546
- }
547
-
548
- if (empty($panoscenes["scene-minpitch"])) {
549
- unset($scene_info['minPitch']);
550
- }
551
-
552
- if ($panoscenes["chgscene"] == "off") {
553
- unset($scene_info['maxYaw']);
554
- unset($scene_info['minYaw']);
555
- }
556
- if (empty($panoscenes["scene-maxyaw"])) {
557
- unset($scene_info['maxYaw']);
558
- }
559
-
560
- if (empty($panoscenes["scene-minyaw"])) {
561
- unset($scene_info['minYaw']);
562
- }
563
-
564
- // if ($panoscenes["czscene"] == "off") {
565
- // unset($scene_info['hfov']);
566
- // unset($scene_info['maxHfov']);
567
- // unset($scene_info['minHfov']);
568
- // }
569
-
570
- $scene_array = array();
571
- $scene_array = array(
572
- $panoscenes["scene-id"] => $scene_info
573
- );
574
- $scene_data[$panoscenes["scene-id"]] = $scene_info;
575
- }
576
- }
577
-
578
- $pano_id_array = array();
579
- $pano_id_array = array("panoid" => $panoid);
580
- $pano_response = array();
581
- $pano_response = array("autoLoad" => $autoload, "defaultZoom" => $default_global_zoom, "minZoom" => $min_global_zoom, "maxZoom" => $max_global_zoom, "showControls" => $control, "compass" => $compass, "mouseZoom" => $mouseZoom, "draggable" => $draggable, "disableKeyboardCtrl" => $diskeyboard, 'keyboardZoom' => $keyboardzoom, "preview" => $preview, "autoRotate" => $autorotation, "autoRotateInactivityDelay" => $autorotationinactivedelay, "autoRotateStopDelay" => $autorotationstopdelay, "default" => $default_data, "scenes" => $scene_data);
582
-
583
- if ($rotation == 'off') {
584
- unset($pano_response['autoRotate']);
585
- unset($pano_response['autoRotateInactivityDelay']);
586
- unset($pano_response['autoRotateStopDelay']);
587
- }
588
- if (empty($autorotation)) {
589
- unset($pano_response['autoRotate']);
590
- unset($pano_response['autoRotateInactivityDelay']);
591
- unset($pano_response['autoRotateStopDelay']);
592
- }
593
- if (empty($autorotationinactivedelay)) {
594
- unset($pano_response['autoRotateInactivityDelay']);
595
- }
596
- if (empty($autorotationstopdelay)) {
597
- unset($pano_response['autoRotateStopDelay']);
598
- }
599
-
600
- // if($_POST['gzoom'] == 'off' ){
601
- // unset($pano_response['defaultZoom']);
602
- // unset($pano_response['minZoom']);
603
- // unset($pano_response['maxZoom']);
604
- // }
605
- $response = array();
606
- $response = array($pano_id_array, $pano_response);
607
- wp_send_json_success($response);
608
- }
609
-
610
- /**
611
- * Video Preview show ajax function
612
- */
613
- function wpvrvideo_preview()
614
- {
615
- $panoid = '';
616
- $postid = sanitize_text_field($_POST['postid']);
617
- $panoid = 'pano' . $postid;
618
- $randid = rand(1000, 1000000);
619
- $vidid = 'vid' . $randid;
620
- $videourl = esc_url_raw($_POST['videourl']);
621
- $autoplay = sanitize_text_field($_POST['autoplay']);
622
- $loop = sanitize_text_field($_POST['loop']);
623
-
624
- $vidtype = '';
625
- if (strpos($videourl, 'youtube') > 0) {
626
- $vidtype = 'youtube';
627
- $explodeid = '';
628
- $explodeid = explode("=", $videourl);
629
-
630
- if ($autoplay == 'on') {
631
- $autoplay = '&autoplay=1';
632
- $muted = '&mute=1';
633
- } else {
634
- $autoplay = '';
635
- $muted = '';
636
- }
637
-
638
- if ($loop == 'on') {
639
- $loop = '&loop=1';
640
- } else {
641
- $loop = '';
642
- }
643
-
644
- $foundid = '';
645
- $foundid = $explodeid[1] . '?' . $autoplay . $loop;
646
- $html = '';
647
- $html .= '
648
- <iframe src="https://www.youtube.com/embed/' . $explodeid[1] . '?rel=0&modestbranding=1' . $loop . '&autohide=1' . $muted . '&showinfo=0&controls=1' . $autoplay . '" width="600" height="400" frameborder="0" allowfullscreen></iframe>
649
- ';
650
- } elseif (strpos($videourl, 'youtu.be') > 0) {
651
- $vidtype = 'youtube';
652
- $explodeid = '';
653
- $explodeid = explode("/", $videourl);
654
-
655
- if ($autoplay == 'on') {
656
- $autoplay = '&autoplay=1';
657
- } else {
658
- $autoplay = '';
659
- }
660
-
661
- if ($loop == 'on') {
662
- $loop = '&loop=1';
663
- } else {
664
- $loop = '';
665
- }
666
-
667
- $foundid = '';
668
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
669
- $html = '';
670
- $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
671
- } elseif (strpos($videourl, 'vimeo') > 0) {
672
- $vidtype = 'vimeo';
673
- $explodeid = '';
674
- $explodeid = explode("/", $videourl);
675
- $foundid = '';
676
-
677
- if ($autoplay == 'on') {
678
- $autoplay = '&autoplay=1&muted=1';
679
- } else {
680
- $autoplay = '';
681
- }
682
-
683
- if ($loop == 'on') {
684
- $loop = '&loop=1';
685
- } else {
686
- $loop = '';
687
- }
688
-
689
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
690
- $html = '';
691
- $html .= '<iframe src="https://player.vimeo.com/video/' . $foundid . '" width="600" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
692
- } else {
693
- $vidtype = 'selfhost';
694
-
695
- if ($autoplay == 'on') {
696
- $autoplay = 'autoplay';
697
- } else {
698
- $autoplay = '';
699
- }
700
-
701
-
702
- if ($loop == 'on') {
703
- $loop = 'loop';
704
- } else {
705
- $loop = '';
706
- }
707
-
708
- $html = '';
709
- $html .= '<video id="' . $vidid . '" class="video-js vjs-default-skin vjs-big-play-centered" ' . $autoplay . ' ' . $loop . ' controls preload="none" style="width:100%;height:400px;" poster="" >';
710
- $html .= '<source src="' . $videourl . '" type="video/mp4"/>';
711
- $html .= '<p class="vjs-no-js">';
712
- $html .= 'To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com html5-video-support/" target="_blank">supports HTML5 video</a>';
713
- $html .= '</p>';
714
- $html .= '</video>';
715
- }
716
-
717
- $response = array();
718
- $response = array(__("panoid") => $panoid, __("panodata") => $html, __("vidid") => $vidid, __("vidtype") => $vidtype);
719
- wp_send_json_success($response);
720
- }
721
-
722
- function wpvr_save_data()
723
- {
724
-
725
- $panoid = '';
726
- $html = '';
727
- $postid = sanitize_text_field($_POST['postid']);
728
- $prevtext = sanitize_text_field($_POST['previewtext']);
729
- // error_log(print_r($_POST['customColor'],1));
730
- $previewtext = '';
731
- if (strlen($prevtext) <= 50) {
732
- $previewtext = $prevtext;
733
- }
734
- $post_type = get_post_type($postid);
735
- if ($post_type != 'wpvr_item') {
736
- die();
737
- }
738
- $panoid = 'pano' . $postid;
739
-
740
- $default_global_zoom = '';
741
- $max_global_zoom = '';
742
- $min_global_zoom = '';
743
- if (isset($_POST['gzoom']) == 'on') {
744
- $default_global_zoom = $_POST['dzoom'];
745
- $max_global_zoom = $_POST['maxzoom'];
746
- $min_global_zoom = $_POST['minzoom'];
747
- }
748
-
749
- if (isset($_POST['streetview'])) {
750
- $streetview = $_POST['streetview'];
751
- if ($streetview == 'on') {
752
- $streetviewurl = esc_url_raw($_POST['streetviewurl']);
753
- if ($streetviewurl) {
754
- $html .= '<iframe src="' . $streetviewurl . '" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
755
- }
756
- $streetviewarray = array();
757
- $streetviewarray = array(__("panoid") => $panoid, __("streetviewdata") => $html, __("streetviewurl") => $streetviewurl, __("streetview") => $streetview);
758
- update_post_meta($postid, 'panodata', $streetviewarray);
759
- die();
760
- }
761
- }
762
-
763
-
764
- $pnovideo = $_POST['panovideo'];
765
- if ($pnovideo == "on") {
766
-
767
- $vidid = 'vid' . $postid;
768
- $videourl = esc_url_raw($_POST['videourl']);
769
- $autoplay = sanitize_text_field($_POST['autoplay']);
770
- $vidautoplay = sanitize_text_field($_POST['autoplay']);
771
- $loop = sanitize_text_field($_POST['loop']);
772
- $vidloop = sanitize_text_field($_POST['loop']);
773
- $vidtype = '';
774
-
775
- if (strpos($videourl, 'youtube') > 0) {
776
- $vidtype = 'youtube';
777
- $explodeid = '';
778
- $explodeid = explode("=", $videourl);
779
- $foundid = '';
780
-
781
- if ($autoplay == 'on') {
782
- $autoplay = '&autoplay=1';
783
- } else {
784
- $autoplay = '';
785
- }
786
-
787
- if ($loop == 'on') {
788
- $loop = '&loop=1';
789
- } else {
790
- $loop = '';
791
- }
792
-
793
- $foundid = $explodeid[1] . '?' . $autoplay . $loop;
794
- $html = '';
795
- $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
796
- } elseif (strpos($videourl, 'youtu.be') > 0) {
797
- $vidtype = 'youtube';
798
- $explodeid = '';
799
- $explodeid = explode("/", $videourl);
800
- $foundid = '';
801
-
802
- if ($autoplay == 'on') {
803
- $autoplay = '&autoplay=1';
804
- } else {
805
- $autoplay = '';
806
- }
807
-
808
- if ($loop == 'on') {
809
- $loop = '&loop=1';
810
- } else {
811
- $loop = '';
812
- }
813
-
814
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
815
- $html = '';
816
- $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
817
- } elseif (strpos($videourl, 'vimeo') > 0) {
818
- $vidtype = 'vimeo';
819
- $explodeid = '';
820
- $explodeid = explode("/", $videourl);
821
- $foundid = '';
822
-
823
- if ($autoplay == 'on') {
824
- $autoplay = '&autoplay=1&muted=1';
825
- } else {
826
- $autoplay = '';
827
- }
828
-
829
- if ($loop == 'on') {
830
- $loop = '&loop=1';
831
- } else {
832
- $loop = '';
833
- }
834
-
835
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
836
- $html = '';
837
- $html .= '<iframe src="https://player.vimeo.com/video/' . $foundid . '" width="600" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
838
- } else {
839
- $vidtype = 'selfhost';
840
- $vidautoplay = '';
841
- // $vidautoplay = sanitize_text_field($_POST['vidautoplay']);
842
- $vidautoplay = sanitize_text_field($_POST['autoplay']);
843
-
844
- if ($autoplay == 'on') {
845
- $autoplay = 'autoplay muted';
846
- } else {
847
- $autoplay = '';
848
- }
849
-
850
- if ($loop == 'on') {
851
- $loop = 'loop';
852
- } else {
853
- $loop = '';
854
- }
855
-
856
- $html = '';
857
- $html .= '<video id="' . $vidid . '" class="video-js vjs-default-skin vjs-big-play-centered" ' . $autoplay . ' ' . $loop . ' controls preload="auto" style="width:100%;height:100%;" poster="" >';
858
- $html .= '<source src="' . $videourl . '" type="video/mp4"/>';
859
- $html .= '<p class="vjs-no-js">';
860
- $html .= 'To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com html5-video-support/" target="_blank">supports HTML5 video</a>';
861
- $html .= '</p>';
862
- $html .= '</video>';
863
- }
864
-
865
-
866
-
867
- $videoarray = array();
868
- $videoarray = array(__("panoid") => $panoid, __("panoviddata") => $html, __("vidid") => $vidid, __("vidurl") => $videourl, __("autoplay") => $autoplay, __("loop") => $vidloop, __("vidtype") => $vidtype);
869
- update_post_meta($postid, 'panodata', $videoarray);
870
- die();
871
- }
872
-
873
-
874
- $control = sanitize_text_field($_POST['control']);
875
- if ($control == 'on') {
876
- $control = true;
877
- } else {
878
- $control = false;
879
- }
880
-
881
- //===Custom Control===//
882
- $custom_control = $_POST['customcontrol'];
883
-
884
- //===Custom Control End===//
885
-
886
- $vrgallery = sanitize_text_field($_POST['vrgallery']);
887
- if ($vrgallery == 'on') {
888
- $vrgallery = true;
889
- } else {
890
- $vrgallery = false;
891
- }
892
-
893
- $vrgallery_title = sanitize_text_field($_POST['vrgallery_title']);
894
- if ($vrgallery_title == 'on') {
895
- $vrgallery_title = true;
896
- } else {
897
- $vrgallery_title = false;
898
- }
899
-
900
- $vrgallery_display = sanitize_text_field($_POST['vrgallery_display']);
901
- if ($vrgallery_display == 'on') {
902
- $vrgallery_display = true;
903
- } else {
904
- $vrgallery_display = false;
905
- }
906
-
907
- $gyro = false;
908
- if (isset($_POST['gyro'])) {
909
- $gyro = sanitize_text_field($_POST['gyro']);
910
- }
911
-
912
- $deviceorientationcontrol = sanitize_text_field($_POST['deviceorientationcontrol']);
913
-
914
- if ($gyro == 'on') {
915
- if (!is_ssl()) {
916
- wp_send_json_error('<p><span>Warning:</span> Please add SSL to enable Gyroscope for WP VR. </p>');
917
- die();
918
- }
919
- $gyro = true;
920
- if ($deviceorientationcontrol == 'on') {
921
- $deviceorientationcontrol = true;
922
- } else {
923
- $deviceorientationcontrol = false;
924
- }
925
- } else {
926
- $gyro = false;
927
- $deviceorientationcontrol = false;
928
- }
929
-
930
- $compass = sanitize_text_field($_POST['compass']);
931
- if ($compass == 'on') {
932
- $compass = true;
933
- } else {
934
- $compass = false;
935
- }
936
-
937
- $mouseZoom = sanitize_text_field($_POST['mouseZoom']);
938
- if ($mouseZoom == 'off') {
939
- $mouseZoom = false;
940
- } else {
941
- $mouseZoom = true;
942
- }
943
-
944
- $draggable = sanitize_text_field($_POST['draggable']);
945
- if ($draggable == 'off') {
946
- $draggable = false;
947
- } else {
948
- $draggable = true;
949
- }
950
-
951
- $diskeyboard = sanitize_text_field($_POST['diskeyboard']);
952
- if ($diskeyboard == 'on') {
953
- $diskeyboard = true;
954
- } else {
955
- $diskeyboard = false;
956
- }
957
-
958
- $keyboardzoom = sanitize_text_field($_POST['keyboardzoom']);
959
-
960
- if ($keyboardzoom == 'off') {
961
- $keyboardzoom = false;
962
- } else {
963
- $keyboardzoom = true;
964
- }
965
-
966
- $autoload = sanitize_text_field($_POST['autoload']);
967
- if ($autoload == 'on') {
968
- $autoload = true;
969
- } else {
970
- $autoload = false;
971
- }
972
-
973
- $default_scene = '';
974
-
975
- $preview = '';
976
- $preview = esc_url($_POST['preview']);
977
-
978
- $rotation = '';
979
- $rotation = sanitize_text_field($_POST['rotation']);
980
-
981
- $autorotation = '';
982
- $autorotation = sanitize_text_field($_POST['autorotation']);
983
- $autorotationinactivedelay = '';
984
- $autorotationinactivedelay = sanitize_text_field($_POST['autorotationinactivedelay']);
985
- $autorotationstopdelay = '';
986
- $autorotationstopdelay = sanitize_text_field($_POST['autorotationstopdelay']);
987
-
988
-
989
-
990
- if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
991
- wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
992
- die();
993
- }
994
-
995
- //===Company Logo===//
996
- $cpLogoSwitch = 'off';
997
- $cpLogoSwitch = $_POST['cpLogoSwitch'];
998
- $cpLogoImg = '';
999
- $cpLogoImg = $_POST['cpLogoImg'];
1000
- $cpLogoContent = '';
1001
- $cpLogoContent = sanitize_text_field($_POST['cpLogoContent']);
1002
- //===Company Logo===//
1003
-
1004
- //===background tour ===//
1005
- $bg_tour_enabler = sanitize_text_field($_POST['wpvr_bg_tour_enabler']);
1006
- // $bg_tour_navmenu = sanitize_text_field($_POST['wpvr_bg_tour_navmenu_enabler']);
1007
- $bg_tour_title = sanitize_text_field($_POST['bg_tour_title']);
1008
- $bg_tour_subtitle = sanitize_text_field($_POST['bg_tour_subtitle']);
1009
- //===background tour end ===//
1010
-
1011
- // update_post_meta($postid,'hotspot_colors',$_POST['customColor']);
1012
-
1013
- $scene_fade_duration = '';
1014
- $scene_fade_duration = $_POST['scenefadeduration'];
1015
-
1016
- $panodata = $_POST['panodata'];
1017
- $panolist = stripslashes($panodata);
1018
- $panodata = (array)json_decode($panolist);
1019
- $panolist = array();
1020
- if (is_array($panodata["scene-list"])) {
1021
- foreach ($panodata["scene-list"] as $scenes_data) {
1022
- $temp_array = array();
1023
- $temp_array = (array)$scenes_data;
1024
- // $scene_id_ = $temp_array["scene-id"];
1025
-
1026
- if ($temp_array['hotspot-list']) {
1027
- $_hotspot_array = array();
1028
- foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
1029
-
1030
- $temp_hotspot = (array)$temp_hotspot;
1031
- $_hotspot_array[] = $temp_hotspot;
1032
- }
1033
- }
1034
-
1035
- $temp_array['hotspot-list'] = $_hotspot_array;
1036
- $panolist['scene-list'][] = $temp_array;
1037
- }
1038
- }
1039
- $panodata = $panolist;
1040
-
1041
- //===Error Control and Validation===//
1042
-
1043
- if ($panodata["scene-list"] != "") {
1044
- foreach ($panodata["scene-list"] as $scenes_val) {
1045
-
1046
- $scene_id_validate = $scenes_val["scene-id"];
1047
- if (!empty($scene_id_validate)) {
1048
- $scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $scene_id_validate);
1049
- if ($scene_id_validated != $scene_id_validate) {
1050
- wp_send_json_error('<span class="pano-error-title">Invalid Scene ID</span> <p>Scene ID can\'t contain spaces and special characters. <br/>Please assign a unique Scene ID with letters and numbers where Scene ID is : ' . $scene_id_validate . '</p>');
1051
- die();
1052
- }
1053
-
1054
- if ($scenes_val['scene-type'] == 'cubemap') {
1055
- if (empty($scenes_val["scene-attachment-url-face0"])) {
1056
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 0</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1057
- die();
1058
- }
1059
-
1060
- if (empty($scenes_val["scene-attachment-url-face1"])) {
1061
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 1</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1062
- die();
1063
- }
1064
-
1065
- if (empty($scenes_val["scene-attachment-url-face2"])) {
1066
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 2</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1067
- die();
1068
- }
1069
-
1070
- if (empty($scenes_val["scene-attachment-url-face3"])) {
1071
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 3</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1072
- die();
1073
- }
1074
-
1075
- if (empty($scenes_val["scene-attachment-url-face4"])) {
1076
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 4</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1077
- die();
1078
- }
1079
-
1080
- if (empty($scenes_val["scene-attachment-url-face5"])) {
1081
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 5</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1082
- die();
1083
- }
1084
- } else {
1085
- if (empty($scenes_val["scene-attachment-url"])) {
1086
- wp_send_json_error('<span class="pano-error-title">Missing Scene Image</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1087
- die();
1088
- }
1089
- }
1090
-
1091
- if (!empty($scenes_val["scene-pitch"])) {
1092
- $validate_scene_pitch = $scenes_val["scene-pitch"];
1093
- $validated_scene_pitch = preg_replace('/[^0-9.-]/', '', $validate_scene_pitch);
1094
- if ($validated_scene_pitch != $validate_scene_pitch) {
1095
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
1096
- die();
1097
- }
1098
- }
1099
-
1100
- if (!empty($scenes_val["scene-yaw"])) {
1101
- $validate_scene_yaw = $scenes_val["scene-yaw"];
1102
- $validated_scene_yaw = preg_replace('/[^0-9.-]/', '', $validate_scene_yaw);
1103
- if ($validated_scene_yaw != $validate_scene_yaw) {
1104
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
1105
- die();
1106
- }
1107
- }
1108
-
1109
- if (!empty($scenes_val["scene-zoom"])) {
1110
- $validate_default_zoom = $scenes_val["scene-zoom"];
1111
- $validated_default_zoom = preg_replace('/[^0-9-]/', '', $validate_default_zoom);
1112
- if ($validated_default_zoom != $validate_default_zoom) {
1113
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
1114
-
1115
- die();
1116
- }
1117
- $default_zoom_value = (int)$scenes_val["scene-zoom"];
1118
- if ($default_zoom_value > 120 || $default_zoom_value < 50) {
1119
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
1120
-
1121
- die();
1122
- }
1123
- }
1124
-
1125
- if (!empty($scenes_val["scene-maxzoom"])) {
1126
- $validate_max_zoom = $scenes_val["scene-maxzoom"];
1127
- $validated_max_zoom = preg_replace('/[^0-9-]/', '', $validate_max_zoom);
1128
- if ($validated_max_zoom != $validate_max_zoom) {
1129
- wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
1130
-
1131
- die();
1132
- }
1133
- $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
1134
- if ($max_zoom_value > 120) {
1135
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
1136
-
1137
- die();
1138
- }
1139
-
1140
- if ($max_zoom_value < 50) {
1141
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can not set the Max-zoom Value lower than 50 degrees.</p>');
1142
- die();
1143
- }
1144
- }
1145
-
1146
- if (!empty($scenes_val["scene-minzoom"])) {
1147
- $validate_min_zoom = $scenes_val["scene-minzoom"];
1148
- $validated_min_zoom = preg_replace('/[^0-9-]/', '', $validate_min_zoom);
1149
- if ($validated_min_zoom != $validate_min_zoom) {
1150
- wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
1151
- die();
1152
- }
1153
- $min_zoom_value = (int)$scenes_val["scene-minzoom"];
1154
- if ($min_zoom_value < 50) {
1155
- wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
1156
- die();
1157
- }
1158
-
1159
- if ($min_zoom_value > 120) {
1160
- wp_send_json_error('<span class="pano-error-title">Hight Min-Zoom Value</span><p> The Min-zoom value must be less than 120 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
1161
- die();
1162
- }
1163
- }
1164
-
1165
- if ($scenes_val["hotspot-list"] != "") {
1166
- foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
1167
-
1168
- $hotspot_title_validate = $hotspot_val["hotspot-title"];
1169
-
1170
- if (!empty($hotspot_title_validate)) {
1171
- $hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $hotspot_title_validate);
1172
- if ($hotspot_title_validated != $hotspot_title_validate) {
1173
- wp_send_json_error('<span class="pano-error-title">Invalid Hotspot ID</span> <p>Hotspot ID can\'t contain spaces and special characters.<br/> Please assign a unique Hotspot ID with letters and numbers where Scene id: ' . $scene_id_validate . ' Hotspot ID is: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1174
- die();
1175
- }
1176
- $hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
1177
- if (empty($hotspot_pitch_validate)) {
1178
- wp_send_json_error('<p><span>Warning:</span> Hotspot pitch is required for every hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1179
- die();
1180
- }
1181
- if (!empty($hotspot_pitch_validate)) {
1182
- $hotspot_pitch_validated = preg_replace('/[^0-9.-]/', '', $hotspot_pitch_validate);
1183
- if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
1184
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
1185
-
1186
-
1187
- die();
1188
- }
1189
- }
1190
-
1191
- $hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
1192
- if (empty($hotspot_yaw_validate)) {
1193
- wp_send_json_error('<p><span>Warning:</span> Hotspot yaw is required for every hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1194
- die();
1195
- }
1196
- if (!empty($hotspot_yaw_validate)) {
1197
- $hotspot_yaw_validated = preg_replace('/[^0-9.-]/', '', $hotspot_yaw_validate);
1198
- if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
1199
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
1200
-
1201
- die();
1202
- }
1203
- }
1204
-
1205
- if (is_plugin_active('wpvr-pro/wpvr-pro.php')) {
1206
- $status = get_option('wpvr_edd_license_status');
1207
- if ($status !== false && $status == 'valid') {
1208
- if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
1209
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not use both Custom Icon and Custom Icon Class for a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1210
- die();
1211
- }
1212
- }
1213
- }
1214
- $hotspot_type_validate = $hotspot_val["hotspot-type"];
1215
- $hotspot_url_validate = $hotspot_val["hotspot-url"];
1216
- if (!empty($hotspot_url_validate)) {
1217
- $hotspot_url_validated = esc_url($hotspot_url_validate);
1218
- if ($hotspot_url_validated != $hotspot_url_validate) {
1219
- wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1220
- die();
1221
- }
1222
- }
1223
- $hotspot_content_validate = $hotspot_val["hotspot-content"];
1224
-
1225
- $hotspot_scene_validate = $hotspot_val["hotspot-scene"];
1226
-
1227
- if ($hotspot_type_validate == "info") {
1228
- if (!empty($hotspot_scene_validate)) {
1229
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1230
- die();
1231
- }
1232
- if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
1233
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not set both On Click Content and URL on a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1234
- die();
1235
- }
1236
- }
1237
-
1238
-
1239
-
1240
- if ($hotspot_type_validate == "shortcode_editor") {
1241
- if (substr($hotspot_val['hotspot-shortcode'], 0, 1) === '[') {
1242
- $pattern = get_shortcode_regex();
1243
- preg_match('/' . $pattern . '/s', $hotspot_val['hotspot-shortcode'], $matches);
1244
- if (is_array($matches) && !isset($matches[2])) {
1245
- wp_send_json_error('<p><span>Warning:</span> This is not a valid shortcode where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1246
- die();
1247
- }
1248
- }
1249
- }
1250
-
1251
- if ($hotspot_type_validate == "scene") {
1252
- if (empty($hotspot_scene_validate)) {
1253
- wp_send_json_error('<span class="pano-error-title">Target Scene Missing</span> <p>Assign a Target Scene to the Scene-type Hotspot where Scene ID: ' . $scene_id_validate . ' and Hotspot ID : ' . $hotspot_title_validate . '</p>');
1254
- die();
1255
- }
1256
- if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
1257
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1258
- die();
1259
- }
1260
- }
1261
- }
1262
- }
1263
- }
1264
- }
1265
- }
1266
- }
1267
- //===Error Control and Validation===//
1268
-
1269
- foreach ($panodata["scene-list"] as $panoscenes) {
1270
- if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
1271
- wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
1272
- die();
1273
- }
1274
- }
1275
-
1276
- $allsceneids = array();
1277
-
1278
- foreach ($panodata["scene-list"] as $panoscenes) {
1279
- if (!empty($panoscenes['scene-id'])) {
1280
- array_push($allsceneids, $panoscenes['scene-id']);
1281
- }
1282
- }
1283
-
1284
- foreach ($panodata["scene-list"] as $panoscenes) {
1285
-
1286
- if ($panoscenes['dscene'] == 'on') {
1287
- $default_scene = $panoscenes['scene-id'];
1288
- }
1289
- }
1290
- if (empty($default_scene)) {
1291
- if ($allsceneids) {
1292
- $default_scene = $allsceneids[0];
1293
- } else {
1294
-
1295
- wp_send_json_error('<span class="pano-error-title">Missing Image & Scene ID</span> <p>Please Upload An Image and Set A Scene ID To See The Preview</p>');
1296
- die();
1297
- }
1298
- }
1299
-
1300
- $allsceneids_count = array_count_values($allsceneids);
1301
- foreach ($allsceneids_count as $key => $value) {
1302
- if ($value > 1) {
1303
- wp_send_json_error('<span class="pano-error-title">Duplicate Scene ID</span> <p>You\'ve assigned a duplicate Scene ID. <br/>Please assign unique Scene IDs to each scene. </p>');
1304
- die();
1305
- }
1306
- }
1307
-
1308
- foreach ($panodata["scene-list"] as $panoscenes) {
1309
- if (!empty($panoscenes['scene-id'])) {
1310
- $allhotspot = array();
1311
- foreach ($panoscenes["hotspot-list"] as $hotspot_val) {
1312
- if (!empty($hotspot_val["hotspot-title"])) {
1313
- array_push($allhotspot, $hotspot_val["hotspot-title"]);
1314
- }
1315
- }
1316
- $allhotspotcount = array_count_values($allhotspot);
1317
- foreach ($allhotspotcount as $key => $value) {
1318
- if ($value > 1) {
1319
- wp_send_json_error('<span class="pano-error-title">Duplicate Hotspot ID</span> <p>You\'ve assigned a duplicate Hotspot ID. <br/>Please assign unique Hotspot IDs to each Hotspot.</p>');
1320
- die();
1321
- }
1322
- }
1323
- }
1324
- }
1325
-
1326
- $panolength = count($panodata["scene-list"]);
1327
- for ($i = 0; $i < $panolength; $i++) {
1328
- if (empty($panodata["scene-list"][$i]['scene-id'])) {
1329
- unset($panodata["scene-list"][$i]);
1330
- } else {
1331
- $panohotspotlength = count($panodata["scene-list"][$i]['hotspot-list']);
1332
- for ($j = 0; $j < $panohotspotlength; $j++) {
1333
- if (empty($panodata["scene-list"][$i]['hotspot-list'][$j]['hotspot-title'])) {
1334
- unset($panodata["scene-list"][$i]['hotspot-list'][$j]);
1335
- }
1336
- }
1337
- }
1338
- }
1339
-
1340
- //===audio===//
1341
- $bg_music = 'off';
1342
- $bg_music_url = '';
1343
- $autoplay_bg_music = 'off';
1344
- $loop_bg_music = 'off';
1345
- $bg_music = sanitize_text_field($_POST['bg_music']);
1346
- $bg_music_url = esc_url_raw($_POST['bg_music_url']);
1347
- $autoplay_bg_music = sanitize_text_field($_POST['autoplay_bg_music']);
1348
- $loop_bg_music = sanitize_text_field($_POST['loop_bg_music']);
1349
- if ($bg_music == 'on') {
1350
- if (empty($bg_music_url)) {
1351
- wp_send_json_error('<p><span>Warning:</span> Please add an audio file as you enabled audio for this tour </p>');
1352
- die();
1353
- }
1354
- }
1355
- //===audio===//
1356
-
1357
- $pano_array = array();
1358
- $pano_array = array(__("panoid") => $panoid, __("autoLoad") => $autoload, __("hfov") => $default_global_zoom, __("maxHfov") => $max_global_zoom, __("minHfov") => $min_global_zoom, __("showControls") => $control, __("cpLogoSwitch") => $cpLogoSwitch, __("cpLogoImg") => $cpLogoImg, __("cpLogoContent") => $cpLogoContent, __("vrgallery") => $vrgallery, __("vrgallery_title") => $vrgallery_title, __("vrgallery_display") => $vrgallery_display, __("customcontrol") => $custom_control, __("gyro") => $gyro, __("deviceorientationcontrol") => $deviceorientationcontrol, __("compass") => $compass, __("mouseZoom") => $mouseZoom, __("draggable") => $draggable, __("diskeyboard") => $diskeyboard, __("keyboardzoom") => $keyboardzoom, __("autoRotate") => $autorotation, __("autoRotateInactivityDelay") => $autorotationinactivedelay, __("autoRotateStopDelay") => $autorotationstopdelay, __("preview") => $preview, __("defaultscene") => $default_scene, __("scenefadeduration") => $scene_fade_duration, __("bg_music") => $bg_music, __("bg_music_url") => $bg_music_url, __("autoplay_bg_music") => $autoplay_bg_music, __("loop_bg_music") => $loop_bg_music, __("panodata") => $panodata, __("previewtext") => $previewtext, __("bg_tour_enabler") => $bg_tour_enabler, __("bg_tour_navmenu") => $bg_tour_navmenu, __("bg_tour_title") => $bg_tour_title, __("bg_tour_subtitle") => $bg_tour_subtitle);
1359
-
1360
- if ($rotation == 'off') {
1361
- unset($pano_array['autoRotate']);
1362
- unset($pano_array['autoRotateInactivityDelay']);
1363
- unset($pano_array['autoRotateStopDelay']);
1364
- }
1365
- if (empty($autorotation)) {
1366
- unset($pano_array['autoRotate']);
1367
- unset($pano_array['autoRotateInactivityDelay']);
1368
- unset($pano_array['autoRotateStopDelay']);
1369
- }
1370
- if (empty($autorotationinactivedelay)) {
1371
- unset($pano_array['autoRotateInactivityDelay']);
1372
- }
1373
- if (empty($autorotationstopdelay)) {
1374
- unset($pano_array['autoRotateStopDelay']);
1375
- }
1376
- if (empty($autorotationstopdelay)) {
1377
- unset($pano_array['autoRotateStopDelay']);
1378
- }
1379
- update_post_meta($postid, 'panodata', $pano_array);
1380
- die();
1381
- }
1382
-
1383
- function wpvr_file_import()
1384
- {
1385
- set_time_limit(20000000000000000);
1386
- wpvr_delete_temp_file();
1387
- if ($_POST['fileurl']) {
1388
- WP_Filesystem();
1389
- $file_save_url = wp_upload_dir();
1390
- $fileurl = $_POST['fileurl'];
1391
- $attachment_id = $_POST['data_id'];
1392
- $zip_file_path = get_attached_file($attachment_id);
1393
- $unzipfile = unzip_file($zip_file_path, $file_save_url['basedir'] . '/wpvr/temp/');
1394
-
1395
- if (is_wp_error($unzipfile)) {
1396
- wpvr_delete_temp_file();
1397
- wp_send_json_error('Failed to unzip file');
1398
- }
1399
- $result = glob($file_save_url["basedir"] . '/wpvr/temp/*.json');
1400
- // var_dump($result);
1401
- // die();
1402
- if (!$result) {
1403
- wpvr_delete_temp_file();
1404
- wp_send_json_error('Tour json file not found');
1405
- }
1406
- $tour_json = $result[0];
1407
- $arrContextOptions = array(
1408
- "ssl" => array(
1409
- "verify_peer" => false,
1410
- "verify_peer_name" => false,
1411
- ),
1412
- );
1413
- $getfile = file_get_contents($tour_json, false, stream_context_create($arrContextOptions));
1414
- $file_content = json_decode($getfile, true);
1415
-
1416
- $new_title = $file_content['title'];
1417
- $new_data = $file_content['data'];
1418
- $new_post_id = wp_insert_post(array(
1419
- 'post_title' => $new_title,
1420
- 'post_type' => 'wpvr_item',
1421
- 'post_status' => 'publish',
1422
- ));
1423
- if ($new_post_id) {
1424
- if ($new_data['panoid']) {
1425
- $new_data['panoid'] = 'pano' . $new_post_id;
1426
- }
1427
- if ($new_data['preview']) {
1428
- $preview_url = $file_save_url['baseurl'] . '/wpvr/temp/scene_preview.jpg';
1429
- $media_get = wpvr_handle_media_import($preview_url, $new_post_id);
1430
- if ($media_get['status'] == 'error') {
1431
- wp_delete_post($new_post_id, true);
1432
- wpvr_delete_temp_file();
1433
- wp_send_json_error($media_get['message']);
1434
- } elseif ($media_get['status'] == 'success') {
1435
- $new_data['preview'] = $media_get['message'];
1436
- } else {
1437
- wp_delete_post($new_post_id, true);
1438
- wpvr_delete_temp_file();
1439
- wp_send_json_error('Media transfer process failed');
1440
- }
1441
- }
1442
- if ($new_data['preview']) {
1443
- $preview_url = $file_save_url['baseurl'] . '/wpvr/temp/scene_preview.jpg';
1444
- $media_get = wpvr_handle_media_import($preview_url, $new_post_id);
1445
- if ($media_get['status'] == 'error') {
1446
- wp_delete_post($new_post_id, true);
1447
- wpvr_delete_temp_file();
1448
- wp_send_json_error($media_get['message']);
1449
- } elseif ($media_get['status'] == 'success') {
1450
- $new_data['preview'] = $media_get['message'];
1451
- } else {
1452
- wp_delete_post($new_post_id, true);
1453
- wpvr_delete_temp_file();
1454
- wp_send_json_error('Media transfer process failed');
1455
- }
1456
- }
1457
- if ($new_data['cpLogoImg']) {
1458
- $logo = $new_data['cpLogoImg'];
1459
- $get_logo_format = explode(".", $logo);
1460
- $logo_format = end($get_logo_format);
1461
- $logo_img = $file_save_url['baseurl'] . '/wpvr/temp/logo_img.' . $logo_format;
1462
- $media_get = wpvr_handle_media_import($logo_img, $new_post_id);
1463
- if ($media_get['status'] == 'error') {
1464
- wp_delete_post($new_post_id, true);
1465
- wpvr_delete_temp_file();
1466
- wp_send_json_error($media_get['message']);
1467
- } elseif ($media_get['status'] == 'success') {
1468
- $new_data['cpLogoImg'] = $media_get['message'];
1469
- } else {
1470
- wp_delete_post($new_post_id, true);
1471
- wpvr_delete_temp_file();
1472
- wp_send_json_error('Media transfer process failed');
1473
- }
1474
- }
1475
- if ($new_data['bg_music_url']) {
1476
- $music_url = $new_data['bg_music_url'];
1477
- $get_music_format = explode(".", $music_url);
1478
- $music_format = end($get_music_format);
1479
- $music_url = $file_save_url['baseurl'] . '/wpvr/temp/music_url.' . $music_format;
1480
- $media_get = wpvr_handle_media_import($music_url, $new_post_id);
1481
- if ($media_get['status'] == 'error') {
1482
- wp_delete_post($new_post_id, true);
1483
- wpvr_delete_temp_file();
1484
- wp_send_json_error($media_get['message']);
1485
- } elseif ($media_get['status'] == 'success') {
1486
- $new_data['bg_music_url'] = $media_get['message'];
1487
- } else {
1488
- wp_delete_post($new_post_id, true);
1489
- wpvr_delete_temp_file();
1490
- wp_send_json_error('Media transfer process failed');
1491
- }
1492
- }
1493
- if ($new_data['panodata']) {
1494
-
1495
- if ($new_data['panodata']["scene-list"]) {
1496
-
1497
- foreach ($new_data['panodata']["scene-list"] as $key => $panoscenes) {
1498
-
1499
- if ($panoscenes['scene-type'] == 'cubemap') {
1500
-
1501
- // face 0
1502
- if ($panoscenes["scene-attachment-url-face0"]) {
1503
- $scene_id = $panoscenes['scene-id'];
1504
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face0.jpg';
1505
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1506
- if ($media_get['status'] == 'error') {
1507
- wp_delete_post($new_post_id, true);
1508
- wpvr_delete_temp_file();
1509
- wp_send_json_error($media_get['message']);
1510
- } elseif ($media_get['status'] == 'success') {
1511
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1512
- } else {
1513
- wp_delete_post($new_post_id, true);
1514
- wpvr_delete_temp_file();
1515
- wp_send_json_error('Media transfer process failed');
1516
- }
1517
- }
1518
-
1519
- // face 1
1520
- if ($panoscenes["scene-attachment-url-face1"]) {
1521
- $scene_id = $panoscenes['scene-id'];
1522
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face1.jpg';
1523
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1524
- if ($media_get['status'] == 'error') {
1525
- wp_delete_post($new_post_id, true);
1526
- wpvr_delete_temp_file();
1527
- wp_send_json_error($media_get['message']);
1528
- } elseif ($media_get['status'] == 'success') {
1529
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1530
- } else {
1531
- wp_delete_post($new_post_id, true);
1532
- wpvr_delete_temp_file();
1533
- wp_send_json_error('Media transfer process failed');
1534
- }
1535
- }
1536
-
1537
- // face 2
1538
- if ($panoscenes["scene-attachment-url-face2"]) {
1539
- $scene_id = $panoscenes['scene-id'];
1540
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face2.jpg';
1541
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1542
- if ($media_get['status'] == 'error') {
1543
- wp_delete_post($new_post_id, true);
1544
- wpvr_delete_temp_file();
1545
- wp_send_json_error($media_get['message']);
1546
- } elseif ($media_get['status'] == 'success') {
1547
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1548
- } else {
1549
- wp_delete_post($new_post_id, true);
1550
- wpvr_delete_temp_file();
1551
- wp_send_json_error('Media transfer process failed');
1552
- }
1553
- }
1554
-
1555
- // face 3
1556
- if ($panoscenes["scene-attachment-url-face0"]) {
1557
- $scene_id = $panoscenes['scene-id'];
1558
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face3.jpg';
1559
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1560
- if ($media_get['status'] == 'error') {
1561
- wp_delete_post($new_post_id, true);
1562
- wpvr_delete_temp_file();
1563
- wp_send_json_error($media_get['message']);
1564
- } elseif ($media_get['status'] == 'success') {
1565
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1566
- } else {
1567
- wp_delete_post($new_post_id, true);
1568
- wpvr_delete_temp_file();
1569
- wp_send_json_error('Media transfer process failed');
1570
- }
1571
- }
1572
-
1573
- // face 4
1574
- if ($panoscenes["scene-attachment-url-face4"]) {
1575
- $scene_id = $panoscenes['scene-id'];
1576
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face4.jpg';
1577
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1578
- if ($media_get['status'] == 'error') {
1579
- wp_delete_post($new_post_id, true);
1580
- wpvr_delete_temp_file();
1581
- wp_send_json_error($media_get['message']);
1582
- } elseif ($media_get['status'] == 'success') {
1583
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1584
- } else {
1585
- wp_delete_post($new_post_id, true);
1586
- wpvr_delete_temp_file();
1587
- wp_send_json_error('Media transfer process failed');
1588
- }
1589
- }
1590
-
1591
- // face 5
1592
- if ($panoscenes["scene-attachment-url-face5"]) {
1593
- $scene_id = $panoscenes['scene-id'];
1594
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face5.jpg';
1595
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1596
- if ($media_get['status'] == 'error') {
1597
- wp_delete_post($new_post_id, true);
1598
- wpvr_delete_temp_file();
1599
- wp_send_json_error($media_get['message']);
1600
- } elseif ($media_get['status'] == 'success') {
1601
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1602
- } else {
1603
- wp_delete_post($new_post_id, true);
1604
- wpvr_delete_temp_file();
1605
- wp_send_json_error('Media transfer process failed');
1606
- }
1607
- }
1608
- } else {
1609
- if ($panoscenes["scene-attachment-url"]) {
1610
- $scene_id = $panoscenes['scene-id'];
1611
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '.jpg';
1612
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1613
- if ($media_get['status'] == 'error') {
1614
- wp_delete_post($new_post_id, true);
1615
- wpvr_delete_temp_file();
1616
- wp_send_json_error($media_get['message']);
1617
- } elseif ($media_get['status'] == 'success') {
1618
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1619
- } else {
1620
- wp_delete_post($new_post_id, true);
1621
- wpvr_delete_temp_file();
1622
- wp_send_json_error('Media transfer process failed');
1623
- }
1624
- }
1625
- }
1626
- }
1627
- }
1628
- update_post_meta($new_post_id, 'panodata', $new_data);
1629
- wpvr_delete_temp_file();
1630
- }
1631
- }
1632
- } else {
1633
- wpvr_delete_temp_file();
1634
- wp_send_json_error('No file found to import');
1635
- }
1636
- die();
1637
- }
1638
-
1639
- /**
1640
- * Video Preview show ajax function
1641
- */
1642
- function wpvrstreetview_preview()
1643
- {
1644
- $panoid = '';
1645
- $html = '';
1646
- $postid = sanitize_text_field($_POST['postid']);
1647
- $panoid = 'pano' . $postid;
1648
- $randid = rand(1000, 1000000);
1649
- $streetviewid = 'streetview' . $randid;
1650
- $streetviewurl = $_POST['streetview'];
1651
- if ($streetviewurl) {
1652
- $html .= '<iframe src="' . $streetviewurl . '" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
1653
- }
1654
-
1655
- $response = array();
1656
- $response = array(__("panoid") => $panoid, __("panodata") => $html, __("streetview") => $streetviewid);
1657
- wp_send_json_success($response);
1658
- }
1659
-
1660
- /**
1661
- * Role management
1662
- */
1663
- function wpvr_role_management()
1664
- {
1665
- $editor = sanitize_text_field($_POST['editor']);
1666
- $author = sanitize_text_field($_POST['author']);
1667
- $fontawesome = sanitize_text_field($_POST['fontawesome']);
1668
- $mobile_media_resize = sanitize_text_field($_POST['mobile_media_resize']);
1669
- $high_res_image = sanitize_text_field($_POST['high_res_image']);
1670
- $wpvr_frontend_notice = sanitize_text_field($_POST['wpvr_frontend_notice']);
1671
- $wpvr_frontend_notice_area = sanitize_text_field($_POST['wpvr_frontend_notice_area']);
1672
- $wpvr_script_control = sanitize_text_field($_POST['wpvr_script_control']);
1673
- $wpvr_script_list = sanitize_text_field($_POST['wpvr_script_list']);
1674
-
1675
- $wpvr_video_script_control = sanitize_text_field($_POST['wpvr_video_script_control']);
1676
- $wpvr_video_script_list = sanitize_text_field($_POST['wpvr_video_script_list']);
1677
-
1678
- // $enable_woocommerce = sanitize_text_field($_POST['woocommerce']);
1679
-
1680
- $wpvr_script_list = str_replace(' ', '', $wpvr_script_list);
1681
-
1682
- update_option('wpvr_editor_active', $editor);
1683
- update_option('wpvr_author_active', $author);
1684
- update_option('wpvr_fontawesome_disable', $fontawesome);
1685
- update_option('mobile_media_resize', $mobile_media_resize);
1686
- update_option('high_res_image', $high_res_image);
1687
- update_option('wpvr_frontend_notice', $wpvr_frontend_notice);
1688
- update_option('wpvr_frontend_notice_area', $wpvr_frontend_notice_area);
1689
- update_option('wpvr_script_control', $wpvr_script_control);
1690
- update_option('wpvr_script_list', $wpvr_script_list);
1691
-
1692
- update_option('wpvr_video_script_control', $wpvr_video_script_control);
1693
- update_option('wpvr_video_script_list', $wpvr_video_script_list);
1694
-
1695
- // update_option('wpvr_enable_woocommerce', $enable_woocommerce);
1696
-
1697
- $response = array(
1698
- 'status' => 'success',
1699
- 'message' => 'Successfully saved',
1700
- );
1701
- wp_send_json($response);
1702
- }
1703
-
1704
- /**
1705
- * Notice
1706
- */
1707
- function wpvr_notice()
1708
- {
1709
- update_option('wpvr_warning', '1');
1710
- }
1711
- }
 
 
1
+ <?php
2
+ if (!defined('ABSPATH')) exit; // Exit if accessed directly
3
+ /**
4
+ * The admin-specific Ajax files.
5
+ *
6
+ * @link http://rextheme.com/
7
+ * @since 1.0.0
8
+ *
9
+ * @package Wpvr
10
+ * @subpackage Wpvr/admin
11
+ */
12
+
13
+ class Wpvr_Ajax
14
+ {
15
+
16
+ /**
17
+ * Preview show ajax function
18
+ */
19
+ function wpvr_show_preview()
20
+ {
21
+ $panoid = '';
22
+ $postid = sanitize_text_field($_POST['postid']);
23
+ $post_type = get_post_type($postid);
24
+
25
+ $panoid = 'pano' . $postid;
26
+
27
+ $control = sanitize_text_field($_POST['control']);
28
+ if ($control == 'on') {
29
+ $control = true;
30
+ } else {
31
+ $control = false;
32
+ }
33
+
34
+ $compass = sanitize_text_field($_POST['compass']);
35
+ if ($compass == 'on') {
36
+ $compass = true;
37
+ } else {
38
+ $compass = false;
39
+ }
40
+
41
+ $mouseZoom = sanitize_text_field($_POST['mouseZoom']);
42
+ if ($mouseZoom == 'off') {
43
+ $mouseZoom = false;
44
+ } else {
45
+ $mouseZoom = true;
46
+ }
47
+
48
+ $draggable = sanitize_text_field($_POST['draggable']);
49
+ if ($draggable == 'off') {
50
+ $draggable = false;
51
+ } else {
52
+ $draggable = true;
53
+ }
54
+
55
+ $diskeyboard = sanitize_text_field($_POST['diskeyboard']);
56
+ if ($diskeyboard == 'on') {
57
+ $diskeyboard = true;
58
+ } else {
59
+ $diskeyboard = false;
60
+ }
61
+
62
+ $keyboardzoom = sanitize_text_field($_POST['keyboardzoom']);
63
+ if ($keyboardzoom == 'off') {
64
+ $keyboardzoom = false;
65
+ } else {
66
+ $keyboardzoom = true;
67
+ }
68
+
69
+ $autoload = sanitize_text_field($_POST['autoload']);
70
+ if ($autoload == 'on') {
71
+ $autoload = true;
72
+ } else {
73
+ $autoload = false;
74
+ }
75
+
76
+ $default_scene = '';
77
+ // $default_scene = sanitize_text_field($_POST['defaultscene']);
78
+ $preview = '';
79
+ $preview = esc_url($_POST['preview']);
80
+
81
+ $rotation = '';
82
+ $rotation = sanitize_text_field($_POST['rotation']);
83
+
84
+ $autorotation = '';
85
+ $autorotation = sanitize_text_field($_POST['autorotation']);
86
+ $autorotationinactivedelay = '';
87
+ $autorotationinactivedelay = sanitize_text_field($_POST['autorotationinactivedelay']);
88
+ $autorotationstopdelay = '';
89
+ $autorotationstopdelay = sanitize_text_field($_POST['autorotationstopdelay']);
90
+
91
+ $default_global_zoom = '';
92
+ $max_global_zoom = '';
93
+ $min_global_zoom = '';
94
+ if (isset($_POST['gzoom']) == 'on') {
95
+ $default_global_zoom = $_POST['dzoom'];
96
+ $max_global_zoom = $_POST['maxzoom'];
97
+ $min_global_zoom = $_POST['minzoom'];
98
+ }
99
+ if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
100
+ wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
101
+
102
+ die();
103
+ }
104
+
105
+ $scene_fade_duration = '';
106
+ $scene_fade_duration = sanitize_text_field($_POST['scenefadeduration']);
107
+
108
+ $panodata = $_POST['panodata'];
109
+ $panolist = stripslashes($panodata);
110
+ $panodata = (array)json_decode($panolist);
111
+ $panolist = array();
112
+ if (is_array($panodata["scene-list"])) {
113
+ foreach ($panodata["scene-list"] as $scenes_data) {
114
+ $temp_array = array();
115
+ $temp_array = (array)$scenes_data;
116
+ if ($temp_array['hotspot-list']) {
117
+ $_hotspot_array = array();
118
+ foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
119
+ $temp_hotspot = (array)$temp_hotspot;
120
+ $_hotspot_array[] = $temp_hotspot;
121
+ }
122
+ }
123
+ $temp_array['hotspot-list'] = $_hotspot_array;
124
+ $panolist['scene-list'][] = $temp_array;
125
+ }
126
+ }
127
+ $panodata = $panolist;
128
+
129
+ //===Error Control and Validation===//
130
+
131
+ if ($panodata["scene-list"] != "") {
132
+ foreach ($panodata["scene-list"] as $scenes_val) {
133
+
134
+ $scene_id_validate = $scenes_val["scene-id"];
135
+
136
+
137
+ if (!empty($scene_id_validate)) {
138
+ $scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $scene_id_validate);
139
+ if ($scene_id_validated != $scene_id_validate) {
140
+ wp_send_json_error('<span class="pano-error-title">Invalid Scene ID</span> <p>Scene ID can\'t contain spaces and special characters. <br/>Please assign a unique Scene ID with letters and numbers where Scene ID is : ' . $scene_id_validate . '</p>');
141
+ die();
142
+ }
143
+
144
+ if ($scenes_val['scene-type'] == 'cubemap') {
145
+ if (empty($scenes_val["scene-attachment-url-face0"])) {
146
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 0</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
147
+ die();
148
+ }
149
+
150
+ if (empty($scenes_val["scene-attachment-url-face1"])) {
151
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 1</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
152
+ die();
153
+ }
154
+
155
+ if (empty($scenes_val["scene-attachment-url-face2"])) {
156
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 2</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
157
+ die();
158
+ }
159
+
160
+ if (empty($scenes_val["scene-attachment-url-face3"])) {
161
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 3</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
162
+ die();
163
+ }
164
+
165
+ if (empty($scenes_val["scene-attachment-url-face4"])) {
166
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 4</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
167
+ die();
168
+ }
169
+
170
+ if (empty($scenes_val["scene-attachment-url-face5"])) {
171
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 5</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
172
+ die();
173
+ }
174
+ } else {
175
+ if (empty($scenes_val["scene-attachment-url"])) {
176
+ wp_send_json_error('<span class="pano-error-title">Missing Scene Image</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
177
+ die();
178
+ }
179
+ }
180
+
181
+ if (!empty($scenes_val["scene-pitch"])) {
182
+ $validate_scene_pitch = $scenes_val["scene-pitch"];
183
+ $validated_scene_pitch = preg_replace('/[^0-9.-]/', '', $validate_scene_pitch);
184
+ if ($validated_scene_pitch != $validate_scene_pitch) {
185
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
186
+ die();
187
+ }
188
+ }
189
+
190
+ if (!empty($scenes_val["scene-yaw"])) {
191
+ $validate_scene_yaw = $scenes_val["scene-yaw"];
192
+ $validated_scene_yaw = preg_replace('/[^0-9.-]/', '', $validate_scene_yaw);
193
+ if ($validated_scene_yaw != $validate_scene_yaw) {
194
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
195
+ die();
196
+ }
197
+ }
198
+
199
+ if (!empty($scenes_val["scene-zoom"])) {
200
+ $validate_default_zoom = $scenes_val["scene-zoom"];
201
+ $validated_default_zoom = preg_replace('/[^0-9-]/', '', $validate_default_zoom);
202
+ if ($validated_default_zoom != $validate_default_zoom) {
203
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
204
+ die();
205
+ }
206
+ $default_zoom_value = (int)$scenes_val["scene-zoom"];
207
+ if ($default_zoom_value > 120 || $default_zoom_value < 50) {
208
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
209
+
210
+ die();
211
+ }
212
+ }
213
+
214
+ if (!empty($scenes_val["scene-maxzoom"])) {
215
+ $validate_max_zoom = $scenes_val["scene-maxzoom"];
216
+ $validated_max_zoom = preg_replace('/[^0-9-]/', '', $validate_max_zoom);
217
+ if ($validated_max_zoom != $validate_max_zoom) {
218
+ wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
219
+
220
+ die();
221
+ }
222
+ $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
223
+ if ($max_zoom_value > 120) {
224
+ wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
225
+ die();
226
+ }
227
+
228
+ if ($max_zoom_value < 50) {
229
+ wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can not set the Max-zoom Value lower than 50 degrees.</p>');
230
+ die();
231
+ }
232
+ }
233
+
234
+ if (!empty($scenes_val["scene-minzoom"])) {
235
+ $validate_min_zoom = $scenes_val["scene-minzoom"];
236
+ $validated_min_zoom = preg_replace('/[^0-9-]/', '', $validate_min_zoom);
237
+ if ($validated_min_zoom != $validate_min_zoom) {
238
+ wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
239
+ die();
240
+ }
241
+ $min_zoom_value = (int)$scenes_val["scene-minzoom"];
242
+ if ($min_zoom_value < 50) {
243
+ wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
244
+ die();
245
+ }
246
+
247
+ if ($min_zoom_value > 120) {
248
+ wp_send_json_error('<span class="pano-error-title">High Min-Zoom Value</span><p> The Min-zoom value must be less than 120 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
249
+ die();
250
+ }
251
+ }
252
+
253
+ if ($scenes_val["hotspot-list"] != "") {
254
+ foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
255
+
256
+ $hotspot_title_validate = $hotspot_val["hotspot-title"];
257
+
258
+
259
+ if (!empty($hotspot_title_validate)) {
260
+ $hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $hotspot_title_validate);
261
+ if ($hotspot_title_validated != $hotspot_title_validate) {
262
+ wp_send_json_error('<span class="pano-error-title">Invalid Hotspot ID</span> <p>Hotspot ID can\'t contain spaces and special characters. <br/>Please assign a unique Hotspot ID with letters and numbers where Scene id: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
263
+ die();
264
+ }
265
+
266
+ $hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
267
+ if (!empty($hotspot_pitch_validate)) {
268
+ $hotspot_pitch_validated = preg_replace('/[^0-9.-]/', '', $hotspot_pitch_validate);
269
+ if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
270
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
271
+
272
+ die();
273
+ }
274
+ }
275
+
276
+ $hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
277
+ if (!empty($hotspot_yaw_validate)) {
278
+ $hotspot_yaw_validated = preg_replace('/[^0-9.-]/', '', $hotspot_yaw_validate);
279
+ if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
280
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
281
+
282
+ die();
283
+ }
284
+ }
285
+
286
+ if (is_plugin_active('wpvr-pro/wpvr-pro.php')) {
287
+ $status = get_option('wpvr_edd_license_status');
288
+ if ($status !== false && $status == 'valid') {
289
+ if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
290
+ wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not use both Custom Icon and Custom Icon Class for a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
291
+ die();
292
+ }
293
+ }
294
+ }
295
+ $hotspot_type_validate = $hotspot_val["hotspot-type"];
296
+ $hotspot_url_validate = $hotspot_val["hotspot-url"];
297
+ if (!empty($hotspot_url_validate)) {
298
+ $hotspot_url_validated = esc_url($hotspot_url_validate);
299
+ if ($hotspot_url_validated != $hotspot_url_validate) {
300
+ wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
301
+ die();
302
+ }
303
+ }
304
+ $hotspot_content_validate = $hotspot_val["hotspot-content"];
305
+
306
+ $hotspot_scene_validate = $hotspot_val["hotspot-scene"];
307
+
308
+ if ($hotspot_type_validate == "info") {
309
+ if (!empty($hotspot_scene_validate)) {
310
+ wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
311
+ die();
312
+ }
313
+ if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
314
+ wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not set both On Click Content and URL on a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
315
+ die();
316
+ }
317
+ }
318
+
319
+ if ($hotspot_type_validate == "scene") {
320
+ if (empty($hotspot_scene_validate)) {
321
+ wp_send_json_error('<span class="pano-error-title">Target Scene Missing</span> <p>Assign a Target Scene to the Scene-type Hotspot where Scene ID: ' . $scene_id_validate . ' and Hotspot ID : ' . $hotspot_title_validate . '</p>');
322
+ die();
323
+ }
324
+ if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
325
+ wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
326
+ die();
327
+ }
328
+ }
329
+ }
330
+ }
331
+ }
332
+ }
333
+ }
334
+ }
335
+ //===Error Control and Validation===//
336
+ foreach ($panodata["scene-list"] as $panoscenes) {
337
+ if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
338
+ wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
339
+ die();
340
+ }
341
+ }
342
+
343
+ $allsceneids = array();
344
+
345
+ foreach ($panodata["scene-list"] as $panoscenes) {
346
+ if (!empty($panoscenes['scene-id'])) {
347
+ array_push($allsceneids, $panoscenes['scene-id']);
348
+ }
349
+ }
350
+
351
+ foreach ($panodata["scene-list"] as $panoscenes) {
352
+
353
+ if ($panoscenes['dscene'] == 'on') {
354
+ $default_scene = $panoscenes['scene-id'];
355
+ }
356
+ }
357
+ if (empty($default_scene)) {
358
+ if ($allsceneids) {
359
+ $default_scene = $allsceneids[0];
360
+ } else {
361
+ wp_send_json_error('<span class="pano-error-title">Missing Image & Scene ID</span> <p>Please Upload An Image and Set A Scene ID To See The Preview</p>');
362
+ die();
363
+ }
364
+ }
365
+
366
+ $allsceneids_count = array_count_values($allsceneids);
367
+ foreach ($allsceneids_count as $key => $value) {
368
+ if ($value > 1) {
369
+ wp_send_json_error('<span class="pano-error-title">Duplicate Scene ID</span> <p>You\'ve assigned a duplicate Scene ID. <br/>Please assign unique Scene IDs to each scene. </p>');
370
+ die();
371
+ }
372
+ }
373
+
374
+ foreach ($panodata["scene-list"] as $panoscenes) {
375
+ if (!empty($panoscenes['scene-id'])) {
376
+ $allhotspot = array();
377
+ foreach ($panoscenes["hotspot-list"] as $hotspot_val) {
378
+
379
+ if (!empty($hotspot_val["hotspot-title"])) {
380
+ array_push($allhotspot, $hotspot_val["hotspot-title"]);
381
+ }
382
+ }
383
+ $allhotspotcount = array_count_values($allhotspot);
384
+ foreach ($allhotspotcount as $key => $value) {
385
+ if ($value > 1) {
386
+ wp_send_json_error('<span class="pano-error-title">Duplicate Hotspot ID</span> <p>You\'ve assigned a duplicate Hotspot ID. <br/>Please assign unique Hotspot IDs to each Hotspot.</p>');
387
+ die();
388
+ }
389
+ }
390
+ }
391
+ }
392
+
393
+ $default_data = array();
394
+ if ($_POST['gzoom'] == 'on') {
395
+ $default_data = array("firstScene" => $default_scene, "sceneFadeDuration" => $scene_fade_duration, "hfov" => $default_global_zoom, "maxHfov" => $max_global_zoom, "minHfov" => $min_global_zoom);
396
+ } else {
397
+ $default_data = array("firstScene" => $default_scene, "sceneFadeDuration" => $scene_fade_duration);
398
+ }
399
+ $scene_data = array();
400
+ foreach ($panodata["scene-list"] as $panoscenes) {
401
+ if (!empty($panoscenes['scene-id'])) {
402
+ $scene_ititle = '';
403
+ $scene_ititle = sanitize_text_field($panoscenes["scene-ititle"]);
404
+ $scene_author = '';
405
+ $scene_author = sanitize_text_field($panoscenes["scene-author"]);
406
+
407
+ $scene_vaov = 180;
408
+ $scene_vaov = (float)$panoscenes["scene-vaov"];
409
+
410
+ $scene_haov = 360;
411
+ $scene_haov = (float)$panoscenes["scene-haov"];
412
+
413
+ $scene_vertical_offset = 0;
414
+ $scene_vertical_offset = (float)$panoscenes["scene-vertical-offset"];
415
+
416
+ $default_scene_pitch = null;
417
+ $default_scene_pitch = (float)$panoscenes["scene-pitch"];
418
+
419
+ $default_scene_yaw = null;
420
+ $default_scene_yaw = (float)$panoscenes["scene-yaw"];
421
+
422
+ $scene_max_pitch = '';
423
+ $scene_max_pitch = (float)$panoscenes["scene-maxpitch"];
424
+
425
+ $scene_min_pitch = '';
426
+ $scene_min_pitch = (float)$panoscenes["scene-minpitch"];
427
+
428
+ $scene_max_yaw = '';
429
+ $scene_max_yaw = (float)$panoscenes["scene-maxyaw"];
430
+
431
+ $scene_min_yaw = '';
432
+ $scene_min_yaw = (float)$panoscenes["scene-minyaw"];
433
+
434
+ $default_zoom = 100;
435
+ $default_zoom = $panoscenes["scene-zoom"];
436
+ if (!empty($default_zoom)) {
437
+ $default_zoom = (int)$panoscenes["scene-zoom"];
438
+ } else {
439
+ $default_zoom = 100;
440
+ }
441
+
442
+ $max_zoom = 120;
443
+ $max_zoom = $panoscenes["scene-maxzoom"];
444
+ if (!empty($max_zoom)) {
445
+ $max_zoom = (int)$panoscenes["scene-maxzoom"];
446
+ } else {
447
+ $max_zoom = 120;
448
+ }
449
+
450
+ $min_zoom = 50;
451
+ $min_zoom = $panoscenes["scene-minzoom"];
452
+ if (!empty($min_zoom)) {
453
+ $min_zoom = (int)$panoscenes["scene-minzoom"];
454
+ } else {
455
+ $min_zoom = 50;
456
+ }
457
+
458
+ $hotspot_datas = $panoscenes["hotspot-list"];
459
+
460
+ $hotspots = array();
461
+ foreach ($hotspot_datas as $hotspot_data) {
462
+
463
+ if (!empty($hotspot_data["hotspot-title"])) {
464
+
465
+ $hotspot_type = $hotspot_data["hotspot-type"] !== 'scene' ? 'info' : $hotspot_data["hotspot-type"];
466
+ $hotspot_content = '';
467
+
468
+ ob_start();
469
+ do_action('wpvr_hotspot_content_admin', $hotspot_data);
470
+ $hotspot_content = ob_get_clean();
471
+
472
+
473
+ if (!$hotspot_content) $hotspot_content = $hotspot_data["hotspot-content"];
474
+
475
+
476
+ $hotspot_info = array(
477
+ "text" => $hotspot_data["hotspot-title"],
478
+ "pitch" => $hotspot_data["hotspot-pitch"],
479
+ "yaw" => $hotspot_data["hotspot-yaw"],
480
+ "type" => $hotspot_type,
481
+ "URL" => $hotspot_data["hotspot-url"],
482
+ "clickHandlerArgs" => $hotspot_content,
483
+ "createTooltipArgs" => $hotspot_data["hotspot-hover"],
484
+ "sceneId" => $hotspot_data["hotspot-scene"],
485
+ "targetPitch" => (float)$hotspot_data["hotspot-scene-pitch"],
486
+ "targetYaw" => (float)$hotspot_data["hotspot-scene-yaw"],
487
+ 'hotspot_type' => $hotspot_data['hotspot-type']
488
+ );
489
+
490
+ array_push($hotspots, $hotspot_info);
491
+ if (empty($hotspot_data["hotspot-scene"])) {
492
+ unset($hotspot_info['targetPitch']);
493
+ unset($hotspot_info['targetYaw']);
494
+ }
495
+ }
496
+ }
497
+
498
+ $scene_info = array();
499
+ if ($panoscenes["scene-type"] == 'cubemap') {
500
+ $pano_type = 'cubemap';
501
+ $pano_attachment = array(
502
+ $panoscenes["scene-attachment-url-face0"],
503
+ $panoscenes["scene-attachment-url-face1"],
504
+ $panoscenes["scene-attachment-url-face2"],
505
+ $panoscenes["scene-attachment-url-face3"],
506
+ $panoscenes["scene-attachment-url-face4"],
507
+ $panoscenes["scene-attachment-url-face5"]
508
+ );
509
+
510
+ $scene_info = array("type" => $panoscenes["scene-type"], "cubeMap" => $pano_attachment, "pitch" => $default_scene_pitch, "maxPitch" => $scene_max_pitch, "minPitch" => $scene_min_pitch, "maxYaw" => $scene_max_yaw, "minYaw" => $scene_min_yaw, "yaw" => $default_scene_yaw, "hfov" => $default_zoom, "maxHfov" => $max_zoom, "minHfov" => $min_zoom, "title" => $scene_ititle, "author" => $scene_author, "vaov" => $scene_vaov, "haov" => $scene_haov, "vOffset" => $scene_vertical_offset, "hotSpots" => $hotspots);
511
+ } else {
512
+ $scene_info = array("type" => $panoscenes["scene-type"], "panorama" => $panoscenes["scene-attachment-url"], "pitch" => $default_scene_pitch, "maxPitch" => $scene_max_pitch, "minPitch" => $scene_min_pitch, "maxYaw" => $scene_max_yaw, "minYaw" => $scene_min_yaw, "yaw" => $default_scene_yaw, "hfov" => $default_zoom, "maxHfov" => $max_zoom, "minHfov" => $min_zoom, "title" => $scene_ititle, "author" => $scene_author, "vaov" => $scene_vaov, "haov" => $scene_haov, "vOffset" => $scene_vertical_offset, "hotSpots" => $hotspots);
513
+ }
514
+
515
+
516
+ if ($panoscenes["ptyscene"] == "off") {
517
+ unset($scene_info['pitch']);
518
+ unset($scene_info['yaw']);
519
+ }
520
+
521
+ if (empty($panoscenes["scene-ititle"])) {
522
+ unset($scene_info['title']);
523
+ }
524
+ if (empty($panoscenes["scene-author"])) {
525
+ unset($scene_info['author']);
526
+ }
527
+
528
+ if (empty($scene_vaov)) {
529
+ unset($scene_info['vaov']);
530
+ }
531
+
532
+ if (empty($scene_haov)) {
533
+ unset($scene_info['haov']);
534
+ }
535
+
536
+ if (empty($scene_vertical_offset)) {
537
+ unset($scene_info['vOffset']);
538
+ }
539
+
540
+ if ($panoscenes["cvgscene"] == "off") {
541
+ unset($scene_info['maxPitch']);
542
+ unset($scene_info['minPitch']);
543
+ }
544
+ if (empty($panoscenes["scene-maxpitch"])) {
545
+ unset($scene_info['maxPitch']);
546
+ }
547
+
548
+ if (empty($panoscenes["scene-minpitch"])) {
549
+ unset($scene_info['minPitch']);
550
+ }
551
+
552
+ if ($panoscenes["chgscene"] == "off") {
553
+ unset($scene_info['maxYaw']);
554
+ unset($scene_info['minYaw']);
555
+ }
556
+ if (empty($panoscenes["scene-maxyaw"])) {
557
+ unset($scene_info['maxYaw']);
558
+ }
559
+
560
+ if (empty($panoscenes["scene-minyaw"])) {
561
+ unset($scene_info['minYaw']);
562
+ }
563
+
564
+ // if ($panoscenes["czscene"] == "off") {
565
+ // unset($scene_info['hfov']);
566
+ // unset($scene_info['maxHfov']);
567
+ // unset($scene_info['minHfov']);
568
+ // }
569
+
570
+ $scene_array = array();
571
+ $scene_array = array(
572
+ $panoscenes["scene-id"] => $scene_info
573
+ );
574
+ $scene_data[$panoscenes["scene-id"]] = $scene_info;
575
+ }
576
+ }
577
+
578
+ $pano_id_array = array();
579
+ $pano_id_array = array("panoid" => $panoid);
580
+ $pano_response = array();
581
+ $pano_response = array("autoLoad" => $autoload, "defaultZoom" => $default_global_zoom, "minZoom" => $min_global_zoom, "maxZoom" => $max_global_zoom, "showControls" => $control, "compass" => $compass, "mouseZoom" => $mouseZoom, "draggable" => $draggable, "disableKeyboardCtrl" => $diskeyboard, 'keyboardZoom' => $keyboardzoom, "preview" => $preview, "autoRotate" => $autorotation, "autoRotateInactivityDelay" => $autorotationinactivedelay, "autoRotateStopDelay" => $autorotationstopdelay, "default" => $default_data, "scenes" => $scene_data);
582
+
583
+ if ($rotation == 'off') {
584
+ unset($pano_response['autoRotate']);
585
+ unset($pano_response['autoRotateInactivityDelay']);
586
+ unset($pano_response['autoRotateStopDelay']);
587
+ }
588
+ if (empty($autorotation)) {
589
+ unset($pano_response['autoRotate']);
590
+ unset($pano_response['autoRotateInactivityDelay']);
591
+ unset($pano_response['autoRotateStopDelay']);
592
+ }
593
+ if (empty($autorotationinactivedelay)) {
594
+ unset($pano_response['autoRotateInactivityDelay']);
595
+ }
596
+ if (empty($autorotationstopdelay)) {
597
+ unset($pano_response['autoRotateStopDelay']);
598
+ }
599
+
600
+ // if($_POST['gzoom'] == 'off' ){
601
+ // unset($pano_response['defaultZoom']);
602
+ // unset($pano_response['minZoom']);
603
+ // unset($pano_response['maxZoom']);
604
+ // }
605
+ $response = array();
606
+ $response = array($pano_id_array, $pano_response);
607
+ wp_send_json_success($response);
608
+ }
609
+
610
+ /**
611
+ * Video Preview show ajax function
612
+ */
613
+ function wpvrvideo_preview()
614
+ {
615
+ $panoid = '';
616
+ $postid = sanitize_text_field($_POST['postid']);
617
+ $panoid = 'pano' . $postid;
618
+ $randid = rand(1000, 1000000);
619
+ $vidid = 'vid' . $randid;
620
+ $videourl = esc_url_raw($_POST['videourl']);
621
+ $autoplay = sanitize_text_field($_POST['autoplay']);
622
+ $loop = sanitize_text_field($_POST['loop']);
623
+
624
+ $vidtype = '';
625
+ if (strpos($videourl, 'youtube') > 0) {
626
+ $vidtype = 'youtube';
627
+ $explodeid = '';
628
+ $explodeid = explode("=", $videourl);
629
+
630
+ if ($autoplay == 'on') {
631
+ $autoplay = '&autoplay=1';
632
+ $muted = '&mute=1';
633
+ } else {
634
+ $autoplay = '';
635
+ $muted = '';
636
+ }
637
+
638
+ if ($loop == 'on') {
639
+ $loop = '&loop=1';
640
+ } else {
641
+ $loop = '';
642
+ }
643
+
644
+ $foundid = '';
645
+ $foundid = $explodeid[1] . '?' . $autoplay . $loop;
646
+ $html = '';
647
+ $html .= '
648
+ <iframe src="https://www.youtube.com/embed/' . $explodeid[1] . '?rel=0&modestbranding=1' . $loop . '&autohide=1' . $muted . '&showinfo=0&controls=1' . $autoplay . '" width="600" height="400" frameborder="0" allowfullscreen></iframe>
649
+ ';
650
+ } elseif (strpos($videourl, 'youtu.be') > 0) {
651
+ $vidtype = 'youtube';
652
+ $explodeid = '';
653
+ $explodeid = explode("/", $videourl);
654
+
655
+ if ($autoplay == 'on') {
656
+ $autoplay = '&autoplay=1';
657
+ } else {
658
+ $autoplay = '';
659
+ }
660
+
661
+ if ($loop == 'on') {
662
+ $loop = '&loop=1';
663
+ } else {
664
+ $loop = '';
665
+ }
666
+
667
+ $foundid = '';
668
+ $foundid = $explodeid[3] . '?' . $autoplay . $loop;
669
+ $html = '';
670
+ $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
671
+ } elseif (strpos($videourl, 'vimeo') > 0) {
672
+ $vidtype = 'vimeo';
673
+ $explodeid = '';
674
+ $explodeid = explode("/", $videourl);
675
+ $foundid = '';
676
+
677
+ if ($autoplay == 'on') {
678
+ $autoplay = '&autoplay=1&muted=1';
679
+ } else {
680
+ $autoplay = '';
681
+ }
682
+
683
+ if ($loop == 'on') {
684
+ $loop = '&loop=1';
685
+ } else {
686
+ $loop = '';
687
+ }
688
+
689
+ $foundid = $explodeid[3] . '?' . $autoplay . $loop;
690
+ $html = '';
691
+ $html .= '<iframe src="https://player.vimeo.com/video/' . $foundid . '" width="600" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
692
+ } else {
693
+ $vidtype = 'selfhost';
694
+
695
+ if ($autoplay == 'on') {
696
+ $autoplay = 'autoplay';
697
+ } else {
698
+ $autoplay = '';
699
+ }
700
+
701
+
702
+ if ($loop == 'on') {
703
+ $loop = 'loop';
704
+ } else {
705
+ $loop = '';
706
+ }
707
+
708
+ $html = '';
709
+ $html .= '<video id="' . $vidid . '" class="video-js vjs-default-skin vjs-big-play-centered" ' . $autoplay . ' ' . $loop . ' controls preload="none" style="width:100%;height:400px;" poster="" >';
710
+ $html .= '<source src="' . $videourl . '" type="video/mp4"/>';
711
+ $html .= '<p class="vjs-no-js">';
712
+ $html .= 'To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com html5-video-support/" target="_blank">supports HTML5 video</a>';
713
+ $html .= '</p>';
714
+ $html .= '</video>';
715
+ }
716
+
717
+ $response = array();
718
+ $response = array(__("panoid") => $panoid, __("panodata") => $html, __("vidid") => $vidid, __("vidtype") => $vidtype);
719
+ wp_send_json_success($response);
720
+ }
721
+
722
+ function wpvr_save_data()
723
+ {
724
+
725
+ $panoid = '';
726
+ $html = '';
727
+ $postid = sanitize_text_field($_POST['postid']);
728
+ $prevtext = sanitize_text_field($_POST['previewtext']);
729
+ // error_log(print_r($_POST['customColor'],1));
730
+ $previewtext = '';
731
+ if (strlen($prevtext) <= 50) {
732
+ $previewtext = $prevtext;
733
+ }
734
+ $post_type = get_post_type($postid);
735
+ if ($post_type != 'wpvr_item') {
736
+ die();
737
+ }
738
+ $panoid = 'pano' . $postid;
739
+
740
+ $default_global_zoom = '';
741
+ $max_global_zoom = '';
742
+ $min_global_zoom = '';
743
+ if (isset($_POST['gzoom']) == 'on') {
744
+ $default_global_zoom = $_POST['dzoom'];
745
+ $max_global_zoom = $_POST['maxzoom'];
746
+ $min_global_zoom = $_POST['minzoom'];
747
+ }
748
+
749
+ if (isset($_POST['streetview'])) {
750
+ $streetview = $_POST['streetview'];
751
+ if ($streetview == 'on') {
752
+ $streetviewurl = esc_url_raw($_POST['streetviewurl']);
753
+ if ($streetviewurl) {
754
+ $html .= '<iframe src="' . $streetviewurl . '" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
755
+ }
756
+ $streetviewarray = array();
757
+ $streetviewarray = array(__("panoid") => $panoid, __("streetviewdata") => $html, __("streetviewurl") => $streetviewurl, __("streetview") => $streetview);
758
+ update_post_meta($postid, 'panodata', $streetviewarray);
759
+ die();
760
+ }
761
+ }
762
+
763
+
764
+ $pnovideo = $_POST['panovideo'];
765
+ if ($pnovideo == "on") {
766
+
767
+ $vidid = 'vid' . $postid;
768
+ $videourl = esc_url_raw($_POST['videourl']);
769
+ $autoplay = sanitize_text_field($_POST['autoplay']);
770
+ $vidautoplay = sanitize_text_field($_POST['autoplay']);
771
+ $loop = sanitize_text_field($_POST['loop']);
772
+ $vidloop = sanitize_text_field($_POST['loop']);
773
+ $vidtype = '';
774
+
775
+ if (strpos($videourl, 'youtube') > 0) {
776
+ $vidtype = 'youtube';
777
+ $explodeid = '';
778
+ $explodeid = explode("=", $videourl);
779
+ $foundid = '';
780
+
781
+ if ($autoplay == 'on') {
782
+ $autoplay = '&autoplay=1';
783
+ } else {
784
+ $autoplay = '';
785
+ }
786
+
787
+ if ($loop == 'on') {
788
+ $loop = '&loop=1';
789
+ } else {
790
+ $loop = '';
791
+ }
792
+
793
+ $foundid = $explodeid[1] . '?' . $autoplay . $loop;
794
+ $html = '';
795
+ $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
796
+ } elseif (strpos($videourl, 'youtu.be') > 0) {
797
+ $vidtype = 'youtube';
798
+ $explodeid = '';
799
+ $explodeid = explode("/", $videourl);
800
+ $foundid = '';
801
+
802
+ if ($autoplay == 'on') {
803
+ $autoplay = '&autoplay=1';
804
+ } else {
805
+ $autoplay = '';
806
+ }
807
+
808
+ if ($loop == 'on') {
809
+ $loop = '&loop=1';
810
+ } else {
811
+ $loop = '';
812
+ }
813
+
814
+ $foundid = $explodeid[3] . '?' . $autoplay . $loop;
815
+ $html = '';
816
+ $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
817
+ } elseif (strpos($videourl, 'vimeo') > 0) {
818
+ $vidtype = 'vimeo';
819
+ $explodeid = '';
820
+ $explodeid = explode("/", $videourl);
821
+ $foundid = '';
822
+
823
+ if ($autoplay == 'on') {
824
+ $autoplay = '&autoplay=1&muted=1';
825
+ } else {
826
+ $autoplay = '';
827
+ }
828
+
829
+ if ($loop == 'on') {
830
+ $loop = '&loop=1';
831
+ } else {
832
+ $loop = '';
833
+ }
834
+
835
+ $foundid = $explodeid[3] . '?' . $autoplay . $loop;
836
+ $html = '';
837
+ $html .= '<iframe src="https://player.vimeo.com/video/' . $foundid . '" width="600" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
838
+ } else {
839
+ $vidtype = 'selfhost';
840
+ $vidautoplay = '';
841
+ // $vidautoplay = sanitize_text_field($_POST['vidautoplay']);
842
+ $vidautoplay = sanitize_text_field($_POST['autoplay']);
843
+
844
+ if ($autoplay == 'on') {
845
+ $autoplay = 'autoplay muted';
846
+ } else {
847
+ $autoplay = '';
848
+ }
849
+
850
+ if ($loop == 'on') {
851
+ $loop = 'loop';
852
+ } else {
853
+ $loop = '';
854
+ }
855
+
856
+ $html = '';
857
+ $html .= '<video id="' . $vidid . '" class="video-js vjs-default-skin vjs-big-play-centered" ' . $autoplay . ' ' . $loop . ' controls preload="auto" style="width:100%;height:100%;" poster="" >';
858
+ $html .= '<source src="' . $videourl . '" type="video/mp4"/>';
859
+ $html .= '<p class="vjs-no-js">';
860
+ $html .= 'To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com html5-video-support/" target="_blank">supports HTML5 video</a>';
861
+ $html .= '</p>';
862
+ $html .= '</video>';
863
+ }
864
+
865
+
866
+
867
+ $videoarray = array();
868
+ $videoarray = array(__("panoid") => $panoid, __("panoviddata") => $html, __("vidid") => $vidid, __("vidurl") => $videourl, __("autoplay") => $autoplay, __("loop") => $vidloop, __("vidtype") => $vidtype);
869
+ update_post_meta($postid, 'panodata', $videoarray);
870
+ die();
871
+ }
872
+
873
+
874
+ $control = sanitize_text_field($_POST['control']);
875
+ if ($control == 'on') {
876
+ $control = true;
877
+ } else {
878
+ $control = false;
879
+ }
880
+
881
+ //===Custom Control===//
882
+ $custom_control = $_POST['customcontrol'];
883
+
884
+ //===Custom Control End===//
885
+
886
+ $vrgallery = sanitize_text_field($_POST['vrgallery']);
887
+ if ($vrgallery == 'on') {
888
+ $vrgallery = true;
889
+ } else {
890
+ $vrgallery = false;
891
+ }
892
+
893
+ $vrgallery_title = sanitize_text_field($_POST['vrgallery_title']);
894
+ if ($vrgallery_title == 'on') {
895
+ $vrgallery_title = true;
896
+ } else {
897
+ $vrgallery_title = false;
898
+ }
899
+
900
+ $vrgallery_display = sanitize_text_field($_POST['vrgallery_display']);
901
+ if ($vrgallery_display == 'on') {
902
+ $vrgallery_display = true;
903
+ } else {
904
+ $vrgallery_display = false;
905
+ }
906
+
907
+ $gyro = false;
908
+ if (isset($_POST['gyro'])) {
909
+ $gyro = sanitize_text_field($_POST['gyro']);
910
+ }
911
+
912
+ $deviceorientationcontrol = sanitize_text_field($_POST['deviceorientationcontrol']);
913
+
914
+ if ($gyro == 'on') {
915
+ if (!is_ssl()) {
916
+ wp_send_json_error('<p><span>Warning:</span> Please add SSL to enable Gyroscope for WP VR. </p>');
917
+ die();
918
+ }
919
+ $gyro = true;
920
+ if ($deviceorientationcontrol == 'on') {
921
+ $deviceorientationcontrol = true;
922
+ } else {
923
+ $deviceorientationcontrol = false;
924
+ }
925
+ } else {
926
+ $gyro = false;
927
+ $deviceorientationcontrol = false;
928
+ }
929
+
930
+ $compass = sanitize_text_field($_POST['compass']);
931
+ if ($compass == 'on') {
932
+ $compass = true;
933
+ } else {
934
+ $compass = false;
935
+ }
936
+
937
+ $mouseZoom = sanitize_text_field($_POST['mouseZoom']);
938
+ if ($mouseZoom == 'off') {
939
+ $mouseZoom = false;
940
+ } else {
941
+ $mouseZoom = true;
942
+ }
943
+
944
+ $draggable = sanitize_text_field($_POST['draggable']);
945
+ if ($draggable == 'off') {
946
+ $draggable = false;
947
+ } else {
948
+ $draggable = true;
949
+ }
950
+
951
+ $diskeyboard = sanitize_text_field($_POST['diskeyboard']);
952
+ if ($diskeyboard == 'on') {
953
+ $diskeyboard = true;
954
+ } else {
955
+ $diskeyboard = false;
956
+ }
957
+
958
+ $keyboardzoom = sanitize_text_field($_POST['keyboardzoom']);
959
+
960
+ if ($keyboardzoom == 'off') {
961
+ $keyboardzoom = false;
962
+ } else {
963
+ $keyboardzoom = true;
964
+ }
965
+
966
+ $autoload = sanitize_text_field($_POST['autoload']);
967
+ if ($autoload == 'on') {
968
+ $autoload = true;
969
+ } else {
970
+ $autoload = false;
971
+ }
972
+
973
+ $default_scene = '';
974
+
975
+ $preview = '';
976
+ $preview = esc_url($_POST['preview']);
977
+
978
+ $rotation = '';
979
+ $rotation = sanitize_text_field($_POST['rotation']);
980
+
981
+ $autorotation = '';
982
+ $autorotation = sanitize_text_field($_POST['autorotation']);
983
+ $autorotationinactivedelay = '';
984
+ $autorotationinactivedelay = sanitize_text_field($_POST['autorotationinactivedelay']);
985
+ $autorotationstopdelay = '';
986
+ $autorotationstopdelay = sanitize_text_field($_POST['autorotationstopdelay']);
987
+
988
+
989
+
990
+ if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
991
+ wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
992
+ die();
993
+ }
994
+
995
+ //===Company Logo===//
996
+ $cpLogoSwitch = 'off';
997
+ $cpLogoSwitch = $_POST['cpLogoSwitch'];
998
+ $cpLogoImg = '';
999
+ $cpLogoImg = $_POST['cpLogoImg'];
1000
+ $cpLogoContent = '';
1001
+ $cpLogoContent = sanitize_text_field($_POST['cpLogoContent']);
1002
+ //===Company Logo===//
1003
+
1004
+ //===background tour ===//
1005
+ $bg_tour_enabler = sanitize_text_field($_POST['wpvr_bg_tour_enabler']);
1006
+ // $bg_tour_navmenu = sanitize_text_field($_POST['wpvr_bg_tour_navmenu_enabler']);
1007
+ $bg_tour_title = sanitize_text_field($_POST['bg_tour_title']);
1008
+ $bg_tour_subtitle = sanitize_text_field($_POST['bg_tour_subtitle']);
1009
+ //===background tour end ===//
1010
+
1011
+ // update_post_meta($postid,'hotspot_colors',$_POST['customColor']);
1012
+
1013
+ $scene_fade_duration = '';
1014
+ $scene_fade_duration = $_POST['scenefadeduration'];
1015
+
1016
+ $panodata = $_POST['panodata'];
1017
+ $panolist = stripslashes($panodata);
1018
+ $panodata = (array)json_decode($panolist);
1019
+ $panolist = array();
1020
+ if (is_array($panodata["scene-list"])) {
1021
+ foreach ($panodata["scene-list"] as $scenes_data) {
1022
+ $temp_array = array();
1023
+ $temp_array = (array)$scenes_data;
1024
+ // $scene_id_ = $temp_array["scene-id"];
1025
+
1026
+ if ($temp_array['hotspot-list']) {
1027
+ $_hotspot_array = array();
1028
+ foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
1029
+
1030
+ $temp_hotspot = (array)$temp_hotspot;
1031
+ $_hotspot_array[] = $temp_hotspot;
1032
+ }
1033
+ }
1034
+
1035
+ $temp_array['hotspot-list'] = $_hotspot_array;
1036
+ $panolist['scene-list'][] = $temp_array;
1037
+ }
1038
+ }
1039
+ $panodata = $panolist;
1040
+
1041
+ //===Error Control and Validation===//
1042
+
1043
+ if ($panodata["scene-list"] != "") {
1044
+ foreach ($panodata["scene-list"] as $scenes_val) {
1045
+
1046
+ $scene_id_validate = $scenes_val["scene-id"];
1047
+ if (!empty($scene_id_validate)) {
1048
+ $scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $scene_id_validate);
1049
+ if ($scene_id_validated != $scene_id_validate) {
1050
+ wp_send_json_error('<span class="pano-error-title">Invalid Scene ID</span> <p>Scene ID can\'t contain spaces and special characters. <br/>Please assign a unique Scene ID with letters and numbers where Scene ID is : ' . $scene_id_validate . '</p>');
1051
+ die();
1052
+ }
1053
+
1054
+ if ($scenes_val['scene-type'] == 'cubemap') {
1055
+ if (empty($scenes_val["scene-attachment-url-face0"])) {
1056
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 0</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1057
+ die();
1058
+ }
1059
+
1060
+ if (empty($scenes_val["scene-attachment-url-face1"])) {
1061
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 1</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1062
+ die();
1063
+ }
1064
+
1065
+ if (empty($scenes_val["scene-attachment-url-face2"])) {
1066
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 2</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1067
+ die();
1068
+ }
1069
+
1070
+ if (empty($scenes_val["scene-attachment-url-face3"])) {
1071
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 3</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1072
+ die();
1073
+ }
1074
+
1075
+ if (empty($scenes_val["scene-attachment-url-face4"])) {
1076
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 4</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1077
+ die();
1078
+ }
1079
+
1080
+ if (empty($scenes_val["scene-attachment-url-face5"])) {
1081
+ wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 5</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1082
+ die();
1083
+ }
1084
+ } else {
1085
+ if (empty($scenes_val["scene-attachment-url"])) {
1086
+ wp_send_json_error('<span class="pano-error-title">Missing Scene Image</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1087
+ die();
1088
+ }
1089
+ }
1090
+
1091
+ if (!empty($scenes_val["scene-pitch"])) {
1092
+ $validate_scene_pitch = $scenes_val["scene-pitch"];
1093
+ $validated_scene_pitch = preg_replace('/[^0-9.-]/', '', $validate_scene_pitch);
1094
+ if ($validated_scene_pitch != $validate_scene_pitch) {
1095
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
1096
+ die();
1097
+ }
1098
+ }
1099
+
1100
+ if (!empty($scenes_val["scene-yaw"])) {
1101
+ $validate_scene_yaw = $scenes_val["scene-yaw"];
1102
+ $validated_scene_yaw = preg_replace('/[^0-9.-]/', '', $validate_scene_yaw);
1103
+ if ($validated_scene_yaw != $validate_scene_yaw) {
1104
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
1105
+ die();
1106
+ }
1107
+ }
1108
+
1109
+ if (!empty($scenes_val["scene-zoom"])) {
1110
+ $validate_default_zoom = $scenes_val["scene-zoom"];
1111
+ $validated_default_zoom = preg_replace('/[^0-9-]/', '', $validate_default_zoom);
1112
+ if ($validated_default_zoom != $validate_default_zoom) {
1113
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
1114
+
1115
+ die();
1116
+ }
1117
+ $default_zoom_value = (int)$scenes_val["scene-zoom"];
1118
+ if ($default_zoom_value > 120 || $default_zoom_value < 50) {
1119
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
1120
+
1121
+ die();
1122
+ }
1123
+ }
1124
+
1125
+ if (!empty($scenes_val["scene-maxzoom"])) {
1126
+ $validate_max_zoom = $scenes_val["scene-maxzoom"];
1127
+ $validated_max_zoom = preg_replace('/[^0-9-]/', '', $validate_max_zoom);
1128
+ if ($validated_max_zoom != $validate_max_zoom) {
1129
+ wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
1130
+
1131
+ die();
1132
+ }
1133
+ $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
1134
+ if ($max_zoom_value > 120) {
1135
+ wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
1136
+
1137
+ die();
1138
+ }
1139
+
1140
+ if ($max_zoom_value < 50) {
1141
+ wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can not set the Max-zoom Value lower than 50 degrees.</p>');
1142
+ die();
1143
+ }
1144
+ }
1145
+
1146
+ if (!empty($scenes_val["scene-minzoom"])) {
1147
+ $validate_min_zoom = $scenes_val["scene-minzoom"];
1148
+ $validated_min_zoom = preg_replace('/[^0-9-]/', '', $validate_min_zoom);
1149
+ if ($validated_min_zoom != $validate_min_zoom) {
1150
+ wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
1151
+ die();
1152
+ }
1153
+ $min_zoom_value = (int)$scenes_val["scene-minzoom"];
1154
+ if ($min_zoom_value < 50) {
1155
+ wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
1156
+ die();
1157
+ }
1158
+
1159
+ if ($min_zoom_value > 120) {
1160
+ wp_send_json_error('<span class="pano-error-title">Hight Min-Zoom Value</span><p> The Min-zoom value must be less than 120 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
1161
+ die();
1162
+ }
1163
+ }
1164
+
1165
+ if ($scenes_val["hotspot-list"] != "") {
1166
+ foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
1167
+
1168
+ $hotspot_title_validate = $hotspot_val["hotspot-title"];
1169
+
1170
+ if (!empty($hotspot_title_validate)) {
1171
+ $hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $hotspot_title_validate);
1172
+ if ($hotspot_title_validated != $hotspot_title_validate) {
1173
+ wp_send_json_error('<span class="pano-error-title">Invalid Hotspot ID</span> <p>Hotspot ID can\'t contain spaces and special characters.<br/> Please assign a unique Hotspot ID with letters and numbers where Scene id: ' . $scene_id_validate . ' Hotspot ID is: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1174
+ die();
1175
+ }
1176
+ $hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
1177
+ if (empty($hotspot_pitch_validate)) {
1178
+ wp_send_json_error('<p><span>Warning:</span> Hotspot pitch is required for every hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1179
+ die();
1180
+ }
1181
+ if (!empty($hotspot_pitch_validate)) {
1182
+ $hotspot_pitch_validated = preg_replace('/[^0-9.-]/', '', $hotspot_pitch_validate);
1183
+ if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
1184
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
1185
+
1186
+
1187
+ die();
1188
+ }
1189
+ }
1190
+
1191
+ $hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
1192
+ if (empty($hotspot_yaw_validate)) {
1193
+ wp_send_json_error('<p><span>Warning:</span> Hotspot yaw is required for every hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1194
+ die();
1195
+ }
1196
+ if (!empty($hotspot_yaw_validate)) {
1197
+ $hotspot_yaw_validated = preg_replace('/[^0-9.-]/', '', $hotspot_yaw_validate);
1198
+ if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
1199
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
1200
+
1201
+ die();
1202
+ }
1203
+ }
1204
+
1205
+ if (is_plugin_active('wpvr-pro/wpvr-pro.php')) {
1206
+ $status = get_option('wpvr_edd_license_status');
1207
+ if ($status !== false && $status == 'valid') {
1208
+ if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
1209
+ wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not use both Custom Icon and Custom Icon Class for a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1210
+ die();
1211
+ }
1212
+ }
1213
+ }
1214
+ $hotspot_type_validate = $hotspot_val["hotspot-type"];
1215
+ $hotspot_url_validate = $hotspot_val["hotspot-url"];
1216
+ if (!empty($hotspot_url_validate)) {
1217
+ $hotspot_url_validated = esc_url($hotspot_url_validate);
1218
+ if ($hotspot_url_validated != $hotspot_url_validate) {
1219
+ wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1220
+ die();
1221
+ }
1222
+ }
1223
+ $hotspot_content_validate = $hotspot_val["hotspot-content"];
1224
+
1225
+ $hotspot_scene_validate = $hotspot_val["hotspot-scene"];
1226
+
1227
+ if ($hotspot_type_validate == "info") {
1228
+ if (!empty($hotspot_scene_validate)) {
1229
+ wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1230
+ die();
1231
+ }
1232
+ if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
1233
+ wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not set both On Click Content and URL on a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1234
+ die();
1235
+ }
1236
+ }
1237
+
1238
+
1239
+
1240
+ if ($hotspot_type_validate == "shortcode_editor") {
1241
+ if (substr($hotspot_val['hotspot-shortcode'], 0, 1) === '[') {
1242
+ $pattern = get_shortcode_regex();
1243
+ preg_match('/' . $pattern . '/s', $hotspot_val['hotspot-shortcode'], $matches);
1244
+ if (is_array($matches) && !isset($matches[2])) {
1245
+ wp_send_json_error('<p><span>Warning:</span> This is not a valid shortcode where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1246
+ die();
1247
+ }
1248
+ }
1249
+ }
1250
+
1251
+ if ($hotspot_type_validate == "scene") {
1252
+ if (empty($hotspot_scene_validate)) {
1253
+ wp_send_json_error('<span class="pano-error-title">Target Scene Missing</span> <p>Assign a Target Scene to the Scene-type Hotspot where Scene ID: ' . $scene_id_validate . ' and Hotspot ID : ' . $hotspot_title_validate . '</p>');
1254
+ die();
1255
+ }
1256
+ if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
1257
+ wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1258
+ die();
1259
+ }
1260
+ }
1261
+ }
1262
+ }
1263
+ }
1264
+ }
1265
+ }
1266
+ }
1267
+ //===Error Control and Validation===//
1268
+
1269
+ foreach ($panodata["scene-list"] as $panoscenes) {
1270
+ if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
1271
+ wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
1272
+ die();
1273
+ }
1274
+ }
1275
+
1276
+ $allsceneids = array();
1277
+
1278
+ foreach ($panodata["scene-list"] as $panoscenes) {
1279
+ if (!empty($panoscenes['scene-id'])) {
1280
+ array_push($allsceneids, $panoscenes['scene-id']);
1281
+ }
1282
+ }
1283
+
1284
+ foreach ($panodata["scene-list"] as $panoscenes) {
1285
+
1286
+ if ($panoscenes['dscene'] == 'on') {
1287
+ $default_scene = $panoscenes['scene-id'];
1288
+ }
1289
+ }
1290
+ if (empty($default_scene)) {
1291
+ if ($allsceneids) {
1292
+ $default_scene = $allsceneids[0];
1293
+ } else {
1294
+
1295
+ wp_send_json_error('<span class="pano-error-title">Missing Image & Scene ID</span> <p>Please Upload An Image and Set A Scene ID To See The Preview</p>');
1296
+ die();
1297
+ }
1298
+ }
1299
+
1300
+ $allsceneids_count = array_count_values($allsceneids);
1301
+ foreach ($allsceneids_count as $key => $value) {
1302
+ if ($value > 1) {
1303
+ wp_send_json_error('<span class="pano-error-title">Duplicate Scene ID</span> <p>You\'ve assigned a duplicate Scene ID. <br/>Please assign unique Scene IDs to each scene. </p>');
1304
+ die();
1305
+ }
1306
+ }
1307
+
1308
+ foreach ($panodata["scene-list"] as $panoscenes) {
1309
+ if (!empty($panoscenes['scene-id'])) {
1310
+ $allhotspot = array();
1311
+ foreach ($panoscenes["hotspot-list"] as $hotspot_val) {
1312
+ if (!empty($hotspot_val["hotspot-title"])) {
1313
+ array_push($allhotspot, $hotspot_val["hotspot-title"]);
1314
+ }
1315
+ }
1316
+ $allhotspotcount = array_count_values($allhotspot);
1317
+ foreach ($allhotspotcount as $key => $value) {
1318
+ if ($value > 1) {
1319
+ wp_send_json_error('<span class="pano-error-title">Duplicate Hotspot ID</span> <p>You\'ve assigned a duplicate Hotspot ID. <br/>Please assign unique Hotspot IDs to each Hotspot.</p>');
1320
+ die();
1321
+ }
1322
+ }
1323
+ }
1324
+ }
1325
+
1326
+ $panolength = count($panodata["scene-list"]);
1327
+ for ($i = 0; $i < $panolength; $i++) {
1328
+ if (empty($panodata["scene-list"][$i]['scene-id'])) {
1329
+ unset($panodata["scene-list"][$i]);
1330
+ } else {
1331
+ $panohotspotlength = count($panodata["scene-list"][$i]['hotspot-list']);
1332
+ for ($j = 0; $j < $panohotspotlength; $j++) {
1333
+ if (empty($panodata["scene-list"][$i]['hotspot-list'][$j]['hotspot-title'])) {
1334
+ unset($panodata["scene-list"][$i]['hotspot-list'][$j]);
1335
+ }
1336
+ }
1337
+ }
1338
+ }
1339
+
1340
+ //===audio===//
1341
+ $bg_music = 'off';
1342
+ $bg_music_url = '';
1343
+ $autoplay_bg_music = 'off';
1344
+ $loop_bg_music = 'off';
1345
+ $bg_music = sanitize_text_field($_POST['bg_music']);
1346
+ $bg_music_url = esc_url_raw($_POST['bg_music_url']);
1347
+ $autoplay_bg_music = sanitize_text_field($_POST['autoplay_bg_music']);
1348
+ $loop_bg_music = sanitize_text_field($_POST['loop_bg_music']);
1349
+ if ($bg_music == 'on') {
1350
+ if (empty($bg_music_url)) {
1351
+ wp_send_json_error('<p><span>Warning:</span> Please add an audio file as you enabled audio for this tour </p>');
1352
+ die();
1353
+ }
1354
+ }
1355
+ //===audio===//
1356
+
1357
+ $pano_array = array();
1358
+ $pano_array = array(__("panoid") => $panoid, __("autoLoad") => $autoload, __("hfov") => $default_global_zoom, __("maxHfov") => $max_global_zoom, __("minHfov") => $min_global_zoom, __("showControls") => $control, __("cpLogoSwitch") => $cpLogoSwitch, __("cpLogoImg") => $cpLogoImg, __("cpLogoContent") => $cpLogoContent, __("vrgallery") => $vrgallery, __("vrgallery_title") => $vrgallery_title, __("vrgallery_display") => $vrgallery_display, __("customcontrol") => $custom_control, __("gyro") => $gyro, __("deviceorientationcontrol") => $deviceorientationcontrol, __("compass") => $compass, __("mouseZoom") => $mouseZoom, __("draggable") => $draggable, __("diskeyboard") => $diskeyboard, __("keyboardzoom") => $keyboardzoom, __("autoRotate") => $autorotation, __("autoRotateInactivityDelay") => $autorotationinactivedelay, __("autoRotateStopDelay") => $autorotationstopdelay, __("preview") => $preview, __("defaultscene") => $default_scene, __("scenefadeduration") => $scene_fade_duration, __("bg_music") => $bg_music, __("bg_music_url") => $bg_music_url, __("autoplay_bg_music") => $autoplay_bg_music, __("loop_bg_music") => $loop_bg_music, __("panodata") => $panodata, __("previewtext") => $previewtext, __("bg_tour_enabler") => $bg_tour_enabler, __("bg_tour_navmenu") => $bg_tour_navmenu, __("bg_tour_title") => $bg_tour_title, __("bg_tour_subtitle") => $bg_tour_subtitle);
1359
+
1360
+ if ($rotation == 'off') {
1361
+ unset($pano_array['autoRotate']);
1362
+ unset($pano_array['autoRotateInactivityDelay']);
1363
+ unset($pano_array['autoRotateStopDelay']);
1364
+ }
1365
+ if (empty($autorotation)) {
1366
+ unset($pano_array['autoRotate']);
1367
+ unset($pano_array['autoRotateInactivityDelay']);
1368
+ unset($pano_array['autoRotateStopDelay']);
1369
+ }
1370
+ if (empty($autorotationinactivedelay)) {
1371
+ unset($pano_array['autoRotateInactivityDelay']);
1372
+ }
1373
+ if (empty($autorotationstopdelay)) {
1374
+ unset($pano_array['autoRotateStopDelay']);
1375
+ }
1376
+ if (empty($autorotationstopdelay)) {
1377
+ unset($pano_array['autoRotateStopDelay']);
1378
+ }
1379
+ update_post_meta($postid, 'panodata', $pano_array);
1380
+ die();
1381
+ }
1382
+
1383
+ function wpvr_file_import()
1384
+ {
1385
+ set_time_limit(20000000000000000);
1386
+ wpvr_delete_temp_file();
1387
+ if ($_POST['fileurl']) {
1388
+ WP_Filesystem();
1389
+ $file_save_url = wp_upload_dir();
1390
+ $fileurl = $_POST['fileurl'];
1391
+ $attachment_id = $_POST['data_id'];
1392
+ $zip_file_path = get_attached_file($attachment_id);
1393
+ $unzipfile = unzip_file($zip_file_path, $file_save_url['basedir'] . '/wpvr/temp/');
1394
+
1395
+ if (is_wp_error($unzipfile)) {
1396
+ wpvr_delete_temp_file();
1397
+ wp_send_json_error('Failed to unzip file');
1398
+ }
1399
+ $result = glob($file_save_url["basedir"] . '/wpvr/temp/*.json');
1400
+ // var_dump($result);
1401
+ // die();
1402
+ if (!$result) {
1403
+ wpvr_delete_temp_file();
1404
+ wp_send_json_error('Tour json file not found');
1405
+ }
1406
+ $tour_json = $result[0];
1407
+ $arrContextOptions = array(
1408
+ "ssl" => array(
1409
+ "verify_peer" => false,
1410
+ "verify_peer_name" => false,
1411
+ ),
1412
+ );
1413
+ $getfile = file_get_contents($tour_json, false, stream_context_create($arrContextOptions));
1414
+ $file_content = json_decode($getfile, true);
1415
+
1416
+ $new_title = $file_content['title'];
1417
+ $new_data = $file_content['data'];
1418
+ $new_post_id = wp_insert_post(array(
1419
+ 'post_title' => $new_title,
1420
+ 'post_type' => 'wpvr_item',
1421
+ 'post_status' => 'publish',
1422
+ ));
1423
+ if ($new_post_id) {
1424
+ if ($new_data['panoid']) {
1425
+ $new_data['panoid'] = 'pano' . $new_post_id;
1426
+ }
1427
+ if ($new_data['preview']) {
1428
+ $preview_url = $file_save_url['baseurl'] . '/wpvr/temp/scene_preview.jpg';
1429
+ $media_get = wpvr_handle_media_import($preview_url, $new_post_id);
1430
+ if ($media_get['status'] == 'error') {
1431
+ wp_delete_post($new_post_id, true);
1432
+ wpvr_delete_temp_file();
1433
+ wp_send_json_error($media_get['message']);
1434
+ } elseif ($media_get['status'] == 'success') {
1435
+ $new_data['preview'] = $media_get['message'];
1436
+ } else {
1437
+ wp_delete_post($new_post_id, true);
1438
+ wpvr_delete_temp_file();
1439
+ wp_send_json_error('Media transfer process failed');
1440
+ }
1441
+ }
1442
+ if ($new_data['preview']) {
1443
+ $preview_url = $file_save_url['baseurl'] . '/wpvr/temp/scene_preview.jpg';
1444
+ $media_get = wpvr_handle_media_import($preview_url, $new_post_id);
1445
+ if ($media_get['status'] == 'error') {
1446
+ wp_delete_post($new_post_id, true);
1447
+ wpvr_delete_temp_file();
1448
+ wp_send_json_error($media_get['message']);
1449
+ } elseif ($media_get['status'] == 'success') {
1450
+ $new_data['preview'] = $media_get['message'];
1451
+ } else {
1452
+ wp_delete_post($new_post_id, true);
1453
+ wpvr_delete_temp_file();
1454
+ wp_send_json_error('Media transfer process failed');
1455
+ }
1456
+ }
1457
+ if ($new_data['cpLogoImg']) {
1458
+ $logo = $new_data['cpLogoImg'];
1459
+ $get_logo_format = explode(".", $logo);
1460
+ $logo_format = end($get_logo_format);
1461
+ $logo_img = $file_save_url['baseurl'] . '/wpvr/temp/logo_img.' . $logo_format;
1462
+ $media_get = wpvr_handle_media_import($logo_img, $new_post_id);
1463
+ if ($media_get['status'] == 'error') {
1464
+ wp_delete_post($new_post_id, true);
1465
+ wpvr_delete_temp_file();
1466
+ wp_send_json_error($media_get['message']);
1467
+ } elseif ($media_get['status'] == 'success') {
1468
+ $new_data['cpLogoImg'] = $media_get['message'];
1469
+ } else {
1470
+ wp_delete_post($new_post_id, true);
1471
+ wpvr_delete_temp_file();
1472
+ wp_send_json_error('Media transfer process failed');
1473
+ }
1474
+ }
1475
+ if ($new_data['bg_music_url']) {
1476
+ $music_url = $new_data['bg_music_url'];
1477
+ $get_music_format = explode(".", $music_url);
1478
+ $music_format = end($get_music_format);
1479
+ $music_url = $file_save_url['baseurl'] . '/wpvr/temp/music_url.' . $music_format;
1480
+ $media_get = wpvr_handle_media_import($music_url, $new_post_id);
1481
+ if ($media_get['status'] == 'error') {
1482
+ wp_delete_post($new_post_id, true);
1483
+ wpvr_delete_temp_file();
1484
+ wp_send_json_error($media_get['message']);
1485
+ } elseif ($media_get['status'] == 'success') {
1486
+ $new_data['bg_music_url'] = $media_get['message'];
1487
+ } else {
1488
+ wp_delete_post($new_post_id, true);
1489
+ wpvr_delete_temp_file();
1490
+ wp_send_json_error('Media transfer process failed');
1491
+ }
1492
+ }
1493
+ if ($new_data['panodata']) {
1494
+
1495
+ if ($new_data['panodata']["scene-list"]) {
1496
+
1497
+ foreach ($new_data['panodata']["scene-list"] as $key => $panoscenes) {
1498
+
1499
+ if ($panoscenes['scene-type'] == 'cubemap') {
1500
+
1501
+ // face 0
1502
+ if ($panoscenes["scene-attachment-url-face0"]) {
1503
+ $scene_id = $panoscenes['scene-id'];
1504
+ $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face0.jpg';
1505
+ $media_get = wpvr_handle_media_import($url, $new_post_id);
1506
+ if ($media_get['status'] == 'error') {
1507
+ wp_delete_post($new_post_id, true);
1508
+ wpvr_delete_temp_file();
1509
+ wp_send_json_error($media_get['message']);
1510
+ } elseif ($media_get['status'] == 'success') {
1511
+ $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1512
+ } else {
1513
+ wp_delete_post($new_post_id, true);
1514
+ wpvr_delete_temp_file();
1515
+ wp_send_json_error('Media transfer process failed');
1516
+ }
1517
+ }
1518
+
1519
+ // face 1
1520
+ if ($panoscenes["scene-attachment-url-face1"]) {
1521
+ $scene_id = $panoscenes['scene-id'];
1522
+ $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face1.jpg';
1523
+ $media_get = wpvr_handle_media_import($url, $new_post_id);
1524
+ if ($media_get['status'] == 'error') {
1525
+ wp_delete_post($new_post_id, true);
1526
+ wpvr_delete_temp_file();
1527
+ wp_send_json_error($media_get['message']);
1528
+ } elseif ($media_get['status'] == 'success') {
1529
+ $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1530
+ } else {
1531
+ wp_delete_post($new_post_id, true);
1532
+ wpvr_delete_temp_file();
1533
+ wp_send_json_error('Media transfer process failed');
1534
+ }
1535
+ }
1536
+
1537
+ // face 2
1538
+ if ($panoscenes["scene-attachment-url-face2"]) {
1539
+ $scene_id = $panoscenes['scene-id'];
1540
+ $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face2.jpg';
1541
+ $media_get = wpvr_handle_media_import($url, $new_post_id);
1542
+ if ($media_get['status'] == 'error') {
1543
+ wp_delete_post($new_post_id, true);
1544
+ wpvr_delete_temp_file();
1545
+ wp_send_json_error($media_get['message']);
1546
+ } elseif ($media_get['status'] == 'success') {
1547
+ $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1548
+ } else {
1549
+ wp_delete_post($new_post_id, true);
1550
+ wpvr_delete_temp_file();
1551
+ wp_send_json_error('Media transfer process failed');
1552
+ }
1553
+ }
1554
+
1555
+ // face 3
1556
+ if ($panoscenes["scene-attachment-url-face0"]) {
1557
+ $scene_id = $panoscenes['scene-id'];
1558
+ $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face3.jpg';
1559
+ $media_get = wpvr_handle_media_import($url, $new_post_id);
1560
+ if ($media_get['status'] == 'error') {
1561
+ wp_delete_post($new_post_id, true);
1562
+ wpvr_delete_temp_file();
1563
+ wp_send_json_error($media_get['message']);
1564
+ } elseif ($media_get['status'] == 'success') {
1565
+ $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1566
+ } else {
1567
+ wp_delete_post($new_post_id, true);
1568
+ wpvr_delete_temp_file();
1569
+ wp_send_json_error('Media transfer process failed');
1570
+ }
1571
+ }
1572
+
1573
+ // face 4
1574
+ if ($panoscenes["scene-attachment-url-face4"]) {
1575
+ $scene_id = $panoscenes['scene-id'];
1576
+ $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face4.jpg';
1577
+ $media_get = wpvr_handle_media_import($url, $new_post_id);
1578
+ if ($media_get['status'] == 'error') {
1579
+ wp_delete_post($new_post_id, true);
1580
+ wpvr_delete_temp_file();
1581
+ wp_send_json_error($media_get['message']);
1582
+ } elseif ($media_get['status'] == 'success') {
1583
+ $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1584
+ } else {
1585
+ wp_delete_post($new_post_id, true);
1586
+ wpvr_delete_temp_file();
1587
+ wp_send_json_error('Media transfer process failed');
1588
+ }
1589
+ }
1590
+
1591
+ // face 5
1592
+ if ($panoscenes["scene-attachment-url-face5"]) {
1593
+ $scene_id = $panoscenes['scene-id'];
1594
+ $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face5.jpg';
1595
+ $media_get = wpvr_handle_media_import($url, $new_post_id);
1596
+ if ($media_get['status'] == 'error') {
1597
+ wp_delete_post($new_post_id, true);
1598
+ wpvr_delete_temp_file();
1599
+ wp_send_json_error($media_get['message']);
1600
+ } elseif ($media_get['status'] == 'success') {
1601
+ $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1602
+ } else {
1603
+ wp_delete_post($new_post_id, true);
1604
+ wpvr_delete_temp_file();
1605
+ wp_send_json_error('Media transfer process failed');
1606
+ }
1607
+ }
1608
+ } else {
1609
+ if ($panoscenes["scene-attachment-url"]) {
1610
+ $scene_id = $panoscenes['scene-id'];
1611
+ $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '.jpg';
1612
+ $media_get = wpvr_handle_media_import($url, $new_post_id);
1613
+ if ($media_get['status'] == 'error') {
1614
+ wp_delete_post($new_post_id, true);
1615
+ wpvr_delete_temp_file();
1616
+ wp_send_json_error($media_get['message']);
1617
+ } elseif ($media_get['status'] == 'success') {
1618
+ $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1619
+ } else {
1620
+ wp_delete_post($new_post_id, true);
1621
+ wpvr_delete_temp_file();
1622
+ wp_send_json_error('Media transfer process failed');
1623
+ }
1624
+ }
1625
+ }
1626
+ }
1627
+ }
1628
+ update_post_meta($new_post_id, 'panodata', $new_data);
1629
+ wpvr_delete_temp_file();
1630
+ }
1631
+ }
1632
+ } else {
1633
+ wpvr_delete_temp_file();
1634
+ wp_send_json_error('No file found to import');
1635
+ }
1636
+ die();
1637
+ }
1638
+
1639
+ /**
1640
+ * Video Preview show ajax function
1641
+ */
1642
+ function wpvrstreetview_preview()
1643
+ {
1644
+ $panoid = '';
1645
+ $html = '';
1646
+ $postid = sanitize_text_field($_POST['postid']);
1647
+ $panoid = 'pano' . $postid;
1648
+ $randid = rand(1000, 1000000);
1649
+ $streetviewid = 'streetview' . $randid;
1650
+ $streetviewurl = $_POST['streetview'];
1651
+ if ($streetviewurl) {
1652
+ $html .= '<iframe src="' . $streetviewurl . '" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
1653
+ }
1654
+
1655
+ $response = array();
1656
+ $response = array(__("panoid") => $panoid, __("panodata") => $html, __("streetview") => $streetviewid);
1657
+ wp_send_json_success($response);
1658
+ }
1659
+
1660
+ /**
1661
+ * Role management
1662
+ */
1663
+ function wpvr_role_management()
1664
+ {
1665
+ $editor = sanitize_text_field($_POST['editor']);
1666
+ $author = sanitize_text_field($_POST['author']);
1667
+ $fontawesome = sanitize_text_field($_POST['fontawesome']);
1668
+ $mobile_media_resize = sanitize_text_field($_POST['mobile_media_resize']);
1669
+ $high_res_image = sanitize_text_field($_POST['high_res_image']);
1670
+ $dis_on_hover = sanitize_text_field($_POST['dis_on_hover']);
1671
+ $wpvr_frontend_notice = sanitize_text_field($_POST['wpvr_frontend_notice']);
1672
+ $wpvr_frontend_notice_area = sanitize_text_field($_POST['wpvr_frontend_notice_area']);
1673
+ $wpvr_script_control = sanitize_text_field($_POST['wpvr_script_control']);
1674
+ $wpvr_script_list = sanitize_text_field($_POST['wpvr_script_list']);
1675
+
1676
+ $wpvr_video_script_control = sanitize_text_field($_POST['wpvr_video_script_control']);
1677
+ $wpvr_video_script_list = sanitize_text_field($_POST['wpvr_video_script_list']);
1678
+
1679
+ // $enable_woocommerce = sanitize_text_field($_POST['woocommerce']);
1680
+
1681
+ $wpvr_script_list = str_replace(' ', '', $wpvr_script_list);
1682
+
1683
+ update_option('wpvr_editor_active', $editor);
1684
+ update_option('wpvr_author_active', $author);
1685
+ update_option('wpvr_fontawesome_disable', $fontawesome);
1686
+ update_option('mobile_media_resize', $mobile_media_resize);
1687
+ update_option('high_res_image', $high_res_image);
1688
+ update_option('dis_on_hover', $dis_on_hover);
1689
+ update_option('wpvr_frontend_notice', $wpvr_frontend_notice);
1690
+ update_option('wpvr_frontend_notice_area', $wpvr_frontend_notice_area);
1691
+ update_option('wpvr_script_control', $wpvr_script_control);
1692
+ update_option('wpvr_script_list', $wpvr_script_list);
1693
+
1694
+ update_option('wpvr_video_script_control', $wpvr_video_script_control);
1695
+ update_option('wpvr_video_script_list', $wpvr_video_script_list);
1696
+
1697
+ // update_option('wpvr_enable_woocommerce', $enable_woocommerce);
1698
+
1699
+ $response = array(
1700
+ 'status' => 'success',
1701
+ 'message' => 'Successfully saved',
1702
+ );
1703
+ wp_send_json($response);
1704
+ }
1705
+
1706
+ /**
1707
+ * Notice
1708
+ */
1709
+ function wpvr_notice()
1710
+ {
1711
+ update_option('wpvr_warning', '1');
1712
+ }
1713
+ }
admin/class-wpvr-icon.php CHANGED
@@ -1,1018 +1,1018 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
- /**
4
- * The fontawesome functionality of the plugin.
5
- *
6
- * @link http://rextheme.com/
7
- * @since 1.0.0
8
- *
9
- * @package
10
- * @subpackage /admin
11
- */
12
-
13
- class Wpvr_fontawesome_icons {
14
-
15
- public $icon;
16
-
17
- /**
18
- * Admin icon setup is specified in this area.
19
- */
20
-
21
- public function __construct() {
22
-
23
- $this->icon = array (
24
- 'none' => 'None',
25
- 'fab fa-500px' => '500px',
26
- 'fab fa-accessible-icon' => 'accessible-icon',
27
- 'fab fa-accusoft' => 'accusoft',
28
- 'fas fa-address-book' => 'address-book',
29
- 'far fa-address-book' => 'address-book',
30
- 'fas fa-address-card' => 'address-card',
31
- 'far fa-address-card' => 'address-card',
32
- 'fas fa-adjust' => 'adjust',
33
- 'fab fa-adn' => 'adn',
34
- 'fab fa-adversal' => 'adversal',
35
- 'fab fa-affiliatetheme' => 'affiliatetheme',
36
- 'fab fa-algolia' => 'algolia',
37
- 'fas fa-align-center' => 'align-center',
38
- 'fas fa-align-justify' => 'align-justify',
39
- 'fas fa-align-left' => 'align-left',
40
- 'fas fa-align-right' => 'align-right',
41
- 'fas fa-allergies' => 'allergies',
42
- 'fab fa-amazon' => 'amazon',
43
- 'fab fa-amazon-pay' => 'amazon-pay',
44
- 'fas fa-ambulance' => 'ambulance',
45
- 'fas fa-american-sign-language-interpreting' => 'american-sign-language-interpreting',
46
- 'fab fa-amilia' => 'amilia',
47
- 'fas fa-anchor' => 'anchor',
48
- 'fab fa-android' => 'android',
49
- 'fab fa-angellist' => 'angellist',
50
- 'fas fa-angle-double-down' => 'angle-double-down',
51
- 'fas fa-angle-double-left' => 'angle-double-left',
52
- 'fas fa-angle-double-right' => 'angle-double-right',
53
- 'fas fa-angle-double-up' => 'angle-double-up',
54
- 'fas fa-angle-down' => 'angle-down',
55
- 'fas fa-angle-left' => 'angle-left',
56
- 'fas fa-angle-right' => 'angle-right',
57
- 'fas fa-angle-up' => 'angle-up',
58
- 'fab fa-angrycreative' => 'angrycreative',
59
- 'fab fa-angular' => 'angular',
60
- 'fab fa-app-store' => 'app-store',
61
- 'fab fa-app-store-ios' => 'app-store-ios',
62
- 'fab fa-apper' => 'apper',
63
- 'fab fa-apple' => 'apple',
64
- 'fab fa-apple-pay' => 'apple-pay',
65
- 'fas fa-archive' => 'archive',
66
- 'fas fa-arrow-alt-circle-down' => 'arrow-alt-circle-down',
67
- 'far fa-arrow-alt-circle-down' => 'arrow-alt-circle-down',
68
- 'fas fa-arrow-alt-circle-left' => 'arrow-alt-circle-left',
69
- 'far fa-arrow-alt-circle-left' => 'arrow-alt-circle-left',
70
- 'fas fa-arrow-alt-circle-right' => 'arrow-alt-circle-right',
71
- 'far fa-arrow-alt-circle-right' => 'arrow-alt-circle-right',
72
- 'fas fa-arrow-alt-circle-up' => 'arrow-alt-circle-up',
73
- 'far fa-arrow-alt-circle-up' => 'arrow-alt-circle-up',
74
- 'fas fa-arrow-circle-down' => 'arrow-circle-down',
75
- 'fas fa-arrow-circle-left' => 'arrow-circle-left',
76
- 'fas fa-arrow-circle-right' => 'arrow-circle-right',
77
- 'fas fa-arrow-circle-up' => 'arrow-circle-up',
78
- 'fas fa-arrow-down' => 'arrow-down',
79
- 'fas fa-arrow-left' => 'arrow-left',
80
- 'fas fa-arrow-right' => 'arrow-right',
81
- 'fas fa-arrow-up' => 'arrow-up',
82
- 'fas fa-arrows-alt' => 'arrows-alt',
83
- 'fas fa-arrows-alt-h' => 'arrows-alt-h',
84
- 'fas fa-arrows-alt-v' => 'arrows-alt-v',
85
- 'fas fa-assistive-listening-systems' => 'assistive-listening-systems',
86
- 'fas fa-asterisk' => 'asterisk',
87
- 'fab fa-asymmetrik' => 'asymmetrik',
88
- 'fas fa-at' => 'at',
89
- 'fab fa-audible' => 'audible',
90
- 'fas fa-audio-description' => 'audio-description',
91
- 'fab fa-autoprefixer' => 'autoprefixer',
92
- 'fab fa-avianex' => 'avianex',
93
- 'fab fa-aviato' => 'aviato',
94
- 'fab fa-aws' => 'aws',
95
- 'fas fa-backward' => 'backward',
96
- 'fas fa-balance-scale' => 'balance-scale',
97
- 'fas fa-ban' => 'ban',
98
- 'fas fa-band-aid' => 'band-aid',
99
- 'fab fa-bandcamp' => 'bandcamp',
100
- 'fas fa-barcode' => 'barcode',
101
- 'fas fa-bars' => 'bars',
102
- 'fas fa-baseball-ball' => 'baseball-ball',
103
- 'fas fa-basketball-ball' => 'basketball-ball',
104
- 'fas fa-bath' => 'bath',
105
- 'fas fa-battery-empty' => 'battery-empty',
106
- 'fas fa-battery-full' => 'battery-full',
107
- 'fas fa-battery-half' => 'battery-half',
108
- 'fas fa-battery-quarter' => 'battery-quarter',
109
- 'fas fa-battery-three-quarters' => 'battery-three-quarters',
110
- 'fas fa-bed' => 'bed',
111
- 'fas fa-beer' => 'beer',
112
- 'fab fa-behance' => 'behance',
113
- 'fab fa-behance-square' => 'behance-square',
114
- 'fas fa-bell' => 'bell',
115
- 'far fa-bell' => 'bell',
116
- 'fas fa-bell-slash' => 'bell-slash',
117
- 'far fa-bell-slash' => 'bell-slash',
118
- 'fas fa-bicycle' => 'bicycle',
119
- 'fab fa-bimobject' => 'bimobject',
120
- 'fas fa-binoculars' => 'binoculars',
121
- 'fas fa-birthday-cake' => 'birthday-cake',
122
- 'fab fa-bitbucket' => 'bitbucket',
123
- 'fab fa-bitcoin' => 'bitcoin',
124
- 'fab fa-bity' => 'bity',
125
- 'fab fa-black-tie' => 'black-tie',
126
- 'fab fa-blackberry' => 'blackberry',
127
- 'fas fa-blind' => 'blind',
128
- 'fab fa-blogger' => 'blogger',
129
- 'fab fa-blogger-b' => 'blogger-b',
130
- 'fab fa-bluetooth' => 'bluetooth',
131
- 'fab fa-bluetooth-b' => 'bluetooth-b',
132
- 'fas fa-bold' => 'bold',
133
- 'fas fa-bolt' => 'bolt',
134
- 'fas fa-bomb' => 'bomb',
135
- 'fas fa-book' => 'book',
136
- 'fas fa-bookmark' => 'bookmark',
137
- 'far fa-bookmark' => 'bookmark',
138
- 'fas fa-bowling-ball' => 'bowling-ball',
139
- 'fas fa-box' => 'box',
140
- 'fas fa-box-open' => 'box-open',
141
- 'fas fa-boxes' => 'boxes',
142
- 'fas fa-braille' => 'braille',
143
- 'fas fa-briefcase' => 'briefcase',
144
- 'fas fa-briefcase-medical' => 'briefcase-medical',
145
- 'fab fa-btc' => 'btc',
146
- 'fas fa-bug' => 'bug',
147
- 'fas fa-building' => 'building',
148
- 'far fa-building' => 'building',
149
- 'fas fa-bullhorn' => 'bullhorn',
150
- 'fas fa-bullseye' => 'bullseye',
151
- 'fas fa-burn' => 'burn',
152
- 'fab fa-buromobelexperte' => 'buromobelexperte',
153
- 'fas fa-bus' => 'bus',
154
- 'fab fa-buysellads' => 'buysellads',
155
- 'fas fa-calculator' => 'calculator',
156
- 'fas fa-calendar' => 'calendar',
157
- 'far fa-calendar' => 'calendar',
158
- 'fas fa-calendar-alt' => 'calendar-alt',
159
- 'far fa-calendar-alt' => 'calendar-alt',
160
- 'fas fa-calendar-check' => 'calendar-check',
161
- 'far fa-calendar-check' => 'calendar-check',
162
- 'fas fa-calendar-minus' => 'calendar-minus',
163
- 'far fa-calendar-minus' => 'calendar-minus',
164
- 'fas fa-calendar-plus' => 'calendar-plus',
165
- 'far fa-calendar-plus' => 'calendar-plus',
166
- 'fas fa-calendar-times' => 'calendar-times',
167
- 'far fa-calendar-times' => 'calendar-times',
168
- 'fas fa-camera' => 'camera',
169
- 'fas fa-camera-retro' => 'camera-retro',
170
- 'fas fa-capsules' => 'capsules',
171
- 'fas fa-car' => 'car',
172
- 'fas fa-caret-down' => 'caret-down',
173
- 'fas fa-caret-left' => 'caret-left',
174
- 'fas fa-caret-right' => 'caret-right',
175
- 'fas fa-caret-square-down' => 'caret-square-down',
176
- 'far fa-caret-square-down' => 'caret-square-down',
177
- 'fas fa-caret-square-left' => 'caret-square-left',
178
- 'far fa-caret-square-left' => 'caret-square-left',
179
- 'fas fa-caret-square-right' => 'caret-square-right',
180
- 'far fa-caret-square-right' => 'caret-square-right',
181
- 'fas fa-caret-square-up' => 'caret-square-up',
182
- 'far fa-caret-square-up' => 'caret-square-up',
183
- 'fas fa-caret-up' => 'caret-up',
184
- 'fas fa-cart-arrow-down' => 'cart-arrow-down',
185
- 'fas fa-cart-plus' => 'cart-plus',
186
- 'fab fa-cc-amazon-pay' => 'cc-amazon-pay',
187
- 'fab fa-cc-amex' => 'cc-amex',
188
- 'fab fa-cc-apple-pay' => 'cc-apple-pay',
189
- 'fab fa-cc-diners-club' => 'cc-diners-club',
190
- 'fab fa-cc-discover' => 'cc-discover',
191
- 'fab fa-cc-jcb' => 'cc-jcb',
192
- 'fab fa-cc-mastercard' => 'cc-mastercard',
193
- 'fab fa-cc-paypal' => 'cc-paypal',
194
- 'fab fa-cc-stripe' => 'cc-stripe',
195
- 'fab fa-cc-visa' => 'cc-visa',
196
- 'fab fa-centercode' => 'centercode',
197
- 'fas fa-certificate' => 'certificate',
198
- 'fas fa-chart-area' => 'chart-area',
199
- 'fas fa-chart-bar' => 'chart-bar',
200
- 'far fa-chart-bar' => 'chart-bar',
201
- 'fas fa-chart-line' => 'chart-line',
202
- 'fas fa-chart-pie' => 'chart-pie',
203
- 'fas fa-check' => 'check',
204
- 'fas fa-check-circle' => 'check-circle',
205
- 'far fa-check-circle' => 'check-circle',
206
- 'fas fa-check-square' => 'check-square',
207
- 'far fa-check-square' => 'check-square',
208
- 'fas fa-chess' => 'chess',
209
- 'fas fa-chess-bishop' => 'chess-bishop',
210
- 'fas fa-chess-board' => 'chess-board',
211
- 'fas fa-chess-king' => 'chess-king',
212
- 'fas fa-chess-knight' => 'chess-knight',
213
- 'fas fa-chess-pawn' => 'chess-pawn',
214
- 'fas fa-chess-queen' => 'chess-queen',
215
- 'fas fa-chess-rook' => 'chess-rook',
216
- 'fas fa-chevron-circle-down' => 'chevron-circle-down',
217
- 'fas fa-chevron-circle-left' => 'chevron-circle-left',
218
- 'fas fa-chevron-circle-right' => 'chevron-circle-right',
219
- 'fas fa-chevron-circle-up' => 'chevron-circle-up',
220
- 'fas fa-chevron-down' => 'chevron-down',
221
- 'fas fa-chevron-left' => 'chevron-left',
222
- 'fas fa-chevron-right' => 'chevron-right',
223
- 'fas fa-chevron-up' => 'chevron-up',
224
- 'fas fa-child' => 'child',
225
- 'fab fa-chrome' => 'chrome',
226
- 'fas fa-circle' => 'circle',
227
- 'far fa-circle' => 'circle',
228
- 'fas fa-circle-notch' => 'circle-notch',
229
- 'fas fa-clipboard' => 'clipboard',
230
- 'far fa-clipboard' => 'clipboard',
231
- 'fas fa-clipboard-check' => 'clipboard-check',
232
- 'fas fa-clipboard-list' => 'clipboard-list',
233
- 'fas fa-clock' => 'clock',
234
- 'far fa-clock' => 'clock',
235
- 'fas fa-clone' => 'clone',
236
- 'far fa-clone' => 'clone',
237
- 'fas fa-closed-captioning' => 'closed-captioning',
238
- 'far fa-closed-captioning' => 'closed-captioning',
239
- 'fas fa-cloud' => 'cloud',
240
- 'fas fa-cloud-download-alt' => 'cloud-download-alt',
241
- 'fas fa-cloud-upload-alt' => 'cloud-upload-alt',
242
- 'fab fa-cloudscale' => 'cloudscale',
243
- 'fab fa-cloudsmith' => 'cloudsmith',
244
- 'fab fa-cloudversify' => 'cloudversify',
245
- 'fas fa-code' => 'code',
246
- 'fas fa-code-branch' => 'code-branch',
247
- 'fab fa-codepen' => 'codepen',
248
- 'fab fa-codiepie' => 'codiepie',
249
- 'fas fa-coffee' => 'coffee',
250
- 'fas fa-cog' => 'cog',
251
- 'fas fa-cogs' => 'cogs',
252
- 'fas fa-columns' => 'columns',
253
- 'fas fa-comment' => 'comment',
254
- 'far fa-comment' => 'comment',
255
- 'fas fa-comment-alt' => 'comment-alt',
256
- 'far fa-comment-alt' => 'comment-alt',
257
- 'fas fa-comment-dots' => 'comment-dots',
258
- 'fas fa-comment-slash' => 'comment-slash',
259
- 'fas fa-comments' => 'comments',
260
- 'far fa-comments' => 'comments',
261
- 'fas fa-compass' => 'compass',
262
- 'far fa-compass' => 'compass',
263
- 'fas fa-compress' => 'compress',
264
- 'fab fa-connectdevelop' => 'connectdevelop',
265
- 'fab fa-contao' => 'contao',
266
- 'fas fa-copy' => 'copy',
267
- 'far fa-copy' => 'copy',
268
- 'fas fa-copyright' => 'copyright',
269
- 'far fa-copyright' => 'copyright',
270
- 'fas fa-couch' => 'couch',
271
- 'fab fa-cpanel' => 'cpanel',
272
- 'fab fa-creative-commons' => 'creative-commons',
273
- 'fas fa-credit-card' => 'credit-card',
274
- 'far fa-credit-card' => 'credit-card',
275
- 'fas fa-crop' => 'crop',
276
- 'fas fa-crosshairs' => 'crosshairs',
277
- 'fab fa-css3' => 'css3',
278
- 'fab fa-css3-alt' => 'css3-alt',
279
- 'fas fa-cube' => 'cube',
280
- 'fas fa-cubes' => 'cubes',
281
- 'fas fa-cut' => 'cut',
282
- 'fab fa-cuttlefish' => 'cuttlefish',
283
- 'fab fa-d-and-d' => 'd-and-d',
284
- 'fab fa-dashcube' => 'dashcube',
285
- 'fas fa-database' => 'database',
286
- 'fas fa-deaf' => 'deaf',
287
- 'fab fa-delicious' => 'delicious',
288
- 'fab fa-deploydog' => 'deploydog',
289
- 'fab fa-deskpro' => 'deskpro',
290
- 'fas fa-desktop' => 'desktop',
291
- 'fab fa-deviantart' => 'deviantart',
292
- 'fas fa-diagnoses' => 'diagnoses',
293
- 'fab fa-digg' => 'digg',
294
- 'fab fa-digital-ocean' => 'digital-ocean',
295
- 'fab fa-discord' => 'discord',
296
- 'fab fa-discourse' => 'discourse',
297
- 'fas fa-dna' => 'dna',
298
- 'fab fa-dochub' => 'dochub',
299
- 'fab fa-docker' => 'docker',
300
- 'fas fa-dollar-sign' => 'dollar-sign',
301
- 'fas fa-dolly' => 'dolly',
302
- 'fas fa-dolly-flatbed' => 'dolly-flatbed',
303
- 'fas fa-donate' => 'donate',
304
- 'fas fa-dot-circle' => 'dot-circle',
305
- 'far fa-dot-circle' => 'dot-circle',
306
- 'fas fa-dove' => 'dove',
307
- 'fas fa-download' => 'download',
308
- 'fab fa-draft2digital' => 'draft2digital',
309
- 'fab fa-dribbble' => 'dribbble',
310
- 'fab fa-dribbble-square' => 'dribbble-square',
311
- 'fab fa-dropbox' => 'dropbox',
312
- 'fab fa-drupal' => 'drupal',
313
- 'fab fa-dyalog' => 'dyalog',
314
- 'fab fa-earlybirds' => 'earlybirds',
315
- 'fab fa-edge' => 'edge',
316
- 'fas fa-edit' => 'edit',
317
- 'far fa-edit' => 'edit',
318
- 'fas fa-eject' => 'eject',
319
- 'fab fa-elementor' => 'elementor',
320
- 'fas fa-ellipsis-h' => 'ellipsis-h',
321
- 'fas fa-ellipsis-v' => 'ellipsis-v',
322
- 'fab fa-ember' => 'ember',
323
- 'fab fa-empire' => 'empire',
324
- 'fas fa-envelope' => 'envelope',
325
- 'far fa-envelope' => 'envelope',
326
- 'fas fa-envelope-open' => 'envelope-open',
327
- 'far fa-envelope-open' => 'envelope-open',
328
- 'fas fa-envelope-square' => 'envelope-square',
329
- 'fab fa-envira' => 'envira',
330
- 'fas fa-eraser' => 'eraser',
331
- 'fab fa-erlang' => 'erlang',
332
- 'fab fa-ethereum' => 'ethereum',
333
- 'fab fa-etsy' => 'etsy',
334
- 'fas fa-euro-sign' => 'euro-sign',
335
- 'fas fa-exchange-alt' => 'exchange-alt',
336
- 'fas fa-exclamation' => 'exclamation',
337
- 'fas fa-exclamation-circle' => 'exclamation-circle',
338
- 'fas fa-exclamation-triangle' => 'exclamation-triangle',
339
- 'fas fa-expand' => 'expand',
340
- 'fas fa-expand-arrows-alt' => 'expand-arrows-alt',
341
- 'fab fa-expeditedssl' => 'expeditedssl',
342
- 'fas fa-external-link-alt' => 'external-link-alt',
343
- 'fas fa-external-link-square-alt' => 'external-link-square-alt',
344
- 'fas fa-eye' => 'eye',
345
- 'fas fa-eye-dropper' => 'eye-dropper',
346
- 'fas fa-eye-slash' => 'eye-slash',
347
- 'far fa-eye-slash' => 'eye-slash',
348
- 'fab fa-facebook' => 'facebook',
349
- 'fab fa-facebook-f' => 'facebook-f',
350
- 'fab fa-facebook-messenger' => 'facebook-messenger',
351
- 'fab fa-facebook-square' => 'facebook-square',
352
- 'fas fa-fast-backward' => 'fast-backward',
353
- 'fas fa-fast-forward' => 'fast-forward',
354
- 'fas fa-fax' => 'fax',
355
- 'fas fa-female' => 'female',
356
- 'fas fa-fighter-jet' => 'fighter-jet',
357
- 'fas fa-file' => 'file',
358
- 'far fa-file' => 'file',
359
- 'fas fa-file-alt' => 'file-alt',
360
- 'far fa-file-alt' => 'file-alt',
361
- 'fas fa-file-archive' => 'file-archive',
362
- 'far fa-file-archive' => 'file-archive',
363
- 'fas fa-file-audio' => 'file-audio',
364
- 'far fa-file-audio' => 'file-audio',
365
- 'fas fa-file-code' => 'file-code',
366
- 'far fa-file-code' => 'file-code',
367
- 'fas fa-file-excel' => 'file-excel',
368
- 'far fa-file-excel' => 'file-excel',
369
- 'fas fa-file-image' => 'file-image',
370
- 'far fa-file-image' => 'file-image',
371
- 'fas fa-file-medical' => 'file-medical',
372
- 'fas fa-file-medical-alt' => 'file-medical-alt',
373
- 'fas fa-file-pdf' => 'file-pdf',
374
- 'far fa-file-pdf' => 'file-pdf',
375
- 'fas fa-file-powerpoint' => 'file-powerpoint',
376
- 'far fa-file-powerpoint' => 'file-powerpoint',
377
- 'fas fa-file-video' => 'file-video',
378
- 'far fa-file-video' => 'file-video',
379
- 'fas fa-file-word' => 'file-word',
380
- 'far fa-file-word' => 'file-word',
381
- 'fas fa-film' => 'film',
382
- 'fas fa-filter' => 'filter',
383
- 'fas fa-fire' => 'fire',
384
- 'fas fa-fire-extinguisher' => 'fire-extinguisher',
385
- 'fab fa-firefox' => 'firefox',
386
- 'fas fa-first-aid' => 'first-aid',
387
- 'fab fa-first-order' => 'first-order',
388
- 'fab fa-firstdraft' => 'firstdraft',
389
- 'fas fa-flag' => 'flag',
390
- 'far fa-flag' => 'flag',
391
- 'fas fa-flag-checkered' => 'flag-checkered',
392
- 'fas fa-flask' => 'flask',
393
- 'fab fa-flickr' => 'flickr',
394
- 'fab fa-flipboard' => 'flipboard',
395
- 'fab fa-fly' => 'fly',
396
- 'fas fa-folder' => 'folder',
397
- 'far fa-folder' => 'folder',
398
- 'fas fa-folder-open' => 'folder-open',
399
- 'far fa-folder-open' => 'folder-open',
400
- 'fas fa-font' => 'font',
401
- 'fab fa-font-awesome' => 'font-awesome',
402
- 'fab fa-font-awesome-alt' => 'font-awesome-alt',
403
- 'fab fa-font-awesome-flag' => 'font-awesome-flag',
404
- 'fab fa-fonticons' => 'fonticons',
405
- 'fab fa-fonticons-fi' => 'fonticons-fi',
406
- 'fas fa-football-ball' => 'football-ball',
407
- 'fab fa-fort-awesome' => 'fort-awesome',
408
- 'fab fa-fort-awesome-alt' => 'fort-awesome-alt',
409
- 'fab fa-forumbee' => 'forumbee',
410
- 'fas fa-forward' => 'forward',
411
- 'fab fa-foursquare' => 'foursquare',
412
- 'fab fa-free-code-camp' => 'free-code-camp',
413
- 'fab fa-freebsd' => 'freebsd',
414
- 'fas fa-frown' => 'frown',
415
- 'far fa-frown' => 'frown',
416
- 'fas fa-futbol' => 'futbol',
417
- 'far fa-futbol' => 'futbol',
418
- 'fas fa-gamepad' => 'gamepad',
419
- 'fas fa-gavel' => 'gavel',
420
- 'fas fa-gem' => 'gem',
421
- 'far fa-gem' => 'gem',
422
- 'fas fa-genderless' => 'genderless',
423
- 'fab fa-get-pocket' => 'get-pocket',
424
- 'fab fa-gg' => 'gg',
425
- 'fab fa-gg-circle' => 'gg-circle',
426
- 'fas fa-gift' => 'gift',
427
- 'fab fa-git' => 'git',
428
- 'fab fa-git-square' => 'git-square',
429
- 'fab fa-github' => 'github',
430
- 'fab fa-github-alt' => 'github-alt',
431
- 'fab fa-github-square' => 'github-square',
432
- 'fab fa-gitkraken' => 'gitkraken',
433
- 'fab fa-gitlab' => 'gitlab',
434
- 'fab fa-gitter' => 'gitter',
435
- 'fas fa-glass-martini' => 'glass-martini',
436
- 'fab fa-glide' => 'glide',
437
- 'fab fa-glide-g' => 'glide-g',
438
- 'fas fa-globe' => 'globe',
439
- 'fab fa-gofore' => 'gofore',
440
- 'fas fa-golf-ball' => 'golf-ball',
441
- 'fab fa-goodreads' => 'goodreads',
442
- 'fab fa-goodreads-g' => 'goodreads-g',
443
- 'fab fa-google' => 'google',
444
- 'fab fa-google-drive' => 'google-drive',
445
- 'fab fa-google-play' => 'google-play',
446
- 'fab fa-google-plus' => 'google-plus',
447
- 'fab fa-google-plus-g' => 'google-plus-g',
448
- 'fab fa-google-plus-square' => 'google-plus-square',
449
- 'fab fa-google-wallet' => 'google-wallet',
450
- 'fas fa-graduation-cap' => 'graduation-cap',
451
- 'fab fa-gratipay' => 'gratipay',
452
- 'fab fa-grav' => 'grav',
453
- 'fab fa-gripfire' => 'gripfire',
454
- 'fab fa-grunt' => 'grunt',
455
- 'fab fa-gulp' => 'gulp',
456
- 'fas fa-h-square' => 'h-square',
457
- 'fab fa-hacker-news' => 'hacker-news',
458
- 'fab fa-hacker-news-square' => 'hacker-news-square',
459
- 'fas fa-hand-holding' => 'hand-holding',
460
- 'fas fa-hand-holding-heart' => 'hand-holding-heart',
461
- 'fas fa-hand-holding-usd' => 'hand-holding-usd',
462
- 'fas fa-hand-lizard' => 'hand-lizard',
463
- 'far fa-hand-lizard' => 'hand-lizard',
464
- 'fas fa-hand-paper' => 'hand-paper',
465
- 'far fa-hand-paper' => 'hand-paper',
466
- 'fas fa-hand-peace' => 'hand-peace',
467
- 'far fa-hand-peace' => 'hand-peace',
468
- 'fas fa-hand-point-down' => 'hand-point-down',
469
- 'far fa-hand-point-down' => 'hand-point-down',
470
- 'fas fa-hand-point-left' => 'hand-point-left',
471
- 'far fa-hand-point-left' => 'hand-point-left',
472
- 'fas fa-hand-point-right' => 'hand-point-right',
473
- 'far fa-hand-point-right' => 'hand-point-right',
474
- 'fas fa-hand-point-up' => 'hand-point-up',
475
- 'far fa-hand-point-up' => 'hand-point-up',
476
- 'fas fa-hand-pointer' => 'hand-pointer',
477
- 'far fa-hand-pointer' => 'hand-pointer',
478
- 'fas fa-hand-rock' => 'hand-rock',
479
- 'far fa-hand-rock' => 'hand-rock',
480
- 'fas fa-hand-scissors' => 'hand-scissors',
481
- 'far fa-hand-scissors' => 'hand-scissors',
482
- 'fas fa-hand-spock' => 'hand-spock',
483
- 'far fa-hand-spock' => 'hand-spock',
484
- 'fas fa-hands' => 'hands',
485
- 'fas fa-hands-helping' => 'hands-helping',
486
- 'fas fa-handshake' => 'handshake',
487
- 'far fa-handshake' => 'handshake',
488
- 'fas fa-hashtag' => 'hashtag',
489
- 'fas fa-hdd' => 'hdd',
490
- 'far fa-hdd' => 'hdd',
491
- 'fas fa-heading' => 'heading',
492
- 'fas fa-headphones' => 'headphones',
493
- 'fas fa-heart' => 'heart',
494
- 'far fa-heart' => 'heart',
495
- 'fas fa-heartbeat' => 'heartbeat',
496
- 'fab fa-hips' => 'hips',
497
- 'fab fa-hire-a-helper' => 'hire-a-helper',
498
- 'fas fa-history' => 'history',
499
- 'fas fa-hockey-puck' => 'hockey-puck',
500
- 'fas fa-home' => 'home',
501
- 'fab fa-hooli' => 'hooli',
502
- 'fas fa-hospital' => 'hospital',
503
- 'far fa-hospital' => 'hospital',
504
- 'fas fa-hospital-alt' => 'hospital-alt',
505
- 'fas fa-hospital-symbol' => 'hospital-symbol',
506
- 'fab fa-hotjar' => 'hotjar',
507
- 'fas fa-hourglass' => 'hourglass',
508
- 'far fa-hourglass' => 'hourglass',
509
- 'fas fa-hourglass-end' => 'hourglass-end',
510
- 'fas fa-hourglass-half' => 'hourglass-half',
511
- 'fas fa-hourglass-start' => 'hourglass-start',
512
- 'fab fa-houzz' => 'houzz',
513
- 'fab fa-html5' => 'html5',
514
- 'fab fa-hubspot' => 'hubspot',
515
- 'fas fa-i-cursor' => 'i-cursor',
516
- 'fas fa-id-badge' => 'id-badge',
517
- 'far fa-id-badge' => 'id-badge',
518
- 'fas fa-id-card' => 'id-card',
519
- 'far fa-id-card' => 'id-card',
520
- 'fas fa-id-card-alt' => 'id-card-alt',
521
- 'fas fa-image' => 'image',
522
- 'far fa-image' => 'image',
523
- 'fas fa-images' => 'images',
524
- 'far fa-images' => 'images',
525
- 'fab fa-imdb' => 'imdb',
526
- 'fas fa-inbox' => 'inbox',
527
- 'fas fa-indent' => 'indent',
528
- 'fas fa-industry' => 'industry',
529
- 'fas fa-info' => 'info',
530
- 'fas fa-info-circle' => 'info-circle',
531
- 'fab fa-instagram' => 'instagram',
532
- 'fab fa-internet-explorer' => 'internet-explorer',
533
- 'fab fa-ioxhost' => 'ioxhost',
534
- 'fas fa-italic' => 'italic',
535
- 'fab fa-itunes' => 'itunes',
536
- 'fab fa-itunes-note' => 'itunes-note',
537
- 'fab fa-java' => 'java',
538
- 'fab fa-jenkins' => 'jenkins',
539
- 'fab fa-joget' => 'joget',
540
- 'fab fa-joomla' => 'joomla',
541
- 'fab fa-js' => 'js',
542
- 'fab fa-js-square' => 'js-square',
543
- 'fab fa-jsfiddle' => 'jsfiddle',
544
- 'fas fa-key' => 'key',
545
- 'fas fa-keyboard' => 'keyboard',
546
- 'far fa-keyboard' => 'keyboard',
547
- 'fab fa-keycdn' => 'keycdn',
548
- 'fab fa-kickstarter' => 'kickstarter',
549
- 'fab fa-kickstarter-k' => 'kickstarter-k',
550
- 'fab fa-korvue' => 'korvue',
551
- 'fas fa-language' => 'language',
552
- 'fas fa-laptop' => 'laptop',
553
- 'fab fa-laravel' => 'laravel',
554
- 'fab fa-lastfm' => 'lastfm',
555
- 'fab fa-lastfm-square' => 'lastfm-square',
556
- 'fas fa-leaf' => 'leaf',
557
- 'fab fa-leanpub' => 'leanpub',
558
- 'fas fa-lemon' => 'lemon',
559
- 'far fa-lemon' => 'lemon',
560
- 'fab fa-less' => 'less',
561
- 'fas fa-level-down-alt' => 'level-down-alt',
562
- 'fas fa-level-up-alt' => 'level-up-alt',
563
- 'fas fa-life-ring' => 'life-ring',
564
- 'far fa-life-ring' => 'life-ring',
565
- 'fas fa-lightbulb' => 'lightbulb',
566
- 'far fa-lightbulb' => 'lightbulb',
567
- 'fab fa-line' => 'line',
568
- 'fas fa-link' => 'link',
569
- 'fab fa-linkedin' => 'linkedin',
570
- 'fab fa-linkedin-in' => 'linkedin-in',
571
- 'fab fa-linode' => 'linode',
572
- 'fab fa-linux' => 'linux',
573
- 'fas fa-lira-sign' => 'lira-sign',
574
- 'fas fa-list' => 'list',
575
- 'fas fa-list-alt' => 'list-alt',
576
- 'far fa-list-alt' => 'list-alt',
577
- 'fas fa-list-ol' => 'list-ol',
578
- 'fas fa-list-ul' => 'list-ul',
579
- 'fas fa-location-arrow' => 'location-arrow',
580
- 'fas fa-lock' => 'lock',
581
- 'fas fa-lock-open' => 'lock-open',
582
- 'fas fa-long-arrow-alt-down' => 'long-arrow-alt-down',
583
- 'fas fa-long-arrow-alt-left' => 'long-arrow-alt-left',
584
- 'fas fa-long-arrow-alt-right' => 'long-arrow-alt-right',
585
- 'fas fa-long-arrow-alt-up' => 'long-arrow-alt-up',
586
- 'fas fa-low-vision' => 'low-vision',
587
- 'fab fa-lyft' => 'lyft',
588
- 'fab fa-magento' => 'magento',
589
- 'fas fa-magic' => 'magic',
590
- 'fas fa-magnet' => 'magnet',
591
- 'fas fa-male' => 'male',
592
- 'fas fa-map' => 'map',
593
- 'far fa-map' => 'map',
594
- 'fas fa-map-marker' => 'map-marker',
595
- 'fas fa-map-marker-alt' => 'map-marker-alt',
596
- 'fas fa-map-pin' => 'map-pin',
597
- 'fas fa-map-signs' => 'map-signs',
598
- 'fas fa-mars' => 'mars',
599
- 'fas fa-mars-double' => 'mars-double',
600
- 'fas fa-mars-stroke' => 'mars-stroke',
601
- 'fas fa-mars-stroke-h' => 'mars-stroke-h',
602
- 'fas fa-mars-stroke-v' => 'mars-stroke-v',
603
- 'fab fa-maxcdn' => 'maxcdn',
604
- 'fab fa-medapps' => 'medapps',
605
- 'fab fa-medium' => 'medium',
606
- 'fab fa-medium-m' => 'medium-m',
607
- 'fas fa-medkit' => 'medkit',
608
- 'fab fa-medrt' => 'medrt',
609
- 'fab fa-meetup' => 'meetup',
610
- 'fas fa-meh' => 'meh',
611
- 'far fa-meh' => 'meh',
612
- 'fas fa-mercury' => 'mercury',
613
- 'fas fa-microchip' => 'microchip',
614
- 'fas fa-microphone' => 'microphone',
615
- 'fas fa-microphone-slash' => 'microphone-slash',
616
- 'fab fa-microsoft' => 'microsoft',
617
- 'fas fa-minus' => 'minus',
618
- 'fas fa-minus-circle' => 'minus-circle',
619
- 'fas fa-minus-square' => 'minus-square',
620
- 'far fa-minus-square' => 'minus-square',
621
- 'fab fa-mix' => 'mix',
622
- 'fab fa-mixcloud' => 'mixcloud',
623
- 'fab fa-mizuni' => 'mizuni',
624
- 'fas fa-mobile' => 'mobile',
625
- 'fas fa-mobile-alt' => 'mobile-alt',
626
- 'fab fa-modx' => 'modx',
627
- 'fab fa-monero' => 'monero',
628
- 'fas fa-money-bill-alt' => 'money-bill-alt',
629
- 'far fa-money-bill-alt' => 'money-bill-alt',
630
- 'fas fa-moon' => 'moon',
631
- 'far fa-moon' => 'moon',
632
- 'fas fa-motorcycle' => 'motorcycle',
633
- 'fas fa-mouse-pointer' => 'mouse-pointer',
634
- 'fas fa-music' => 'music',
635
- 'fab fa-napster' => 'napster',
636
- 'fas fa-neuter' => 'neuter',
637
- 'fas fa-newspaper' => 'newspaper',
638
- 'far fa-newspaper' => 'newspaper',
639
- 'fab fa-nintendo-switch' => 'nintendo-switch',
640
- 'fab fa-node' => 'node',
641
- 'fab fa-node-js' => 'node-js',
642
- 'fas fa-notes-medical' => 'notes-medical',
643
- 'fab fa-npm' => 'npm',
644
- 'fab fa-ns8' => 'ns8',
645
- 'fab fa-nutritionix' => 'nutritionix',
646
- 'fas fa-object-group' => 'object-group',
647
- 'far fa-object-group' => 'object-group',
648
- 'fas fa-object-ungroup' => 'object-ungroup',
649
- 'far fa-object-ungroup' => 'object-ungroup',
650
- 'fab fa-odnoklassniki' => 'odnoklassniki',
651
- 'fab fa-odnoklassniki-square' => 'odnoklassniki-square',
652
- 'fab fa-opencart' => 'opencart',
653
- 'fab fa-openid' => 'openid',
654
- 'fab fa-opera' => 'opera',
655
- 'fab fa-optin-monster' => 'optin-monster',
656
- 'fab fa-osi' => 'osi',
657
- 'fas fa-outdent' => 'outdent',
658
- 'fab fa-page4' => 'page4',
659
- 'fab fa-pagelines' => 'pagelines',
660
- 'fas fa-paint-brush' => 'paint-brush',
661
- 'fab fa-palfed' => 'palfed',
662
- 'fas fa-pallet' => 'pallet',
663
- 'fas fa-paper-plane' => 'paper-plane',
664
- 'far fa-paper-plane' => 'paper-plane',
665
- 'fas fa-paperclip' => 'paperclip',
666
- 'fas fa-parachute-box' => 'parachute-box',
667
- 'fas fa-paragraph' => 'paragraph',
668
- 'fas fa-paste' => 'paste',
669
- 'fab fa-patreon' => 'patreon',
670
- 'fas fa-pause' => 'pause',
671
- 'fas fa-pause-circle' => 'pause-circle',
672
- 'far fa-pause-circle' => 'pause-circle',
673
- 'fas fa-paw' => 'paw',
674
- 'fab fa-paypal' => 'paypal',
675
- 'fas fa-pen-square' => 'pen-square',
676
- 'fas fa-pencil-alt' => 'pencil-alt',
677
- 'fas fa-people-carry' => 'people-carry',
678
- 'fas fa-percent' => 'percent',
679
- 'fab fa-periscope' => 'periscope',
680
- 'fab fa-phabricator' => 'phabricator',
681
- 'fab fa-phoenix-framework' => 'phoenix-framework',
682
- 'fas fa-phone' => 'phone',
683
- 'fas fa-phone-slash' => 'phone-slash',
684
- 'fas fa-phone-square' => 'phone-square',
685
- 'fas fa-phone-volume' => 'phone-volume',
686
- 'fab fa-php' => 'php',
687
- 'fab fa-pied-piper' => 'pied-piper',
688
- 'fab fa-pied-piper-alt' => 'pied-piper-alt',
689
- 'fab fa-pied-piper-hat' => 'pied-piper-hat',
690
- 'fab fa-pied-piper-pp' => 'pied-piper-pp',
691
- 'fas fa-piggy-bank' => 'piggy-bank',
692
- 'fas fa-pills' => 'pills',
693
- 'fab fa-pinterest' => 'pinterest',
694
- 'fab fa-pinterest-p' => 'pinterest-p',
695
- 'fab fa-pinterest-square' => 'pinterest-square',
696
- 'fas fa-plane' => 'plane',
697
- 'fas fa-play' => 'play',
698
- 'fas fa-play-circle' => 'play-circle',
699
- 'far fa-play-circle' => 'play-circle',
700
- 'fab fa-playstation' => 'playstation',
701
- 'fas fa-plug' => 'plug',
702
- 'fas fa-plus' => 'plus',
703
- 'fas fa-plus-circle' => 'plus-circle',
704
- 'fas fa-plus-square' => 'plus-square',
705
- 'far fa-plus-square' => 'plus-square',
706
- 'fas fa-podcast' => 'podcast',
707
- 'fas fa-poo' => 'poo',
708
- 'fas fa-pound-sign' => 'pound-sign',
709
- 'fas fa-power-off' => 'power-off',
710
- 'fas fa-prescription-bottle' => 'prescription-bottle',
711
- 'fas fa-prescription-bottle-alt' => 'prescription-bottle-alt',
712
- 'fas fa-print' => 'print',
713
- 'fas fa-procedures' => 'procedures',
714
- 'fab fa-product-hunt' => 'product-hunt',
715
- 'fab fa-pushed' => 'pushed',
716
- 'fas fa-puzzle-piece' => 'puzzle-piece',
717
- 'fab fa-python' => 'python',
718
- 'fab fa-qq' => 'qq',
719
- 'fas fa-qrcode' => 'qrcode',
720
- 'fas fa-question' => 'question',
721
- 'fas fa-question-circle' => 'question-circle',
722
- 'far fa-question-circle' => 'question-circle',
723
- 'fas fa-quidditch' => 'quidditch',
724
- 'fab fa-quinscape' => 'quinscape',
725
- 'fab fa-quora' => 'quora',
726
- 'fas fa-quote-left' => 'quote-left',
727
- 'fas fa-quote-right' => 'quote-right',
728
- 'fas fa-random' => 'random',
729
- 'fab fa-ravelry' => 'ravelry',
730
- 'fab fa-react' => 'react',
731
- 'fab fa-readme' => 'readme',
732
- 'fab fa-rebel' => 'rebel',
733
- 'fas fa-recycle' => 'recycle',
734
- 'fab fa-red-river' => 'red-river',
735
- 'fab fa-reddit' => 'reddit',
736
- 'fab fa-reddit-alien' => 'reddit-alien',
737
- 'fab fa-reddit-square' => 'reddit-square',
738
- 'fas fa-redo' => 'redo',
739
- 'fas fa-redo-alt' => 'redo-alt',
740
- 'fas fa-registered' => 'registered',
741
- 'far fa-registered' => 'registered',
742
- 'fab fa-rendact' => 'rendact',
743
- 'fab fa-renren' => 'renren',
744
- 'fas fa-reply' => 'reply',
745
- 'fas fa-reply-all' => 'reply-all',
746
- 'fab fa-replyd' => 'replyd',
747
- 'fab fa-resolving' => 'resolving',
748
- 'fas fa-retweet' => 'retweet',
749
- 'fas fa-ribbon' => 'ribbon',
750
- 'fas fa-road' => 'road',
751
- 'fas fa-rocket' => 'rocket',
752
- 'fab fa-rocketchat' => 'rocketchat',
753
- 'fab fa-rockrms' => 'rockrms',
754
- 'fas fa-rss' => 'rss',
755
- 'fas fa-rss-square' => 'rss-square',
756
- 'fas fa-ruble-sign' => 'ruble-sign',
757
- 'fas fa-rupee-sign' => 'rupee-sign',
758
- 'fab fa-safari' => 'safari',
759
- 'fab fa-sass' => 'sass',
760
- 'fas fa-save' => 'save',
761
- 'far fa-save' => 'save',
762
- 'fab fa-schlix' => 'schlix',
763
- 'fab fa-scribd' => 'scribd',
764
- 'fas fa-search' => 'search',
765
- 'fas fa-search-minus' => 'search-minus',
766
- 'fas fa-search-plus' => 'search-plus',
767
- 'fab fa-searchengin' => 'searchengin',
768
- 'fas fa-seedling' => 'seedling',
769
- 'fab fa-sellcast' => 'sellcast',
770
- 'fab fa-sellsy' => 'sellsy',
771
- 'fas fa-server' => 'server',
772
- 'fab fa-servicestack' => 'servicestack',
773
- 'fas fa-share' => 'share',
774
- 'fas fa-share-alt' => 'share-alt',
775
- 'fas fa-share-alt-square' => 'share-alt-square',
776
- 'fas fa-share-square' => 'share-square',
777
- 'far fa-share-square' => 'share-square',
778
- 'fas fa-shekel-sign' => 'shekel-sign',
779
- 'fas fa-shield-alt' => 'shield-alt',
780
- 'fas fa-ship' => 'ship',
781
- 'fas fa-shipping-fast' => 'shipping-fast',
782
- 'fab fa-shirtsinbulk' => 'shirtsinbulk',
783
- 'fas fa-shopping-bag' => 'shopping-bag',
784
- 'fas fa-shopping-basket' => 'shopping-basket',
785
- 'fas fa-shopping-cart' => 'shopping-cart',
786
- 'fas fa-shower' => 'shower',
787
- 'fas fa-sign' => 'sign',
788
- 'fas fa-sign-in-alt' => 'sign-in-alt',
789
- 'fas fa-sign-language' => 'sign-language',
790
- 'fas fa-sign-out-alt' => 'sign-out-alt',
791
- 'fas fa-signal' => 'signal',
792
- 'fab fa-simplybuilt' => 'simplybuilt',
793
- 'fab fa-sistrix' => 'sistrix',
794
- 'fas fa-sitemap' => 'sitemap',
795
- 'fab fa-skyatlas' => 'skyatlas',
796
- 'fab fa-skype' => 'skype',
797
- 'fab fa-slack' => 'slack',
798
- 'fab fa-slack-hash' => 'slack-hash',
799
- 'fas fa-sliders-h' => 'sliders-h',
800
- 'fab fa-slideshare' => 'slideshare',
801
- 'fas fa-smile' => 'smile',
802
- 'far fa-smile' => 'smile',
803
- 'fas fa-smoking' => 'smoking',
804
- 'fab fa-snapchat' => 'snapchat',
805
- 'fab fa-snapchat-ghost' => 'snapchat-ghost',
806
- 'fab fa-snapchat-square' => 'snapchat-square',
807
- 'fas fa-snowflake' => 'snowflake',
808
- 'far fa-snowflake' => 'snowflake',
809
- 'fas fa-sort' => 'sort',
810
- 'fas fa-sort-alpha-down' => 'sort-alpha-down',
811
- 'fas fa-sort-alpha-up' => 'sort-alpha-up',
812
- 'fas fa-sort-amount-down' => 'sort-amount-down',
813
- 'fas fa-sort-amount-up' => 'sort-amount-up',
814
- 'fas fa-sort-down' => 'sort-down',
815
- 'fas fa-sort-numeric-down' => 'sort-numeric-down',
816
- 'fas fa-sort-numeric-up' => 'sort-numeric-up',
817
- 'fas fa-sort-up' => 'sort-up',
818
- 'fab fa-soundcloud' => 'soundcloud',
819
- 'fas fa-space-shuttle' => 'space-shuttle',
820
- 'fab fa-speakap' => 'speakap',
821
- 'fas fa-spinner' => 'spinner',
822
- 'fab fa-spotify' => 'spotify',
823
- 'fas fa-square' => 'square',
824
- 'far fa-square' => 'square',
825
- 'fas fa-square-full' => 'square-full',
826
- 'fab fa-stack-exchange' => 'stack-exchange',
827
- 'fab fa-stack-overflow' => 'stack-overflow',
828
- 'fas fa-star' => 'star',
829
- 'far fa-star' => 'star',
830
- 'fas fa-star-half' => 'star-half',
831
- 'far fa-star-half' => 'star-half',
832
- 'fab fa-staylinked' => 'staylinked',
833
- 'fab fa-steam' => 'steam',
834
- 'fab fa-steam-square' => 'steam-square',
835
- 'fab fa-steam-symbol' => 'steam-symbol',
836
- 'fas fa-step-backward' => 'step-backward',
837
- 'fas fa-step-forward' => 'step-forward',
838
- 'fas fa-stethoscope' => 'stethoscope',
839
- 'fab fa-sticker-mule' => 'sticker-mule',
840
- 'fas fa-sticky-note' => 'sticky-note',
841
- 'far fa-sticky-note' => 'sticky-note',
842
- 'fas fa-stop' => 'stop',
843
- 'fas fa-stop-circle' => 'stop-circle',
844
- 'far fa-stop-circle' => 'stop-circle',
845
- 'fas fa-stopwatch' => 'stopwatch',
846
- 'fab fa-strava' => 'strava',
847
- 'fas fa-street-view' => 'street-view',
848
- 'fas fa-strikethrough' => 'strikethrough',
849
- 'fab fa-stripe' => 'stripe',
850
- 'fab fa-stripe-s' => 'stripe-s',
851
- 'fab fa-studiovinari' => 'studiovinari',
852
- 'fab fa-stumbleupon' => 'stumbleupon',
853
- 'fab fa-stumbleupon-circle' => 'stumbleupon-circle',
854
- 'fas fa-subscript' => 'subscript',
855
- 'fas fa-subway' => 'subway',
856
- 'fas fa-suitcase' => 'suitcase',
857
- 'fas fa-sun' => 'sun',
858
- 'far fa-sun' => 'sun',
859
- 'fab fa-superpowers' => 'superpowers',
860
- 'fas fa-superscript' => 'superscript',
861
- 'fab fa-supple' => 'supple',
862
- 'fas fa-sync' => 'sync',
863
- 'fas fa-sync-alt' => 'sync-alt',
864
- 'fas fa-syringe' => 'syringe',
865
- 'fas fa-table' => 'table',
866
- 'fas fa-table-tennis' => 'table-tennis',
867
- 'fas fa-tablet' => 'tablet',
868
- 'fas fa-tablet-alt' => 'tablet-alt',
869
- 'fas fa-tablets' => 'tablets',
870
- 'fas fa-tachometer-alt' => 'tachometer-alt',
871
- 'fas fa-tag' => 'tag',
872
- 'fas fa-tags' => 'tags',
873
- 'fas fa-tape' => 'tape',
874
- 'fas fa-tasks' => 'tasks',
875
- 'fas fa-taxi' => 'taxi',
876
- 'fab fa-telegram' => 'telegram',
877
- 'fab fa-telegram-plane' => 'telegram-plane',
878
- 'fab fa-tencent-weibo' => 'tencent-weibo',
879
- 'fas fa-terminal' => 'terminal',
880
- 'fas fa-text-height' => 'text-height',
881
- 'fas fa-text-width' => 'text-width',
882
- 'fas fa-th' => 'th',
883
- 'fas fa-th-large' => 'th-large',
884
- 'fas fa-th-list' => 'th-list',
885
- 'fab fa-themeisle' => 'themeisle',
886
- 'fas fa-thermometer' => 'thermometer',
887
- 'fas fa-thermometer-empty' => 'thermometer-empty',
888
- 'fas fa-thermometer-full' => 'thermometer-full',
889
- 'fas fa-thermometer-half' => 'thermometer-half',
890
- 'fas fa-thermometer-quarter' => 'thermometer-quarter',
891
- 'fas fa-thermometer-three-quarters' => 'thermometer-three-quarters',
892
- 'fas fa-thumbs-down' => 'thumbs-down',
893
- 'far fa-thumbs-down' => 'thumbs-down',
894
- 'fas fa-thumbs-up' => 'thumbs-up',
895
- 'far fa-thumbs-up' => 'thumbs-up',
896
- 'fas fa-thumbtack' => 'thumbtack',
897
- 'fas fa-ticket-alt' => 'ticket-alt',
898
- 'fas fa-times' => 'times',
899
- 'fas fa-times-circle' => 'times-circle',
900
- 'far fa-times-circle' => 'times-circle',
901
- 'fas fa-tint' => 'tint',
902
- 'fas fa-toggle-off' => 'toggle-off',
903
- 'fas fa-toggle-on' => 'toggle-on',
904
- 'fas fa-trademark' => 'trademark',
905
- 'fas fa-train' => 'train',
906
- 'fas fa-transgender' => 'transgender',
907
- 'fas fa-transgender-alt' => 'transgender-alt',
908
- 'fas fa-trash' => 'trash',
909
- 'fas fa-trash-alt' => 'trash-alt',
910
- 'far fa-trash-alt' => 'trash-alt',
911
- 'fas fa-tree' => 'tree',
912
- 'fab fa-trello' => 'trello',
913
- 'fab fa-tripadvisor' => 'tripadvisor',
914
- 'fas fa-trophy' => 'trophy',
915
- 'fas fa-truck' => 'truck',
916
- 'fas fa-truck-loading' => 'truck-loading',
917
- 'fas fa-truck-moving' => 'truck-moving',
918
- 'fas fa-tty' => 'tty',
919
- 'fab fa-tumblr' => 'tumblr',
920
- 'fab fa-tumblr-square' => 'tumblr-square',
921
- 'fas fa-tv' => 'tv',
922
- 'fab fa-twitch' => 'twitch',
923
- 'fab fa-twitter' => 'twitter',
924
- 'fab fa-twitter-square' => 'twitter-square',
925
- 'fab fa-typo3' => 'typo3',
926
- 'fab fa-uber' => 'uber',
927
- 'fab fa-uikit' => 'uikit',
928
- 'fas fa-umbrella' => 'umbrella',
929
- 'fas fa-underline' => 'underline',
930
- 'fas fa-undo' => 'undo',
931
- 'fas fa-undo-alt' => 'undo-alt',
932
- 'fab fa-uniregistry' => 'uniregistry',
933
- 'fas fa-universal-access' => 'universal-access',
934
- 'fas fa-university' => 'university',
935
- 'fas fa-unlink' => 'unlink',
936
- 'fas fa-unlock' => 'unlock',
937
- 'fas fa-unlock-alt' => 'unlock-alt',
938
- 'fab fa-untappd' => 'untappd',
939
- 'fas fa-upload' => 'upload',
940
- 'fab fa-usb' => 'usb',
941
- 'fas fa-user' => 'user',
942
- 'far fa-user' => 'user',
943
- 'fas fa-user-circle' => 'user-circle',
944
- 'far fa-user-circle' => 'user-circle',
945
- 'fas fa-user-md' => 'user-md',
946
- 'fas fa-user-plus' => 'user-plus',
947
- 'fas fa-user-secret' => 'user-secret',
948
- 'fas fa-user-times' => 'user-times',
949
- 'fas fa-users' => 'users',
950
- 'fab fa-ussunnah' => 'ussunnah',
951
- 'fas fa-utensil-spoon' => 'utensil-spoon',
952
- 'fas fa-utensils' => 'utensils',
953
- 'fab fa-vaadin' => 'vaadin',
954
- 'fas fa-venus' => 'venus',
955
- 'fas fa-venus-double' => 'venus-double',
956
- 'fas fa-venus-mars' => 'venus-mars',
957
- 'fab fa-viacoin' => 'viacoin',
958
- 'fab fa-viadeo' => 'viadeo',
959
- 'fab fa-viadeo-square' => 'viadeo-square',
960
- 'fas fa-vial' => 'vial',
961
- 'fas fa-vials' => 'vials',
962
- 'fab fa-viber' => 'viber',
963
- 'fas fa-video' => 'video',
964
- 'fas fa-video-slash' => 'video-slash',
965
- 'fab fa-vimeo' => 'vimeo',
966
- 'fab fa-vimeo-square' => 'vimeo-square',
967
- 'fab fa-vimeo-v' => 'vimeo-v',
968
- 'fab fa-vine' => 'vine',
969
- 'fab fa-vk' => 'vk',
970
- 'fab fa-vnv' => 'vnv',
971
- 'fas fa-volleyball-ball' => 'volleyball-ball',
972
- 'fas fa-volume-down' => 'volume-down',
973
- 'fas fa-volume-off' => 'volume-off',
974
- 'fas fa-volume-up' => 'volume-up',
975
- 'fab fa-vuejs' => 'vuejs',
976
- 'fas fa-warehouse' => 'warehouse',
977
- 'fab fa-weibo' => 'weibo',
978
- 'fas fa-weight' => 'weight',
979
- 'fab fa-weixin' => 'weixin',
980
- 'fab fa-whatsapp' => 'whatsapp',
981
- 'fab fa-whatsapp-square' => 'whatsapp-square',
982
- 'fas fa-wheelchair' => 'wheelchair',
983
- 'fab fa-whmcs' => 'whmcs',
984
- 'fas fa-wifi' => 'wifi',
985
- 'fab fa-wikipedia-w' => 'wikipedia-w',
986
- 'fas fa-window-close' => 'window-close',
987
- 'far fa-window-close' => 'window-close',
988
- 'fas fa-window-maximize' => 'window-maximize',
989
- 'far fa-window-maximize' => 'window-maximize',
990
- 'fas fa-window-minimize' => 'window-minimize',
991
- 'far fa-window-minimize' => 'window-minimize',
992
- 'fas fa-window-restore' => 'window-restore',
993
- 'far fa-window-restore' => 'window-restore',
994
- 'fab fa-windows' => 'windows',
995
- 'fas fa-wine-glass' => 'wine-glass',
996
- 'fas fa-won-sign' => 'won-sign',
997
- 'fab fa-wordpress' => 'wordpress',
998
- 'fab fa-wordpress-simple' => 'wordpress-simple',
999
- 'fab fa-wpbeginner' => 'wpbeginner',
1000
- 'fab fa-wpexplorer' => 'wpexplorer',
1001
- 'fab fa-wpforms' => 'wpforms',
1002
- 'fas fa-wrench' => 'wrench',
1003
- 'fas fa-x-ray' => 'x-ray',
1004
- 'fab fa-xbox' => 'xbox',
1005
- 'fab fa-xing' => 'xing',
1006
- 'fab fa-xing-square' => 'xing-square',
1007
- 'fab fa-y-combinator' => 'y-combinator',
1008
- 'fab fa-yahoo' => 'yahoo',
1009
- 'fab fa-yandex' => 'yandex',
1010
- 'fab fa-yandex-international' => 'yandex-international',
1011
- 'fab fa-yelp' => 'yelp',
1012
- 'fas fa-yen-sign' => 'yen-sign',
1013
- 'fab fa-yoast' => 'yoast',
1014
- 'fab fa-youtube' => 'youtube',
1015
- 'fab fa-youtube-square' => 'youtube-square',
1016
- );
1017
- }
1018
- }
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+ /**
4
+ * The fontawesome functionality of the plugin.
5
+ *
6
+ * @link http://rextheme.com/
7
+ * @since 1.0.0
8
+ *
9
+ * @package
10
+ * @subpackage /admin
11
+ */
12
+
13
+ class Wpvr_fontawesome_icons {
14
+
15
+ public $icon;
16
+
17
+ /**
18
+ * Admin icon setup is specified in this area.
19
+ */
20
+
21
+ public function __construct() {
22
+
23
+ $this->icon = array (
24
+ 'none' => 'None',
25
+ 'fab fa-500px' => '500px',
26
+ 'fab fa-accessible-icon' => 'accessible-icon',
27
+ 'fab fa-accusoft' => 'accusoft',
28
+ 'fas fa-address-book' => 'address-book',
29
+ 'far fa-address-book' => 'address-book',
30
+ 'fas fa-address-card' => 'address-card',
31
+ 'far fa-address-card' => 'address-card',
32
+ 'fas fa-adjust' => 'adjust',
33
+ 'fab fa-adn' => 'adn',
34
+ 'fab fa-adversal' => 'adversal',
35
+ 'fab fa-affiliatetheme' => 'affiliatetheme',
36
+ 'fab fa-algolia' => 'algolia',
37
+ 'fas fa-align-center' => 'align-center',
38
+ 'fas fa-align-justify' => 'align-justify',
39
+ 'fas fa-align-left' => 'align-left',
40
+ 'fas fa-align-right' => 'align-right',
41
+ 'fas fa-allergies' => 'allergies',
42
+ 'fab fa-amazon' => 'amazon',
43
+ 'fab fa-amazon-pay' => 'amazon-pay',
44
+ 'fas fa-ambulance' => 'ambulance',
45
+ 'fas fa-american-sign-language-interpreting' => 'american-sign-language-interpreting',
46
+ 'fab fa-amilia' => 'amilia',
47
+ 'fas fa-anchor' => 'anchor',
48
+ 'fab fa-android' => 'android',
49
+ 'fab fa-angellist' => 'angellist',
50
+ 'fas fa-angle-double-down' => 'angle-double-down',
51
+ 'fas fa-angle-double-left' => 'angle-double-left',
52
+ 'fas fa-angle-double-right' => 'angle-double-right',
53
+ 'fas fa-angle-double-up' => 'angle-double-up',
54
+ 'fas fa-angle-down' => 'angle-down',
55
+ 'fas fa-angle-left' => 'angle-left',
56
+ 'fas fa-angle-right' => 'angle-right',
57
+ 'fas fa-angle-up' => 'angle-up',
58
+ 'fab fa-angrycreative' => 'angrycreative',
59
+ 'fab fa-angular' => 'angular',
60
+ 'fab fa-app-store' => 'app-store',
61
+ 'fab fa-app-store-ios' => 'app-store-ios',
62
+ 'fab fa-apper' => 'apper',
63
+ 'fab fa-apple' => 'apple',
64
+ 'fab fa-apple-pay' => 'apple-pay',
65
+ 'fas fa-archive' => 'archive',
66
+ 'fas fa-arrow-alt-circle-down' => 'arrow-alt-circle-down',
67
+ 'far fa-arrow-alt-circle-down' => 'arrow-alt-circle-down',
68
+ 'fas fa-arrow-alt-circle-left' => 'arrow-alt-circle-left',
69
+ 'far fa-arrow-alt-circle-left' => 'arrow-alt-circle-left',
70
+ 'fas fa-arrow-alt-circle-right' => 'arrow-alt-circle-right',
71
+ 'far fa-arrow-alt-circle-right' => 'arrow-alt-circle-right',
72
+ 'fas fa-arrow-alt-circle-up' => 'arrow-alt-circle-up',
73
+ 'far fa-arrow-alt-circle-up' => 'arrow-alt-circle-up',
74
+ 'fas fa-arrow-circle-down' => 'arrow-circle-down',
75
+ 'fas fa-arrow-circle-left' => 'arrow-circle-left',
76
+ 'fas fa-arrow-circle-right' => 'arrow-circle-right',
77
+ 'fas fa-arrow-circle-up' => 'arrow-circle-up',
78
+ 'fas fa-arrow-down' => 'arrow-down',
79
+ 'fas fa-arrow-left' => 'arrow-left',
80
+ 'fas fa-arrow-right' => 'arrow-right',
81
+ 'fas fa-arrow-up' => 'arrow-up',
82
+ 'fas fa-arrows-alt' => 'arrows-alt',
83
+ 'fas fa-arrows-alt-h' => 'arrows-alt-h',
84
+ 'fas fa-arrows-alt-v' => 'arrows-alt-v',
85
+ 'fas fa-assistive-listening-systems' => 'assistive-listening-systems',
86
+ 'fas fa-asterisk' => 'asterisk',
87
+ 'fab fa-asymmetrik' => 'asymmetrik',
88
+ 'fas fa-at' => 'at',
89
+ 'fab fa-audible' => 'audible',
90
+ 'fas fa-audio-description' => 'audio-description',
91
+ 'fab fa-autoprefixer' => 'autoprefixer',
92
+ 'fab fa-avianex' => 'avianex',
93
+ 'fab fa-aviato' => 'aviato',
94
+ 'fab fa-aws' => 'aws',
95
+ 'fas fa-backward' => 'backward',
96
+ 'fas fa-balance-scale' => 'balance-scale',
97
+ 'fas fa-ban' => 'ban',
98
+ 'fas fa-band-aid' => 'band-aid',
99
+ 'fab fa-bandcamp' => 'bandcamp',
100
+ 'fas fa-barcode' => 'barcode',
101
+ 'fas fa-bars' => 'bars',
102
+ 'fas fa-baseball-ball' => 'baseball-ball',
103
+ 'fas fa-basketball-ball' => 'basketball-ball',
104
+ 'fas fa-bath' => 'bath',
105
+ 'fas fa-battery-empty' => 'battery-empty',
106
+ 'fas fa-battery-full' => 'battery-full',
107
+ 'fas fa-battery-half' => 'battery-half',
108
+ 'fas fa-battery-quarter' => 'battery-quarter',
109
+ 'fas fa-battery-three-quarters' => 'battery-three-quarters',
110
+ 'fas fa-bed' => 'bed',
111
+ 'fas fa-beer' => 'beer',
112
+ 'fab fa-behance' => 'behance',
113
+ 'fab fa-behance-square' => 'behance-square',
114
+ 'fas fa-bell' => 'bell',
115
+ 'far fa-bell' => 'bell',
116
+ 'fas fa-bell-slash' => 'bell-slash',
117
+ 'far fa-bell-slash' => 'bell-slash',
118
+ 'fas fa-bicycle' => 'bicycle',
119
+ 'fab fa-bimobject' => 'bimobject',
120
+ 'fas fa-binoculars' => 'binoculars',
121
+ 'fas fa-birthday-cake' => 'birthday-cake',
122
+ 'fab fa-bitbucket' => 'bitbucket',
123
+ 'fab fa-bitcoin' => 'bitcoin',
124
+ 'fab fa-bity' => 'bity',
125
+ 'fab fa-black-tie' => 'black-tie',
126
+ 'fab fa-blackberry' => 'blackberry',
127
+ 'fas fa-blind' => 'blind',
128
+ 'fab fa-blogger' => 'blogger',
129
+ 'fab fa-blogger-b' => 'blogger-b',
130
+ 'fab fa-bluetooth' => 'bluetooth',
131
+ 'fab fa-bluetooth-b' => 'bluetooth-b',
132
+ 'fas fa-bold' => 'bold',
133
+ 'fas fa-bolt' => 'bolt',
134
+ 'fas fa-bomb' => 'bomb',
135
+ 'fas fa-book' => 'book',
136
+ 'fas fa-bookmark' => 'bookmark',
137
+ 'far fa-bookmark' => 'bookmark',
138
+ 'fas fa-bowling-ball' => 'bowling-ball',
139
+ 'fas fa-box' => 'box',
140
+ 'fas fa-box-open' => 'box-open',
141
+ 'fas fa-boxes' => 'boxes',
142
+ 'fas fa-braille' => 'braille',
143
+ 'fas fa-briefcase' => 'briefcase',
144
+ 'fas fa-briefcase-medical' => 'briefcase-medical',
145
+ 'fab fa-btc' => 'btc',
146
+ 'fas fa-bug' => 'bug',
147
+ 'fas fa-building' => 'building',
148
+ 'far fa-building' => 'building',
149
+ 'fas fa-bullhorn' => 'bullhorn',
150
+ 'fas fa-bullseye' => 'bullseye',
151
+ 'fas fa-burn' => 'burn',
152
+ 'fab fa-buromobelexperte' => 'buromobelexperte',
153
+ 'fas fa-bus' => 'bus',
154
+ 'fab fa-buysellads' => 'buysellads',
155
+ 'fas fa-calculator' => 'calculator',
156
+ 'fas fa-calendar' => 'calendar',
157
+ 'far fa-calendar' => 'calendar',
158
+ 'fas fa-calendar-alt' => 'calendar-alt',
159
+ 'far fa-calendar-alt' => 'calendar-alt',
160
+ 'fas fa-calendar-check' => 'calendar-check',
161
+ 'far fa-calendar-check' => 'calendar-check',
162
+ 'fas fa-calendar-minus' => 'calendar-minus',
163
+ 'far fa-calendar-minus' => 'calendar-minus',
164
+ 'fas fa-calendar-plus' => 'calendar-plus',
165
+ 'far fa-calendar-plus' => 'calendar-plus',
166
+ 'fas fa-calendar-times' => 'calendar-times',
167
+ 'far fa-calendar-times' => 'calendar-times',
168
+ 'fas fa-camera' => 'camera',
169
+ 'fas fa-camera-retro' => 'camera-retro',
170
+ 'fas fa-capsules' => 'capsules',
171
+ 'fas fa-car' => 'car',
172
+ 'fas fa-caret-down' => 'caret-down',
173
+ 'fas fa-caret-left' => 'caret-left',
174
+ 'fas fa-caret-right' => 'caret-right',
175
+ 'fas fa-caret-square-down' => 'caret-square-down',
176
+ 'far fa-caret-square-down' => 'caret-square-down',
177
+ 'fas fa-caret-square-left' => 'caret-square-left',
178
+ 'far fa-caret-square-left' => 'caret-square-left',
179
+ 'fas fa-caret-square-right' => 'caret-square-right',
180
+ 'far fa-caret-square-right' => 'caret-square-right',
181
+ 'fas fa-caret-square-up' => 'caret-square-up',
182
+ 'far fa-caret-square-up' => 'caret-square-up',
183
+ 'fas fa-caret-up' => 'caret-up',
184
+ 'fas fa-cart-arrow-down' => 'cart-arrow-down',
185
+ 'fas fa-cart-plus' => 'cart-plus',
186
+ 'fab fa-cc-amazon-pay' => 'cc-amazon-pay',
187
+ 'fab fa-cc-amex' => 'cc-amex',
188
+ 'fab fa-cc-apple-pay' => 'cc-apple-pay',
189
+ 'fab fa-cc-diners-club' => 'cc-diners-club',
190
+ 'fab fa-cc-discover' => 'cc-discover',
191
+ 'fab fa-cc-jcb' => 'cc-jcb',
192
+ 'fab fa-cc-mastercard' => 'cc-mastercard',
193
+ 'fab fa-cc-paypal' => 'cc-paypal',
194
+ 'fab fa-cc-stripe' => 'cc-stripe',
195
+ 'fab fa-cc-visa' => 'cc-visa',
196
+ 'fab fa-centercode' => 'centercode',
197
+ 'fas fa-certificate' => 'certificate',
198
+ 'fas fa-chart-area' => 'chart-area',
199
+ 'fas fa-chart-bar' => 'chart-bar',
200
+ 'far fa-chart-bar' => 'chart-bar',
201
+ 'fas fa-chart-line' => 'chart-line',
202
+ 'fas fa-chart-pie' => 'chart-pie',
203
+ 'fas fa-check' => 'check',
204
+ 'fas fa-check-circle' => 'check-circle',
205
+ 'far fa-check-circle' => 'check-circle',
206
+ 'fas fa-check-square' => 'check-square',
207
+ 'far fa-check-square' => 'check-square',
208
+ 'fas fa-chess' => 'chess',
209
+ 'fas fa-chess-bishop' => 'chess-bishop',
210
+ 'fas fa-chess-board' => 'chess-board',
211
+ 'fas fa-chess-king' => 'chess-king',
212
+ 'fas fa-chess-knight' => 'chess-knight',
213
+ 'fas fa-chess-pawn' => 'chess-pawn',
214
+ 'fas fa-chess-queen' => 'chess-queen',
215
+ 'fas fa-chess-rook' => 'chess-rook',
216
+ 'fas fa-chevron-circle-down' => 'chevron-circle-down',
217
+ 'fas fa-chevron-circle-left' => 'chevron-circle-left',
218
+ 'fas fa-chevron-circle-right' => 'chevron-circle-right',
219
+ 'fas fa-chevron-circle-up' => 'chevron-circle-up',
220
+ 'fas fa-chevron-down' => 'chevron-down',
221
+ 'fas fa-chevron-left' => 'chevron-left',
222
+ 'fas fa-chevron-right' => 'chevron-right',
223
+ 'fas fa-chevron-up' => 'chevron-up',
224
+ 'fas fa-child' => 'child',
225
+ 'fab fa-chrome' => 'chrome',
226
+ 'fas fa-circle' => 'circle',
227
+ 'far fa-circle' => 'circle',
228
+ 'fas fa-circle-notch' => 'circle-notch',
229
+ 'fas fa-clipboard' => 'clipboard',
230
+ 'far fa-clipboard' => 'clipboard',
231
+ 'fas fa-clipboard-check' => 'clipboard-check',
232
+ 'fas fa-clipboard-list' => 'clipboard-list',
233
+ 'fas fa-clock' => 'clock',
234
+ 'far fa-clock' => 'clock',
235
+ 'fas fa-clone' => 'clone',
236
+ 'far fa-clone' => 'clone',
237
+ 'fas fa-closed-captioning' => 'closed-captioning',
238
+ 'far fa-closed-captioning' => 'closed-captioning',
239
+ 'fas fa-cloud' => 'cloud',
240
+ 'fas fa-cloud-download-alt' => 'cloud-download-alt',
241
+ 'fas fa-cloud-upload-alt' => 'cloud-upload-alt',
242
+ 'fab fa-cloudscale' => 'cloudscale',
243
+ 'fab fa-cloudsmith' => 'cloudsmith',
244
+ 'fab fa-cloudversify' => 'cloudversify',
245
+ 'fas fa-code' => 'code',
246
+ 'fas fa-code-branch' => 'code-branch',
247
+ 'fab fa-codepen' => 'codepen',
248
+ 'fab fa-codiepie' => 'codiepie',
249
+ 'fas fa-coffee' => 'coffee',
250
+ 'fas fa-cog' => 'cog',
251
+ 'fas fa-cogs' => 'cogs',
252
+ 'fas fa-columns' => 'columns',
253
+ 'fas fa-comment' => 'comment',
254
+ 'far fa-comment' => 'comment',
255
+ 'fas fa-comment-alt' => 'comment-alt',
256
+ 'far fa-comment-alt' => 'comment-alt',
257
+ 'fas fa-comment-dots' => 'comment-dots',
258
+ 'fas fa-comment-slash' => 'comment-slash',
259
+ 'fas fa-comments' => 'comments',
260
+ 'far fa-comments' => 'comments',
261
+ 'fas fa-compass' => 'compass',
262
+ 'far fa-compass' => 'compass',
263
+ 'fas fa-compress' => 'compress',
264
+ 'fab fa-connectdevelop' => 'connectdevelop',
265
+ 'fab fa-contao' => 'contao',
266
+ 'fas fa-copy' => 'copy',
267
+ 'far fa-copy' => 'copy',
268
+ 'fas fa-copyright' => 'copyright',
269
+ 'far fa-copyright' => 'copyright',
270
+ 'fas fa-couch' => 'couch',
271
+ 'fab fa-cpanel' => 'cpanel',
272
+ 'fab fa-creative-commons' => 'creative-commons',
273
+ 'fas fa-credit-card' => 'credit-card',
274
+ 'far fa-credit-card' => 'credit-card',
275
+ 'fas fa-crop' => 'crop',
276
+ 'fas fa-crosshairs' => 'crosshairs',
277
+ 'fab fa-css3' => 'css3',
278
+ 'fab fa-css3-alt' => 'css3-alt',
279
+ 'fas fa-cube' => 'cube',
280
+ 'fas fa-cubes' => 'cubes',
281
+ 'fas fa-cut' => 'cut',
282
+ 'fab fa-cuttlefish' => 'cuttlefish',
283
+ 'fab fa-d-and-d' => 'd-and-d',
284
+ 'fab fa-dashcube' => 'dashcube',
285
+ 'fas fa-database' => 'database',
286
+ 'fas fa-deaf' => 'deaf',
287
+ 'fab fa-delicious' => 'delicious',
288
+ 'fab fa-deploydog' => 'deploydog',
289
+ 'fab fa-deskpro' => 'deskpro',
290
+ 'fas fa-desktop' => 'desktop',
291
+ 'fab fa-deviantart' => 'deviantart',
292
+ 'fas fa-diagnoses' => 'diagnoses',
293
+ 'fab fa-digg' => 'digg',
294
+ 'fab fa-digital-ocean' => 'digital-ocean',
295
+ 'fab fa-discord' => 'discord',
296
+ 'fab fa-discourse' => 'discourse',
297
+ 'fas fa-dna' => 'dna',
298
+ 'fab fa-dochub' => 'dochub',
299
+ 'fab fa-docker' => 'docker',
300
+ 'fas fa-dollar-sign' => 'dollar-sign',
301
+ 'fas fa-dolly' => 'dolly',
302
+ 'fas fa-dolly-flatbed' => 'dolly-flatbed',
303
+ 'fas fa-donate' => 'donate',
304
+ 'fas fa-dot-circle' => 'dot-circle',
305
+ 'far fa-dot-circle' => 'dot-circle',
306
+ 'fas fa-dove' => 'dove',
307
+ 'fas fa-download' => 'download',
308
+ 'fab fa-draft2digital' => 'draft2digital',
309
+ 'fab fa-dribbble' => 'dribbble',
310
+ 'fab fa-dribbble-square' => 'dribbble-square',
311
+ 'fab fa-dropbox' => 'dropbox',
312
+ 'fab fa-drupal' => 'drupal',
313
+ 'fab fa-dyalog' => 'dyalog',
314
+ 'fab fa-earlybirds' => 'earlybirds',
315
+ 'fab fa-edge' => 'edge',
316
+ 'fas fa-edit' => 'edit',
317
+ 'far fa-edit' => 'edit',
318
+ 'fas fa-eject' => 'eject',
319
+ 'fab fa-elementor' => 'elementor',
320
+ 'fas fa-ellipsis-h' => 'ellipsis-h',
321
+ 'fas fa-ellipsis-v' => 'ellipsis-v',
322
+ 'fab fa-ember' => 'ember',
323
+ 'fab fa-empire' => 'empire',
324
+ 'fas fa-envelope' => 'envelope',
325
+ 'far fa-envelope' => 'envelope',
326
+ 'fas fa-envelope-open' => 'envelope-open',
327
+ 'far fa-envelope-open' => 'envelope-open',
328
+ 'fas fa-envelope-square' => 'envelope-square',
329
+ 'fab fa-envira' => 'envira',
330
+ 'fas fa-eraser' => 'eraser',
331
+ 'fab fa-erlang' => 'erlang',
332
+ 'fab fa-ethereum' => 'ethereum',
333
+ 'fab fa-etsy' => 'etsy',
334
+ 'fas fa-euro-sign' => 'euro-sign',
335
+ 'fas fa-exchange-alt' => 'exchange-alt',
336
+ 'fas fa-exclamation' => 'exclamation',
337
+ 'fas fa-exclamation-circle' => 'exclamation-circle',
338
+ 'fas fa-exclamation-triangle' => 'exclamation-triangle',
339
+ 'fas fa-expand' => 'expand',
340
+ 'fas fa-expand-arrows-alt' => 'expand-arrows-alt',
341
+ 'fab fa-expeditedssl' => 'expeditedssl',
342
+ 'fas fa-external-link-alt' => 'external-link-alt',
343
+ 'fas fa-external-link-square-alt' => 'external-link-square-alt',
344
+ 'fas fa-eye' => 'eye',
345
+ 'fas fa-eye-dropper' => 'eye-dropper',
346
+ 'fas fa-eye-slash' => 'eye-slash',
347
+ 'far fa-eye-slash' => 'eye-slash',
348
+ 'fab fa-facebook' => 'facebook',
349
+ 'fab fa-facebook-f' => 'facebook-f',
350
+ 'fab fa-facebook-messenger' => 'facebook-messenger',
351
+ 'fab fa-facebook-square' => 'facebook-square',
352
+ 'fas fa-fast-backward' => 'fast-backward',
353
+ 'fas fa-fast-forward' => 'fast-forward',
354
+ 'fas fa-fax' => 'fax',
355
+ 'fas fa-female' => 'female',
356
+ 'fas fa-fighter-jet' => 'fighter-jet',
357
+ 'fas fa-file' => 'file',
358
+ 'far fa-file' => 'file',
359
+ 'fas fa-file-alt' => 'file-alt',
360
+ 'far fa-file-alt' => 'file-alt',
361
+ 'fas fa-file-archive' => 'file-archive',
362
+ 'far fa-file-archive' => 'file-archive',
363
+ 'fas fa-file-audio' => 'file-audio',
364
+ 'far fa-file-audio' => 'file-audio',
365
+ 'fas fa-file-code' => 'file-code',
366
+ 'far fa-file-code' => 'file-code',
367
+ 'fas fa-file-excel' => 'file-excel',
368
+ 'far fa-file-excel' => 'file-excel',
369
+ 'fas fa-file-image' => 'file-image',
370
+ 'far fa-file-image' => 'file-image',
371
+ 'fas fa-file-medical' => 'file-medical',
372
+ 'fas fa-file-medical-alt' => 'file-medical-alt',
373
+ 'fas fa-file-pdf' => 'file-pdf',
374
+ 'far fa-file-pdf' => 'file-pdf',
375
+ 'fas fa-file-powerpoint' => 'file-powerpoint',
376
+ 'far fa-file-powerpoint' => 'file-powerpoint',
377
+ 'fas fa-file-video' => 'file-video',
378
+ 'far fa-file-video' => 'file-video',
379
+ 'fas fa-file-word' => 'file-word',
380
+ 'far fa-file-word' => 'file-word',
381
+ 'fas fa-film' => 'film',
382
+ 'fas fa-filter' => 'filter',
383
+ 'fas fa-fire' => 'fire',
384
+ 'fas fa-fire-extinguisher' => 'fire-extinguisher',
385
+ 'fab fa-firefox' => 'firefox',
386
+ 'fas fa-first-aid' => 'first-aid',
387
+ 'fab fa-first-order' => 'first-order',
388
+ 'fab fa-firstdraft' => 'firstdraft',
389
+ 'fas fa-flag' => 'flag',
390
+ 'far fa-flag' => 'flag',
391
+ 'fas fa-flag-checkered' => 'flag-checkered',
392
+ 'fas fa-flask' => 'flask',
393
+ 'fab fa-flickr' => 'flickr',
394
+ 'fab fa-flipboard' => 'flipboard',
395
+ 'fab fa-fly' => 'fly',
396
+ 'fas fa-folder' => 'folder',
397
+ 'far fa-folder' => 'folder',
398
+ 'fas fa-folder-open' => 'folder-open',
399
+ 'far fa-folder-open' => 'folder-open',
400
+ 'fas fa-font' => 'font',
401
+ 'fab fa-font-awesome' => 'font-awesome',
402
+ 'fab fa-font-awesome-alt' => 'font-awesome-alt',
403
+ 'fab fa-font-awesome-flag' => 'font-awesome-flag',
404
+ 'fab fa-fonticons' => 'fonticons',
405
+ 'fab fa-fonticons-fi' => 'fonticons-fi',
406
+ 'fas fa-football-ball' => 'football-ball',
407
+ 'fab fa-fort-awesome' => 'fort-awesome',
408
+ 'fab fa-fort-awesome-alt' => 'fort-awesome-alt',
409
+ 'fab fa-forumbee' => 'forumbee',
410
+ 'fas fa-forward' => 'forward',
411
+ 'fab fa-foursquare' => 'foursquare',
412
+ 'fab fa-free-code-camp' => 'free-code-camp',
413
+ 'fab fa-freebsd' => 'freebsd',
414
+ 'fas fa-frown' => 'frown',
415
+ 'far fa-frown' => 'frown',
416
+ 'fas fa-futbol' => 'futbol',
417
+ 'far fa-futbol' => 'futbol',
418
+ 'fas fa-gamepad' => 'gamepad',
419
+ 'fas fa-gavel' => 'gavel',
420
+ 'fas fa-gem' => 'gem',
421
+ 'far fa-gem' => 'gem',
422
+ 'fas fa-genderless' => 'genderless',
423
+ 'fab fa-get-pocket' => 'get-pocket',
424
+ 'fab fa-gg' => 'gg',
425
+ 'fab fa-gg-circle' => 'gg-circle',
426
+ 'fas fa-gift' => 'gift',
427
+ 'fab fa-git' => 'git',
428
+ 'fab fa-git-square' => 'git-square',
429
+ 'fab fa-github' => 'github',
430
+ 'fab fa-github-alt' => 'github-alt',
431
+ 'fab fa-github-square' => 'github-square',
432
+ 'fab fa-gitkraken' => 'gitkraken',
433
+ 'fab fa-gitlab' => 'gitlab',
434
+ 'fab fa-gitter' => 'gitter',
435
+ 'fas fa-glass-martini' => 'glass-martini',
436
+ 'fab fa-glide' => 'glide',
437
+ 'fab fa-glide-g' => 'glide-g',
438
+ 'fas fa-globe' => 'globe',
439
+ 'fab fa-gofore' => 'gofore',
440
+ 'fas fa-golf-ball' => 'golf-ball',
441
+ 'fab fa-goodreads' => 'goodreads',
442
+ 'fab fa-goodreads-g' => 'goodreads-g',
443
+ 'fab fa-google' => 'google',
444
+ 'fab fa-google-drive' => 'google-drive',
445
+ 'fab fa-google-play' => 'google-play',
446
+ 'fab fa-google-plus' => 'google-plus',
447
+ 'fab fa-google-plus-g' => 'google-plus-g',
448
+ 'fab fa-google-plus-square' => 'google-plus-square',
449
+ 'fab fa-google-wallet' => 'google-wallet',
450
+ 'fas fa-graduation-cap' => 'graduation-cap',
451
+ 'fab fa-gratipay' => 'gratipay',
452
+ 'fab fa-grav' => 'grav',
453
+ 'fab fa-gripfire' => 'gripfire',
454
+ 'fab fa-grunt' => 'grunt',
455
+ 'fab fa-gulp' => 'gulp',
456
+ 'fas fa-h-square' => 'h-square',
457
+ 'fab fa-hacker-news' => 'hacker-news',
458
+ 'fab fa-hacker-news-square' => 'hacker-news-square',
459
+ 'fas fa-hand-holding' => 'hand-holding',
460
+ 'fas fa-hand-holding-heart' => 'hand-holding-heart',
461
+ 'fas fa-hand-holding-usd' => 'hand-holding-usd',
462
+ 'fas fa-hand-lizard' => 'hand-lizard',
463
+ 'far fa-hand-lizard' => 'hand-lizard',
464
+ 'fas fa-hand-paper' => 'hand-paper',
465
+ 'far fa-hand-paper' => 'hand-paper',
466
+ 'fas fa-hand-peace' => 'hand-peace',
467
+ 'far fa-hand-peace' => 'hand-peace',
468
+ 'fas fa-hand-point-down' => 'hand-point-down',
469
+ 'far fa-hand-point-down' => 'hand-point-down',
470
+ 'fas fa-hand-point-left' => 'hand-point-left',
471
+ 'far fa-hand-point-left' => 'hand-point-left',
472
+ 'fas fa-hand-point-right' => 'hand-point-right',
473
+ 'far fa-hand-point-right' => 'hand-point-right',
474
+ 'fas fa-hand-point-up' => 'hand-point-up',
475
+ 'far fa-hand-point-up' => 'hand-point-up',
476
+ 'fas fa-hand-pointer' => 'hand-pointer',
477
+ 'far fa-hand-pointer' => 'hand-pointer',
478
+ 'fas fa-hand-rock' => 'hand-rock',
479
+ 'far fa-hand-rock' => 'hand-rock',
480
+ 'fas fa-hand-scissors' => 'hand-scissors',
481
+ 'far fa-hand-scissors' => 'hand-scissors',
482
+ 'fas fa-hand-spock' => 'hand-spock',
483
+ 'far fa-hand-spock' => 'hand-spock',
484
+ 'fas fa-hands' => 'hands',
485
+ 'fas fa-hands-helping' => 'hands-helping',
486
+ 'fas fa-handshake' => 'handshake',
487
+ 'far fa-handshake' => 'handshake',
488
+ 'fas fa-hashtag' => 'hashtag',
489
+ 'fas fa-hdd' => 'hdd',
490
+ 'far fa-hdd' => 'hdd',
491
+ 'fas fa-heading' => 'heading',
492
+ 'fas fa-headphones' => 'headphones',
493
+ 'fas fa-heart' => 'heart',
494
+ 'far fa-heart' => 'heart',
495
+ 'fas fa-heartbeat' => 'heartbeat',
496
+ 'fab fa-hips' => 'hips',
497
+ 'fab fa-hire-a-helper' => 'hire-a-helper',
498
+ 'fas fa-history' => 'history',
499
+ 'fas fa-hockey-puck' => 'hockey-puck',
500
+ 'fas fa-home' => 'home',
501
+ 'fab fa-hooli' => 'hooli',
502
+ 'fas fa-hospital' => 'hospital',
503
+ 'far fa-hospital' => 'hospital',
504
+ 'fas fa-hospital-alt' => 'hospital-alt',
505
+ 'fas fa-hospital-symbol' => 'hospital-symbol',
506
+ 'fab fa-hotjar' => 'hotjar',
507
+ 'fas fa-hourglass' => 'hourglass',
508
+ 'far fa-hourglass' => 'hourglass',
509
+ 'fas fa-hourglass-end' => 'hourglass-end',
510
+ 'fas fa-hourglass-half' => 'hourglass-half',
511
+ 'fas fa-hourglass-start' => 'hourglass-start',
512
+ 'fab fa-houzz' => 'houzz',
513
+ 'fab fa-html5' => 'html5',
514
+ 'fab fa-hubspot' => 'hubspot',
515
+ 'fas fa-i-cursor' => 'i-cursor',
516
+ 'fas fa-id-badge' => 'id-badge',
517
+ 'far fa-id-badge' => 'id-badge',
518
+ 'fas fa-id-card' => 'id-card',
519
+ 'far fa-id-card' => 'id-card',
520
+ 'fas fa-id-card-alt' => 'id-card-alt',
521
+ 'fas fa-image' => 'image',
522
+ 'far fa-image' => 'image',
523
+ 'fas fa-images' => 'images',
524
+ 'far fa-images' => 'images',
525
+ 'fab fa-imdb' => 'imdb',
526
+ 'fas fa-inbox' => 'inbox',
527
+ 'fas fa-indent' => 'indent',
528
+ 'fas fa-industry' => 'industry',
529
+ 'fas fa-info' => 'info',
530
+ 'fas fa-info-circle' => 'info-circle',
531
+ 'fab fa-instagram' => 'instagram',
532
+ 'fab fa-internet-explorer' => 'internet-explorer',
533
+ 'fab fa-ioxhost' => 'ioxhost',
534
+ 'fas fa-italic' => 'italic',
535
+ 'fab fa-itunes' => 'itunes',
536
+ 'fab fa-itunes-note' => 'itunes-note',
537
+ 'fab fa-java' => 'java',
538
+ 'fab fa-jenkins' => 'jenkins',
539
+ 'fab fa-joget' => 'joget',
540
+ 'fab fa-joomla' => 'joomla',
541
+ 'fab fa-js' => 'js',
542
+ 'fab fa-js-square' => 'js-square',
543
+ 'fab fa-jsfiddle' => 'jsfiddle',
544
+ 'fas fa-key' => 'key',
545
+ 'fas fa-keyboard' => 'keyboard',
546
+ 'far fa-keyboard' => 'keyboard',
547
+ 'fab fa-keycdn' => 'keycdn',
548
+ 'fab fa-kickstarter' => 'kickstarter',
549
+ 'fab fa-kickstarter-k' => 'kickstarter-k',
550
+ 'fab fa-korvue' => 'korvue',
551
+ 'fas fa-language' => 'language',
552
+ 'fas fa-laptop' => 'laptop',
553
+ 'fab fa-laravel' => 'laravel',
554
+ 'fab fa-lastfm' => 'lastfm',
555
+ 'fab fa-lastfm-square' => 'lastfm-square',
556
+ 'fas fa-leaf' => 'leaf',
557
+ 'fab fa-leanpub' => 'leanpub',
558
+ 'fas fa-lemon' => 'lemon',
559
+ 'far fa-lemon' => 'lemon',
560
+ 'fab fa-less' => 'less',
561
+ 'fas fa-level-down-alt' => 'level-down-alt',
562
+ 'fas fa-level-up-alt' => 'level-up-alt',
563
+ 'fas fa-life-ring' => 'life-ring',
564
+ 'far fa-life-ring' => 'life-ring',
565
+ 'fas fa-lightbulb' => 'lightbulb',
566
+ 'far fa-lightbulb' => 'lightbulb',
567
+ 'fab fa-line' => 'line',
568
+ 'fas fa-link' => 'link',
569
+ 'fab fa-linkedin' => 'linkedin',
570
+ 'fab fa-linkedin-in' => 'linkedin-in',
571
+ 'fab fa-linode' => 'linode',
572
+ 'fab fa-linux' => 'linux',
573
+ 'fas fa-lira-sign' => 'lira-sign',
574
+ 'fas fa-list' => 'list',
575
+ 'fas fa-list-alt' => 'list-alt',
576
+ 'far fa-list-alt' => 'list-alt',
577
+ 'fas fa-list-ol' => 'list-ol',
578
+ 'fas fa-list-ul' => 'list-ul',
579
+ 'fas fa-location-arrow' => 'location-arrow',
580
+ 'fas fa-lock' => 'lock',
581
+ 'fas fa-lock-open' => 'lock-open',
582
+ 'fas fa-long-arrow-alt-down' => 'long-arrow-alt-down',
583
+ 'fas fa-long-arrow-alt-left' => 'long-arrow-alt-left',
584
+ 'fas fa-long-arrow-alt-right' => 'long-arrow-alt-right',
585
+ 'fas fa-long-arrow-alt-up' => 'long-arrow-alt-up',
586
+ 'fas fa-low-vision' => 'low-vision',
587
+ 'fab fa-lyft' => 'lyft',
588
+ 'fab fa-magento' => 'magento',
589
+ 'fas fa-magic' => 'magic',
590
+ 'fas fa-magnet' => 'magnet',
591
+ 'fas fa-male' => 'male',
592
+ 'fas fa-map' => 'map',
593
+ 'far fa-map' => 'map',
594
+ 'fas fa-map-marker' => 'map-marker',
595
+ 'fas fa-map-marker-alt' => 'map-marker-alt',
596
+ 'fas fa-map-pin' => 'map-pin',
597
+ 'fas fa-map-signs' => 'map-signs',
598
+ 'fas fa-mars' => 'mars',
599
+ 'fas fa-mars-double' => 'mars-double',
600
+ 'fas fa-mars-stroke' => 'mars-stroke',
601
+ 'fas fa-mars-stroke-h' => 'mars-stroke-h',
602
+ 'fas fa-mars-stroke-v' => 'mars-stroke-v',
603
+ 'fab fa-maxcdn' => 'maxcdn',
604
+ 'fab fa-medapps' => 'medapps',
605
+ 'fab fa-medium' => 'medium',
606
+ 'fab fa-medium-m' => 'medium-m',
607
+ 'fas fa-medkit' => 'medkit',
608
+ 'fab fa-medrt' => 'medrt',
609
+ 'fab fa-meetup' => 'meetup',
610
+ 'fas fa-meh' => 'meh',
611
+ 'far fa-meh' => 'meh',
612
+ 'fas fa-mercury' => 'mercury',
613
+ 'fas fa-microchip' => 'microchip',
614
+ 'fas fa-microphone' => 'microphone',
615
+ 'fas fa-microphone-slash' => 'microphone-slash',
616
+ 'fab fa-microsoft' => 'microsoft',
617
+ 'fas fa-minus' => 'minus',
618
+ 'fas fa-minus-circle' => 'minus-circle',
619
+ 'fas fa-minus-square' => 'minus-square',
620
+ 'far fa-minus-square' => 'minus-square',
621
+ 'fab fa-mix' => 'mix',
622
+ 'fab fa-mixcloud' => 'mixcloud',
623
+ 'fab fa-mizuni' => 'mizuni',
624
+ 'fas fa-mobile' => 'mobile',
625
+ 'fas fa-mobile-alt' => 'mobile-alt',
626
+ 'fab fa-modx' => 'modx',
627
+ 'fab fa-monero' => 'monero',
628
+ 'fas fa-money-bill-alt' => 'money-bill-alt',
629
+ 'far fa-money-bill-alt' => 'money-bill-alt',
630
+ 'fas fa-moon' => 'moon',
631
+ 'far fa-moon' => 'moon',
632
+ 'fas fa-motorcycle' => 'motorcycle',
633
+ 'fas fa-mouse-pointer' => 'mouse-pointer',
634
+ 'fas fa-music' => 'music',
635
+ 'fab fa-napster' => 'napster',
636
+ 'fas fa-neuter' => 'neuter',
637
+ 'fas fa-newspaper' => 'newspaper',
638
+ 'far fa-newspaper' => 'newspaper',
639
+ 'fab fa-nintendo-switch' => 'nintendo-switch',
640
+ 'fab fa-node' => 'node',
641
+ 'fab fa-node-js' => 'node-js',
642
+ 'fas fa-notes-medical' => 'notes-medical',
643
+ 'fab fa-npm' => 'npm',
644
+ 'fab fa-ns8' => 'ns8',
645
+ 'fab fa-nutritionix' => 'nutritionix',
646
+ 'fas fa-object-group' => 'object-group',
647
+ 'far fa-object-group' => 'object-group',
648
+ 'fas fa-object-ungroup' => 'object-ungroup',
649
+ 'far fa-object-ungroup' => 'object-ungroup',
650
+ 'fab fa-odnoklassniki' => 'odnoklassniki',
651
+ 'fab fa-odnoklassniki-square' => 'odnoklassniki-square',
652
+ 'fab fa-opencart' => 'opencart',
653
+ 'fab fa-openid' => 'openid',
654
+ 'fab fa-opera' => 'opera',
655
+ 'fab fa-optin-monster' => 'optin-monster',
656
+ 'fab fa-osi' => 'osi',
657
+ 'fas fa-outdent' => 'outdent',
658
+ 'fab fa-page4' => 'page4',
659
+ 'fab fa-pagelines' => 'pagelines',
660
+ 'fas fa-paint-brush' => 'paint-brush',
661
+ 'fab fa-palfed' => 'palfed',
662
+ 'fas fa-pallet' => 'pallet',
663
+ 'fas fa-paper-plane' => 'paper-plane',
664
+ 'far fa-paper-plane' => 'paper-plane',
665
+ 'fas fa-paperclip' => 'paperclip',
666
+ 'fas fa-parachute-box' => 'parachute-box',
667
+ 'fas fa-paragraph' => 'paragraph',
668
+ 'fas fa-paste' => 'paste',
669
+ 'fab fa-patreon' => 'patreon',
670
+ 'fas fa-pause' => 'pause',
671
+ 'fas fa-pause-circle' => 'pause-circle',
672
+ 'far fa-pause-circle' => 'pause-circle',
673
+ 'fas fa-paw' => 'paw',
674
+ 'fab fa-paypal' => 'paypal',
675
+ 'fas fa-pen-square' => 'pen-square',
676
+ 'fas fa-pencil-alt' => 'pencil-alt',
677
+ 'fas fa-people-carry' => 'people-carry',
678
+ 'fas fa-percent' => 'percent',
679
+ 'fab fa-periscope' => 'periscope',
680
+ 'fab fa-phabricator' => 'phabricator',
681
+ 'fab fa-phoenix-framework' => 'phoenix-framework',
682
+ 'fas fa-phone' => 'phone',
683
+ 'fas fa-phone-slash' => 'phone-slash',
684
+ 'fas fa-phone-square' => 'phone-square',
685
+ 'fas fa-phone-volume' => 'phone-volume',
686
+ 'fab fa-php' => 'php',
687
+ 'fab fa-pied-piper' => 'pied-piper',
688
+ 'fab fa-pied-piper-alt' => 'pied-piper-alt',
689
+ 'fab fa-pied-piper-hat' => 'pied-piper-hat',
690
+ 'fab fa-pied-piper-pp' => 'pied-piper-pp',
691
+ 'fas fa-piggy-bank' => 'piggy-bank',
692
+ 'fas fa-pills' => 'pills',
693
+ 'fab fa-pinterest' => 'pinterest',
694
+ 'fab fa-pinterest-p' => 'pinterest-p',
695
+ 'fab fa-pinterest-square' => 'pinterest-square',
696
+ 'fas fa-plane' => 'plane',
697
+ 'fas fa-play' => 'play',
698
+ 'fas fa-play-circle' => 'play-circle',
699
+ 'far fa-play-circle' => 'play-circle',
700
+ 'fab fa-playstation' => 'playstation',
701
+ 'fas fa-plug' => 'plug',
702
+ 'fas fa-plus' => 'plus',
703
+ 'fas fa-plus-circle' => 'plus-circle',
704
+ 'fas fa-plus-square' => 'plus-square',
705
+ 'far fa-plus-square' => 'plus-square',
706
+ 'fas fa-podcast' => 'podcast',
707
+ 'fas fa-poo' => 'poo',
708
+ 'fas fa-pound-sign' => 'pound-sign',
709
+ 'fas fa-power-off' => 'power-off',
710
+ 'fas fa-prescription-bottle' => 'prescription-bottle',
711
+ 'fas fa-prescription-bottle-alt' => 'prescription-bottle-alt',
712
+ 'fas fa-print' => 'print',
713
+ 'fas fa-procedures' => 'procedures',
714
+ 'fab fa-product-hunt' => 'product-hunt',
715
+ 'fab fa-pushed' => 'pushed',
716
+ 'fas fa-puzzle-piece' => 'puzzle-piece',
717
+ 'fab fa-python' => 'python',
718
+ 'fab fa-qq' => 'qq',
719
+ 'fas fa-qrcode' => 'qrcode',
720
+ 'fas fa-question' => 'question',
721
+ 'fas fa-question-circle' => 'question-circle',
722
+ 'far fa-question-circle' => 'question-circle',
723
+ 'fas fa-quidditch' => 'quidditch',
724
+ 'fab fa-quinscape' => 'quinscape',
725
+ 'fab fa-quora' => 'quora',
726
+ 'fas fa-quote-left' => 'quote-left',
727
+ 'fas fa-quote-right' => 'quote-right',
728
+ 'fas fa-random' => 'random',
729
+ 'fab fa-ravelry' => 'ravelry',
730
+ 'fab fa-react' => 'react',
731
+ 'fab fa-readme' => 'readme',
732
+ 'fab fa-rebel' => 'rebel',
733
+ 'fas fa-recycle' => 'recycle',
734
+ 'fab fa-red-river' => 'red-river',
735
+ 'fab fa-reddit' => 'reddit',
736
+ 'fab fa-reddit-alien' => 'reddit-alien',
737
+ 'fab fa-reddit-square' => 'reddit-square',
738
+ 'fas fa-redo' => 'redo',
739
+ 'fas fa-redo-alt' => 'redo-alt',
740
+ 'fas fa-registered' => 'registered',
741
+ 'far fa-registered' => 'registered',
742
+ 'fab fa-rendact' => 'rendact',
743
+ 'fab fa-renren' => 'renren',
744
+ 'fas fa-reply' => 'reply',
745
+ 'fas fa-reply-all' => 'reply-all',
746
+ 'fab fa-replyd' => 'replyd',
747
+ 'fab fa-resolving' => 'resolving',
748
+ 'fas fa-retweet' => 'retweet',
749
+ 'fas fa-ribbon' => 'ribbon',
750
+ 'fas fa-road' => 'road',
751
+ 'fas fa-rocket' => 'rocket',
752
+ 'fab fa-rocketchat' => 'rocketchat',
753
+ 'fab fa-rockrms' => 'rockrms',
754
+ 'fas fa-rss' => 'rss',
755
+ 'fas fa-rss-square' => 'rss-square',
756
+ 'fas fa-ruble-sign' => 'ruble-sign',
757
+ 'fas fa-rupee-sign' => 'rupee-sign',
758
+ 'fab fa-safari' => 'safari',
759
+ 'fab fa-sass' => 'sass',
760
+ 'fas fa-save' => 'save',
761
+ 'far fa-save' => 'save',
762
+ 'fab fa-schlix' => 'schlix',
763
+ 'fab fa-scribd' => 'scribd',
764
+ 'fas fa-search' => 'search',
765
+ 'fas fa-search-minus' => 'search-minus',
766
+ 'fas fa-search-plus' => 'search-plus',
767
+ 'fab fa-searchengin' => 'searchengin',
768
+ 'fas fa-seedling' => 'seedling',
769
+ 'fab fa-sellcast' => 'sellcast',
770
+ 'fab fa-sellsy' => 'sellsy',
771
+ 'fas fa-server' => 'server',
772
+ 'fab fa-servicestack' => 'servicestack',
773
+ 'fas fa-share' => 'share',
774
+ 'fas fa-share-alt' => 'share-alt',
775
+ 'fas fa-share-alt-square' => 'share-alt-square',
776
+ 'fas fa-share-square' => 'share-square',
777
+ 'far fa-share-square' => 'share-square',
778
+ 'fas fa-shekel-sign' => 'shekel-sign',
779
+ 'fas fa-shield-alt' => 'shield-alt',
780
+ 'fas fa-ship' => 'ship',
781
+ 'fas fa-shipping-fast' => 'shipping-fast',
782
+ 'fab fa-shirtsinbulk' => 'shirtsinbulk',
783
+ 'fas fa-shopping-bag' => 'shopping-bag',
784
+ 'fas fa-shopping-basket' => 'shopping-basket',
785
+ 'fas fa-shopping-cart' => 'shopping-cart',
786
+ 'fas fa-shower' => 'shower',
787
+ 'fas fa-sign' => 'sign',
788
+ 'fas fa-sign-in-alt' => 'sign-in-alt',
789
+ 'fas fa-sign-language' => 'sign-language',
790
+ 'fas fa-sign-out-alt' => 'sign-out-alt',
791
+ 'fas fa-signal' => 'signal',
792
+ 'fab fa-simplybuilt' => 'simplybuilt',
793
+ 'fab fa-sistrix' => 'sistrix',
794
+ 'fas fa-sitemap' => 'sitemap',
795
+ 'fab fa-skyatlas' => 'skyatlas',
796
+ 'fab fa-skype' => 'skype',
797
+ 'fab fa-slack' => 'slack',
798
+ 'fab fa-slack-hash' => 'slack-hash',
799
+ 'fas fa-sliders-h' => 'sliders-h',
800
+ 'fab fa-slideshare' => 'slideshare',
801
+ 'fas fa-smile' => 'smile',
802
+ 'far fa-smile' => 'smile',
803
+ 'fas fa-smoking' => 'smoking',
804
+ 'fab fa-snapchat' => 'snapchat',
805
+ 'fab fa-snapchat-ghost' => 'snapchat-ghost',
806
+ 'fab fa-snapchat-square' => 'snapchat-square',
807
+ 'fas fa-snowflake' => 'snowflake',
808
+ 'far fa-snowflake' => 'snowflake',
809
+ 'fas fa-sort' => 'sort',
810
+ 'fas fa-sort-alpha-down' => 'sort-alpha-down',
811
+ 'fas fa-sort-alpha-up' => 'sort-alpha-up',
812
+ 'fas fa-sort-amount-down' => 'sort-amount-down',
813
+ 'fas fa-sort-amount-up' => 'sort-amount-up',
814
+ 'fas fa-sort-down' => 'sort-down',
815
+ 'fas fa-sort-numeric-down' => 'sort-numeric-down',
816
+ 'fas fa-sort-numeric-up' => 'sort-numeric-up',
817
+ 'fas fa-sort-up' => 'sort-up',
818
+ 'fab fa-soundcloud' => 'soundcloud',
819
+ 'fas fa-space-shuttle' => 'space-shuttle',
820
+ 'fab fa-speakap' => 'speakap',
821
+ 'fas fa-spinner' => 'spinner',
822
+ 'fab fa-spotify' => 'spotify',
823
+ 'fas fa-square' => 'square',
824
+ 'far fa-square' => 'square',
825
+ 'fas fa-square-full' => 'square-full',
826
+ 'fab fa-stack-exchange' => 'stack-exchange',
827
+ 'fab fa-stack-overflow' => 'stack-overflow',
828
+ 'fas fa-star' => 'star',
829
+ 'far fa-star' => 'star',
830
+ 'fas fa-star-half' => 'star-half',
831
+ 'far fa-star-half' => 'star-half',
832
+ 'fab fa-staylinked' => 'staylinked',
833
+ 'fab fa-steam' => 'steam',
834
+ 'fab fa-steam-square' => 'steam-square',
835
+ 'fab fa-steam-symbol' => 'steam-symbol',
836
+ 'fas fa-step-backward' => 'step-backward',
837
+ 'fas fa-step-forward' => 'step-forward',
838
+ 'fas fa-stethoscope' => 'stethoscope',
839
+ 'fab fa-sticker-mule' => 'sticker-mule',
840
+ 'fas fa-sticky-note' => 'sticky-note',
841
+ 'far fa-sticky-note' => 'sticky-note',
842
+ 'fas fa-stop' => 'stop',
843
+ 'fas fa-stop-circle' => 'stop-circle',
844
+ 'far fa-stop-circle' => 'stop-circle',
845
+ 'fas fa-stopwatch' => 'stopwatch',
846
+ 'fab fa-strava' => 'strava',
847
+ 'fas fa-street-view' => 'street-view',
848
+ 'fas fa-strikethrough' => 'strikethrough',
849
+ 'fab fa-stripe' => 'stripe',
850
+ 'fab fa-stripe-s' => 'stripe-s',
851
+ 'fab fa-studiovinari' => 'studiovinari',
852
+ 'fab fa-stumbleupon' => 'stumbleupon',
853
+ 'fab fa-stumbleupon-circle' => 'stumbleupon-circle',
854
+ 'fas fa-subscript' => 'subscript',
855
+ 'fas fa-subway' => 'subway',
856
+ 'fas fa-suitcase' => 'suitcase',
857
+ 'fas fa-sun' => 'sun',
858
+ 'far fa-sun' => 'sun',
859
+ 'fab fa-superpowers' => 'superpowers',
860
+ 'fas fa-superscript' => 'superscript',
861
+ 'fab fa-supple' => 'supple',
862
+ 'fas fa-sync' => 'sync',
863
+ 'fas fa-sync-alt' => 'sync-alt',
864
+ 'fas fa-syringe' => 'syringe',
865
+ 'fas fa-table' => 'table',
866
+ 'fas fa-table-tennis' => 'table-tennis',
867
+ 'fas fa-tablet' => 'tablet',
868
+ 'fas fa-tablet-alt' => 'tablet-alt',
869
+ 'fas fa-tablets' => 'tablets',
870
+ 'fas fa-tachometer-alt' => 'tachometer-alt',
871
+ 'fas fa-tag' => 'tag',
872
+ 'fas fa-tags' => 'tags',
873
+ 'fas fa-tape' => 'tape',
874
+ 'fas fa-tasks' => 'tasks',
875
+ 'fas fa-taxi' => 'taxi',
876
+ 'fab fa-telegram' => 'telegram',
877
+ 'fab fa-telegram-plane' => 'telegram-plane',
878
+ 'fab fa-tencent-weibo' => 'tencent-weibo',
879
+ 'fas fa-terminal' => 'terminal',
880
+ 'fas fa-text-height' => 'text-height',
881
+ 'fas fa-text-width' => 'text-width',
882
+ 'fas fa-th' => 'th',
883
+ 'fas fa-th-large' => 'th-large',
884
+ 'fas fa-th-list' => 'th-list',
885
+ 'fab fa-themeisle' => 'themeisle',
886
+ 'fas fa-thermometer' => 'thermometer',
887
+ 'fas fa-thermometer-empty' => 'thermometer-empty',
888
+ 'fas fa-thermometer-full' => 'thermometer-full',
889
+ 'fas fa-thermometer-half' => 'thermometer-half',
890
+ 'fas fa-thermometer-quarter' => 'thermometer-quarter',
891
+ 'fas fa-thermometer-three-quarters' => 'thermometer-three-quarters',
892
+ 'fas fa-thumbs-down' => 'thumbs-down',
893
+ 'far fa-thumbs-down' => 'thumbs-down',
894
+ 'fas fa-thumbs-up' => 'thumbs-up',
895
+ 'far fa-thumbs-up' => 'thumbs-up',
896
+ 'fas fa-thumbtack' => 'thumbtack',
897
+ 'fas fa-ticket-alt' => 'ticket-alt',
898
+ 'fas fa-times' => 'times',
899
+ 'fas fa-times-circle' => 'times-circle',
900
+ 'far fa-times-circle' => 'times-circle',
901
+ 'fas fa-tint' => 'tint',
902
+ 'fas fa-toggle-off' => 'toggle-off',
903
+ 'fas fa-toggle-on' => 'toggle-on',
904
+ 'fas fa-trademark' => 'trademark',
905
+ 'fas fa-train' => 'train',
906
+ 'fas fa-transgender' => 'transgender',
907
+ 'fas fa-transgender-alt' => 'transgender-alt',
908
+ 'fas fa-trash' => 'trash',
909
+ 'fas fa-trash-alt' => 'trash-alt',
910
+ 'far fa-trash-alt' => 'trash-alt',
911
+ 'fas fa-tree' => 'tree',
912
+ 'fab fa-trello' => 'trello',
913
+ 'fab fa-tripadvisor' => 'tripadvisor',
914
+ 'fas fa-trophy' => 'trophy',
915
+ 'fas fa-truck' => 'truck',
916
+ 'fas fa-truck-loading' => 'truck-loading',
917
+ 'fas fa-truck-moving' => 'truck-moving',
918
+ 'fas fa-tty' => 'tty',
919
+ 'fab fa-tumblr' => 'tumblr',
920
+ 'fab fa-tumblr-square' => 'tumblr-square',
921
+ 'fas fa-tv' => 'tv',
922
+ 'fab fa-twitch' => 'twitch',
923
+ 'fab fa-twitter' => 'twitter',
924
+ 'fab fa-twitter-square' => 'twitter-square',
925
+ 'fab fa-typo3' => 'typo3',
926
+ 'fab fa-uber' => 'uber',
927
+ 'fab fa-uikit' => 'uikit',
928
+ 'fas fa-umbrella' => 'umbrella',
929
+ 'fas fa-underline' => 'underline',
930
+ 'fas fa-undo' => 'undo',
931
+ 'fas fa-undo-alt' => 'undo-alt',
932
+ 'fab fa-uniregistry' => 'uniregistry',
933
+ 'fas fa-universal-access' => 'universal-access',
934
+ 'fas fa-university' => 'university',
935
+ 'fas fa-unlink' => 'unlink',
936
+ 'fas fa-unlock' => 'unlock',
937
+ 'fas fa-unlock-alt' => 'unlock-alt',
938
+ 'fab fa-untappd' => 'untappd',
939
+ 'fas fa-upload' => 'upload',
940
+ 'fab fa-usb' => 'usb',
941
+ 'fas fa-user' => 'user',
942
+ 'far fa-user' => 'user',
943
+ 'fas fa-user-circle' => 'user-circle',
944
+ 'far fa-user-circle' => 'user-circle',
945
+ 'fas fa-user-md' => 'user-md',
946
+ 'fas fa-user-plus' => 'user-plus',
947
+ 'fas fa-user-secret' => 'user-secret',
948
+ 'fas fa-user-times' => 'user-times',
949
+ 'fas fa-users' => 'users',
950
+ 'fab fa-ussunnah' => 'ussunnah',
951
+ 'fas fa-utensil-spoon' => 'utensil-spoon',
952
+ 'fas fa-utensils' => 'utensils',
953
+ 'fab fa-vaadin' => 'vaadin',
954
+ 'fas fa-venus' => 'venus',
955
+ 'fas fa-venus-double' => 'venus-double',
956
+ 'fas fa-venus-mars' => 'venus-mars',
957
+ 'fab fa-viacoin' => 'viacoin',
958
+ 'fab fa-viadeo' => 'viadeo',
959
+ 'fab fa-viadeo-square' => 'viadeo-square',
960
+ 'fas fa-vial' => 'vial',
961
+ 'fas fa-vials' => 'vials',
962
+ 'fab fa-viber' => 'viber',
963
+ 'fas fa-video' => 'video',
964
+ 'fas fa-video-slash' => 'video-slash',
965
+ 'fab fa-vimeo' => 'vimeo',
966
+ 'fab fa-vimeo-square' => 'vimeo-square',
967
+ 'fab fa-vimeo-v' => 'vimeo-v',
968
+ 'fab fa-vine' => 'vine',
969
+ 'fab fa-vk' => 'vk',
970
+ 'fab fa-vnv' => 'vnv',
971
+ 'fas fa-volleyball-ball' => 'volleyball-ball',
972
+ 'fas fa-volume-down' => 'volume-down',
973
+ 'fas fa-volume-off' => 'volume-off',
974
+ 'fas fa-volume-up' => 'volume-up',
975
+ 'fab fa-vuejs' => 'vuejs',
976
+ 'fas fa-warehouse' => 'warehouse',
977
+ 'fab fa-weibo' => 'weibo',
978
+ 'fas fa-weight' => 'weight',
979
+ 'fab fa-weixin' => 'weixin',
980
+ 'fab fa-whatsapp' => 'whatsapp',
981
+ 'fab fa-whatsapp-square' => 'whatsapp-square',
982
+ 'fas fa-wheelchair' => 'wheelchair',
983
+ 'fab fa-whmcs' => 'whmcs',
984
+ 'fas fa-wifi' => 'wifi',
985
+ 'fab fa-wikipedia-w' => 'wikipedia-w',
986
+ 'fas fa-window-close' => 'window-close',
987
+ 'far fa-window-close' => 'window-close',
988
+ 'fas fa-window-maximize' => 'window-maximize',
989
+ 'far fa-window-maximize' => 'window-maximize',
990
+ 'fas fa-window-minimize' => 'window-minimize',
991
+ 'far fa-window-minimize' => 'window-minimize',
992
+ 'fas fa-window-restore' => 'window-restore',
993
+ 'far fa-window-restore' => 'window-restore',
994
+ 'fab fa-windows' => 'windows',
995
+ 'fas fa-wine-glass' => 'wine-glass',
996
+ 'fas fa-won-sign' => 'won-sign',
997
+ 'fab fa-wordpress' => 'wordpress',
998
+ 'fab fa-wordpress-simple' => 'wordpress-simple',
999
+ 'fab fa-wpbeginner' => 'wpbeginner',
1000
+ 'fab fa-wpexplorer' => 'wpexplorer',
1001
+ 'fab fa-wpforms' => 'wpforms',
1002
+ 'fas fa-wrench' => 'wrench',
1003
+ 'fas fa-x-ray' => 'x-ray',
1004
+ 'fab fa-xbox' => 'xbox',
1005
+ 'fab fa-xing' => 'xing',
1006
+ 'fab fa-xing-square' => 'xing-square',
1007
+ 'fab fa-y-combinator' => 'y-combinator',
1008
+ 'fab fa-yahoo' => 'yahoo',
1009
+ 'fab fa-yandex' => 'yandex',
1010
+ 'fab fa-yandex-international' => 'yandex-international',
1011
+ 'fab fa-yelp' => 'yelp',
1012
+ 'fas fa-yen-sign' => 'yen-sign',
1013
+ 'fab fa-yoast' => 'yoast',
1014
+ 'fab fa-youtube' => 'youtube',
1015
+ 'fab fa-youtube-square' => 'youtube-square',
1016
+ );
1017
+ }
1018
+ }
admin/class-wpvr-rollback.php CHANGED
@@ -1,181 +1,181 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit; // Exit if accessed directly.
5
- }
6
-
7
- /**
8
- * WP VR rollback.
9
- *
10
- * WP VR rollback handler class is responsible for rolling back WP VR to
11
- * previous version.
12
- *
13
- * @since 5.7.0
14
- */
15
- class WPVR_Rollback {
16
-
17
- /**
18
- * Package URL.
19
- *
20
- * Holds the package URL.
21
- *
22
- * @since 5.7.0
23
- * @access protected
24
- *
25
- * @var string Package URL.
26
- */
27
- protected $package_url;
28
-
29
- /**
30
- * Version.
31
- *
32
- * Holds the version.
33
- *
34
- * @since 5.7.0
35
- * @access protected
36
- *
37
- * @var string Package URL.
38
- */
39
- protected $version;
40
-
41
- /**
42
- * Plugin name.
43
- *
44
- * Holds the plugin name.
45
- *
46
- * @since 5.7.0
47
- * @access protected
48
- *
49
- * @var string Plugin name.
50
- */
51
- protected $plugin_name;
52
-
53
- /**
54
- * Plugin slug.
55
- *
56
- * Holds the plugin slug.
57
- *
58
- * @since 5.7.0
59
- * @access protected
60
- *
61
- * @var string Plugin slug.
62
- */
63
- protected $plugin_slug;
64
-
65
- /**
66
- * Rollback constructor.
67
- *
68
- * Initializing WP VR rollback.
69
- *
70
- * @since 5.7.0
71
- * @access public
72
- *
73
- * @param array $args Optional. Rollback arguments. Default is an empty array.
74
- */
75
- public function __construct( $args = [] ) {
76
- foreach ( $args as $key => $value ) {
77
- $this->{$key} = $value;
78
- }
79
- }
80
-
81
- /**
82
- * Print inline style.
83
- *
84
- * Add an inline CSS to the rollback page.
85
- *
86
- * @since 5.7.0
87
- * @access private
88
- */
89
- private function print_inline_style() {
90
- ?>
91
- <style>
92
- .wrap {
93
- overflow: hidden;
94
- max-width: 850px;
95
- margin: auto;
96
- font-family: Courier, monospace;
97
- }
98
-
99
- h1 {
100
- background: #4775f6;
101
- text-align: center;
102
- color: #fff !important;
103
- padding: 70px !important;
104
- text-transform: uppercase;
105
- letter-spacing: 1px;
106
- }
107
-
108
- h1 img {
109
- max-width: 300px;
110
- display: block;
111
- margin: auto auto 50px;
112
- }
113
- </style>
114
- <?php
115
- }
116
-
117
- /**
118
- * Apply package.
119
- *
120
- * Change the plugin data when WordPress checks for updates. This method
121
- * modifies package data to update the plugin from a specific URL containing
122
- * the version package.
123
- *
124
- * @since 5.7.0
125
- * @access protected
126
- */
127
- protected function apply_package() {
128
- $update_plugins = get_site_transient( 'update_plugins' );
129
- if ( ! is_object( $update_plugins ) ) {
130
- $update_plugins = new \stdClass();
131
- }
132
-
133
- $plugin_info = new \stdClass();
134
- $plugin_info->new_version = $this->version;
135
- $plugin_info->slug = $this->plugin_slug;
136
- $plugin_info->package = $this->package_url;
137
- $plugin_info->url = 'https://rextheme.com/wpvr/';
138
-
139
- $update_plugins->response[ $this->plugin_name ] = $plugin_info;
140
-
141
- set_site_transient( 'update_plugins', $update_plugins );
142
- }
143
-
144
- /**
145
- * Upgrade.
146
- *
147
- * Run WordPress upgrade to rollback WP VR to previous version.
148
- *
149
- * @since 5.7.0
150
- * @access protected
151
- */
152
- protected function upgrade() {
153
- require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
154
-
155
- $this->plugin_name = 'wpvr';
156
- $upgrader_args = [
157
- 'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
158
- 'plugin' => $this->plugin_name,
159
- 'nonce' => 'upgrade-plugin_' . $this->plugin_name,
160
- 'title' => __( 'WP VR Plugin Rollback', 'wpvr' ),
161
- ];
162
-
163
- $this->print_inline_style();
164
-
165
- $upgrader = new \Plugin_Upgrader( new \Plugin_Upgrader_Skin( $upgrader_args ) );
166
- $upgrader->upgrade( $this->plugin_name );
167
- }
168
-
169
- /**
170
- * Run.
171
- *
172
- * Rollback WP VR to previous versions.
173
- *
174
- * @since 5.7.0
175
- * @access public
176
- */
177
- public function run() {
178
- $this->apply_package();
179
- $this->upgrade();
180
- }
181
- }
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit; // Exit if accessed directly.
5
+ }
6
+
7
+ /**
8
+ * WP VR rollback.
9
+ *
10
+ * WP VR rollback handler class is responsible for rolling back WP VR to
11
+ * previous version.
12
+ *
13
+ * @since 5.7.0
14
+ */
15
+ class WPVR_Rollback {
16
+
17
+ /**
18
+ * Package URL.
19
+ *
20
+ * Holds the package URL.
21
+ *
22
+ * @since 5.7.0
23
+ * @access protected
24
+ *
25
+ * @var string Package URL.
26
+ */
27
+ protected $package_url;
28
+
29
+ /**
30
+ * Version.
31
+ *
32
+ * Holds the version.
33
+ *
34
+ * @since 5.7.0
35
+ * @access protected
36
+ *
37
+ * @var string Package URL.
38
+ */
39
+ protected $version;
40
+
41
+ /**
42
+ * Plugin name.
43
+ *
44
+ * Holds the plugin name.
45
+ *
46
+ * @since 5.7.0
47
+ * @access protected
48
+ *
49
+ * @var string Plugin name.
50
+ */
51
+ protected $plugin_name;
52
+
53
+ /**
54
+ * Plugin slug.
55
+ *
56
+ * Holds the plugin slug.
57
+ *
58
+ * @since 5.7.0
59
+ * @access protected
60
+ *
61
+ * @var string Plugin slug.
62
+ */
63
+ protected $plugin_slug;
64
+
65
+ /**
66
+ * Rollback constructor.
67
+ *
68
+ * Initializing WP VR rollback.
69
+ *
70
+ * @since 5.7.0
71
+ * @access public
72
+ *
73
+ * @param array $args Optional. Rollback arguments. Default is an empty array.
74
+ */
75
+ public function __construct( $args = [] ) {
76
+ foreach ( $args as $key => $value ) {
77
+ $this->{$key} = $value;
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Print inline style.
83
+ *
84
+ * Add an inline CSS to the rollback page.
85
+ *
86
+ * @since 5.7.0
87
+ * @access private
88
+ */
89
+ private function print_inline_style() {
90
+ ?>
91
+ <style>
92
+ .wrap {
93
+ overflow: hidden;
94
+ max-width: 850px;
95
+ margin: auto;
96
+ font-family: Courier, monospace;
97
+ }
98
+
99
+ h1 {
100
+ background: #4775f6;
101
+ text-align: center;
102
+ color: #fff !important;
103
+ padding: 70px !important;
104
+ text-transform: uppercase;
105
+ letter-spacing: 1px;
106
+ }
107
+
108
+ h1 img {
109
+ max-width: 300px;
110
+ display: block;
111
+ margin: auto auto 50px;
112
+ }
113
+ </style>
114
+ <?php
115
+ }
116
+
117
+ /**
118
+ * Apply package.
119
+ *
120
+ * Change the plugin data when WordPress checks for updates. This method
121
+ * modifies package data to update the plugin from a specific URL containing
122
+ * the version package.
123
+ *
124
+ * @since 5.7.0
125
+ * @access protected
126
+ */
127
+ protected function apply_package() {
128
+ $update_plugins = get_site_transient( 'update_plugins' );
129
+ if ( ! is_object( $update_plugins ) ) {
130
+ $update_plugins = new \stdClass();
131
+ }
132
+
133
+ $plugin_info = new \stdClass();
134
+ $plugin_info->new_version = $this->version;
135
+ $plugin_info->slug = $this->plugin_slug;
136
+ $plugin_info->package = $this->package_url;
137
+ $plugin_info->url = 'https://rextheme.com/wpvr/';
138
+
139
+ $update_plugins->response[ $this->plugin_name ] = $plugin_info;
140
+
141
+ set_site_transient( 'update_plugins', $update_plugins );
142
+ }
143
+
144
+ /**
145
+ * Upgrade.
146
+ *
147
+ * Run WordPress upgrade to rollback WP VR to previous version.
148
+ *
149
+ * @since 5.7.0
150
+ * @access protected
151
+ */
152
+ protected function upgrade() {
153
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
154
+
155
+ $this->plugin_name = 'wpvr';
156
+ $upgrader_args = [
157
+ 'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
158
+ 'plugin' => $this->plugin_name,
159
+ 'nonce' => 'upgrade-plugin_' . $this->plugin_name,
160
+ 'title' => __( 'WP VR Plugin Rollback', 'wpvr' ),
161
+ ];
162
+
163
+ $this->print_inline_style();
164
+
165
+ $upgrader = new \Plugin_Upgrader( new \Plugin_Upgrader_Skin( $upgrader_args ) );
166
+ $upgrader->upgrade( $this->plugin_name );
167
+ }
168
+
169
+ /**
170
+ * Run.
171
+ *
172
+ * Rollback WP VR to previous versions.
173
+ *
174
+ * @since 5.7.0
175
+ * @access public
176
+ */
177
+ public function run() {
178
+ $this->apply_package();
179
+ $this->upgrade();
180
+ }
181
+ }
admin/css/font-awesome.min.css CHANGED
@@ -1,4 +1,4 @@
1
- /*!
2
- * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome
3
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.1');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.1') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.1') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.1') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
1
+ /*!
2
+ * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.1');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.1') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.1') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.1') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
admin/css/jquery.fonticonpicker.grey.min.css CHANGED
@@ -1,2 +1,2 @@
1
- /* Grey Theme file for fontIconPicker {@link https://github.com/micc83/fontIconPicker} */
2
- .fip-grey.icons-selector{font-size:16px}.fip-grey.icons-selector .selector{border:1px solid #EDEDED;background-color:#fff}.fip-grey.icons-selector .selector-button{background-color:#F4F4F4;border-left:1px solid #E1E1E1}.fip-grey.icons-selector .selector-button:hover{background-color:#f1f1f1}.fip-grey.icons-selector .selector-button:hover i{color:#999}.fip-grey.icons-selector .selector-button i{color:#aaa;text-shadow:0 1px 0 #FFF}.fip-grey.icons-selector .selected-icon i{color:#404040}.fip-grey.icons-selector .selector-popup{-moz-box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #E5E5E5}.fip-grey.icons-selector .selector-category select,.fip-grey.icons-selector .selector-search input[type=text]{border:1px solid #EDEDED;color:#404040;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.fip-grey.icons-selector input::-webkit-input-placeholder{color:#ddd}.fip-grey.icons-selector input:-moz-placeholder{color:#ddd}.fip-grey.icons-selector input::-moz-placeholder{color:#ddd}.fip-grey.icons-selector input:-ms-input-placeholder{color:#ddd!important}.fip-grey.icons-selector .selector-search i{color:#eee}.fip-grey.icons-selector .fip-icons-container{background-color:#fff;border:1px solid #EDEDED}.fip-grey.icons-selector .fip-icons-container .loading{color:#eee}.fip-grey.icons-selector .fip-box{border:1px solid #EFEFEF}.fip-grey.icons-selector .fip-box:hover{background-color:#f6f6f6}.fip-grey.icons-selector .selector-footer,.fip-grey.icons-selector .selector-footer i{color:#ddd}.fip-grey.icons-selector .selector-arrows i:hover{color:#777}.fip-grey.icons-selector span.current-icon,.fip-grey.icons-selector span.current-icon:hover{background-color:#2EA2CC;color:#fff;border:1px solid #298CBA}.fip-grey.icons-selector .icons-picker-error i:before{color:#eee}
1
+ /* Grey Theme file for fontIconPicker {@link https://github.com/micc83/fontIconPicker} */
2
+ .fip-grey.icons-selector{font-size:16px}.fip-grey.icons-selector .selector{border:1px solid #EDEDED;background-color:#fff}.fip-grey.icons-selector .selector-button{background-color:#F4F4F4;border-left:1px solid #E1E1E1}.fip-grey.icons-selector .selector-button:hover{background-color:#f1f1f1}.fip-grey.icons-selector .selector-button:hover i{color:#999}.fip-grey.icons-selector .selector-button i{color:#aaa;text-shadow:0 1px 0 #FFF}.fip-grey.icons-selector .selected-icon i{color:#404040}.fip-grey.icons-selector .selector-popup{-moz-box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #E5E5E5}.fip-grey.icons-selector .selector-category select,.fip-grey.icons-selector .selector-search input[type=text]{border:1px solid #EDEDED;color:#404040;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.fip-grey.icons-selector input::-webkit-input-placeholder{color:#ddd}.fip-grey.icons-selector input:-moz-placeholder{color:#ddd}.fip-grey.icons-selector input::-moz-placeholder{color:#ddd}.fip-grey.icons-selector input:-ms-input-placeholder{color:#ddd!important}.fip-grey.icons-selector .selector-search i{color:#eee}.fip-grey.icons-selector .fip-icons-container{background-color:#fff;border:1px solid #EDEDED}.fip-grey.icons-selector .fip-icons-container .loading{color:#eee}.fip-grey.icons-selector .fip-box{border:1px solid #EFEFEF}.fip-grey.icons-selector .fip-box:hover{background-color:#f6f6f6}.fip-grey.icons-selector .selector-footer,.fip-grey.icons-selector .selector-footer i{color:#ddd}.fip-grey.icons-selector .selector-arrows i:hover{color:#777}.fip-grey.icons-selector span.current-icon,.fip-grey.icons-selector span.current-icon:hover{background-color:#2EA2CC;color:#fff;border:1px solid #298CBA}.fip-grey.icons-selector .icons-picker-error i:before{color:#eee}
admin/css/jquery.fonticonpicker.min.css CHANGED
@@ -1,2 +1,2 @@
1
- /* fontIconPicker main CSS file {@link https://github.com/micc83/fontIconPicker} */
2
- .icons-selector *{margin:0;padding:0;border:0;vertical-align:baseline;}.icons-selector,.icons-selector *,.icons-selector :after,.icons-selector :before,.icons-selector:after,.icons-selector:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.icons-selector{display:inline-block;vertical-align:middle;text-align:left}.icons-selector .selector{width:100px;height:40px}.icons-selector .selector-button{width:39px;height:100%;display:block;text-align:center;cursor:pointer;float:left}.icons-selector .selector-button i{line-height:38px;text-align:center}.icons-selector .selected-icon{display:block;width:60px;height:100%;float:left;text-align:center}.icons-selector .selected-icon i{line-height:40px;font-size:18px;cursor:default}.icons-selector .selector-popup{position:absolute;z-index:10000;background-color:#fefefe;padding:5px;height:auto;width:342px;margin-top:-1px}.icons-selector .selector-category select,.icons-selector .selector-search input[type=text]{border:0;line-height:20px;padding:10px 2.5%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:5px;font-size:12px;display:block}.icons-selector .selector-category select{height:40px}.icons-selector .selector-category select option{padding:10px}.icons-selector input::-webkit-input-placeholder{text-transform:uppercase}.icons-selector input:-moz-placeholder{text-transform:uppercase}.icons-selector input::-moz-placeholder{text-transform:uppercase}.icons-selector input:-ms-input-placeholder{text-transform:uppercase}.icons-selector .selector-search{position:relative}.icons-selector .selector-search i{position:absolute;right:10px;top:7px}.icons-selector .fip-icons-container{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px}.icons-selector .fip-icons-container .loading{font-size:24px;margin:0 auto;padding:20px 0;text-align:center;width:100%}.icons-selector .fip-box{display:inline-block;margin:2px;width:60px;line-height:42px;text-align:center;cursor:pointer;vertical-align:top;height:40px}.icons-selector .selector-footer{line-height:12px;padding:5px 5px 0;text-align:center}.icons-selector .selector-footer,.icons-selector .selector-footer i{font-size:14px}.icons-selector .selector-arrows{float:right}.icons-selector .selector-pages{font-size:11px;float:left}.icons-selector .selector-arrows i{cursor:pointer}.icons-selector .selector-footer em{font-style:italic}.icons-selector .icons-picker-error i:before{color:#eee}@font-face{font-family:iconpicker;src:url(iconpicker.eot?90190138);src:url(iconpicker.eot?90190138#iefix) format('embedded-opentype'),url(iconpicker.woff?90190138) format('woff'),url(iconpicker.ttf?90190138) format('truetype'),url(iconpicker.svg?90190138#iconpicker) format('svg');font-weight:400;font-style:normal}.icons-selector [class*=" fip-icon-"]:before,.icons-selector [class^=fip-icon-]:before{font-family:iconpicker;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icons-selector .fip-icon-search:before{content:'\e812';cursor:default}.icons-selector .fip-icon-cancel:before{content:'\e814';cursor:pointer}.icons-selector .fip-icon-block:before{content:'\e84e';color:#fed0d0}.icons-selector .fip-icon-down-dir:before{content:'\e800'}.icons-selector .fip-icon-up-dir:before{content:'\e813'}.icons-selector .fip-icon-left-dir:before{content:'\e801'}.icons-selector .fip-icon-right-dir:before{content:'\e802'}.icons-selector .fip-icon-spin3:before{content:'\e815'}.icons-selector .fip-icon-spin3{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
1
+ /* fontIconPicker main CSS file {@link https://github.com/micc83/fontIconPicker} */
2
+ .icons-selector *{margin:0;padding:0;border:0;vertical-align:baseline;}.icons-selector,.icons-selector *,.icons-selector :after,.icons-selector :before,.icons-selector:after,.icons-selector:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.icons-selector{display:inline-block;vertical-align:middle;text-align:left}.icons-selector .selector{width:100px;height:40px}.icons-selector .selector-button{width:39px;height:100%;display:block;text-align:center;cursor:pointer;float:left}.icons-selector .selector-button i{line-height:38px;text-align:center}.icons-selector .selected-icon{display:block;width:60px;height:100%;float:left;text-align:center}.icons-selector .selected-icon i{line-height:40px;font-size:18px;cursor:default}.icons-selector .selector-popup{position:absolute;z-index:10000;background-color:#fefefe;padding:5px;height:auto;width:342px;margin-top:-1px}.icons-selector .selector-category select,.icons-selector .selector-search input[type=text]{border:0;line-height:20px;padding:10px 2.5%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:5px;font-size:12px;display:block}.icons-selector .selector-category select{height:40px}.icons-selector .selector-category select option{padding:10px}.icons-selector input::-webkit-input-placeholder{text-transform:uppercase}.icons-selector input:-moz-placeholder{text-transform:uppercase}.icons-selector input::-moz-placeholder{text-transform:uppercase}.icons-selector input:-ms-input-placeholder{text-transform:uppercase}.icons-selector .selector-search{position:relative}.icons-selector .selector-search i{position:absolute;right:10px;top:7px}.icons-selector .fip-icons-container{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px}.icons-selector .fip-icons-container .loading{font-size:24px;margin:0 auto;padding:20px 0;text-align:center;width:100%}.icons-selector .fip-box{display:inline-block;margin:2px;width:60px;line-height:42px;text-align:center;cursor:pointer;vertical-align:top;height:40px}.icons-selector .selector-footer{line-height:12px;padding:5px 5px 0;text-align:center}.icons-selector .selector-footer,.icons-selector .selector-footer i{font-size:14px}.icons-selector .selector-arrows{float:right}.icons-selector .selector-pages{font-size:11px;float:left}.icons-selector .selector-arrows i{cursor:pointer}.icons-selector .selector-footer em{font-style:italic}.icons-selector .icons-picker-error i:before{color:#eee}@font-face{font-family:iconpicker;src:url(iconpicker.eot?90190138);src:url(iconpicker.eot?90190138#iefix) format('embedded-opentype'),url(iconpicker.woff?90190138) format('woff'),url(iconpicker.ttf?90190138) format('truetype'),url(iconpicker.svg?90190138#iconpicker) format('svg');font-weight:400;font-style:normal}.icons-selector [class*=" fip-icon-"]:before,.icons-selector [class^=fip-icon-]:before{font-family:iconpicker;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icons-selector .fip-icon-search:before{content:'\e812';cursor:default}.icons-selector .fip-icon-cancel:before{content:'\e814';cursor:pointer}.icons-selector .fip-icon-block:before{content:'\e84e';color:#fed0d0}.icons-selector .fip-icon-down-dir:before{content:'\e800'}.icons-selector .fip-icon-up-dir:before{content:'\e813'}.icons-selector .fip-icon-left-dir:before{content:'\e801'}.icons-selector .fip-icon-right-dir:before{content:'\e802'}.icons-selector .fip-icon-spin3:before{content:'\e815'}.icons-selector .fip-icon-spin3{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
admin/css/materialize.css CHANGED
@@ -1,8582 +1,8582 @@
1
- /*!
2
- * Materialize v0.98.0 (http://materializecss.com)
3
- * Copyright 2014-2015 Materialize
4
- * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
5
- */
6
- .materialize-red {
7
- background-color: #e51c23 !important;
8
- }
9
-
10
- .materialize-red-text {
11
- color: #e51c23 !important;
12
- }
13
-
14
- .materialize-red.lighten-5 {
15
- background-color: #fdeaeb !important;
16
- }
17
-
18
- .materialize-red-text.text-lighten-5 {
19
- color: #fdeaeb !important;
20
- }
21
-
22
- .materialize-red.lighten-4 {
23
- background-color: #f8c1c3 !important;
24
- }
25
-
26
- .materialize-red-text.text-lighten-4 {
27
- color: #f8c1c3 !important;
28
- }
29
-
30
- .materialize-red.lighten-3 {
31
- background-color: #f3989b !important;
32
- }
33
-
34
- .materialize-red-text.text-lighten-3 {
35
- color: #f3989b !important;
36
- }
37
-
38
- .materialize-red.lighten-2 {
39
- background-color: #ee6e73 !important;
40
- }
41
-
42
- .materialize-red-text.text-lighten-2 {
43
- color: #ee6e73 !important;
44
- }
45
-
46
- .materialize-red.lighten-1 {
47
- background-color: #ea454b !important;
48
- }
49
-
50
- .materialize-red-text.text-lighten-1 {
51
- color: #ea454b !important;
52
- }
53
-
54
- .materialize-red.darken-1 {
55
- background-color: #d0181e !important;
56
- }
57
-
58
- .materialize-red-text.text-darken-1 {
59
- color: #d0181e !important;
60
- }
61
-
62
- .materialize-red.darken-2 {
63
- background-color: #b9151b !important;
64
- }
65
-
66
- .materialize-red-text.text-darken-2 {
67
- color: #b9151b !important;
68
- }
69
-
70
- .materialize-red.darken-3 {
71
- background-color: #a21318 !important;
72
- }
73
-
74
- .materialize-red-text.text-darken-3 {
75
- color: #a21318 !important;
76
- }
77
-
78
- .materialize-red.darken-4 {
79
- background-color: #8b1014 !important;
80
- }
81
-
82
- .materialize-red-text.text-darken-4 {
83
- color: #8b1014 !important;
84
- }
85
-
86
- .red {
87
- background-color: #F44336 !important;
88
- }
89
-
90
- .red-text {
91
- color: #F44336 !important;
92
- }
93
-
94
- .red.lighten-5 {
95
- background-color: #FFEBEE !important;
96
- }
97
-
98
- .red-text.text-lighten-5 {
99
- color: #FFEBEE !important;
100
- }
101
-
102
- .red.lighten-4 {
103
- background-color: #FFCDD2 !important;
104
- }
105
-
106
- .red-text.text-lighten-4 {
107
- color: #FFCDD2 !important;
108
- }
109
-
110
- .red.lighten-3 {
111
- background-color: #EF9A9A !important;
112
- }
113
-
114
- .red-text.text-lighten-3 {
115
- color: #EF9A9A !important;
116
- }
117
-
118
- .red.lighten-2 {
119
- background-color: #E57373 !important;
120
- }
121
-
122
- .red-text.text-lighten-2 {
123
- color: #E57373 !important;
124
- }
125
-
126
- .red.lighten-1 {
127
- background-color: #EF5350 !important;
128
- }
129
-
130
- .red-text.text-lighten-1 {
131
- color: #EF5350 !important;
132
- }
133
-
134
- .red.darken-1 {
135
- background-color: #E53935 !important;
136
- }
137
-
138
- .red-text.text-darken-1 {
139
- color: #E53935 !important;
140
- }
141
-
142
- .red.darken-2 {
143
- background-color: #D32F2F !important;
144
- }
145
-
146
- .red-text.text-darken-2 {
147
- color: #D32F2F !important;
148
- }
149
-
150
- .red.darken-3 {
151
- background-color: #C62828 !important;
152
- }
153
-
154
- .red-text.text-darken-3 {
155
- color: #C62828 !important;
156
- }
157
-
158
- .red.darken-4 {
159
- background-color: #B71C1C !important;
160
- }
161
-
162
- .red-text.text-darken-4 {
163
- color: #B71C1C !important;
164
- }
165
-
166
- .red.accent-1 {
167
- background-color: #FF8A80 !important;
168
- }
169
-
170
- .red-text.text-accent-1 {
171
- color: #FF8A80 !important;
172
- }
173
-
174
- .red.accent-2 {
175
- background-color: #FF5252 !important;
176
- }
177
-
178
- .red-text.text-accent-2 {
179
- color: #FF5252 !important;
180
- }
181
-
182
- .red.accent-3 {
183
- background-color: #FF1744 !important;
184
- }
185
-
186
- .red-text.text-accent-3 {
187
- color: #FF1744 !important;
188
- }
189
-
190
- .red.accent-4 {
191
- background-color: #D50000 !important;
192
- }
193
-
194
- .red-text.text-accent-4 {
195
- color: #D50000 !important;
196
- }
197
-
198
- .pink {
199
- background-color: #e91e63 !important;
200
- }
201
-
202
- .pink-text {
203
- color: #e91e63 !important;
204
- }
205
-
206
- .pink.lighten-5 {
207
- background-color: #fce4ec !important;
208
- }
209
-
210
- .pink-text.text-lighten-5 {
211
- color: #fce4ec !important;
212
- }
213
-
214
- .pink.lighten-4 {
215
- background-color: #f8bbd0 !important;
216
- }
217
-
218
- .pink-text.text-lighten-4 {
219
- color: #f8bbd0 !important;
220
- }
221
-
222
- .pink.lighten-3 {
223
- background-color: #f48fb1 !important;
224
- }
225
-
226
- .pink-text.text-lighten-3 {
227
- color: #f48fb1 !important;
228
- }
229
-
230
- .pink.lighten-2 {
231
- background-color: #f06292 !important;
232
- }
233
-
234
- .pink-text.text-lighten-2 {
235
- color: #f06292 !important;
236
- }
237
-
238
- .pink.lighten-1 {
239
- background-color: #ec407a !important;
240
- }
241
-
242
- .pink-text.text-lighten-1 {
243
- color: #ec407a !important;
244
- }
245
-
246
- .pink.darken-1 {
247
- background-color: #d81b60 !important;
248
- }
249
-
250
- .pink-text.text-darken-1 {
251
- color: #d81b60 !important;
252
- }
253
-
254
- .pink.darken-2 {
255
- background-color: #c2185b !important;
256
- }
257
-
258
- .pink-text.text-darken-2 {
259
- color: #c2185b !important;
260
- }
261
-
262
- .pink.darken-3 {
263
- background-color: #ad1457 !important;
264
- }
265
-
266
- .pink-text.text-darken-3 {
267
- color: #ad1457 !important;
268
- }
269
-
270
- .pink.darken-4 {
271
- background-color: #880e4f !important;
272
- }
273
-
274
- .pink-text.text-darken-4 {
275
- color: #880e4f !important;
276
- }
277
-
278
- .pink.accent-1 {
279
- background-color: #ff80ab !important;
280
- }
281
-
282
- .pink-text.text-accent-1 {
283
- color: #ff80ab !important;
284
- }
285
-
286
- .pink.accent-2 {
287
- background-color: #ff4081 !important;
288
- }
289
-
290
- .pink-text.text-accent-2 {
291
- color: #ff4081 !important;
292
- }
293
-
294
- .pink.accent-3 {
295
- background-color: #f50057 !important;
296
- }
297
-
298
- .pink-text.text-accent-3 {
299
- color: #f50057 !important;
300
- }
301
-
302
- .pink.accent-4 {
303
- background-color: #c51162 !important;
304
- }
305
-
306
- .pink-text.text-accent-4 {
307
- color: #c51162 !important;
308
- }
309
-
310
- .purple {
311
- background-color: #9c27b0 !important;
312
- }
313
-
314
- .purple-text {
315
- color: #9c27b0 !important;
316
- }
317
-
318
- .purple.lighten-5 {
319
- background-color: #f3e5f5 !important;
320
- }
321
-
322
- .purple-text.text-lighten-5 {
323
- color: #f3e5f5 !important;
324
- }
325
-
326
- .purple.lighten-4 {
327
- background-color: #e1bee7 !important;
328
- }
329
-
330
- .purple-text.text-lighten-4 {
331
- color: #e1bee7 !important;
332
- }
333
-
334
- .purple.lighten-3 {
335
- background-color: #ce93d8 !important;
336
- }
337
-
338
- .purple-text.text-lighten-3 {
339
- color: #ce93d8 !important;
340
- }
341
-
342
- .purple.lighten-2 {
343
- background-color: #ba68c8 !important;
344
- }
345
-
346
- .purple-text.text-lighten-2 {
347
- color: #ba68c8 !important;
348
- }
349
-
350
- .purple.lighten-1 {
351
- background-color: #ab47bc !important;
352
- }
353
-
354
- .purple-text.text-lighten-1 {
355
- color: #ab47bc !important;
356
- }
357
-
358
- .purple.darken-1 {
359
- background-color: #8e24aa !important;
360
- }
361
-
362
- .purple-text.text-darken-1 {
363
- color: #8e24aa !important;
364
- }
365
-
366
- .purple.darken-2 {
367
- background-color: #7b1fa2 !important;
368
- }
369
-
370
- .purple-text.text-darken-2 {
371
- color: #7b1fa2 !important;
372
- }
373
-
374
- .purple.darken-3 {
375
- background-color: #6a1b9a !important;
376
- }
377
-
378
- .purple-text.text-darken-3 {
379
- color: #6a1b9a !important;
380
- }
381
-
382
- .purple.darken-4 {
383
- background-color: #4a148c !important;
384
- }
385
-
386
- .purple-text.text-darken-4 {
387
- color: #4a148c !important;
388
- }
389
-
390
- .purple.accent-1 {
391
- background-color: #ea80fc !important;
392
- }
393
-
394
- .purple-text.text-accent-1 {
395
- color: #ea80fc !important;
396
- }
397
-
398
- .purple.accent-2 {
399
- background-color: #e040fb !important;
400
- }
401
-
402
- .purple-text.text-accent-2 {
403
- color: #e040fb !important;
404
- }
405
-
406
- .purple.accent-3 {
407
- background-color: #d500f9 !important;
408
- }
409
-
410
- .purple-text.text-accent-3 {
411
- color: #d500f9 !important;
412
- }
413
-
414
- .purple.accent-4 {
415
- background-color: #aa00ff !important;
416
- }
417
-
418
- .purple-text.text-accent-4 {
419
- color: #aa00ff !important;
420
- }
421
-
422
- .deep-purple {
423
- background-color: #673ab7 !important;
424
- }
425
-
426
- .deep-purple-text {
427
- color: #673ab7 !important;
428
- }
429
-
430
- .deep-purple.lighten-5 {
431
- background-color: #ede7f6 !important;
432
- }
433
-
434
- .deep-purple-text.text-lighten-5 {
435
- color: #ede7f6 !important;
436
- }
437
-
438
- .deep-purple.lighten-4 {
439
- background-color: #d1c4e9 !important;
440
- }
441
-
442
- .deep-purple-text.text-lighten-4 {
443
- color: #d1c4e9 !important;
444
- }
445
-
446
- .deep-purple.lighten-3 {
447
- background-color: #b39ddb !important;
448
- }
449
-
450
- .deep-purple-text.text-lighten-3 {
451
- color: #b39ddb !important;
452
- }
453
-
454
- .deep-purple.lighten-2 {
455
- background-color: #9575cd !important;
456
- }
457
-
458
- .deep-purple-text.text-lighten-2 {
459
- color: #9575cd !important;
460
- }
461
-
462
- .deep-purple.lighten-1 {
463
- background-color: #7e57c2 !important;
464
- }
465
-
466
- .deep-purple-text.text-lighten-1 {
467
- color: #7e57c2 !important;
468
- }
469
-
470
- .deep-purple.darken-1 {
471
- background-color: #5e35b1 !important;
472
- }
473
-
474
- .deep-purple-text.text-darken-1 {
475
- color: #5e35b1 !important;
476
- }
477
-
478
- .deep-purple.darken-2 {
479
- background-color: #512da8 !important;
480
- }
481
-
482
- .deep-purple-text.text-darken-2 {
483
- color: #512da8 !important;
484
- }
485
-
486
- .deep-purple.darken-3 {
487
- background-color: #4527a0 !important;
488
- }
489
-
490
- .deep-purple-text.text-darken-3 {
491
- color: #4527a0 !important;
492
- }
493
-
494
- .deep-purple.darken-4 {
495
- background-color: #311b92 !important;
496
- }
497
-
498
- .deep-purple-text.text-darken-4 {
499
- color: #311b92 !important;
500
- }
501
-
502
- .deep-purple.accent-1 {
503
- background-color: #b388ff !important;
504
- }
505
-
506
- .deep-purple-text.text-accent-1 {
507
- color: #b388ff !important;
508
- }
509
-
510
- .deep-purple.accent-2 {
511
- background-color: #7c4dff !important;
512
- }
513
-
514
- .deep-purple-text.text-accent-2 {
515
- color: #7c4dff !important;
516
- }
517
-
518
- .deep-purple.accent-3 {
519
- background-color: #651fff !important;
520
- }
521
-
522
- .deep-purple-text.text-accent-3 {
523
- color: #651fff !important;
524
- }
525
-
526
- .deep-purple.accent-4 {
527
- background-color: #6200ea !important;
528
- }
529
-
530
- .deep-purple-text.text-accent-4 {
531
- color: #6200ea !important;
532
- }
533
-
534
- .indigo {
535
- background-color: #3f51b5 !important;
536
- }
537
-
538
- .indigo-text {
539
- color: #3f51b5 !important;
540
- }
541
-
542
- .indigo.lighten-5 {
543
- background-color: #e8eaf6 !important;
544
- }
545
-
546
- .indigo-text.text-lighten-5 {
547
- color: #e8eaf6 !important;
548
- }
549
-
550
- .indigo.lighten-4 {
551
- background-color: #c5cae9 !important;
552
- }
553
-
554
- .indigo-text.text-lighten-4 {
555
- color: #c5cae9 !important;
556
- }
557
-
558
- .indigo.lighten-3 {
559
- background-color: #9fa8da !important;
560
- }
561
-
562
- .indigo-text.text-lighten-3 {
563
- color: #9fa8da !important;
564
- }
565
-
566
- .indigo.lighten-2 {
567
- background-color: #7986cb !important;
568
- }
569
-
570
- .indigo-text.text-lighten-2 {
571
- color: #7986cb !important;
572
- }
573
-
574
- .indigo.lighten-1 {
575
- background-color: #5c6bc0 !important;
576
- }
577
-
578
- .indigo-text.text-lighten-1 {
579
- color: #5c6bc0 !important;
580
- }
581
-
582
- .indigo.darken-1 {
583
- background-color: #3949ab !important;
584
- }
585
-
586
- .indigo-text.text-darken-1 {
587
- color: #3949ab !important;
588
- }
589
-
590
- .indigo.darken-2 {
591
- background-color: #303f9f !important;
592
- }
593
-
594
- .indigo-text.text-darken-2 {
595
- color: #303f9f !important;
596
- }
597
-
598
- .indigo.darken-3 {
599
- background-color: #283593 !important;
600
- }
601
-
602
- .indigo-text.text-darken-3 {
603
- color: #283593 !important;
604
- }
605
-
606
- .indigo.darken-4 {
607
- background-color: #1a237e !important;
608
- }
609
-
610
- .indigo-text.text-darken-4 {
611
- color: #1a237e !important;
612
- }
613
-
614
- .indigo.accent-1 {
615
- background-color: #8c9eff !important;
616
- }
617
-
618
- .indigo-text.text-accent-1 {
619
- color: #8c9eff !important;
620
- }
621
-
622
- .indigo.accent-2 {
623
- background-color: #536dfe !important;
624
- }
625
-
626
- .indigo-text.text-accent-2 {
627
- color: #536dfe !important;
628
- }
629
-
630
- .indigo.accent-3 {
631
- background-color: #3d5afe !important;
632
- }
633
-
634
- .indigo-text.text-accent-3 {
635
- color: #3d5afe !important;
636
- }
637
-
638
- .indigo.accent-4 {
639
- background-color: #304ffe !important;
640
- }
641
-
642
- .indigo-text.text-accent-4 {
643
- color: #304ffe !important;
644
- }
645
-
646
- .blue {
647
- background-color: #2196F3 !important;
648
- }
649
-
650
- .blue-text {
651
- color: #2196F3 !important;
652
- }
653
-
654
- .blue.lighten-5 {
655
- background-color: #E3F2FD !important;
656
- }
657
-
658
- .blue-text.text-lighten-5 {
659
- color: #E3F2FD !important;
660
- }
661
-
662
- .blue.lighten-4 {
663
- background-color: #BBDEFB !important;
664
- }
665
-
666
- .blue-text.text-lighten-4 {
667
- color: #BBDEFB !important;
668
- }
669
-
670
- .blue.lighten-3 {
671
- background-color: #90CAF9 !important;
672
- }
673
-
674
- .blue-text.text-lighten-3 {
675
- color: #90CAF9 !important;
676
- }
677
-
678
- .blue.lighten-2 {
679
- background-color: #64B5F6 !important;
680
- }
681
-
682
- .blue-text.text-lighten-2 {
683
- color: #64B5F6 !important;
684
- }
685
-
686
- .blue.lighten-1 {
687
- background-color: #42A5F5 !important;
688
- }
689
-
690
- .blue-text.text-lighten-1 {
691
- color: #42A5F5 !important;
692
- }
693
-
694
- .blue.darken-1 {
695
- background-color: #1E88E5 !important;
696
- }
697
-
698
- .blue-text.text-darken-1 {
699
- color: #1E88E5 !important;
700
- }
701
-
702
- .blue.darken-2 {
703
- background-color: #1976D2 !important;
704
- }
705
-
706
- .blue-text.text-darken-2 {
707
- color: #1976D2 !important;
708
- }
709
-
710
- .blue.darken-3 {
711
- background-color: #1565C0 !important;
712
- }
713
-
714
- .blue-text.text-darken-3 {
715
- color: #1565C0 !important;
716
- }
717
-
718
- .blue.darken-4 {
719
- background-color: #0D47A1 !important;
720
- }
721
-
722
- .blue-text.text-darken-4 {
723
- color: #0D47A1 !important;
724
- }
725
-
726
- .blue.accent-1 {
727
- background-color: #82B1FF !important;
728
- }
729
-
730
- .blue-text.text-accent-1 {
731
- color: #82B1FF !important;
732
- }
733
-
734
- .blue.accent-2 {
735
- background-color: #448AFF !important;
736
- }
737
-
738
- .blue-text.text-accent-2 {
739
- color: #448AFF !important;
740
- }
741
-
742
- .blue.accent-3 {
743
- background-color: #2979FF !important;
744
- }
745
-
746
- .blue-text.text-accent-3 {
747
- color: #2979FF !important;
748
- }
749
-
750
- .blue.accent-4 {
751
- background-color: #2962FF !important;
752
- }
753
-
754
- .blue-text.text-accent-4 {
755
- color: #2962FF !important;
756
- }
757
-
758
- .light-blue {
759
- background-color: #03a9f4 !important;
760
- }
761
-
762
- .light-blue-text {
763
- color: #03a9f4 !important;
764
- }
765
-
766
- .light-blue.lighten-5 {
767
- background-color: #e1f5fe !important;
768
- }
769
-
770
- .light-blue-text.text-lighten-5 {
771
- color: #e1f5fe !important;
772
- }
773
-
774
- .light-blue.lighten-4 {
775
- background-color: #b3e5fc !important;
776
- }
777
-
778
- .light-blue-text.text-lighten-4 {
779
- color: #b3e5fc !important;
780
- }
781
-
782
- .light-blue.lighten-3 {
783
- background-color: #81d4fa !important;
784
- }
785
-
786
- .light-blue-text.text-lighten-3 {
787
- color: #81d4fa !important;
788
- }
789
-
790
- .light-blue.lighten-2 {
791
- background-color: #4fc3f7 !important;
792
- }
793
-
794
- .light-blue-text.text-lighten-2 {
795
- color: #4fc3f7 !important;
796
- }
797
-
798
- .light-blue.lighten-1 {
799
- background-color: #29b6f6 !important;
800
- }
801
-
802
- .light-blue-text.text-lighten-1 {
803
- color: #29b6f6 !important;
804
- }
805
-
806
- .light-blue.darken-1 {
807
- background-color: #039be5 !important;
808
- }
809
-
810
- .light-blue-text.text-darken-1 {
811
- color: #039be5 !important;
812
- }
813
-
814
- .light-blue.darken-2 {
815
- background-color: #0288d1 !important;
816
- }
817
-
818
- .light-blue-text.text-darken-2 {
819
- color: #0288d1 !important;
820
- }
821
-
822
- .light-blue.darken-3 {
823
- background-color: #0277bd !important;
824
- }
825
-
826
- .light-blue-text.text-darken-3 {
827
- color: #0277bd !important;
828
- }
829
-
830
- .light-blue.darken-4 {
831
- background-color: #01579b !important;
832
- }
833
-
834
- .light-blue-text.text-darken-4 {
835
- color: #01579b !important;
836
- }
837
-
838
- .light-blue.accent-1 {
839
- background-color: #80d8ff !important;
840
- }
841
-
842
- .light-blue-text.text-accent-1 {
843
- color: #80d8ff !important;
844
- }
845
-
846
- .light-blue.accent-2 {
847
- background-color: #40c4ff !important;
848
- }
849
-
850
- .light-blue-text.text-accent-2 {
851
- color: #40c4ff !important;
852
- }
853
-
854
- .light-blue.accent-3 {
855
- background-color: #00b0ff !important;
856
- }
857
-
858
- .light-blue-text.text-accent-3 {
859
- color: #00b0ff !important;
860
- }
861
-
862
- .light-blue.accent-4 {
863
- background-color: #0091ea !important;
864
- }
865
-
866
- .light-blue-text.text-accent-4 {
867
- color: #0091ea !important;
868
- }
869
-
870
- .cyan {
871
- background-color: #00bcd4 !important;
872
- }
873
-
874
- .cyan-text {
875
- color: #00bcd4 !important;
876
- }
877
-
878
- .cyan.lighten-5 {
879
- background-color: #e0f7fa !important;
880
- }
881
-
882
- .cyan-text.text-lighten-5 {
883
- color: #e0f7fa !important;
884
- }
885
-
886
- .cyan.lighten-4 {
887
- background-color: #b2ebf2 !important;
888
- }
889
-
890
- .cyan-text.text-lighten-4 {
891
- color: #b2ebf2 !important;
892
- }
893
-
894
- .cyan.lighten-3 {
895
- background-color: #80deea !important;
896
- }
897
-
898
- .cyan-text.text-lighten-3 {
899
- color: #80deea !important;
900
- }
901
-
902
- .cyan.lighten-2 {
903
- background-color: #4dd0e1 !important;
904
- }
905
-
906
- .cyan-text.text-lighten-2 {
907
- color: #4dd0e1 !important;
908
- }
909
-
910
- .cyan.lighten-1 {
911
- background-color: #26c6da !important;
912
- }
913
-
914
- .cyan-text.text-lighten-1 {
915
- color: #26c6da !important;
916
- }
917
-
918
- .cyan.darken-1 {
919
- background-color: #00acc1 !important;
920
- }
921
-
922
- .cyan-text.text-darken-1 {
923
- color: #00acc1 !important;
924
- }
925
-
926
- .cyan.darken-2 {
927
- background-color: #0097a7 !important;
928
- }
929
-
930
- .cyan-text.text-darken-2 {
931
- color: #0097a7 !important;
932
- }
933
-
934
- .cyan.darken-3 {
935
- background-color: #00838f !important;
936
- }
937
-
938
- .cyan-text.text-darken-3 {
939
- color: #00838f !important;
940
- }
941
-
942
- .cyan.darken-4 {
943
- background-color: #006064 !important;
944
- }
945
-
946
- .cyan-text.text-darken-4 {
947
- color: #006064 !important;
948
- }
949
-
950
- .cyan.accent-1 {
951
- background-color: #84ffff !important;
952
- }
953
-
954
- .cyan-text.text-accent-1 {
955
- color: #84ffff !important;
956
- }
957
-
958
- .cyan.accent-2 {
959
- background-color: #18ffff !important;
960
- }
961
-
962
- .cyan-text.text-accent-2 {
963
- color: #18ffff !important;
964
- }
965
-
966
- .cyan.accent-3 {
967
- background-color: #00e5ff !important;
968
- }
969
-
970
- .cyan-text.text-accent-3 {
971
- color: #00e5ff !important;
972
- }
973
-
974
- .cyan.accent-4 {
975
- background-color: #00b8d4 !important;
976
- }
977
-
978
- .cyan-text.text-accent-4 {
979
- color: #00b8d4 !important;
980
- }
981
-
982
- .teal {
983
- background-color: #009688 !important;
984
- }
985
-
986
- .teal-text {
987
- color: #009688 !important;
988
- }
989
-
990
- .teal.lighten-5 {
991
- background-color: #e0f2f1 !important;
992
- }
993
-
994
- .teal-text.text-lighten-5 {
995
- color: #e0f2f1 !important;
996
- }
997
-
998
- .teal.lighten-4 {
999
- background-color: #b2dfdb !important;
1000
- }
1001
-
1002
- .teal-text.text-lighten-4 {
1003
- color: #b2dfdb !important;
1004
- }
1005
-
1006
- .teal.lighten-3 {
1007
- background-color: #80cbc4 !important;
1008
- }
1009
-
1010
- .teal-text.text-lighten-3 {
1011
- color: #80cbc4 !important;
1012
- }
1013
-
1014
- .teal.lighten-2 {
1015
- background-color: #4db6ac !important;
1016
- }
1017
-
1018
- .teal-text.text-lighten-2 {
1019
- color: #4db6ac !important;
1020
- }
1021
-
1022
- .teal.lighten-1 {
1023
- background-color: #26a69a !important;
1024
- }
1025
-
1026
- .teal-text.text-lighten-1 {
1027
- color: #26a69a !important;
1028
- }
1029
-
1030
- .teal.darken-1 {
1031
- background-color: #00897b !important;
1032
- }
1033
-
1034
- .teal-text.text-darken-1 {
1035
- color: #00897b !important;
1036
- }
1037
-
1038
- .teal.darken-2 {
1039
- background-color: #00796b !important;
1040
- }
1041
-
1042
- .teal-text.text-darken-2 {
1043
- color: #00796b !important;
1044
- }
1045
-
1046
- .teal.darken-3 {
1047
- background-color: #00695c !important;
1048
- }
1049
-
1050
- .teal-text.text-darken-3 {
1051
- color: #00695c !important;
1052
- }
1053
-
1054
- .teal.darken-4 {
1055
- background-color: #004d40 !important;
1056
- }
1057
-
1058
- .teal-text.text-darken-4 {
1059
- color: #004d40 !important;
1060
- }
1061
-
1062
- .teal.accent-1 {
1063
- background-color: #a7ffeb !important;
1064
- }
1065
-
1066
- .teal-text.text-accent-1 {
1067
- color: #a7ffeb !important;
1068
- }
1069
-
1070
- .teal.accent-2 {
1071
- background-color: #64ffda !important;
1072
- }
1073
-
1074
- .teal-text.text-accent-2 {
1075
- color: #64ffda !important;
1076
- }
1077
-
1078
- .teal.accent-3 {
1079
- background-color: #1de9b6 !important;
1080
- }
1081
-
1082
- .teal-text.text-accent-3 {
1083
- color: #1de9b6 !important;
1084
- }
1085
-
1086
- .teal.accent-4 {
1087
- background-color: #00bfa5 !important;
1088
- }
1089
-
1090
- .teal-text.text-accent-4 {
1091
- color: #00bfa5 !important;
1092
- }
1093
-
1094
- .green {
1095
- background-color: #4CAF50 !important;
1096
- }
1097
-
1098
- .green-text {
1099
- color: #4CAF50 !important;
1100
- }
1101
-
1102
- .green.lighten-5 {
1103
- background-color: #E8F5E9 !important;
1104
- }
1105
-
1106
- .green-text.text-lighten-5 {
1107
- color: #E8F5E9 !important;
1108
- }
1109
-
1110
- .green.lighten-4 {
1111
- background-color: #C8E6C9 !important;
1112
- }
1113
-
1114
- .green-text.text-lighten-4 {
1115
- color: #C8E6C9 !important;
1116
- }
1117
-
1118
- .green.lighten-3 {
1119
- background-color: #A5D6A7 !important;
1120
- }
1121
-
1122
- .green-text.text-lighten-3 {
1123
- color: #A5D6A7 !important;
1124
- }
1125
-
1126
- .green.lighten-2 {
1127
- background-color: #81C784 !important;
1128
- }
1129
-
1130
- .green-text.text-lighten-2 {
1131
- color: #81C784 !important;
1132
- }
1133
-
1134
- .green.lighten-1 {
1135
- background-color: #66BB6A !important;
1136
- }
1137
-
1138
- .green-text.text-lighten-1 {
1139
- color: #66BB6A !important;
1140
- }
1141
-
1142
- .green.darken-1 {
1143
- background-color: #43A047 !important;
1144
- }
1145
-
1146
- .green-text.text-darken-1 {
1147
- color: #43A047 !important;
1148
- }
1149
-
1150
- .green.darken-2 {
1151
- background-color: #388E3C !important;
1152
- }
1153
-
1154
- .green-text.text-darken-2 {
1155
- color: #388E3C !important;
1156
- }
1157
-
1158
- .green.darken-3 {
1159
- background-color: #2E7D32 !important;
1160
- }
1161
-
1162
- .green-text.text-darken-3 {
1163
- color: #2E7D32 !important;
1164
- }
1165
-
1166
- .green.darken-4 {
1167
- background-color: #1B5E20 !important;
1168
- }
1169
-
1170
- .green-text.text-darken-4 {
1171
- color: #1B5E20 !important;
1172
- }
1173
-
1174
- .green.accent-1 {
1175
- background-color: #B9F6CA !important;
1176
- }
1177
-
1178
- .green-text.text-accent-1 {
1179
- color: #B9F6CA !important;
1180
- }
1181
-
1182
- .green.accent-2 {
1183
- background-color: #69F0AE !important;
1184
- }
1185
-
1186
- .green-text.text-accent-2 {
1187
- color: #69F0AE !important;
1188
- }
1189
-
1190
- .green.accent-3 {
1191
- background-color: #00E676 !important;
1192
- }
1193
-
1194
- .green-text.text-accent-3 {
1195
- color: #00E676 !important;
1196
- }
1197
-
1198
- .green.accent-4 {
1199
- background-color: #00C853 !important;
1200
- }
1201
-
1202
- .green-text.text-accent-4 {
1203
- color: #00C853 !important;
1204
- }
1205
-
1206
- .light-green {
1207
- background-color: #8bc34a !important;
1208
- }
1209
-
1210
- .light-green-text {
1211
- color: #8bc34a !important;
1212
- }
1213
-
1214
- .light-green.lighten-5 {
1215
- background-color: #f1f8e9 !important;
1216
- }
1217
-
1218
- .light-green-text.text-lighten-5 {
1219
- color: #f1f8e9 !important;
1220
- }
1221
-
1222
- .light-green.lighten-4 {
1223
- background-color: #dcedc8 !important;
1224
- }
1225
-
1226
- .light-green-text.text-lighten-4 {
1227
- color: #dcedc8 !important;
1228
- }
1229
-
1230
- .light-green.lighten-3 {
1231
- background-color: #c5e1a5 !important;
1232
- }
1233
-
1234
- .light-green-text.text-lighten-3 {
1235
- color: #c5e1a5 !important;
1236
- }
1237
-
1238
- .light-green.lighten-2 {
1239
- background-color: #aed581 !important;
1240
- }
1241
-
1242
- .light-green-text.text-lighten-2 {
1243
- color: #aed581 !important;
1244
- }
1245
-
1246
- .light-green.lighten-1 {
1247
- background-color: #9ccc65 !important;
1248
- }
1249
-
1250
- .light-green-text.text-lighten-1 {
1251
- color: #9ccc65 !important;
1252
- }
1253
-
1254
- .light-green.darken-1 {
1255
- background-color: #7cb342 !important;
1256
- }
1257
-
1258
- .light-green-text.text-darken-1 {
1259
- color: #7cb342 !important;
1260
- }
1261
-
1262
- .light-green.darken-2 {
1263
- background-color: #689f38 !important;
1264
- }
1265
-
1266
- .light-green-text.text-darken-2 {
1267
- color: #689f38 !important;
1268
- }
1269
-
1270
- .light-green.darken-3 {
1271
- background-color: #558b2f !important;
1272
- }
1273
-
1274
- .light-green-text.text-darken-3 {
1275
- color: #558b2f !important;
1276
- }
1277
-
1278
- .light-green.darken-4 {
1279
- background-color: #33691e !important;
1280
- }
1281
-
1282
- .light-green-text.text-darken-4 {
1283
- color: #33691e !important;
1284
- }
1285
-
1286
- .light-green.accent-1 {
1287
- background-color: #ccff90 !important;
1288
- }
1289
-
1290
- .light-green-text.text-accent-1 {
1291
- color: #ccff90 !important;
1292
- }
1293
-
1294
- .light-green.accent-2 {
1295
- background-color: #b2ff59 !important;
1296
- }
1297
-
1298
- .light-green-text.text-accent-2 {
1299
- color: #b2ff59 !important;
1300
- }
1301
-
1302
- .light-green.accent-3 {
1303
- background-color: #76ff03 !important;
1304
- }
1305
-
1306
- .light-green-text.text-accent-3 {
1307
- color: #76ff03 !important;
1308
- }
1309
-
1310
- .light-green.accent-4 {
1311
- background-color: #64dd17 !important;
1312
- }
1313
-
1314
- .light-green-text.text-accent-4 {
1315
- color: #64dd17 !important;
1316
- }
1317
-
1318
- .lime {
1319
- background-color: #cddc39 !important;
1320
- }
1321
-
1322
- .lime-text {
1323
- color: #cddc39 !important;
1324
- }
1325
-
1326
- .lime.lighten-5 {
1327
- background-color: #f9fbe7 !important;
1328
- }
1329
-
1330
- .lime-text.text-lighten-5 {
1331
- color: #f9fbe7 !important;
1332
- }
1333
-
1334
- .lime.lighten-4 {
1335
- background-color: #f0f4c3 !important;
1336
- }
1337
-
1338
- .lime-text.text-lighten-4 {
1339
- color: #f0f4c3 !important;
1340
- }
1341
-
1342
- .lime.lighten-3 {
1343
- background-color: #e6ee9c !important;
1344
- }
1345
-
1346
- .lime-text.text-lighten-3 {
1347
- color: #e6ee9c !important;
1348
- }
1349
-
1350
- .lime.lighten-2 {
1351
- background-color: #dce775 !important;
1352
- }
1353
-
1354
- .lime-text.text-lighten-2 {
1355
- color: #dce775 !important;
1356
- }
1357
-
1358
- .lime.lighten-1 {
1359
- background-color: #d4e157 !important;
1360
- }
1361
-
1362
- .lime-text.text-lighten-1 {
1363
- color: #d4e157 !important;
1364
- }
1365
-
1366
- .lime.darken-1 {
1367
- background-color: #c0ca33 !important;
1368
- }
1369
-
1370
- .lime-text.text-darken-1 {
1371
- color: #c0ca33 !important;
1372
- }
1373
-
1374
- .lime.darken-2 {
1375
- background-color: #afb42b !important;
1376
- }
1377
-
1378
- .lime-text.text-darken-2 {
1379
- color: #afb42b !important;
1380
- }
1381
-
1382
- .lime.darken-3 {
1383
- background-color: #9e9d24 !important;
1384
- }
1385
-
1386
- .lime-text.text-darken-3 {
1387
- color: #9e9d24 !important;
1388
- }
1389
-
1390
- .lime.darken-4 {
1391
- background-color: #827717 !important;
1392
- }
1393
-
1394
- .lime-text.text-darken-4 {
1395
- color: #827717 !important;
1396
- }
1397
-
1398
- .lime.accent-1 {
1399
- background-color: #f4ff81 !important;
1400
- }
1401
-
1402
- .lime-text.text-accent-1 {
1403
- color: #f4ff81 !important;
1404
- }
1405
-
1406
- .lime.accent-2 {
1407
- background-color: #eeff41 !important;
1408
- }
1409
-
1410
- .lime-text.text-accent-2 {
1411
- color: #eeff41 !important;
1412
- }
1413
-
1414
- .lime.accent-3 {
1415
- background-color: #c6ff00 !important;
1416
- }
1417
-
1418
- .lime-text.text-accent-3 {
1419
- color: #c6ff00 !important;
1420
- }
1421
-
1422
- .lime.accent-4 {
1423
- background-color: #aeea00 !important;
1424
- }
1425
-
1426
- .lime-text.text-accent-4 {
1427
- color: #aeea00 !important;
1428
- }
1429
-
1430
- .yellow {
1431
- background-color: #ffeb3b !important;
1432
- }
1433
-
1434
- .yellow-text {
1435
- color: #ffeb3b !important;
1436
- }
1437
-
1438
- .yellow.lighten-5 {
1439
- background-color: #fffde7 !important;
1440
- }
1441
-
1442
- .yellow-text.text-lighten-5 {
1443
- color: #fffde7 !important;
1444
- }
1445
-
1446
- .yellow.lighten-4 {
1447
- background-color: #fff9c4 !important;
1448
- }
1449
-
1450
- .yellow-text.text-lighten-4 {
1451
- color: #fff9c4 !important;
1452
- }
1453
-
1454
- .yellow.lighten-3 {
1455
- background-color: #fff59d !important;
1456
- }
1457
-
1458
- .yellow-text.text-lighten-3 {
1459
- color: #fff59d !important;
1460
- }
1461
-
1462
- .yellow.lighten-2 {
1463
- background-color: #fff176 !important;
1464
- }
1465
-
1466
- .yellow-text.text-lighten-2 {
1467
- color: #fff176 !important;
1468
- }
1469
-
1470
- .yellow.lighten-1 {
1471
- background-color: #ffee58 !important;
1472
- }
1473
-
1474
- .yellow-text.text-lighten-1 {
1475
- color: #ffee58 !important;
1476
- }
1477
-
1478
- .yellow.darken-1 {
1479
- background-color: #fdd835 !important;
1480
- }
1481
-
1482
- .yellow-text.text-darken-1 {
1483
- color: #fdd835 !important;
1484
- }
1485
-
1486
- .yellow.darken-2 {
1487
- background-color: #fbc02d !important;
1488
- }
1489
-
1490
- .yellow-text.text-darken-2 {
1491
- color: #fbc02d !important;
1492
- }
1493
-
1494
- .yellow.darken-3 {
1495
- background-color: #f9a825 !important;
1496
- }
1497
-
1498
- .yellow-text.text-darken-3 {
1499
- color: #f9a825 !important;
1500
- }
1501
-
1502
- .yellow.darken-4 {
1503
- background-color: #f57f17 !important;
1504
- }
1505
-
1506
- .yellow-text.text-darken-4 {
1507
- color: #f57f17 !important;
1508
- }
1509
-
1510
- .yellow.accent-1 {
1511
- background-color: #ffff8d !important;
1512
- }
1513
-
1514
- .yellow-text.text-accent-1 {
1515
- color: #ffff8d !important;
1516
- }
1517
-
1518
- .yellow.accent-2 {
1519
- background-color: #ffff00 !important;
1520
- }
1521
-
1522
- .yellow-text.text-accent-2 {
1523
- color: #ffff00 !important;
1524
- }
1525
-
1526
- .yellow.accent-3 {
1527
- background-color: #ffea00 !important;
1528
- }
1529
-
1530
- .yellow-text.text-accent-3 {
1531
- color: #ffea00 !important;
1532
- }
1533
-
1534
- .yellow.accent-4 {
1535
- background-color: #ffd600 !important;
1536
- }
1537
-
1538
- .yellow-text.text-accent-4 {
1539
- color: #ffd600 !important;
1540
- }
1541
-
1542
- .amber {
1543
- background-color: #ffc107 !important;
1544
- }
1545
-
1546
- .amber-text {
1547
- color: #ffc107 !important;
1548
- }
1549
-
1550
- .amber.lighten-5 {
1551
- background-color: #fff8e1 !important;
1552
- }
1553
-
1554
- .amber-text.text-lighten-5 {
1555
- color: #fff8e1 !important;
1556
- }
1557
-
1558
- .amber.lighten-4 {
1559
- background-color: #ffecb3 !important;
1560
- }
1561
-
1562
- .amber-text.text-lighten-4 {
1563
- color: #ffecb3 !important;
1564
- }
1565
-
1566
- .amber.lighten-3 {
1567
- background-color: #ffe082 !important;
1568
- }
1569
-
1570
- .amber-text.text-lighten-3 {
1571
- color: #ffe082 !important;
1572
- }
1573
-
1574
- .amber.lighten-2 {
1575
- background-color: #ffd54f !important;
1576
- }
1577
-
1578
- .amber-text.text-lighten-2 {
1579
- color: #ffd54f !important;
1580
- }
1581
-
1582
- .amber.lighten-1 {
1583
- background-color: #ffca28 !important;
1584
- }
1585
-
1586
- .amber-text.text-lighten-1 {
1587
- color: #ffca28 !important;
1588
- }
1589
-
1590
- .amber.darken-1 {
1591
- background-color: #ffb300 !important;
1592
- }
1593
-
1594
- .amber-text.text-darken-1 {
1595
- color: #ffb300 !important;
1596
- }
1597
-
1598
- .amber.darken-2 {
1599
- background-color: #ffa000 !important;
1600
- }
1601
-
1602
- .amber-text.text-darken-2 {
1603
- color: #ffa000 !important;
1604
- }
1605
-
1606
- .amber.darken-3 {
1607
- background-color: #ff8f00 !important;
1608
- }
1609
-
1610
- .amber-text.text-darken-3 {
1611
- color: #ff8f00 !important;
1612
- }
1613
-
1614
- .amber.darken-4 {
1615
- background-color: #ff6f00 !important;
1616
- }
1617
-
1618
- .amber-text.text-darken-4 {
1619
- color: #ff6f00 !important;
1620
- }
1621
-
1622
- .amber.accent-1 {
1623
- background-color: #ffe57f !important;
1624
- }
1625
-
1626
- .amber-text.text-accent-1 {
1627
- color: #ffe57f !important;
1628
- }
1629
-
1630
- .amber.accent-2 {
1631
- background-color: #ffd740 !important;
1632
- }
1633
-
1634
- .amber-text.text-accent-2 {
1635
- color: #ffd740 !important;
1636
- }
1637
-
1638
- .amber.accent-3 {
1639
- background-color: #ffc400 !important;
1640
- }
1641
-
1642
- .amber-text.text-accent-3 {
1643
- color: #ffc400 !important;
1644
- }
1645
-
1646
- .amber.accent-4 {
1647
- background-color: #ffab00 !important;
1648
- }
1649
-
1650
- .amber-text.text-accent-4 {
1651
- color: #ffab00 !important;
1652
- }
1653
-
1654
- .orange {
1655
- background-color: #ff9800 !important;
1656
- }
1657
-
1658
- .orange-text {
1659
- color: #ff9800 !important;
1660
- }
1661
-
1662
- .orange.lighten-5 {
1663
- background-color: #fff3e0 !important;
1664
- }
1665
-
1666
- .orange-text.text-lighten-5 {
1667
- color: #fff3e0 !important;
1668
- }
1669
-
1670
- .orange.lighten-4 {
1671
- background-color: #ffe0b2 !important;
1672
- }
1673
-
1674
- .orange-text.text-lighten-4 {
1675
- color: #ffe0b2 !important;
1676
- }
1677
-
1678
- .orange.lighten-3 {
1679
- background-color: #ffcc80 !important;
1680
- }
1681
-
1682
- .orange-text.text-lighten-3 {
1683
- color: #ffcc80 !important;
1684
- }
1685
-
1686
- .orange.lighten-2 {
1687
- background-color: #ffb74d !important;
1688
- }
1689
-
1690
- .orange-text.text-lighten-2 {
1691
- color: #ffb74d !important;
1692
- }
1693
-
1694
- .orange.lighten-1 {
1695
- background-color: #ffa726 !important;
1696
- }
1697
-
1698
- .orange-text.text-lighten-1 {
1699
- color: #ffa726 !important;
1700
- }
1701
-
1702
- .orange.darken-1 {
1703
- background-color: #fb8c00 !important;
1704
- }
1705
-
1706
- .orange-text.text-darken-1 {
1707
- color: #fb8c00 !important;
1708
- }
1709
-
1710
- .orange.darken-2 {
1711
- background-color: #f57c00 !important;
1712
- }
1713
-
1714
- .orange-text.text-darken-2 {
1715
- color: #f57c00 !important;
1716
- }
1717
-
1718
- .orange.darken-3 {
1719
- background-color: #ef6c00 !important;
1720
- }
1721
-
1722
- .orange-text.text-darken-3 {
1723
- color: #ef6c00 !important;
1724
- }
1725
-
1726
- .orange.darken-4 {
1727
- background-color: #e65100 !important;
1728
- }
1729
-
1730
- .orange-text.text-darken-4 {
1731
- color: #e65100 !important;
1732
- }
1733
-
1734
- .orange.accent-1 {
1735
- background-color: #ffd180 !important;
1736
- }
1737
-
1738
- .orange-text.text-accent-1 {
1739
- color: #ffd180 !important;
1740
- }
1741
-
1742
- .orange.accent-2 {
1743
- background-color: #ffab40 !important;
1744
- }
1745
-
1746
- .orange-text.text-accent-2 {
1747
- color: #ffab40 !important;
1748
- }
1749
-
1750
- .orange.accent-3 {
1751
- background-color: #ff9100 !important;
1752
- }
1753
-
1754
- .orange-text.text-accent-3 {
1755
- color: #ff9100 !important;
1756
- }
1757
-
1758
- .orange.accent-4 {
1759
- background-color: #ff6d00 !important;
1760
- }
1761
-
1762
- .orange-text.text-accent-4 {
1763
- color: #ff6d00 !important;
1764
- }
1765
-
1766
- .deep-orange {
1767
- background-color: #ff5722 !important;
1768
- }
1769
-
1770
- .deep-orange-text {
1771
- color: #ff5722 !important;
1772
- }
1773
-
1774
- .deep-orange.lighten-5 {
1775
- background-color: #fbe9e7 !important;
1776
- }
1777
-
1778
- .deep-orange-text.text-lighten-5 {
1779
- color: #fbe9e7 !important;
1780
- }
1781
-
1782
- .deep-orange.lighten-4 {
1783
- background-color: #ffccbc !important;
1784
- }
1785
-
1786
- .deep-orange-text.text-lighten-4 {
1787
- color: #ffccbc !important;
1788
- }
1789
-
1790
- .deep-orange.lighten-3 {
1791
- background-color: #ffab91 !important;
1792
- }
1793
-
1794
- .deep-orange-text.text-lighten-3 {
1795
- color: #ffab91 !important;
1796
- }
1797
-
1798
- .deep-orange.lighten-2 {
1799
- background-color: #ff8a65 !important;
1800
- }
1801
-
1802
- .deep-orange-text.text-lighten-2 {
1803
- color: #ff8a65 !important;
1804
- }
1805
-
1806
- .deep-orange.lighten-1 {
1807
- background-color: #ff7043 !important;
1808
- }
1809
-
1810
- .deep-orange-text.text-lighten-1 {
1811
- color: #ff7043 !important;
1812
- }
1813
-
1814
- .deep-orange.darken-1 {
1815
- background-color: #f4511e !important;
1816
- }
1817
-
1818
- .deep-orange-text.text-darken-1 {
1819
- color: #f4511e !important;
1820
- }
1821
-
1822
- .deep-orange.darken-2 {
1823
- background-color: #e64a19 !important;
1824
- }
1825
-
1826
- .deep-orange-text.text-darken-2 {
1827
- color: #e64a19 !important;
1828
- }
1829
-
1830
- .deep-orange.darken-3 {
1831
- background-color: #d84315 !important;
1832
- }
1833
-
1834
- .deep-orange-text.text-darken-3 {
1835
- color: #d84315 !important;
1836
- }
1837
-
1838
- .deep-orange.darken-4 {
1839
- background-color: #bf360c !important;
1840
- }
1841
-
1842
- .deep-orange-text.text-darken-4 {
1843
- color: #bf360c !important;
1844
- }
1845
-
1846
- .deep-orange.accent-1 {
1847
- background-color: #ff9e80 !important;
1848
- }
1849
-
1850
- .deep-orange-text.text-accent-1 {
1851
- color: #ff9e80 !important;
1852
- }
1853
-
1854
- .deep-orange.accent-2 {
1855
- background-color: #ff6e40 !important;
1856
- }
1857
-
1858
- .deep-orange-text.text-accent-2 {
1859
- color: #ff6e40 !important;
1860
- }
1861
-
1862
- .deep-orange.accent-3 {
1863
- background-color: #ff3d00 !important;
1864
- }
1865
-
1866
- .deep-orange-text.text-accent-3 {
1867
- color: #ff3d00 !important;
1868
- }
1869
-
1870
- .deep-orange.accent-4 {
1871
- background-color: #dd2c00 !important;
1872
- }
1873
-
1874
- .deep-orange-text.text-accent-4 {
1875
- color: #dd2c00 !important;
1876
- }
1877
-
1878
- .brown {
1879
- background-color: #795548 !important;
1880
- }
1881
-
1882
- .brown-text {
1883
- color: #795548 !important;
1884
- }
1885
-
1886
- .brown.lighten-5 {
1887
- background-color: #efebe9 !important;
1888
- }
1889
-
1890
- .brown-text.text-lighten-5 {
1891
- color: #efebe9 !important;
1892
- }
1893
-
1894
- .brown.lighten-4 {
1895
- background-color: #d7ccc8 !important;
1896
- }
1897
-
1898
- .brown-text.text-lighten-4 {
1899
- color: #d7ccc8 !important;
1900
- }
1901
-
1902
- .brown.lighten-3 {
1903
- background-color: #bcaaa4 !important;
1904
- }
1905
-
1906
- .brown-text.text-lighten-3 {
1907
- color: #bcaaa4 !important;
1908
- }
1909
-
1910
- .brown.lighten-2 {
1911
- background-color: #a1887f !important;
1912
- }
1913
-
1914
- .brown-text.text-lighten-2 {
1915
- color: #a1887f !important;
1916
- }
1917
-
1918
- .brown.lighten-1 {
1919
- background-color: #8d6e63 !important;
1920
- }
1921
-
1922
- .brown-text.text-lighten-1 {
1923
- color: #8d6e63 !important;
1924
- }
1925
-
1926
- .brown.darken-1 {
1927
- background-color: #6d4c41 !important;
1928
- }
1929
-
1930
- .brown-text.text-darken-1 {
1931
- color: #6d4c41 !important;
1932
- }
1933
-
1934
- .brown.darken-2 {
1935
- background-color: #5d4037 !important;
1936
- }
1937
-
1938
- .brown-text.text-darken-2 {
1939
- color: #5d4037 !important;
1940
- }
1941
-
1942
- .brown.darken-3 {
1943
- background-color: #4e342e !important;
1944
- }
1945
-
1946
- .brown-text.text-darken-3 {
1947
- color: #4e342e !important;
1948
- }
1949
-
1950
- .brown.darken-4 {
1951
- background-color: #3e2723 !important;
1952
- }
1953
-
1954
- .brown-text.text-darken-4 {
1955
- color: #3e2723 !important;
1956
- }
1957
-
1958
- .blue-grey {
1959
- background-color: #607d8b !important;
1960
- }
1961
-
1962
- .blue-grey-text {
1963
- color: #607d8b !important;
1964
- }
1965
-
1966
- .blue-grey.lighten-5 {
1967
- background-color: #eceff1 !important;
1968
- }
1969
-
1970
- .blue-grey-text.text-lighten-5 {
1971
- color: #eceff1 !important;
1972
- }
1973
-
1974
- .blue-grey.lighten-4 {
1975
- background-color: #cfd8dc !important;
1976
- }
1977
-
1978
- .blue-grey-text.text-lighten-4 {
1979
- color: #cfd8dc !important;
1980
- }
1981
-
1982
- .blue-grey.lighten-3 {
1983
- background-color: #b0bec5 !important;
1984
- }
1985
-
1986
- .blue-grey-text.text-lighten-3 {
1987
- color: #b0bec5 !important;
1988
- }
1989
-
1990
- .blue-grey.lighten-2 {
1991
- background-color: #90a4ae !important;
1992
- }
1993
-
1994
- .blue-grey-text.text-lighten-2 {
1995
- color: #90a4ae !important;
1996
- }
1997
-
1998
- .blue-grey.lighten-1 {
1999
- background-color: #78909c !important;
2000
- }
2001
-
2002
- .blue-grey-text.text-lighten-1 {
2003
- color: #78909c !important;
2004
- }
2005
-
2006
- .blue-grey.darken-1 {
2007
- background-color: #546e7a !important;
2008
- }
2009
-
2010
- .blue-grey-text.text-darken-1 {
2011
- color: #546e7a !important;
2012
- }
2013
-
2014
- .blue-grey.darken-2 {
2015
- background-color: #455a64 !important;
2016
- }
2017
-
2018
- .blue-grey-text.text-darken-2 {
2019
- color: #455a64 !important;
2020
- }
2021
-
2022
- .blue-grey.darken-3 {
2023
- background-color: #37474f !important;
2024
- }
2025
-
2026
- .blue-grey-text.text-darken-3 {
2027
- color: #37474f !important;
2028
- }
2029
-
2030
- .blue-grey.darken-4 {
2031
- background-color: #263238 !important;
2032
- }
2033
-
2034
- .blue-grey-text.text-darken-4 {
2035
- color: #263238 !important;
2036
- }
2037
-
2038
- .grey {
2039
- background-color: #9e9e9e !important;
2040
- }
2041
-
2042
- .grey-text {
2043
- color: #9e9e9e !important;
2044
- }
2045
-
2046
- .grey.lighten-5 {
2047
- background-color: #fafafa !important;
2048
- }
2049
-
2050
- .grey-text.text-lighten-5 {
2051
- color: #fafafa !important;
2052
- }
2053
-
2054
- .grey.lighten-4 {
2055
- background-color: #f5f5f5 !important;
2056
- }
2057
-
2058
- .grey-text.text-lighten-4 {
2059
- color: #f5f5f5 !important;
2060
- }
2061
-
2062
- .grey.lighten-3 {
2063
- background-color: #eeeeee !important;
2064
- }
2065
-
2066
- .grey-text.text-lighten-3 {
2067
- color: #eeeeee !important;
2068
- }
2069
-
2070
- .grey.lighten-2 {
2071
- background-color: #e0e0e0 !important;
2072
- }
2073
-
2074
- .grey-text.text-lighten-2 {
2075
- color: #e0e0e0 !important;
2076
- }
2077
-
2078
- .grey.lighten-1 {
2079
- background-color: #bdbdbd !important;
2080
- }
2081
-
2082
- .grey-text.text-lighten-1 {
2083
- color: #bdbdbd !important;
2084
- }
2085
-
2086
- .grey.darken-1 {
2087
- background-color: #757575 !important;
2088
- }
2089
-
2090
- .grey-text.text-darken-1 {
2091
- color: #757575 !important;
2092
- }
2093
-
2094
- .grey.darken-2 {
2095
- background-color: #616161 !important;
2096
- }
2097
-
2098
- .grey-text.text-darken-2 {
2099
- color: #616161 !important;
2100
- }
2101
-
2102
- .grey.darken-3 {
2103
- background-color: #424242 !important;
2104
- }
2105
-
2106
- .grey-text.text-darken-3 {
2107
- color: #424242 !important;
2108
- }
2109
-
2110
- .grey.darken-4 {
2111
- background-color: #212121 !important;
2112
- }
2113
-
2114
- .grey-text.text-darken-4 {
2115
- color: #212121 !important;
2116
- }
2117
-
2118
- .black {
2119
- background-color: #000000 !important;
2120
- }
2121
-
2122
- .black-text {
2123
- color: #000000 !important;
2124
- }
2125
-
2126
- .white {
2127
- background-color: #FFFFFF !important;
2128
- }
2129
-
2130
- .white-text {
2131
- color: #FFFFFF !important;
2132
- }
2133
-
2134
- .transparent {
2135
- background-color: transparent !important;
2136
- }
2137
-
2138
- .transparent-text {
2139
- color: transparent !important;
2140
- }
2141
-
2142
- /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
2143
- /**
2144
- * 1. Set default font family to sans-serif.
2145
- * 2. Prevent iOS and IE text size adjust after device orientation change,
2146
- * without disabling user zoom.
2147
- */
2148
- html {
2149
- font-family: sans-serif;
2150
- /* 1 */
2151
- -ms-text-size-adjust: 100%;
2152
- /* 2 */
2153
- -webkit-text-size-adjust: 100%;
2154
- /* 2 */
2155
- }
2156
-
2157
- /**
2158
- * Remove default margin.
2159
- */
2160
- body {
2161
- margin: 0;
2162
- }
2163
-
2164
- /* HTML5 display definitions
2165
- ========================================================================== */
2166
- /**
2167
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
2168
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
2169
- * and Firefox.
2170
- * Correct `block` display not defined for `main` in IE 11.
2171
- */
2172
- article,
2173
- aside,
2174
- details,
2175
- figcaption,
2176
- figure,
2177
- footer,
2178
- header,
2179
- hgroup,
2180
- main,
2181
- menu,
2182
- nav,
2183
- section,
2184
- summary {
2185
- display: block;
2186
- }
2187
-
2188
- /**
2189
- * 1. Correct `inline-block` display not defined in IE 8/9.
2190
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
2191
- */
2192
- audio,
2193
- canvas,
2194
- progress,
2195
- video {
2196
- display: inline-block;
2197
- /* 1 */
2198
- vertical-align: baseline;
2199
- /* 2 */
2200
- }
2201
-
2202
- /**
2203
- * Prevent modern browsers from displaying `audio` without controls.
2204
- * Remove excess height in iOS 5 devices.
2205
- */
2206
- audio:not([controls]) {
2207
- display: none;
2208
- height: 0;
2209
- }
2210
-
2211
- /**
2212
- * Address `[hidden]` styling not present in IE 8/9/10.
2213
- * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
2214
- */
2215
- [hidden],
2216
- template {
2217
- display: none;
2218
- }
2219
-
2220
- /* Links
2221
- ========================================================================== */
2222
- /**
2223
- * Remove the gray background color from active links in IE 10.
2224
- */
2225
- a {
2226
- background-color: transparent;
2227
- }
2228
-
2229
- /**
2230
- * Improve readability of focused elements when they are also in an
2231
- * active/hover state.
2232
- */
2233
- a:active,
2234
- a:hover {
2235
- outline: 0;
2236
- }
2237
-
2238
- /* Text-level semantics
2239
- ========================================================================== */
2240
- /**
2241
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
2242
- */
2243
- abbr[title] {
2244
- border-bottom: 1px dotted;
2245
- }
2246
-
2247
- /**
2248
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
2249
- */
2250
- b,
2251
- strong {
2252
- font-weight: bold;
2253
- }
2254
-
2255
- /**
2256
- * Address styling not present in Safari and Chrome.
2257
- */
2258
- dfn {
2259
- font-style: italic;
2260
- }
2261
-
2262
- /**
2263
- * Address variable `h1` font-size and margin within `section` and `article`
2264
- * contexts in Firefox 4+, Safari, and Chrome.
2265
- */
2266
- h1 {
2267
- font-size: 2em;
2268
- margin: 0.67em 0;
2269
- }
2270
-
2271
- /**
2272
- * Address styling not present in IE 8/9.
2273
- */
2274
- mark {
2275
- background: #ff0;
2276
- color: #000;
2277
- }
2278
-
2279
- /**
2280
- * Address inconsistent and variable font size in all browsers.
2281
- */
2282
- small {
2283
- font-size: 80%;
2284
- }
2285
-
2286
- /**
2287
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
2288
- */
2289
- sub,
2290
- sup {
2291
- font-size: 75%;
2292
- line-height: 0;
2293
- position: relative;
2294
- vertical-align: baseline;
2295
- }
2296
-
2297
- sup {
2298
- top: -0.5em;
2299
- }
2300
-
2301
- sub {
2302
- bottom: -0.25em;
2303
- }
2304
-
2305
- /* Embedded content
2306
- ========================================================================== */
2307
- /**
2308
- * Remove border when inside `a` element in IE 8/9/10.
2309
- */
2310
- img {
2311
- border: 0;
2312
- }
2313
-
2314
- /**
2315
- * Correct overflow not hidden in IE 9/10/11.
2316
- */
2317
- svg:not(:root) {
2318
- overflow: hidden;
2319
- }
2320
-
2321
- /* Grouping content
2322
- ========================================================================== */
2323
- /**
2324
- * Address margin not present in IE 8/9 and Safari.
2325
- */
2326
- figure {
2327
- margin: 1em 40px;
2328
- }
2329
-
2330
- /**
2331
- * Address differences between Firefox and other browsers.
2332
- */
2333
- hr {
2334
- box-sizing: content-box;
2335
- height: 0;
2336
- }
2337
-
2338
- /**
2339
- * Contain overflow in all browsers.
2340
- */
2341
- pre {
2342
- overflow: auto;
2343
- }
2344
-
2345
- /**
2346
- * Address odd `em`-unit font size rendering in all browsers.
2347
- */
2348
- code,
2349
- kbd,
2350
- pre,
2351
- samp {
2352
- font-family: monospace, monospace;
2353
- font-size: 1em;
2354
- }
2355
-
2356
- /* Forms
2357
- ========================================================================== */
2358
- /**
2359
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
2360
- * styling of `select`, unless a `border` property is set.
2361
- */
2362
- /**
2363
- * 1. Correct color not being inherited.
2364
- * Known issue: affects color of disabled elements.
2365
- * 2. Correct font properties not being inherited.
2366
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
2367
- */
2368
- button,
2369
- input,
2370
- optgroup,
2371
- select,
2372
- textarea {
2373
- color: inherit;
2374
- /* 1 */
2375
- font: inherit;
2376
- /* 2 */
2377
- margin: 0;
2378
- /* 3 */
2379
- }
2380
-
2381
- /**
2382
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
2383
- */
2384
- button {
2385
- overflow: visible;
2386
- }
2387
-
2388
- /**
2389
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
2390
- * All other form control elements do not inherit `text-transform` values.
2391
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
2392
- * Correct `select` style inheritance in Firefox.
2393
- */
2394
- button,
2395
- select {
2396
- text-transform: none;
2397
- }
2398
-
2399
- /**
2400
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
2401
- * and `video` controls.
2402
- * 2. Correct inability to style clickable `input` types in iOS.
2403
- * 3. Improve usability and consistency of cursor style between image-type
2404
- * `input` and others.
2405
- */
2406
- button,
2407
- html input[type="button"],
2408
- input[type="reset"],
2409
- input[type="submit"] {
2410
- -webkit-appearance: button;
2411
- /* 2 */
2412
- cursor: pointer;
2413
- /* 3 */
2414
- }
2415
-
2416
- /**
2417
- * Re-set default cursor for disabled elements.
2418
- */
2419
- button[disabled],
2420
- html input[disabled] {
2421
- cursor: default;
2422
- }
2423
-
2424
- /**
2425
- * Remove inner padding and border in Firefox 4+.
2426
- */
2427
- button::-moz-focus-inner,
2428
- input::-moz-focus-inner {
2429
- border: 0;
2430
- padding: 0;
2431
- }
2432
-
2433
- /**
2434
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
2435
- * the UA stylesheet.
2436
- */
2437
- input {
2438
- line-height: normal;
2439
- }
2440
-
2441
- /**
2442
- * It's recommended that you don't attempt to style these elements.
2443
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
2444
- *
2445
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
2446
- * 2. Remove excess padding in IE 8/9/10.
2447
- */
2448
- input[type="checkbox"],
2449
- input[type="radio"] {
2450
- box-sizing: border-box;
2451
- /* 1 */
2452
- padding: 0;
2453
- /* 2 */
2454
- }
2455
-
2456
- /**
2457
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
2458
- * `font-size` values of the `input`, it causes the cursor style of the
2459
- * decrement button to change from `default` to `text`.
2460
- */
2461
- input[type="number"]::-webkit-inner-spin-button,
2462
- input[type="number"]::-webkit-outer-spin-button {
2463
- height: auto;
2464
- }
2465
-
2466
- /**
2467
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
2468
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
2469
- */
2470
- input[type="search"] {
2471
- -webkit-appearance: textfield;
2472
- /* 1 */
2473
- box-sizing: content-box;
2474
- /* 2 */
2475
- }
2476
-
2477
- /**
2478
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
2479
- * Safari (but not Chrome) clips the cancel button when the search input has
2480
- * padding (and `textfield` appearance).
2481
- */
2482
- input[type="search"]::-webkit-search-cancel-button,
2483
- input[type="search"]::-webkit-search-decoration {
2484
- -webkit-appearance: none;
2485
- }
2486
-
2487
- /**
2488
- * Define consistent border, margin, and padding.
2489
- */
2490
- fieldset {
2491
- border: 1px solid #c0c0c0;
2492
- margin: 0 2px;
2493
- padding: 0.35em 0.625em 0.75em;
2494
- }
2495
-
2496
- /**
2497
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
2498
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
2499
- */
2500
- legend {
2501
- border: 0;
2502
- /* 1 */
2503
- padding: 0;
2504
- /* 2 */
2505
- }
2506
-
2507
- /**
2508
- * Remove default vertical scrollbar in IE 8/9/10/11.
2509
- */
2510
- textarea {
2511
- overflow: auto;
2512
- }
2513
-
2514
- /**
2515
- * Don't inherit the `font-weight` (applied by a rule above).
2516
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
2517
- */
2518
- optgroup {
2519
- font-weight: bold;
2520
- }
2521
-
2522
- /* Tables
2523
- ========================================================================== */
2524
- /**
2525
- * Remove most spacing between table cells.
2526
- */
2527
- table {
2528
- border-collapse: collapse;
2529
- border-spacing: 0;
2530
- }
2531
-
2532
- td,
2533
- th {
2534
- padding: 0;
2535
- }
2536
-
2537
- html {
2538
- box-sizing: border-box;
2539
- }
2540
-
2541
- *, *:before, *:after {
2542
- box-sizing: inherit;
2543
- }
2544
-
2545
- ul:not(.browser-default) {
2546
- padding-left: 0;
2547
- list-style-type: none;
2548
- }
2549
-
2550
- ul:not(.browser-default) li {
2551
- list-style-type: none;
2552
- }
2553
-
2554
- a {
2555
- color: #039be5;
2556
- text-decoration: none;
2557
- -webkit-tap-highlight-color: transparent;
2558
- }
2559
-
2560
- .valign-wrapper {
2561
- display: -webkit-flex;
2562
- display: -ms-flexbox;
2563
- display: flex;
2564
- -webkit-align-items: center;
2565
- -ms-flex-align: center;
2566
- align-items: center;
2567
- }
2568
-
2569
- .valign-wrapper .valign {
2570
- display: block;
2571
- }
2572
-
2573
- .clearfix {
2574
- clear: both;
2575
- }
2576
-
2577
- .z-depth-0 {
2578
- box-shadow: none !important;
2579
- }
2580
-
2581
- .z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {
2582
- box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
2583
- }
2584
-
2585
- .z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {
2586
- box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);
2587
- }
2588
-
2589
- .z-depth-2 {
2590
- box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
2591
- }
2592
-
2593
- .z-depth-3 {
2594
- box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3);
2595
- }
2596
-
2597
- .z-depth-4, .modal {
2598
- box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3);
2599
- }
2600
-
2601
- .z-depth-5 {
2602
- box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);
2603
- }
2604
-
2605
- .hoverable {
2606
- transition: box-shadow .25s;
2607
- box-shadow: 0;
2608
- }
2609
-
2610
- .hoverable:hover {
2611
- transition: box-shadow .25s;
2612
- box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
2613
- }
2614
-
2615
- .divider {
2616
- height: 1px;
2617
- overflow: hidden;
2618
- background-color: #e0e0e0;
2619
- }
2620
-
2621
- blockquote {
2622
- margin: 20px 0;
2623
- padding-left: 1.5rem;
2624
- border-left: 5px solid #ee6e73;
2625
- }
2626
-
2627
- i {
2628
- line-height: inherit;
2629
- }
2630
-
2631
- i.left {
2632
- float: left;
2633
- margin-right: 15px;
2634
- }
2635
-
2636
- i.right {
2637
- float: right;
2638
- margin-left: 15px;
2639
- }
2640
-
2641
- i.tiny {
2642
- font-size: 1rem;
2643
- }
2644
-
2645
- i.small {
2646
- font-size: 2rem;
2647
- }
2648
-
2649
- i.medium {
2650
- font-size: 4rem;
2651
- }
2652
-
2653
- i.large {
2654
- font-size: 6rem;
2655
- }
2656
-
2657
- img.responsive-img,
2658
- video.responsive-video {
2659
- max-width: 100%;
2660
- height: auto;
2661
- }
2662
-
2663
- .pagination li {
2664
- display: inline-block;
2665
- border-radius: 2px;
2666
- text-align: center;
2667
- vertical-align: top;
2668
- height: 30px;
2669
- }
2670
-
2671
- .pagination li a {
2672
- color: #444;
2673
- display: inline-block;
2674
- font-size: 1.2rem;
2675
- padding: 0 10px;
2676
- line-height: 30px;
2677
- }
2678
-
2679
- .pagination li.active a {
2680
- color: #fff;
2681
- }
2682
-
2683
- .pagination li.active {
2684
- background-color: #ee6e73;
2685
- }
2686
-
2687
- .pagination li.disabled a {
2688
- cursor: default;
2689
- color: #999;
2690
- }
2691
-
2692
- .pagination li i {
2693
- font-size: 2rem;
2694
- }
2695
-
2696
- .pagination li.pages ul li {
2697
- display: inline-block;
2698
- float: none;
2699
- }
2700
-
2701
- @media only screen and (max-width: 992px) {
2702
- .pagination {
2703
- width: 100%;
2704
- }
2705
- .pagination li.prev,
2706
- .pagination li.next {
2707
- width: 10%;
2708
- }
2709
- .pagination li.pages {
2710
- width: 80%;
2711
- overflow: hidden;
2712
- white-space: nowrap;
2713
- }
2714
- }
2715
-
2716
- .breadcrumb {
2717
- font-size: 18px;
2718
- color: rgba(255, 255, 255, 0.7);
2719
- }
2720
-
2721
- .breadcrumb i,
2722
- .breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"],
2723
- .breadcrumb i.material-icons {
2724
- display: inline-block;
2725
- float: left;
2726
- font-size: 24px;
2727
- }
2728
-
2729
- .breadcrumb:before {
2730
- content: '\E5CC';
2731
- color: rgba(255, 255, 255, 0.7);
2732
- vertical-align: top;
2733
- display: inline-block;
2734
- font-family: 'Material Icons';
2735
- font-weight: normal;
2736
- font-style: normal;
2737
- font-size: 25px;
2738
- margin: 0 10px 0 8px;
2739
- -webkit-font-smoothing: antialiased;
2740
- }
2741
-
2742
- .breadcrumb:first-child:before {
2743
- display: none;
2744
- }
2745
-
2746
- .breadcrumb:last-child {
2747
- color: #fff;
2748
- }
2749
-
2750
- .parallax-container {
2751
- position: relative;
2752
- overflow: hidden;
2753
- height: 500px;
2754
- }
2755
-
2756
- .parallax {
2757
- position: absolute;
2758
- top: 0;
2759
- left: 0;
2760
- right: 0;
2761
- bottom: 0;
2762
- z-index: -1;
2763
- }
2764
-
2765
- .parallax img {
2766
- display: none;
2767
- position: absolute;
2768
- left: 50%;
2769
- bottom: 0;
2770
- min-width: 100%;
2771
- min-height: 100%;
2772
- -webkit-transform: translate3d(0, 0, 0);
2773
- transform: translate3d(0, 0, 0);
2774
- -webkit-transform: translateX(-50%);
2775
- transform: translateX(-50%);
2776
- }
2777
-
2778
- .pin-top, .pin-bottom {
2779
- position: relative;
2780
- }
2781
-
2782
- .pinned {
2783
- position: fixed !important;
2784
- }
2785
-
2786
- /*********************
2787
- Transition Classes
2788
- **********************/
2789
- ul.staggered-list li {
2790
- opacity: 0;
2791
- }
2792
-
2793
- .fade-in {
2794
- opacity: 0;
2795
- -webkit-transform-origin: 0 50%;
2796
- transform-origin: 0 50%;
2797
- }
2798
-
2799
- /*********************
2800
- Media Query Classes
2801
- **********************/
2802
- @media only screen and (max-width: 600px) {
2803
- .hide-on-small-only, .hide-on-small-and-down {
2804
- display: none !important;
2805
- }
2806
- }
2807
-
2808
- @media only screen and (max-width: 992px) {
2809
- .hide-on-med-and-down {
2810
- display: none !important;
2811
- }
2812
- }
2813
-
2814
- @media only screen and (min-width: 601px) {
2815
- .hide-on-med-and-up {
2816
- display: none !important;
2817
- }
2818
- }
2819
-
2820
- @media only screen and (min-width: 600px) and (max-width: 992px) {
2821
- .hide-on-med-only {
2822
- display: none !important;
2823
- }
2824
- }
2825
-
2826
- @media only screen and (min-width: 993px) {
2827
- .hide-on-large-only {
2828
- display: none !important;
2829
- }
2830
- }
2831
-
2832
- @media only screen and (min-width: 993px) {
2833
- .show-on-large {
2834
- display: block !important;
2835
- }
2836
- }
2837
-
2838
- @media only screen and (min-width: 600px) and (max-width: 992px) {
2839
- .show-on-medium {
2840
- display: block !important;
2841
- }
2842
- }
2843
-
2844
- @media only screen and (max-width: 600px) {
2845
- .show-on-small {
2846
- display: block !important;
2847
- }
2848
- }
2849
-
2850
- @media only screen and (min-width: 601px) {
2851
- .show-on-medium-and-up {
2852
- display: block !important;
2853
- }
2854
- }
2855
-
2856
- @media only screen and (max-width: 992px) {
2857
- .show-on-medium-and-down {
2858
- display: block !important;
2859
- }
2860
- }
2861
-
2862
- @media only screen and (max-width: 600px) {
2863
- .center-on-small-only {
2864
- text-align: center;
2865
- }
2866
- }
2867
-
2868
- footer.page-footer {
2869
- padding-top: 20px;
2870
- background-color: #ee6e73;
2871
- }
2872
-
2873
- footer.page-footer .footer-copyright {
2874
- overflow: hidden;
2875
- min-height: 50px;
2876
- display: -webkit-flex;
2877
- display: -ms-flexbox;
2878
- display: flex;
2879
- -webkit-align-items: center;
2880
- -ms-flex-align: center;
2881
- align-items: center;
2882
- padding: 10px 0px;
2883
- color: rgba(255, 255, 255, 0.8);
2884
- background-color: rgba(51, 51, 51, 0.08);
2885
- }
2886
-
2887
- table, th, td {
2888
- border: none;
2889
- }
2890
-
2891
- table {
2892
- width: 100%;
2893
- display: table;
2894
- }
2895
-
2896
- table.bordered > thead > tr,
2897
- table.bordered > tbody > tr {
2898
- border-bottom: 1px solid #d0d0d0;
2899
- }
2900
-
2901
- table.striped > tbody > tr:nth-child(odd) {
2902
- background-color: #f2f2f2;
2903
- }
2904
-
2905
- table.striped > tbody > tr > td {
2906
- border-radius: 0;
2907
- }
2908
-
2909
- table.highlight > tbody > tr {
2910
- transition: background-color .25s ease;
2911
- }
2912
-
2913
- table.highlight > tbody > tr:hover {
2914
- background-color: #f2f2f2;
2915
- }
2916
-
2917
- table.centered thead tr th, table.centered tbody tr td {
2918
- text-align: center;
2919
- }
2920
-
2921
- thead {
2922
- border-bottom: 1px solid #d0d0d0;
2923
- }
2924
-
2925
- td, th {
2926
- padding: 15px 5px;
2927
- display: table-cell;
2928
- text-align: left;
2929
- vertical-align: middle;
2930
- border-radius: 2px;
2931
- }
2932
-
2933
- @media only screen and (max-width: 992px) {
2934
- table.responsive-table {
2935
- width: 100%;
2936
- border-collapse: collapse;
2937
- border-spacing: 0;
2938
- display: block;
2939
- position: relative;
2940
- /* sort out borders */
2941
- }
2942
- table.responsive-table td:empty:before {
2943
- content: '\00a0';
2944
- }
2945
- table.responsive-table th,
2946
- table.responsive-table td {
2947
- margin: 0;
2948
- vertical-align: top;
2949
- }
2950
- table.responsive-table th {
2951
- text-align: left;
2952
- }
2953
- table.responsive-table thead {
2954
- display: block;
2955
- float: left;
2956
- }
2957
- table.responsive-table thead tr {
2958
- display: block;
2959
- padding: 0 10px 0 0;
2960
- }
2961
- table.responsive-table thead tr th::before {
2962
- content: "\00a0";
2963
- }
2964
- table.responsive-table tbody {
2965
- display: block;
2966
- width: auto;
2967
- position: relative;
2968
- overflow-x: auto;
2969
- white-space: nowrap;
2970
- }
2971
- table.responsive-table tbody tr {
2972
- display: inline-block;
2973
- vertical-align: top;
2974
- }
2975
- table.responsive-table th {
2976
- display: block;
2977
- text-align: right;
2978
- }
2979
- table.responsive-table td {
2980
- display: block;
2981
- min-height: 1.25em;
2982
- text-align: left;
2983
- }
2984
- table.responsive-table tr {
2985
- padding: 0 10px;
2986
- }
2987
- table.responsive-table thead {
2988
- border: 0;
2989
- border-right: 1px solid #d0d0d0;
2990
- }
2991
- table.responsive-table.bordered th {
2992
- border-bottom: 0;
2993
- border-left: 0;
2994
- }
2995
- table.responsive-table.bordered td {
2996
- border-left: 0;
2997
- border-right: 0;
2998
- border-bottom: 0;
2999
- }
3000
- table.responsive-table.bordered tr {
3001
- border: 0;
3002
- }
3003
- table.responsive-table.bordered tbody tr {
3004
- border-right: 1px solid #d0d0d0;
3005
- }
3006
- }
3007
-
3008
- .collection {
3009
- margin: 0.5rem 0 1rem 0;
3010
- border: 1px solid #e0e0e0;
3011
- border-radius: 2px;
3012
- overflow: hidden;
3013
- position: relative;
3014
- }
3015
-
3016
- .collection .collection-item {
3017
- background-color: #fff;
3018
- line-height: 1.5rem;
3019
- padding: 10px 20px;
3020
- margin: 0;
3021
- border-bottom: 1px solid #e0e0e0;
3022
- }
3023
-
3024
- .collection .collection-item.avatar {
3025
- min-height: 84px;
3026
- padding-left: 72px;
3027
- position: relative;
3028
- }
3029
-
3030
- .collection .collection-item.avatar .circle {
3031
- position: absolute;
3032
- width: 42px;
3033
- height: 42px;
3034
- overflow: hidden;
3035
- left: 15px;
3036
- display: inline-block;
3037
- vertical-align: middle;
3038
- }
3039
-
3040
- .collection .collection-item.avatar i.circle {
3041
- font-size: 18px;
3042
- line-height: 42px;
3043
- color: #fff;
3044
- background-color: #999;
3045
- text-align: center;
3046
- }
3047
-
3048
- .collection .collection-item.avatar .title {
3049
- font-size: 16px;
3050
- }
3051
-
3052
- .collection .collection-item.avatar p {
3053
- margin: 0;
3054
- }
3055
-
3056
- .collection .collection-item.avatar .secondary-content {
3057
- position: absolute;
3058
- top: 16px;
3059
- right: 16px;
3060
- }
3061
-
3062
- .collection .collection-item:last-child {
3063
- border-bottom: none;
3064
- }
3065
-
3066
- .collection .collection-item.active {
3067
- background-color: #26a69a;
3068
- color: #eafaf9;
3069
- }
3070
-
3071
- .collection .collection-item.active .secondary-content {
3072
- color: #fff;
3073
- }
3074
-
3075
- .collection a.collection-item {
3076
- display: block;
3077
- transition: .25s;
3078
- color: #26a69a;
3079
- }
3080
-
3081
- .collection a.collection-item:not(.active):hover {
3082
- background-color: #ddd;
3083
- }
3084
-
3085
- .collection.with-header .collection-header {
3086
- background-color: #fff;
3087
- border-bottom: 1px solid #e0e0e0;
3088
- padding: 10px 20px;
3089
- }
3090
-
3091
- .collection.with-header .collection-item {
3092
- padding-left: 30px;
3093
- }
3094
-
3095
- .collection.with-header .collection-item.avatar {
3096
- padding-left: 72px;
3097
- }
3098
-
3099
- .secondary-content {
3100
- float: right;
3101
- color: #26a69a;
3102
- }
3103
-
3104
- .collapsible .collection {
3105
- margin: 0;
3106
- border: none;
3107
- }
3108
-
3109
- .video-container {
3110
- position: relative;
3111
- padding-bottom: 56.25%;
3112
- height: 0;
3113
- overflow: hidden;
3114
- }
3115
-
3116
- .video-container iframe, .video-container object, .video-container embed {
3117
- position: absolute;
3118
- top: 0;
3119
- left: 0;
3120
- width: 100%;
3121
- height: 100%;
3122
- }
3123
-
3124
- .progress {
3125
- position: relative;
3126
- height: 4px;
3127
- display: block;
3128
- width: 100%;
3129
- background-color: #acece6;
3130
- border-radius: 2px;
3131
- margin: 0.5rem 0 1rem 0;
3132
- overflow: hidden;
3133
- }
3134
-
3135
- .progress .determinate {
3136
- position: absolute;
3137
- top: 0;
3138
- left: 0;
3139
- bottom: 0;
3140
- background-color: #26a69a;
3141
- transition: width .3s linear;
3142
- }
3143
-
3144
- .progress .indeterminate {
3145
- background-color: #26a69a;
3146
- }
3147
-
3148
- .progress .indeterminate:before {
3149
- content: '';
3150
- position: absolute;
3151
- background-color: inherit;
3152
- top: 0;
3153
- left: 0;
3154
- bottom: 0;
3155
- will-change: left, right;
3156
- -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
3157
- animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
3158
- }
3159
-
3160
- .progress .indeterminate:after {
3161
- content: '';
3162
- position: absolute;
3163
- background-color: inherit;
3164
- top: 0;
3165
- left: 0;
3166
- bottom: 0;
3167
- will-change: left, right;
3168
- -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
3169
- animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
3170
- -webkit-animation-delay: 1.15s;
3171
- animation-delay: 1.15s;
3172
- }
3173
-
3174
- @-webkit-keyframes indeterminate {
3175
- 0% {
3176
- left: -35%;
3177
- right: 100%;
3178
- }
3179
- 60% {
3180
- left: 100%;
3181
- right: -90%;
3182
- }
3183
- 100% {
3184
- left: 100%;
3185
- right: -90%;
3186
- }
3187
- }
3188
-
3189
- @keyframes indeterminate {
3190
- 0% {
3191
- left: -35%;
3192
- right: 100%;
3193
- }
3194
- 60% {
3195
- left: 100%;
3196
- right: -90%;
3197
- }
3198
- 100% {
3199
- left: 100%;
3200
- right: -90%;
3201
- }
3202
- }
3203
-
3204
- @-webkit-keyframes indeterminate-short {
3205
- 0% {
3206
- left: -200%;
3207
- right: 100%;
3208
- }
3209
- 60% {
3210
- left: 107%;
3211
- right: -8%;
3212
- }
3213
- 100% {
3214
- left: 107%;
3215
- right: -8%;
3216
- }
3217
- }
3218
-
3219
- @keyframes indeterminate-short {
3220
- 0% {
3221
- left: -200%;
3222
- right: 100%;
3223
- }
3224
- 60% {
3225
- left: 107%;
3226
- right: -8%;
3227
- }
3228
- 100% {
3229
- left: 107%;
3230
- right: -8%;
3231
- }
3232
- }
3233
-
3234
- /*******************
3235
- Utility Classes
3236
- *******************/
3237
- .hide {
3238
- display: none !important;
3239
- }
3240
-
3241
- .left-align {
3242
- text-align: left;
3243
- }
3244
-
3245
- .right-align {
3246
- text-align: right;
3247
- }
3248
-
3249
- .center, .center-align {
3250
- text-align: center;
3251
- }
3252
-
3253
- .left {
3254
- float: left !important;
3255
- }
3256
-
3257
- .right {
3258
- float: right !important;
3259
- }
3260
-
3261
- .no-select, input[type=range],
3262
- input[type=range] + .thumb {
3263
- -webkit-touch-callout: none;
3264
- -webkit-user-select: none;
3265
- -moz-user-select: none;
3266
- -ms-user-select: none;
3267
- user-select: none;
3268
- }
3269
-
3270
- .circle {
3271
- border-radius: 50%;
3272
- }
3273
-
3274
- .center-block {
3275
- display: block;
3276
- margin-left: auto;
3277
- margin-right: auto;
3278
- }
3279
-
3280
- .truncate {
3281
- display: block;
3282
- white-space: nowrap;
3283
- overflow: hidden;
3284
- text-overflow: ellipsis;
3285
- }
3286
-
3287
- .no-padding {
3288
- padding: 0 !important;
3289
- }
3290
-
3291
- span.badge {
3292
- min-width: 3rem;
3293
- padding: 0 6px;
3294
- margin-left: 14px;
3295
- text-align: center;
3296
- font-size: 1rem;
3297
- line-height: 22px;
3298
- height: 22px;
3299
- color: #757575;
3300
- float: right;
3301
- box-sizing: border-box;
3302
- }
3303
-
3304
- span.badge.new {
3305
- font-weight: 300;
3306
- font-size: 0.8rem;
3307
- color: #fff;
3308
- background-color: #26a69a;
3309
- border-radius: 2px;
3310
- }
3311
-
3312
- span.badge.new:after {
3313
- content: " new";
3314
- }
3315
-
3316
- span.badge[data-badge-caption]::after {
3317
- content: " " attr(data-badge-caption);
3318
- }
3319
-
3320
- nav ul a span.badge {
3321
- display: inline-block;
3322
- float: none;
3323
- margin-left: 4px;
3324
- line-height: 22px;
3325
- height: 22px;
3326
- }
3327
-
3328
- .collection-item span.badge {
3329
- margin-top: calc(0.75rem - 11px);
3330
- }
3331
-
3332
- .collapsible span.badge {
3333
- margin-top: calc(1.5rem - 11px);
3334
- }
3335
-
3336
- .side-nav span.badge {
3337
- margin-top: calc(24px - 11px);
3338
- }
3339
-
3340
- /* This is needed for some mobile phones to display the Google Icon font properly */
3341
- .material-icons {
3342
- text-rendering: optimizeLegibility;
3343
- -webkit-font-feature-settings: 'liga';
3344
- -moz-font-feature-settings: 'liga';
3345
- font-feature-settings: 'liga';
3346
- }
3347
-
3348
- .container {
3349
- margin: 0 auto;
3350
- max-width: 1280px;
3351
- width: 90%;
3352
- }
3353
-
3354
- @media only screen and (min-width: 601px) {
3355
- .container {
3356
- width: 85%;
3357
- }
3358
- }
3359
-
3360
- @media only screen and (min-width: 993px) {
3361
- .container {
3362
- width: 70%;
3363
- }
3364
- }
3365
-
3366
- .container .row {
3367
- margin-left: -0.75rem;
3368
- margin-right: -0.75rem;
3369
- }
3370
-
3371
- .section {
3372
- padding-top: 1rem;
3373
- padding-bottom: 1rem;
3374
- }
3375
-
3376
- .section.no-pad {
3377
- padding: 0;
3378
- }
3379
-
3380
- .section.no-pad-bot {
3381
- padding-bottom: 0;
3382
- }
3383
-
3384
- .section.no-pad-top {
3385
- padding-top: 0;
3386
- }
3387
-
3388
- .row {
3389
- margin-left: auto;
3390
- margin-right: auto;
3391
- margin-bottom: 20px;
3392
- }
3393
-
3394
- .row:after {
3395
- content: "";
3396
- display: table;
3397
- clear: both;
3398
- }
3399
-
3400
- .row .col {
3401
- float: left;
3402
- box-sizing: border-box;
3403
- padding: 0 0.75rem;
3404
- min-height: 1px;
3405
- }
3406
-
3407
- .row .col[class*="push-"], .row .col[class*="pull-"] {
3408
- position: relative;
3409
- }
3410
-
3411
- .row .col.s1 {
3412
- width: 8.3333333333%;
3413
- margin-left: auto;
3414
- left: auto;
3415
- right: auto;
3416
- }
3417
-
3418
- .row .col.s2 {
3419
- width: 16.6666666667%;
3420
- margin-left: auto;
3421
- left: auto;
3422
- right: auto;
3423
- }
3424
-
3425
- .row .col.s3 {
3426
- width: 25%;
3427
- margin-left: auto;
3428
- left: auto;
3429
- right: auto;
3430
- }
3431
-
3432
- .row .col.s4 {
3433
- width: 33.3333333333%;
3434
- margin-left: auto;
3435
- left: auto;
3436
- right: auto;
3437
- }
3438
-
3439
- .row .col.s5 {
3440
- width: 41.6666666667%;
3441
- margin-left: auto;
3442
- left: auto;
3443
- right: auto;
3444
- }
3445
-
3446
- .row .col.s6 {
3447
- width: 50%;
3448
- margin-left: auto;
3449
- left: auto;
3450
- right: auto;
3451
- }
3452
-
3453
- .row .col.s7 {
3454
- width: 58.3333333333%;
3455
- margin-left: auto;
3456
- left: auto;
3457
- right: auto;
3458
- }
3459
-
3460
- .row .col.s8 {
3461
- width: 66.6666666667%;
3462
- margin-left: auto;
3463
- left: auto;
3464
- right: auto;
3465
- }
3466
-
3467
- .row .col.s9 {
3468
- width: 75%;
3469
- margin-left: auto;
3470
- left: auto;
3471
- right: auto;
3472
- }
3473
-
3474
- .row .col.s10 {
3475
- width: 83.3333333333%;
3476
- margin-left: auto;
3477
- left: auto;
3478
- right: auto;
3479
- }
3480
-
3481
- .row .col.s11 {
3482
- width: 91.6666666667%;
3483
- margin-left: auto;
3484
- left: auto;
3485
- right: auto;
3486
- }
3487
-
3488
- .row .col.s12 {
3489
- width: 100%;
3490
- margin-left: auto;
3491
- left: auto;
3492
- right: auto;
3493
- }
3494
-
3495
- .row .col.offset-s1 {
3496
- margin-left: 8.3333333333%;
3497
- }
3498
-
3499
- .row .col.pull-s1 {
3500
- right: 8.3333333333%;
3501
- }
3502
-
3503
- .row .col.push-s1 {
3504
- left: 8.3333333333%;
3505
- }
3506
-
3507
- .row .col.offset-s2 {
3508
- margin-left: 16.6666666667%;
3509
- }
3510
-
3511
- .row .col.pull-s2 {
3512
- right: 16.6666666667%;
3513
- }
3514
-
3515
- .row .col.push-s2 {
3516
- left: 16.6666666667%;
3517
- }
3518
-
3519
- .row .col.offset-s3 {
3520
- margin-left: 25%;
3521
- }
3522
-
3523
- .row .col.pull-s3 {
3524
- right: 25%;
3525
- }
3526
-
3527
- .row .col.push-s3 {
3528
- left: 25%;
3529
- }
3530
-
3531
- .row .col.offset-s4 {
3532
- margin-left: 33.3333333333%;
3533
- }
3534
-
3535
- .row .col.pull-s4 {
3536
- right: 33.3333333333%;
3537
- }
3538
-
3539
- .row .col.push-s4 {
3540
- left: 33.3333333333%;
3541
- }
3542
-
3543
- .row .col.offset-s5 {
3544
- margin-left: 41.6666666667%;
3545
- }
3546
-
3547
- .row .col.pull-s5 {
3548
- right: 41.6666666667%;
3549
- }
3550
-
3551
- .row .col.push-s5 {
3552
- left: 41.6666666667%;
3553
- }
3554
-
3555
- .row .col.offset-s6 {
3556
- margin-left: 50%;
3557
- }
3558
-
3559
- .row .col.pull-s6 {
3560
- right: 50%;
3561
- }
3562
-
3563
- .row .col.push-s6 {
3564
- left: 50%;
3565
- }
3566
-
3567
- .row .col.offset-s7 {
3568
- margin-left: 58.3333333333%;
3569
- }
3570
-
3571
- .row .col.pull-s7 {
3572
- right: 58.3333333333%;
3573
- }
3574
-
3575
- .row .col.push-s7 {
3576
- left: 58.3333333333%;
3577
- }
3578
-
3579
- .row .col.offset-s8 {
3580
- margin-left: 66.6666666667%;
3581
- }
3582
-
3583
- .row .col.pull-s8 {
3584
- right: 66.6666666667%;
3585
- }
3586
-
3587
- .row .col.push-s8 {
3588
- left: 66.6666666667%;
3589
- }
3590
-
3591
- .row .col.offset-s9 {
3592
- margin-left: 75%;
3593
- }
3594
-
3595
- .row .col.pull-s9 {
3596
- right: 75%;
3597
- }
3598
-
3599
- .row .col.push-s9 {
3600
- left: 75%;
3601
- }
3602
-
3603
- .row .col.offset-s10 {
3604
- margin-left: 83.3333333333%;
3605
- }
3606
-
3607
- .row .col.pull-s10 {
3608
- right: 83.3333333333%;
3609
- }
3610
-
3611
- .row .col.push-s10 {
3612
- left: 83.3333333333%;
3613
- }
3614
-
3615
- .row .col.offset-s11 {
3616
- margin-left: 91.6666666667%;
3617
- }
3618
-
3619
- .row .col.pull-s11 {
3620
- right: 91.6666666667%;
3621
- }
3622
-
3623
- .row .col.push-s11 {
3624
- left: 91.6666666667%;
3625
- }
3626
-
3627
- .row .col.offset-s12 {
3628
- margin-left: 100%;
3629
- }
3630
-
3631
- .row .col.pull-s12 {
3632
- right: 100%;
3633
- }
3634
-
3635
- .row .col.push-s12 {
3636
- left: 100%;
3637
- }
3638
-
3639
- @media only screen and (min-width: 601px) {
3640
- .row .col.m1 {
3641
- width: 8.3333333333%;
3642
- margin-left: auto;
3643
- left: auto;
3644
- right: auto;
3645
- }
3646
- .row .col.m2 {
3647
- width: 16.6666666667%;
3648
- margin-left: auto;
3649
- left: auto;
3650
- right: auto;
3651
- }
3652
- .row .col.m3 {
3653
- width: 25%;
3654
- margin-left: auto;
3655
- left: auto;
3656
- right: auto;
3657
- }
3658
- .row .col.m4 {
3659
- width: 33.3333333333%;
3660
- margin-left: auto;
3661
- left: auto;
3662
- right: auto;
3663
- }
3664
- .row .col.m5 {
3665
- width: 41.6666666667%;
3666
- margin-left: auto;
3667
- left: auto;
3668
- right: auto;
3669
- }
3670
- .row .col.m6 {
3671
- width: 50%;
3672
- margin-left: auto;
3673
- left: auto;
3674
- right: auto;
3675
- }
3676
- .row .col.m7 {
3677
- width: 58.3333333333%;
3678
- margin-left: auto;
3679
- left: auto;
3680
- right: auto;
3681
- }
3682
- .row .col.m8 {
3683
- width: 66.6666666667%;
3684
- margin-left: auto;
3685
- left: auto;
3686
- right: auto;
3687
- }
3688
- .row .col.m9 {
3689
- width: 75%;
3690
- margin-left: auto;
3691
- left: auto;
3692
- right: auto;
3693
- }
3694
- .row .col.m10 {
3695
- width: 83.3333333333%;
3696
- margin-left: auto;
3697
- left: auto;
3698
- right: auto;
3699
- }
3700
- .row .col.m11 {
3701
- width: 91.6666666667%;
3702
- margin-left: auto;
3703
- left: auto;
3704
- right: auto;
3705
- }
3706
- .row .col.m12 {
3707
- width: 100%;
3708
- margin-left: auto;
3709
- left: auto;
3710
- right: auto;
3711
- }
3712
- .row .col.offset-m1 {
3713
- margin-left: 8.3333333333%;
3714
- }
3715
- .row .col.pull-m1 {
3716
- right: 8.3333333333%;
3717
- }
3718
- .row .col.push-m1 {
3719
- left: 8.3333333333%;
3720
- }
3721
- .row .col.offset-m2 {
3722
- margin-left: 16.6666666667%;
3723
- }
3724
- .row .col.pull-m2 {
3725
- right: 16.6666666667%;
3726
- }
3727
- .row .col.push-m2 {
3728
- left: 16.6666666667%;
3729
- }
3730
- .row .col.offset-m3 {
3731
- margin-left: 25%;
3732
- }
3733
- .row .col.pull-m3 {
3734
- right: 25%;
3735
- }
3736
- .row .col.push-m3 {
3737
- left: 25%;
3738
- }
3739
- .row .col.offset-m4 {
3740
- margin-left: 33.3333333333%;
3741
- }
3742
- .row .col.pull-m4 {
3743
- right: 33.3333333333%;
3744
- }
3745
- .row .col.push-m4 {
3746
- left: 33.3333333333%;
3747
- }
3748
- .row .col.offset-m5 {
3749
- margin-left: 41.6666666667%;
3750
- }
3751
- .row .col.pull-m5 {
3752
- right: 41.6666666667%;
3753
- }
3754
- .row .col.push-m5 {
3755
- left: 41.6666666667%;
3756
- }
3757
- .row .col.offset-m6 {
3758
- margin-left: 50%;
3759
- }
3760
- .row .col.pull-m6 {
3761
- right: 50%;
3762
- }
3763
- .row .col.push-m6 {
3764
- left: 50%;
3765
- }
3766
- .row .col.offset-m7 {
3767
- margin-left: 58.3333333333%;
3768
- }
3769
- .row .col.pull-m7 {
3770
- right: 58.3333333333%;
3771
- }
3772
- .row .col.push-m7 {
3773
- left: 58.3333333333%;
3774
- }
3775
- .row .col.offset-m8 {
3776
- margin-left: 66.6666666667%;
3777
- }
3778
- .row .col.pull-m8 {
3779
- right: 66.6666666667%;
3780
- }
3781
- .row .col.push-m8 {
3782
- left: 66.6666666667%;
3783
- }
3784
- .row .col.offset-m9 {
3785
- margin-left: 75%;
3786
- }
3787
- .row .col.pull-m9 {
3788
- right: 75%;
3789
- }
3790
- .row .col.push-m9 {
3791
- left: 75%;
3792
- }
3793
- .row .col.offset-m10 {
3794
- margin-left: 83.3333333333%;
3795
- }
3796
- .row .col.pull-m10 {
3797
- right: 83.3333333333%;
3798
- }
3799
- .row .col.push-m10 {
3800
- left: 83.3333333333%;
3801
- }
3802
- .row .col.offset-m11 {
3803
- margin-left: 91.6666666667%;
3804
- }
3805
- .row .col.pull-m11 {
3806
- right: 91.6666666667%;
3807
- }
3808
- .row .col.push-m11 {
3809
- left: 91.6666666667%;
3810
- }
3811
- .row .col.offset-m12 {
3812
- margin-left: 100%;
3813
- }
3814
- .row .col.pull-m12 {
3815
- right: 100%;
3816
- }
3817
- .row .col.push-m12 {
3818
- left: 100%;
3819
- }
3820
- }
3821
-
3822
- @media only screen and (min-width: 993px) {
3823
- .row .col.l1 {
3824
- width: 8.3333333333%;
3825
- margin-left: auto;
3826
- left: auto;
3827
- right: auto;
3828
- }
3829
- .row .col.l2 {
3830
- width: 16.6666666667%;
3831
- margin-left: auto;
3832
- left: auto;
3833
- right: auto;
3834
- }
3835
- .row .col.l3 {
3836
- width: 25%;
3837
- margin-left: auto;
3838
- left: auto;
3839
- right: auto;
3840
- }
3841
- .row .col.l4 {
3842
- width: 33.3333333333%;
3843
- margin-left: auto;
3844
- left: auto;
3845
- right: auto;
3846
- }
3847
- .row .col.l5 {
3848
- width: 41.6666666667%;
3849
- margin-left: auto;
3850
- left: auto;
3851
- right: auto;
3852
- }
3853
- .row .col.l6 {
3854
- width: 50%;
3855
- margin-left: auto;
3856
- left: auto;
3857
- right: auto;
3858
- }
3859
- .row .col.l7 {
3860
- width: 58.3333333333%;
3861
- margin-left: auto;
3862
- left: auto;
3863
- right: auto;
3864
- }
3865
- .row .col.l8 {
3866
- width: 66.6666666667%;
3867
- margin-left: auto;
3868
- left: auto;
3869
- right: auto;
3870
- }
3871
- .row .col.l9 {
3872
- width: 75%;
3873
- margin-left: auto;
3874
- left: auto;
3875
- right: auto;
3876
- }
3877
- .row .col.l10 {
3878
- width: 83.3333333333%;
3879
- margin-left: auto;
3880
- left: auto;
3881
- right: auto;
3882
- }
3883
- .row .col.l11 {
3884
- width: 91.6666666667%;
3885
- margin-left: auto;
3886
- left: auto;
3887
- right: auto;
3888
- }
3889
- .row .col.l12 {
3890
- width: 100%;
3891
- margin-left: auto;
3892
- left: auto;
3893
- right: auto;
3894
- }
3895
- .row .col.offset-l1 {
3896
- margin-left: 8.3333333333%;
3897
- }
3898
- .row .col.pull-l1 {
3899
- right: 8.3333333333%;
3900
- }
3901
- .row .col.push-l1 {
3902
- left: 8.3333333333%;
3903
- }
3904
- .row .col.offset-l2 {
3905
- margin-left: 16.6666666667%;
3906
- }
3907
- .row .col.pull-l2 {
3908
- right: 16.6666666667%;
3909
- }
3910
- .row .col.push-l2 {
3911
- left: 16.6666666667%;
3912
- }
3913
- .row .col.offset-l3 {
3914
- margin-left: 25%;
3915
- }
3916
- .row .col.pull-l3 {
3917
- right: 25%;
3918
- }
3919
- .row .col.push-l3 {
3920
- left: 25%;
3921
- }
3922
- .row .col.offset-l4 {
3923
- margin-left: 33.3333333333%;
3924
- }
3925
- .row .col.pull-l4 {
3926
- right: 33.3333333333%;
3927
- }
3928
- .row .col.push-l4 {
3929
- left: 33.3333333333%;
3930
- }
3931
- .row .col.offset-l5 {
3932
- margin-left: 41.6666666667%;
3933
- }
3934
- .row .col.pull-l5 {
3935
- right: 41.6666666667%;
3936
- }
3937
- .row .col.push-l5 {
3938
- left: 41.6666666667%;
3939
- }
3940
- .row .col.offset-l6 {
3941
- margin-left: 50%;
3942
- }
3943
- .row .col.pull-l6 {
3944
- right: 50%;
3945
- }
3946
- .row .col.push-l6 {
3947
- left: 50%;
3948
- }
3949
- .row .col.offset-l7 {
3950
- margin-left: 58.3333333333%;
3951
- }
3952
- .row .col.pull-l7 {
3953
- right: 58.3333333333%;
3954
- }
3955
- .row .col.push-l7 {
3956
- left: 58.3333333333%;
3957
- }
3958
- .row .col.offset-l8 {
3959
- margin-left: 66.6666666667%;
3960
- }
3961
- .row .col.pull-l8 {
3962
- right: 66.6666666667%;
3963
- }
3964
- .row .col.push-l8 {
3965
- left: 66.6666666667%;
3966
- }
3967
- .row .col.offset-l9 {
3968
- margin-left: 75%;
3969
- }
3970
- .row .col.pull-l9 {
3971
- right: 75%;
3972
- }
3973
- .row .col.push-l9 {
3974
- left: 75%;
3975
- }
3976
- .row .col.offset-l10 {
3977
- margin-left: 83.3333333333%;
3978
- }
3979
- .row .col.pull-l10 {
3980
- right: 83.3333333333%;
3981
- }
3982
- .row .col.push-l10 {
3983
- left: 83.3333333333%;
3984
- }
3985
- .row .col.offset-l11 {
3986
- margin-left: 91.6666666667%;
3987
- }
3988
- .row .col.pull-l11 {
3989
- right: 91.6666666667%;
3990
- }
3991
- .row .col.push-l11 {
3992
- left: 91.6666666667%;
3993
- }
3994
- .row .col.offset-l12 {
3995
- margin-left: 100%;
3996
- }
3997
- .row .col.pull-l12 {
3998
- right: 100%;
3999
- }
4000
- .row .col.push-l12 {
4001
- left: 100%;
4002
- }
4003
- }
4004
-
4005
- nav {
4006
- color: #fff;
4007
- background-color: #ee6e73;
4008
- width: 100%;
4009
- height: 56px;
4010
- line-height: 56px;
4011
- }
4012
-
4013
- nav.nav-extended {
4014
- height: auto;
4015
- }
4016
-
4017
- nav.nav-extended .nav-wrapper {
4018
- min-height: 56px;
4019
- height: auto;
4020
- }
4021
-
4022
- nav.nav-extended .nav-content {
4023
- position: relative;
4024
- line-height: normal;
4025
- }
4026
-
4027
- nav a {
4028
- color: #fff;
4029
- }
4030
-
4031
- nav i,
4032
- nav [class^="mdi-"], nav [class*="mdi-"],
4033
- nav i.material-icons {
4034
- display: block;
4035
- font-size: 24px;
4036
- height: 56px;
4037
- line-height: 56px;
4038
- }
4039
-
4040
- nav .nav-wrapper {
4041
- position: relative;
4042
- height: 100%;
4043
- }
4044
-
4045
- @media only screen and (min-width: 993px) {
4046
- nav a.button-collapse {
4047
- display: none;
4048
- }
4049
- }
4050
-
4051
- nav .button-collapse {
4052
- float: left;
4053
- position: relative;
4054
- z-index: 1;
4055
- height: 56px;
4056
- margin: 0 18px;
4057
- }
4058
-
4059
- nav .button-collapse i {
4060
- height: 56px;
4061
- line-height: 56px;
4062
- }
4063
-
4064
- nav .brand-logo {
4065
- position: absolute;
4066
- color: #fff;
4067
- display: inline-block;
4068
- font-size: 2.1rem;
4069
- padding: 0;
4070
- white-space: nowrap;
4071
- }
4072
-
4073
- nav .brand-logo.center {
4074
- left: 50%;
4075
- -webkit-transform: translateX(-50%);
4076
- transform: translateX(-50%);
4077
- }
4078
-
4079
- @media only screen and (max-width: 992px) {
4080
- nav .brand-logo {
4081
- left: 50%;
4082
- -webkit-transform: translateX(-50%);
4083
- transform: translateX(-50%);
4084
- }
4085
- nav .brand-logo.left, nav .brand-logo.right {
4086
- padding: 0;
4087
- -webkit-transform: none;
4088
- transform: none;
4089
- }
4090
- nav .brand-logo.left {
4091
- left: 0.5rem;
4092
- }
4093
- nav .brand-logo.right {
4094
- right: 0.5rem;
4095
- left: auto;
4096
- }
4097
- }
4098
-
4099
- nav .brand-logo.right {
4100
- right: 0.5rem;
4101
- padding: 0;
4102
- }
4103
-
4104
- nav .brand-logo i,
4105
- nav .brand-logo [class^="mdi-"], nav .brand-logo [class*="mdi-"],
4106
- nav .brand-logo i.material-icons {
4107
- float: left;
4108
- margin-right: 15px;
4109
- }
4110
-
4111
- nav .nav-title {
4112
- display: inline-block;
4113
- font-size: 32px;
4114
- padding: 28px 0;
4115
- }
4116
-
4117
- nav ul {
4118
- margin: 0;
4119
- }
4120
-
4121
- nav ul li {
4122
- transition: background-color .3s;
4123
- float: left;
4124
- padding: 0;
4125
- }
4126
-
4127
- nav ul li.active {
4128
- background-color: rgba(0, 0, 0, 0.1);
4129
- }
4130
-
4131
- nav ul a {
4132
- transition: background-color .3s;
4133
- font-size: 1rem;
4134
- color: #fff;
4135
- display: block;
4136
- padding: 0 15px;
4137
- cursor: pointer;
4138
- }
4139
-
4140
- nav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {
4141
- margin-top: -2px;
4142
- margin-left: 15px;
4143
- margin-right: 15px;
4144
- }
4145
-
4146
- nav ul a.btn > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {
4147
- height: inherit;
4148
- line-height: inherit;
4149
- }
4150
-
4151
- nav ul a:hover {
4152
- background-color: rgba(0, 0, 0, 0.1);
4153
- }
4154
-
4155
- nav ul.left {
4156
- float: left;
4157
- }
4158
-
4159
- nav form {
4160
- height: 100%;
4161
- }
4162
-
4163
- nav .input-field {
4164
- margin: 0;
4165
- height: 100%;
4166
- }
4167
-
4168
- nav .input-field input {
4169
- height: 100%;
4170
- font-size: 1.2rem;
4171
- border: none;
4172
- padding-left: 2rem;
4173
- }
4174
-
4175
- nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {
4176
- border: none;
4177
- box-shadow: none;
4178
- }
4179
-
4180
- nav .input-field label {
4181
- top: 0;
4182
- left: 0;
4183
- }
4184
-
4185
- nav .input-field label i {
4186
- color: rgba(255, 255, 255, 0.7);
4187
- transition: color .3s;
4188
- }
4189
-
4190
- nav .input-field label.active i {
4191
- color: #fff;
4192
- }
4193
-
4194
- .navbar-fixed {
4195
- position: relative;
4196
- height: 56px;
4197
- z-index: 997;
4198
- }
4199
-
4200
- .navbar-fixed nav {
4201
- position: fixed;
4202
- }
4203
-
4204
- @media only screen and (min-width: 601px) {
4205
- nav.nav-extended .nav-wrapper {
4206
- min-height: 64px;
4207
- }
4208
- nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {
4209
- height: 64px;
4210
- line-height: 64px;
4211
- }
4212
- .navbar-fixed {
4213
- height: 64px;
4214
- }
4215
- }
4216
-
4217
- @font-face {
4218
- font-family: "Roboto";
4219
- src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot");
4220
- src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");
4221
- font-weight: 200;
4222
- }
4223
-
4224
- @font-face {
4225
- font-family: "Roboto";
4226
- src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot");
4227
- src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype");
4228
- font-weight: 300;
4229
- }
4230
-
4231
- @font-face {
4232
- font-family: "Roboto";
4233
- src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot");
4234
- src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");
4235
- font-weight: 400;
4236
- }
4237
-
4238
- @font-face {
4239
- font-family: "Roboto";
4240
- src: url("../fonts/roboto/Roboto-Medium.eot");
4241
- src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");
4242
- font-weight: 500;
4243
- }
4244
-
4245
- @font-face {
4246
- font-family: "Roboto";
4247
- src: url("../fonts/roboto/Roboto-Bold.eot");
4248
- src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");
4249
- font-weight: 700;
4250
- }
4251
-
4252
- a {
4253
- text-decoration: none;
4254
- }
4255
-
4256
- html {
4257
- line-height: 1.5;
4258
- font-family: "Roboto", sans-serif;
4259
- font-weight: normal;
4260
- color: rgba(0, 0, 0, 0.87);
4261
- }
4262
-
4263
- @media only screen and (min-width: 0) {
4264
- html {
4265
- font-size: 14px;
4266
- }
4267
- }
4268
-
4269
- @media only screen and (min-width: 992px) {
4270
- html {
4271
- font-size: 14.5px;
4272
- }
4273
- }
4274
-
4275
- @media only screen and (min-width: 1200px) {
4276
- html {
4277
- font-size: 15px;
4278
- }
4279
- }
4280
-
4281
- h1, h2, h3, h4, h5, h6 {
4282
- font-weight: 400;
4283
- line-height: 1.1;
4284
- }
4285
-
4286
- h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
4287
- font-weight: inherit;
4288
- }
4289
-
4290
- h1 {
4291
- font-size: 4.2rem;
4292
- line-height: 110%;
4293
- margin: 2.1rem 0 1.68rem 0;
4294
- }
4295
-
4296
- h2 {
4297
- font-size: 3.56rem;
4298
- line-height: 110%;
4299
- margin: 1.78rem 0 1.424rem 0;
4300
- }
4301
-
4302
- h3 {
4303
- font-size: 2.92rem;
4304
- line-height: 110%;
4305
- margin: 1.46rem 0 1.168rem 0;
4306
- }
4307
-
4308
- h4 {
4309
- font-size: 2.28rem;
4310
- line-height: 110%;
4311
- margin: 1.14rem 0 0.912rem 0;
4312
- }
4313
-
4314
- h5 {
4315
- font-size: 1.64rem;
4316
- line-height: 110%;
4317
- margin: 0.82rem 0 0.656rem 0;
4318
- }
4319
-
4320
- h6 {
4321
- font-size: 1rem;
4322
- line-height: 110%;
4323
- margin: 0.5rem 0 0.4rem 0;
4324
- }
4325
-
4326
- em {
4327
- font-style: italic;
4328
- }
4329
-
4330
- strong {
4331
- font-weight: 500;
4332
- }
4333
-
4334
- small {
4335
- font-size: 75%;
4336
- }
4337
-
4338
- .light, footer.page-footer .footer-copyright {
4339
- font-weight: 300;
4340
- }
4341
-
4342
- .thin {
4343
- font-weight: 200;
4344
- }
4345
-
4346
- .flow-text {
4347
- font-weight: 300;
4348
- }
4349
-
4350
- @media only screen and (min-width: 360px) {
4351
- .flow-text {
4352
- font-size: 1.2rem;
4353
- }
4354
- }
4355
-
4356
- @media only screen and (min-width: 390px) {
4357
- .flow-text {
4358
- font-size: 1.224rem;
4359
- }
4360
- }
4361
-
4362
- @media only screen and (min-width: 420px) {
4363
- .flow-text {
4364
- font-size: 1.248rem;
4365
- }
4366
- }
4367
-
4368
- @media only screen and (min-width: 450px) {
4369
- .flow-text {
4370
- font-size: 1.272rem;
4371
- }
4372
- }
4373
-
4374
- @media only screen and (min-width: 480px) {
4375
- .flow-text {
4376
- font-size: 1.296rem;
4377
- }
4378
- }
4379
-
4380
- @media only screen and (min-width: 510px) {
4381
- .flow-text {
4382
- font-size: 1.32rem;
4383
- }
4384
- }
4385
-
4386
- @media only screen and (min-width: 540px) {
4387
- .flow-text {
4388
- font-size: 1.344rem;
4389
- }
4390
- }
4391
-
4392
- @media only screen and (min-width: 570px) {
4393
- .flow-text {
4394
- font-size: 1.368rem;
4395
- }
4396
- }
4397
-
4398
- @media only screen and (min-width: 600px) {
4399
- .flow-text {
4400
- font-size: 1.392rem;
4401
- }
4402
- }
4403
-
4404
- @media only screen and (min-width: 630px) {
4405
- .flow-text {
4406
- font-size: 1.416rem;
4407
- }
4408
- }
4409
-
4410
- @media only screen and (min-width: 660px) {
4411
- .flow-text {
4412
- font-size: 1.44rem;
4413
- }
4414
- }
4415
-
4416
- @media only screen and (min-width: 690px) {
4417
- .flow-text {
4418
- font-size: 1.464rem;
4419
- }
4420
- }
4421
-
4422
- @media only screen and (min-width: 720px) {
4423
- .flow-text {
4424
- font-size: 1.488rem;
4425
- }
4426
- }
4427
-
4428
- @media only screen and (min-width: 750px) {
4429
- .flow-text {
4430
- font-size: 1.512rem;
4431
- }
4432
- }
4433
-
4434
- @media only screen and (min-width: 780px) {
4435
- .flow-text {
4436
- font-size: 1.536rem;
4437
- }
4438
- }
4439
-
4440
- @media only screen and (min-width: 810px) {
4441
- .flow-text {
4442
- font-size: 1.56rem;
4443
- }
4444
- }
4445
-
4446
- @media only screen and (min-width: 840px) {
4447
- .flow-text {
4448
- font-size: 1.584rem;
4449
- }
4450
- }
4451
-
4452
- @media only screen and (min-width: 870px) {
4453
- .flow-text {
4454
- font-size: 1.608rem;
4455
- }
4456
- }
4457
-
4458
- @media only screen and (min-width: 900px) {
4459
- .flow-text {
4460
- font-size: 1.632rem;
4461
- }
4462
- }
4463
-
4464
- @media only screen and (min-width: 930px) {
4465
- .flow-text {
4466
- font-size: 1.656rem;
4467
- }
4468
- }
4469
-
4470
- @media only screen and (min-width: 960px) {
4471
- .flow-text {
4472
- font-size: 1.68rem;
4473
- }
4474
- }
4475
-
4476
- @media only screen and (max-width: 360px) {
4477
- .flow-text {
4478
- font-size: 1.2rem;
4479
- }
4480
- }
4481
-
4482
- .scale-transition {
4483
- transition: -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4484
- transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4485
- transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4486
- }
4487
-
4488
- .scale-transition.scale-out {
4489
- -webkit-transform: scale(0);
4490
- transform: scale(0);
4491
- transition: -webkit-transform .2s !important;
4492
- transition: transform .2s !important;
4493
- transition: transform .2s, -webkit-transform .2s !important;
4494
- }
4495
-
4496
- .scale-transition.scale-in {
4497
- -webkit-transform: scale(1);
4498
- transform: scale(1);
4499
- }
4500
-
4501
- .card-panel {
4502
- transition: box-shadow .25s;
4503
- padding: 24px;
4504
- margin: 0.5rem 0 1rem 0;
4505
- border-radius: 2px;
4506
- background-color: #fff;
4507
- }
4508
-
4509
- .card {
4510
- position: relative;
4511
- margin: 0.5rem 0 1rem 0;
4512
- background-color: #fff;
4513
- transition: box-shadow .25s;
4514
- border-radius: 2px;
4515
- }
4516
-
4517
- .card .card-title {
4518
- font-size: 24px;
4519
- font-weight: 300;
4520
- }
4521
-
4522
- .card .card-title.activator {
4523
- cursor: pointer;
4524
- }
4525
-
4526
- .card.small, .card.medium, .card.large {
4527
- position: relative;
4528
- }
4529
-
4530
- .card.small .card-image, .card.medium .card-image, .card.large .card-image {
4531
- max-height: 60%;
4532
- overflow: hidden;
4533
- }
4534
-
4535
- .card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {
4536
- max-height: 40%;
4537
- }
4538
-
4539
- .card.small .card-content, .card.medium .card-content, .card.large .card-content {
4540
- max-height: 100%;
4541
- overflow: hidden;
4542
- }
4543
-
4544
- .card.small .card-action, .card.medium .card-action, .card.large .card-action {
4545
- position: absolute;
4546
- bottom: 0;
4547
- left: 0;
4548
- right: 0;
4549
- }
4550
-
4551
- .card.small {
4552
- height: 300px;
4553
- }
4554
-
4555
- .card.medium {
4556
- height: 400px;
4557
- }
4558
-
4559
- .card.large {
4560
- height: 500px;
4561
- }
4562
-
4563
- .card.horizontal {
4564
- display: -webkit-flex;
4565
- display: -ms-flexbox;
4566
- display: flex;
4567
- }
4568
-
4569
- .card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {
4570
- height: 100%;
4571
- max-height: none;
4572
- overflow: visible;
4573
- }
4574
-
4575
- .card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {
4576
- height: 100%;
4577
- }
4578
-
4579
- .card.horizontal .card-image {
4580
- max-width: 50%;
4581
- }
4582
-
4583
- .card.horizontal .card-image img {
4584
- border-radius: 2px 0 0 2px;
4585
- max-width: 100%;
4586
- width: auto;
4587
- }
4588
-
4589
- .card.horizontal .card-stacked {
4590
- display: -webkit-flex;
4591
- display: -ms-flexbox;
4592
- display: flex;
4593
- -webkit-flex-direction: column;
4594
- -ms-flex-direction: column;
4595
- flex-direction: column;
4596
- -webkit-flex: 1;
4597
- -ms-flex: 1;
4598
- flex: 1;
4599
- position: relative;
4600
- }
4601
-
4602
- .card.horizontal .card-stacked .card-content {
4603
- -webkit-flex-grow: 1;
4604
- -ms-flex-positive: 1;
4605
- flex-grow: 1;
4606
- }
4607
-
4608
- .card.sticky-action .card-action {
4609
- z-index: 2;
4610
- }
4611
-
4612
- .card.sticky-action .card-reveal {
4613
- z-index: 1;
4614
- padding-bottom: 64px;
4615
- }
4616
-
4617
- .card .card-image {
4618
- position: relative;
4619
- }
4620
-
4621
- .card .card-image img {
4622
- display: block;
4623
- border-radius: 2px 2px 0 0;
4624
- position: relative;
4625
- left: 0;
4626
- right: 0;
4627
- top: 0;
4628
- bottom: 0;
4629
- width: 100%;
4630
- }
4631
-
4632
- .card .card-image .card-title {
4633
- color: #fff;
4634
- position: absolute;
4635
- bottom: 0;
4636
- left: 0;
4637
- max-width: 100%;
4638
- padding: 24px;
4639
- }
4640
-
4641
- .card .card-content {
4642
- padding: 24px;
4643
- border-radius: 0 0 2px 2px;
4644
- }
4645
-
4646
- .card .card-content p {
4647
- margin: 0;
4648
- color: inherit;
4649
- }
4650
-
4651
- .card .card-content .card-title {
4652
- display: block;
4653
- line-height: 32px;
4654
- margin-bottom: 8px;
4655
- }
4656
-
4657
- .card .card-content .card-title i {
4658
- line-height: 32px;
4659
- }
4660
-
4661
- .card .card-action {
4662
- position: relative;
4663
- background-color: inherit;
4664
- border-top: 1px solid rgba(160, 160, 160, 0.2);
4665
- padding: 16px 24px;
4666
- }
4667
-
4668
- .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating) {
4669
- color: #ffab40;
4670
- margin-right: 24px;
4671
- transition: color .3s ease;
4672
- text-transform: uppercase;
4673
- }
4674
-
4675
- .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover {
4676
- color: #ffd8a6;
4677
- }
4678
-
4679
- .card .card-reveal {
4680
- padding: 24px;
4681
- position: absolute;
4682
- background-color: #fff;
4683
- width: 100%;
4684
- overflow-y: auto;
4685
- left: 0;
4686
- top: 100%;
4687
- height: 100%;
4688
- z-index: 3;
4689
- display: none;
4690
- }
4691
-
4692
- .card .card-reveal .card-title {
4693
- cursor: pointer;
4694
- display: block;
4695
- }
4696
-
4697
- #toast-container {
4698
- display: block;
4699
- position: fixed;
4700
- z-index: 10000;
4701
- }
4702
-
4703
- @media only screen and (max-width: 600px) {
4704
- #toast-container {
4705
- min-width: 100%;
4706
- bottom: 0%;
4707
- }
4708
- }
4709
-
4710
- @media only screen and (min-width: 601px) and (max-width: 992px) {
4711
- #toast-container {
4712
- left: 5%;
4713
- bottom: 7%;
4714
- max-width: 90%;
4715
- }
4716
- }
4717
-
4718
- @media only screen and (min-width: 993px) {
4719
- #toast-container {
4720
- top: 10%;
4721
- right: 7%;
4722
- max-width: 86%;
4723
- }
4724
- }
4725
-
4726
- .toast {
4727
- border-radius: 2px;
4728
- top: 35px;
4729
- width: auto;
4730
- clear: both;
4731
- margin-top: 10px;
4732
- position: relative;
4733
- max-width: 100%;
4734
- height: auto;
4735
- min-height: 48px;
4736
- line-height: 1.5em;
4737
- word-break: break-all;
4738
- background-color: #323232;
4739
- padding: 10px 25px;
4740
- font-size: 1.1rem;
4741
- font-weight: 300;
4742
- color: #fff;
4743
- display: -webkit-flex;
4744
- display: -ms-flexbox;
4745
- display: flex;
4746
- -webkit-align-items: center;
4747
- -ms-flex-align: center;
4748
- align-items: center;
4749
- -webkit-justify-content: space-between;
4750
- -ms-flex-pack: justify;
4751
- justify-content: space-between;
4752
- }
4753
-
4754
- .toast .btn, .toast .btn-large, .toast .btn-flat {
4755
- margin: 0;
4756
- margin-left: 3rem;
4757
- }
4758
-
4759
- .toast.rounded {
4760
- border-radius: 24px;
4761
- }
4762
-
4763
- @media only screen and (max-width: 600px) {
4764
- .toast {
4765
- width: 100%;
4766
- border-radius: 0;
4767
- }
4768
- }
4769
-
4770
- @media only screen and (min-width: 601px) and (max-width: 992px) {
4771
- .toast {
4772
- float: left;
4773
- }
4774
- }
4775
-
4776
- @media only screen and (min-width: 993px) {
4777
- .toast {
4778
- float: right;
4779
- }
4780
- }
4781
-
4782
- .tabs {
4783
- position: relative;
4784
- overflow-x: auto;
4785
- overflow-y: hidden;
4786
- height: 48px;
4787
- width: 100%;
4788
- background-color: #fff;
4789
- margin: 0 auto;
4790
- white-space: nowrap;
4791
- }
4792
-
4793
- .tabs.tabs-transparent {
4794
- background-color: transparent;
4795
- }
4796
-
4797
- .tabs.tabs-transparent .tab a,
4798
- .tabs.tabs-transparent .tab.disabled a,
4799
- .tabs.tabs-transparent .tab.disabled a:hover {
4800
- color: rgba(255, 255, 255, 0.7);
4801
- }
4802
-
4803
- .tabs.tabs-transparent .tab a:hover,
4804
- .tabs.tabs-transparent .tab a.active {
4805
- color: #fff;
4806
- }
4807
-
4808
- .tabs.tabs-transparent .indicator {
4809
- background-color: #fff;
4810
- }
4811
-
4812
- .tabs.tabs-fixed-width {
4813
- display: -webkit-flex;
4814
- display: -ms-flexbox;
4815
- display: flex;
4816
- }
4817
-
4818
- .tabs.tabs-fixed-width .tab {
4819
- -webkit-flex-grow: 1;
4820
- -ms-flex-positive: 1;
4821
- flex-grow: 1;
4822
- }
4823
-
4824
- .tabs .tab {
4825
- display: inline-block;
4826
- text-align: center;
4827
- line-height: 48px;
4828
- height: 48px;
4829
- padding: 0;
4830
- margin: 0;
4831
- text-transform: uppercase;
4832
- }
4833
-
4834
- .tabs .tab a {
4835
- color: rgba(238, 110, 115, 0.7);
4836
- display: block;
4837
- width: 100%;
4838
- height: 100%;
4839
- padding: 0 24px;
4840
- font-size: 14px;
4841
- text-overflow: ellipsis;
4842
- overflow: hidden;
4843
- transition: color .28s ease;
4844
- }
4845
-
4846
- .tabs .tab a:hover, .tabs .tab a.active {
4847
- background-color: transparent;
4848
- color: #ee6e73;
4849
- }
4850
-
4851
- .tabs .tab.disabled a,
4852
- .tabs .tab.disabled a:hover {
4853
- color: rgba(238, 110, 115, 0.7);
4854
- cursor: default;
4855
- }
4856
-
4857
- .tabs .indicator {
4858
- position: absolute;
4859
- bottom: 0;
4860
- height: 2px;
4861
- background-color: #f6b2b5;
4862
- will-change: left, right;
4863
- }
4864
-
4865
- @media only screen and (max-width: 992px) {
4866
- .tabs {
4867
- display: -webkit-flex;
4868
- display: -ms-flexbox;
4869
- display: flex;
4870
- }
4871
- .tabs .tab {
4872
- -webkit-flex-grow: 1;
4873
- -ms-flex-positive: 1;
4874
- flex-grow: 1;
4875
- }
4876
- .tabs .tab a {
4877
- padding: 0 12px;
4878
- }
4879
- }
4880
-
4881
- .material-tooltip {
4882
- padding: 10px 8px;
4883
- font-size: 1rem;
4884
- z-index: 2000;
4885
- background-color: transparent;
4886
- border-radius: 2px;
4887
- color: #fff;
4888
- min-height: 36px;
4889
- line-height: 120%;
4890
- opacity: 0;
4891
- position: absolute;
4892
- text-align: center;
4893
- max-width: calc(100% - 4px);
4894
- overflow: hidden;
4895
- left: 0;
4896
- top: 0;
4897
- pointer-events: none;
4898
- visibility: hidden;
4899
- }
4900
-
4901
- .backdrop {
4902
- position: absolute;
4903
- opacity: 0;
4904
- height: 7px;
4905
- width: 14px;
4906
- border-radius: 0 0 50% 50%;
4907
- background-color: #323232;
4908
- z-index: -1;
4909
- -webkit-transform-origin: 50% 0%;
4910
- transform-origin: 50% 0%;
4911
- visibility: hidden;
4912
- }
4913
-
4914
- .btn, .btn-large,
4915
- .btn-flat {
4916
- border: none;
4917
- border-radius: 2px;
4918
- display: inline-block;
4919
- height: 36px;
4920
- line-height: 36px;
4921
- padding: 0 2rem;
4922
- text-transform: uppercase;
4923
- vertical-align: middle;
4924
- -webkit-tap-highlight-color: transparent;
4925
- }
4926
-
4927
- .btn.disabled, .disabled.btn-large,
4928
- .btn-floating.disabled,
4929
- .btn-large.disabled,
4930
- .btn-flat.disabled,
4931
- .btn:disabled,
4932
- .btn-large:disabled,
4933
- .btn-floating:disabled,
4934
- .btn-large:disabled,
4935
- .btn-flat:disabled,
4936
- .btn[disabled],
4937
- [disabled].btn-large,
4938
- .btn-floating[disabled],
4939
- .btn-large[disabled],
4940
- .btn-flat[disabled] {
4941
- pointer-events: none;
4942
- background-color: #DFDFDF !important;
4943
- box-shadow: none;
4944
- color: #9F9F9F !important;
4945
- cursor: default;
4946
- }
4947
-
4948
- .btn.disabled:hover, .disabled.btn-large:hover,
4949
- .btn-floating.disabled:hover,
4950
- .btn-large.disabled:hover,
4951
- .btn-flat.disabled:hover,
4952
- .btn:disabled:hover,
4953
- .btn-large:disabled:hover,
4954
- .btn-floating:disabled:hover,
4955
- .btn-large:disabled:hover,
4956
- .btn-flat:disabled:hover,
4957
- .btn[disabled]:hover,
4958
- [disabled].btn-large:hover,
4959
- .btn-floating[disabled]:hover,
4960
- .btn-large[disabled]:hover,
4961
- .btn-flat[disabled]:hover {
4962
- background-color: #DFDFDF !important;
4963
- color: #9F9F9F !important;
4964
- }
4965
-
4966
- .btn, .btn-large,
4967
- .btn-floating,
4968
- .btn-large,
4969
- .btn-flat {
4970
- outline: 0;
4971
- }
4972
-
4973
- .btn i, .btn-large i,
4974
- .btn-floating i,
4975
- .btn-large i,
4976
- .btn-flat i {
4977
- font-size: 1.3rem;
4978
- line-height: inherit;
4979
- }
4980
-
4981
- .btn:focus, .btn-large:focus,
4982
- .btn-floating:focus {
4983
- background-color: #1d7d74;
4984
- }
4985
-
4986
- .btn, .btn-large {
4987
- text-decoration: none;
4988
- color: #fff;
4989
- background-color: #26a69a;
4990
- text-align: center;
4991
- letter-spacing: .5px;
4992
- transition: .2s ease-out;
4993
- cursor: pointer;
4994
- }
4995
-
4996
- .btn:hover, .btn-large:hover {
4997
- background-color: #2bbbad;
4998
- }
4999
-
5000
- .btn-floating {
5001
- display: inline-block;
5002
- color: #fff;
5003
- position: relative;
5004
- overflow: hidden;
5005
- z-index: 1;
5006
- width: 40px;
5007
- height: 40px;
5008
- line-height: 40px;
5009
- padding: 0;
5010
- background-color: #26a69a;
5011
- border-radius: 50%;
5012
- transition: .3s;
5013
- cursor: pointer;
5014
- vertical-align: middle;
5015
- }
5016
-
5017
- .btn-floating:hover {
5018
- background-color: #26a69a;
5019
- }
5020
-
5021
- .btn-floating:before {
5022
- border-radius: 0;
5023
- }
5024
-
5025
- .btn-floating.btn-large {
5026
- width: 56px;
5027
- height: 56px;
5028
- }
5029
-
5030
- .btn-floating.btn-large i {
5031
- line-height: 56px;
5032
- }
5033
-
5034
- .btn-floating.halfway-fab {
5035
- position: absolute;
5036
- right: 24px;
5037
- bottom: 0;
5038
- -webkit-transform: translateY(50%);
5039
- transform: translateY(50%);
5040
- }
5041
-
5042
- .btn-floating.halfway-fab.left {
5043
- right: auto;
5044
- left: 24px;
5045
- }
5046
-
5047
- .btn-floating i {
5048
- width: inherit;
5049
- display: inline-block;
5050
- text-align: center;
5051
- color: #fff;
5052
- font-size: 1.6rem;
5053
- line-height: 40px;
5054
- }
5055
-
5056
- button.btn-floating {
5057
- border: none;
5058
- }
5059
-
5060
- .fixed-action-btn {
5061
- position: fixed;
5062
- right: 23px;
5063
- bottom: 23px;
5064
- padding-top: 15px;
5065
- margin-bottom: 0;
5066
- z-index: 998;
5067
- }
5068
-
5069
- .fixed-action-btn.active ul {
5070
- visibility: visible;
5071
- }
5072
-
5073
- .fixed-action-btn.horizontal {
5074
- padding: 0 0 0 15px;
5075
- }
5076
-
5077
- .fixed-action-btn.horizontal ul {
5078
- text-align: right;
5079
- right: 64px;
5080
- top: 50%;
5081
- -webkit-transform: translateY(-50%);
5082
- transform: translateY(-50%);
5083
- height: 100%;
5084
- left: auto;
5085
- width: 500px;
5086
- /*width 100% only goes to width of button container */
5087
- }
5088
-
5089
- .fixed-action-btn.horizontal ul li {
5090
- display: inline-block;
5091
- margin: 15px 15px 0 0;
5092
- }
5093
-
5094
- .fixed-action-btn.toolbar {
5095
- padding: 0;
5096
- height: 56px;
5097
- }
5098
-
5099
- .fixed-action-btn.toolbar.active > a i {
5100
- opacity: 0;
5101
- }
5102
-
5103
- .fixed-action-btn.toolbar ul {
5104
- display: -webkit-flex;
5105
- display: -ms-flexbox;
5106
- display: flex;
5107
- top: 0;
5108
- bottom: 0;
5109
- }
5110
-
5111
- .fixed-action-btn.toolbar ul li {
5112
- -webkit-flex: 1;
5113
- -ms-flex: 1;
5114
- flex: 1;
5115
- display: inline-block;
5116
- margin: 0;
5117
- height: 100%;
5118
- transition: none;
5119
- }
5120
-
5121
- .fixed-action-btn.toolbar ul li a {
5122
- display: block;
5123
- overflow: hidden;
5124
- position: relative;
5125
- width: 100%;
5126
- height: 100%;
5127
- background-color: transparent;
5128
- box-shadow: none;
5129
- color: #fff;
5130
- line-height: 56px;
5131
- z-index: 1;
5132
- }
5133
-
5134
- .fixed-action-btn.toolbar ul li a i {
5135
- line-height: inherit;
5136
- }
5137
-
5138
- .fixed-action-btn ul {
5139
- left: 0;
5140
- right: 0;
5141
- text-align: center;
5142
- position: absolute;
5143
- bottom: 64px;
5144
- margin: 0;
5145
- visibility: hidden;
5146
- }
5147
-
5148
- .fixed-action-btn ul li {
5149
- margin-bottom: 15px;
5150
- }
5151
-
5152
- .fixed-action-btn ul a.btn-floating {
5153
- opacity: 0;
5154
- }
5155
-
5156
- .fixed-action-btn .fab-backdrop {
5157
- position: absolute;
5158
- top: 0;
5159
- left: 0;
5160
- z-index: -1;
5161
- width: 40px;
5162
- height: 40px;
5163
- background-color: #26a69a;
5164
- border-radius: 50%;
5165
- -webkit-transform: scale(0);
5166
- transform: scale(0);
5167
- }
5168
-
5169
- .btn-flat {
5170
- box-shadow: none;
5171
- background-color: transparent;
5172
- color: #343434;
5173
- cursor: pointer;
5174
- transition: background-color .2s;
5175
- }
5176
-
5177
- .btn-flat:focus, .btn-flat:active {
5178
- background-color: transparent;
5179
- }
5180
-
5181
- .btn-flat:focus, .btn-flat:hover {
5182
- background-color: rgba(0, 0, 0, 0.1);
5183
- box-shadow: none;
5184
- }
5185
-
5186
- .btn-flat:active {
5187
- background-color: rgba(0, 0, 0, 0.2);
5188
- }
5189
-
5190
- .btn-flat.disabled {
5191
- background-color: transparent !important;
5192
- color: #b3b3b3 !important;
5193
- cursor: default;
5194
- }
5195
-
5196
- .btn-large {
5197
- height: 54px;
5198
- line-height: 54px;
5199
- }
5200
-
5201
- .btn-large i {
5202
- font-size: 1.6rem;
5203
- }
5204
-
5205
- .btn-block {
5206
- display: block;
5207
- }
5208
-
5209
- .dropdown-content {
5210
- background-color: #fff;
5211
- margin: 0;
5212
- display: none;
5213
- min-width: 100px;
5214
- max-height: 650px;
5215
- overflow-y: auto;
5216
- opacity: 0;
5217
- position: absolute;
5218
- z-index: 999;
5219
- will-change: width, height;
5220
- }
5221
-
5222
- .dropdown-content li {
5223
- clear: both;
5224
- color: rgba(0, 0, 0, 0.87);
5225
- cursor: pointer;
5226
- min-height: 50px;
5227
- line-height: 1.5rem;
5228
- width: 100%;
5229
- text-align: left;
5230
- text-transform: none;
5231
- }
5232
-
5233
- .dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {
5234
- background-color: #eee;
5235
- }
5236
-
5237
- .dropdown-content li.active.selected {
5238
- background-color: #e1e1e1;
5239
- }
5240
-
5241
- .dropdown-content li.divider {
5242
- min-height: 0;
5243
- height: 1px;
5244
- }
5245
-
5246
- .dropdown-content li > a, .dropdown-content li > span {
5247
- font-size: 16px;
5248
- color: #26a69a;
5249
- display: block;
5250
- line-height: 22px;
5251
- padding: 14px 16px;
5252
- }
5253
-
5254
- .dropdown-content li > span > label {
5255
- top: 1px;
5256
- left: 0;
5257
- height: 18px;
5258
- }
5259
-
5260
- .dropdown-content li > a > i {
5261
- height: inherit;
5262
- line-height: inherit;
5263
- }
5264
-
5265
- .input-field.col .dropdown-content [type="checkbox"] + label {
5266
- top: 1px;
5267
- left: 0;
5268
- height: 18px;
5269
- }
5270
-
5271
- /*!
5272
- * Waves v0.6.0
5273
- * http://fian.my.id/Waves
5274
- *
5275
- * Copyright 2014 Alfiana E. Sibuea and other contributors
5276
- * Released under the MIT license
5277
- * https://github.com/fians/Waves/blob/master/LICENSE
5278
- */
5279
- .waves-effect {
5280
- position: relative;
5281
- cursor: pointer;
5282
- display: inline-block;
5283
- overflow: hidden;
5284
- -webkit-user-select: none;
5285
- -moz-user-select: none;
5286
- -ms-user-select: none;
5287
- user-select: none;
5288
- -webkit-tap-highlight-color: transparent;
5289
- vertical-align: middle;
5290
- z-index: 1;
5291
- transition: .3s ease-out;
5292
- }
5293
-
5294
- .waves-effect .waves-ripple {
5295
- position: absolute;
5296
- border-radius: 50%;
5297
- width: 20px;
5298
- height: 20px;
5299
- margin-top: -10px;
5300
- margin-left: -10px;
5301
- opacity: 0;
5302
- background: rgba(0, 0, 0, 0.2);
5303
- transition: all 0.7s ease-out;
5304
- transition-property: opacity, -webkit-transform;
5305
- transition-property: transform, opacity;
5306
- transition-property: transform, opacity, -webkit-transform;
5307
- -webkit-transform: scale(0);
5308
- transform: scale(0);
5309
- pointer-events: none;
5310
- }
5311
-
5312
- .waves-effect.waves-light .waves-ripple {
5313
- background-color: rgba(255, 255, 255, 0.45);
5314
- }
5315
-
5316
- .waves-effect.waves-red .waves-ripple {
5317
- background-color: rgba(244, 67, 54, 0.7);
5318
- }
5319
-
5320
- .waves-effect.waves-yellow .waves-ripple {
5321
- background-color: rgba(255, 235, 59, 0.7);
5322
- }
5323
-
5324
- .waves-effect.waves-orange .waves-ripple {
5325
- background-color: rgba(255, 152, 0, 0.7);
5326
- }
5327
-
5328
- .waves-effect.waves-purple .waves-ripple {
5329
- background-color: rgba(156, 39, 176, 0.7);
5330
- }
5331
-
5332
- .waves-effect.waves-green .waves-ripple {
5333
- background-color: rgba(76, 175, 80, 0.7);
5334
- }
5335
-
5336
- .waves-effect.waves-teal .waves-ripple {
5337
- background-color: rgba(0, 150, 136, 0.7);
5338
- }
5339
-
5340
- .waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] {
5341
- border: 0;
5342
- font-style: normal;
5343
- font-size: inherit;
5344
- text-transform: inherit;
5345
- background: none;
5346
- }
5347
-
5348
- .waves-effect img {
5349
- position: relative;
5350
- z-index: -1;
5351
- }
5352
-
5353
- .waves-notransition {
5354
- transition: none !important;
5355
- }
5356
-
5357
- .waves-circle {
5358
- -webkit-transform: translateZ(0);
5359
- transform: translateZ(0);
5360
- -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
5361
- }
5362
-
5363
- .waves-input-wrapper {
5364
- border-radius: 0.2em;
5365
- vertical-align: bottom;
5366
- }
5367
-
5368
- .waves-input-wrapper .waves-button-input {
5369
- position: relative;
5370
- top: 0;
5371
- left: 0;
5372
- z-index: 1;
5373
- }
5374
-
5375
- .waves-circle {
5376
- text-align: center;
5377
- width: 2.5em;
5378
- height: 2.5em;
5379
- line-height: 2.5em;
5380
- border-radius: 50%;
5381
- -webkit-mask-image: none;
5382
- }
5383
-
5384
- .waves-block {
5385
- display: block;
5386
- }
5387
-
5388
- /* Firefox Bug: link not triggered */
5389
- .waves-effect .waves-ripple {
5390
- z-index: -1;
5391
- }
5392
-
5393
- .modal {
5394
- display: none;
5395
- position: fixed;
5396
- left: 0;
5397
- right: 0;
5398
- background-color: #fafafa;
5399
- padding: 0;
5400
- max-height: 70%;
5401
- width: 55%;
5402
- margin: auto;
5403
- overflow-y: auto;
5404
- border-radius: 2px;
5405
- will-change: top, opacity;
5406
- }
5407
-
5408
- @media only screen and (max-width: 992px) {
5409
- .modal {
5410
- width: 80%;
5411
- }
5412
- }
5413
-
5414
- .modal h1, .modal h2, .modal h3, .modal h4 {
5415
- margin-top: 0;
5416
- }
5417
-
5418
- .modal .modal-content {
5419
- padding: 24px;
5420
- }
5421
-
5422
- .modal .modal-close {
5423
- cursor: pointer;
5424
- }
5425
-
5426
- .modal .modal-footer {
5427
- border-radius: 0 0 2px 2px;
5428
- background-color: #fafafa;
5429
- padding: 4px 6px;
5430
- height: 56px;
5431
- width: 100%;
5432
- }
5433
-
5434
- .modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {
5435
- float: right;
5436
- margin: 6px 0;
5437
- }
5438
-
5439
- .modal-overlay {
5440
- position: fixed;
5441
- z-index: 999;
5442
- top: -100px;
5443
- left: 0;
5444
- bottom: 0;
5445
- right: 0;
5446
- height: 125%;
5447
- width: 100%;
5448
- background: #000;
5449
- display: none;
5450
- will-change: opacity;
5451
- }
5452
-
5453
- .modal.modal-fixed-footer {
5454
- padding: 0;
5455
- height: 70%;
5456
- }
5457
-
5458
- .modal.modal-fixed-footer .modal-content {
5459
- position: absolute;
5460
- height: calc(100% - 56px);
5461
- max-height: 100%;
5462
- width: 100%;
5463
- overflow-y: auto;
5464
- }
5465
-
5466
- .modal.modal-fixed-footer .modal-footer {
5467
- border-top: 1px solid rgba(0, 0, 0, 0.1);
5468
- position: absolute;
5469
- bottom: 0;
5470
- }
5471
-
5472
- .modal.bottom-sheet {
5473
- top: auto;
5474
- bottom: -100%;
5475
- margin: 0;
5476
- width: 100%;
5477
- max-height: 45%;
5478
- border-radius: 0;
5479
- will-change: bottom, opacity;
5480
- }
5481
-
5482
- .collapsible {
5483
- border-top: 1px solid #ddd;
5484
- border-right: 1px solid #ddd;
5485
- border-left: 1px solid #ddd;
5486
- margin: 0.5rem 0 1rem 0;
5487
- }
5488
-
5489
- .collapsible-header {
5490
- display: block;
5491
- cursor: pointer;
5492
- min-height: 3rem;
5493
- line-height: 3rem;
5494
- padding: 0 1rem;
5495
- background-color: #fff;
5496
- border-bottom: 1px solid #ddd;
5497
- }
5498
-
5499
- .collapsible-header i {
5500
- width: 2rem;
5501
- font-size: 1.6rem;
5502
- line-height: 3rem;
5503
- display: block;
5504
- float: left;
5505
- text-align: center;
5506
- margin-right: 1rem;
5507
- }
5508
-
5509
- .collapsible-body {
5510
- display: none;
5511
- border-bottom: 1px solid #ddd;
5512
- box-sizing: border-box;
5513
- padding: 2rem;
5514
- }
5515
-
5516
- .side-nav .collapsible,
5517
- .side-nav.fixed .collapsible {
5518
- border: none;
5519
- box-shadow: none;
5520
- }
5521
-
5522
- .side-nav .collapsible li,
5523
- .side-nav.fixed .collapsible li {
5524
- padding: 0;
5525
- }
5526
-
5527
- .side-nav .collapsible-header,
5528
- .side-nav.fixed .collapsible-header {
5529
- background-color: transparent;
5530
- border: none;
5531
- line-height: inherit;
5532
- height: inherit;
5533
- padding: 0 16px;
5534
- }
5535
-
5536
- .side-nav .collapsible-header:hover,
5537
- .side-nav.fixed .collapsible-header:hover {
5538
- background-color: rgba(0, 0, 0, 0.05);
5539
- }
5540
-
5541
- .side-nav .collapsible-header i,
5542
- .side-nav.fixed .collapsible-header i {
5543
- line-height: inherit;
5544
- }
5545
-
5546
- .side-nav .collapsible-body,
5547
- .side-nav.fixed .collapsible-body {
5548
- border: 0;
5549
- background-color: #fff;
5550
- }
5551
-
5552
- .side-nav .collapsible-body li a,
5553
- .side-nav.fixed .collapsible-body li a {
5554
- padding: 0 23.5px 0 31px;
5555
- }
5556
-
5557
- .collapsible.popout {
5558
- border: none;
5559
- box-shadow: none;
5560
- }
5561
-
5562
- .collapsible.popout > li {
5563
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
5564
- margin: 0 24px;
5565
- transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
5566
- }
5567
-
5568
- .collapsible.popout > li.active {
5569
- box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
5570
- margin: 16px 0;
5571
- }
5572
-
5573
- .chip {
5574
- display: inline-block;
5575
- height: 32px;
5576
- font-size: 13px;
5577
- font-weight: 500;
5578
- color: rgba(0, 0, 0, 0.6);
5579
- line-height: 32px;
5580
- padding: 0 12px;
5581
- border-radius: 16px;
5582
- background-color: #e4e4e4;
5583
- margin-bottom: 5px;
5584
- margin-right: 5px;
5585
- }
5586
-
5587
- .chip img {
5588
- float: left;
5589
- margin: 0 8px 0 -12px;
5590
- height: 32px;
5591
- width: 32px;
5592
- border-radius: 50%;
5593
- }
5594
-
5595
- .chip .close {
5596
- cursor: pointer;
5597
- float: right;
5598
- font-size: 16px;
5599
- line-height: 32px;
5600
- padding-left: 8px;
5601
- }
5602
-
5603
- .chips {
5604
- border: none;
5605
- border-bottom: 1px solid #9e9e9e;
5606
- box-shadow: none;
5607
- margin: 0 0 20px 0;
5608
- min-height: 45px;
5609
- outline: none;
5610
- transition: all .3s;
5611
- }
5612
-
5613
- .chips.focus {
5614
- border-bottom: 1px solid #26a69a;
5615
- box-shadow: 0 1px 0 0 #26a69a;
5616
- }
5617
-
5618
- .chips:hover {
5619
- cursor: text;
5620
- }
5621
-
5622
- .chips .chip.selected {
5623
- background-color: #26a69a;
5624
- color: #fff;
5625
- }
5626
-
5627
- .chips .input {
5628
- background: none;
5629
- border: 0;
5630
- color: rgba(0, 0, 0, 0.6);
5631
- display: inline-block;
5632
- font-size: 1rem;
5633
- height: 3rem;
5634
- line-height: 32px;
5635
- outline: 0;
5636
- margin: 0;
5637
- padding: 0 !important;
5638
- width: 120px !important;
5639
- }
5640
-
5641
- .chips .input:focus {
5642
- border: 0 !important;
5643
- box-shadow: none !important;
5644
- }
5645
-
5646
- .prefix ~ .chips {
5647
- margin-left: 3rem;
5648
- width: 92%;
5649
- width: calc(100% - 3rem);
5650
- }
5651
-
5652
- .chips:empty ~ label {
5653
- font-size: 0.8rem;
5654
- -webkit-transform: translateY(-140%);
5655
- transform: translateY(-140%);
5656
- }
5657
-
5658
- .materialboxed {
5659
- display: block;
5660
- cursor: -webkit-zoom-in;
5661
- cursor: zoom-in;
5662
- position: relative;
5663
- transition: opacity .4s;
5664
- -webkit-backface-visibility: hidden;
5665
- }
5666
-
5667
- .materialboxed:hover:not(.active) {
5668
- opacity: .8;
5669
- }
5670
-
5671
- .materialboxed.active {
5672
- cursor: -webkit-zoom-out;
5673
- cursor: zoom-out;
5674
- }
5675
-
5676
- #materialbox-overlay {
5677
- position: fixed;
5678
- top: 0;
5679
- right: 0;
5680
- bottom: 0;
5681
- left: 0;
5682
- background-color: #292929;
5683
- z-index: 1000;
5684
- will-change: opacity;
5685
- }
5686
-
5687
- .materialbox-caption {
5688
- position: fixed;
5689
- display: none;
5690
- color: #fff;
5691
- line-height: 50px;
5692
- bottom: 0;
5693
- left: 0;
5694
- width: 100%;
5695
- text-align: center;
5696
- padding: 0% 15%;
5697
- height: 50px;
5698
- z-index: 1000;
5699
- -webkit-font-smoothing: antialiased;
5700
- }
5701
-
5702
- select:focus {
5703
- outline: 1px solid #c9f3ef;
5704
- }
5705
-
5706
- button:focus {
5707
- outline: none;
5708
- background-color: #2ab7a9;
5709
- }
5710
-
5711
- label {
5712
- font-size: 0.8rem;
5713
- color: #9e9e9e;
5714
- }
5715
-
5716
- /* Text Inputs + Textarea
5717
- ========================================================================== */
5718
- /* Style Placeholders */
5719
- ::-webkit-input-placeholder {
5720
- color: #d1d1d1;
5721
- }
5722
-
5723
- :-moz-placeholder {
5724
- /* Firefox 18- */
5725
- color: #d1d1d1;
5726
- }
5727
-
5728
- ::-moz-placeholder {
5729
- /* Firefox 19+ */
5730
- color: #d1d1d1;
5731
- }
5732
-
5733
- :-ms-input-placeholder {
5734
- color: #d1d1d1;
5735
- }
5736
-
5737
- /* Text inputs */
5738
- input:not([type]),
5739
- input[type=text],
5740
- input[type=password],
5741
- input[type=email],
5742
- input[type=url],
5743
- input[type=time],
5744
- input[type=date],
5745
- input[type=datetime],
5746
- input[type=datetime-local],
5747
- input[type=tel],
5748
- input[type=number],
5749
- input[type=search],
5750
- textarea.materialize-textarea {
5751
- background-color: transparent;
5752
- border: none;
5753
- border-bottom: 1px solid #9e9e9e;
5754
- border-radius: 0;
5755
- outline: none;
5756
- height: 3rem;
5757
- width: 100%;
5758
- font-size: 1rem;
5759
- margin: 0 0 20px 0;
5760
- padding: 0;
5761
- box-shadow: none;
5762
- box-sizing: content-box;
5763
- transition: all 0.3s;
5764
- }
5765
-
5766
- input:not([type]):disabled, input:not([type])[readonly="readonly"],
5767
- input[type=text]:disabled,
5768
- input[type=text][readonly="readonly"],
5769
- input[type=password]:disabled,
5770
- input[type=password][readonly="readonly"],
5771
- input[type=email]:disabled,
5772
- input[type=email][readonly="readonly"],
5773
- input[type=url]:disabled,
5774
- input[type=url][readonly="readonly"],
5775
- input[type=time]:disabled,
5776
- input[type=time][readonly="readonly"],
5777
- input[type=date]:disabled,
5778
- input[type=date][readonly="readonly"],
5779
- input[type=datetime]:disabled,
5780
- input[type=datetime][readonly="readonly"],
5781
- input[type=datetime-local]:disabled,
5782
- input[type=datetime-local][readonly="readonly"],
5783
- input[type=tel]:disabled,
5784
- input[type=tel][readonly="readonly"],
5785
- input[type=number]:disabled,
5786
- input[type=number][readonly="readonly"],
5787
- input[type=search]:disabled,
5788
- input[type=search][readonly="readonly"],
5789
- textarea.materialize-textarea:disabled,
5790
- textarea.materialize-textarea[readonly="readonly"] {
5791
- color: rgba(0, 0, 0, 0.26);
5792
- border-bottom: 1px dotted rgba(0, 0, 0, 0.26);
5793
- }
5794
-
5795
- input:not([type]):disabled + label,
5796
- input:not([type])[readonly="readonly"] + label,
5797
- input[type=text]:disabled + label,
5798
- input[type=text][readonly="readonly"] + label,
5799
- input[type=password]:disabled + label,
5800
- input[type=password][readonly="readonly"] + label,
5801
- input[type=email]:disabled + label,
5802
- input[type=email][readonly="readonly"] + label,
5803
- input[type=url]:disabled + label,
5804
- input[type=url][readonly="readonly"] + label,
5805
- input[type=time]:disabled + label,
5806
- input[type=time][readonly="readonly"] + label,
5807
- input[type=date]:disabled + label,
5808
- input[type=date][readonly="readonly"] + label,
5809
- input[type=datetime]:disabled + label,
5810
- input[type=datetime][readonly="readonly"] + label,
5811
- input[type=datetime-local]:disabled + label,
5812
- input[type=datetime-local][readonly="readonly"] + label,
5813
- input[type=tel]:disabled + label,
5814
- input[type=tel][readonly="readonly"] + label,
5815
- input[type=number]:disabled + label,
5816
- input[type=number][readonly="readonly"] + label,
5817
- input[type=search]:disabled + label,
5818
- input[type=search][readonly="readonly"] + label,
5819
- textarea.materialize-textarea:disabled + label,
5820
- textarea.materialize-textarea[readonly="readonly"] + label {
5821
- color: rgba(0, 0, 0, 0.26);
5822
- }
5823
-
5824
- input:not([type]):focus:not([readonly]),
5825
- input[type=text]:focus:not([readonly]),
5826
- input[type=password]:focus:not([readonly]),
5827
- input[type=email]:focus:not([readonly]),
5828
- input[type=url]:focus:not([readonly]),
5829
- input[type=time]:focus:not([readonly]),
5830
- input[type=date]:focus:not([readonly]),
5831
- input[type=datetime]:focus:not([readonly]),
5832
- input[type=datetime-local]:focus:not([readonly]),
5833
- input[type=tel]:focus:not([readonly]),
5834
- input[type=number]:focus:not([readonly]),
5835
- input[type=search]:focus:not([readonly]),
5836
- textarea.materialize-textarea:focus:not([readonly]) {
5837
- border-bottom: 1px solid #26a69a;
5838
- box-shadow: 0 1px 0 0 #26a69a;
5839
- }
5840
-
5841
- input:not([type]):focus:not([readonly]) + label,
5842
- input[type=text]:focus:not([readonly]) + label,
5843
- input[type=password]:focus:not([readonly]) + label,
5844
- input[type=email]:focus:not([readonly]) + label,
5845
- input[type=url]:focus:not([readonly]) + label,
5846
- input[type=time]:focus:not([readonly]) + label,
5847
- input[type=date]:focus:not([readonly]) + label,
5848
- input[type=datetime]:focus:not([readonly]) + label,
5849
- input[type=datetime-local]:focus:not([readonly]) + label,
5850
- input[type=tel]:focus:not([readonly]) + label,
5851
- input[type=number]:focus:not([readonly]) + label,
5852
- input[type=search]:focus:not([readonly]) + label,
5853
- textarea.materialize-textarea:focus:not([readonly]) + label {
5854
- color: #26a69a;
5855
- }
5856
-
5857
- input:not([type]).valid, input:not([type]):focus.valid,
5858
- input[type=text].valid,
5859
- input[type=text]:focus.valid,
5860
- input[type=password].valid,
5861
- input[type=password]:focus.valid,
5862
- input[type=email].valid,
5863
- input[type=email]:focus.valid,
5864
- input[type=url].valid,
5865
- input[type=url]:focus.valid,
5866
- input[type=time].valid,
5867
- input[type=time]:focus.valid,
5868
- input[type=date].valid,
5869
- input[type=date]:focus.valid,
5870
- input[type=datetime].valid,
5871
- input[type=datetime]:focus.valid,
5872
- input[type=datetime-local].valid,
5873
- input[type=datetime-local]:focus.valid,
5874
- input[type=tel].valid,
5875
- input[type=tel]:focus.valid,
5876
- input[type=number].valid,
5877
- input[type=number]:focus.valid,
5878
- input[type=search].valid,
5879
- input[type=search]:focus.valid,
5880
- textarea.materialize-textarea.valid,
5881
- textarea.materialize-textarea:focus.valid {
5882
- border-bottom: 1px solid #4CAF50;
5883
- box-shadow: 0 1px 0 0 #4CAF50;
5884
- }
5885
-
5886
- input:not([type]).valid + label:after,
5887
- input:not([type]):focus.valid + label:after,
5888
- input[type=text].valid + label:after,
5889
- input[type=text]:focus.valid + label:after,
5890
- input[type=password].valid + label:after,
5891
- input[type=password]:focus.valid + label:after,
5892
- input[type=email].valid + label:after,
5893
- input[type=email]:focus.valid + label:after,
5894
- input[type=url].valid + label:after,
5895
- input[type=url]:focus.valid + label:after,
5896
- input[type=time].valid + label:after,
5897
- input[type=time]:focus.valid + label:after,
5898
- input[type=date].valid + label:after,
5899
- input[type=date]:focus.valid + label:after,
5900
- input[type=datetime].valid + label:after,
5901
- input[type=datetime]:focus.valid + label:after,
5902
- input[type=datetime-local].valid + label:after,
5903
- input[type=datetime-local]:focus.valid + label:after,
5904
- input[type=tel].valid + label:after,
5905
- input[type=tel]:focus.valid + label:after,
5906
- input[type=number].valid + label:after,
5907
- input[type=number]:focus.valid + label:after,
5908
- input[type=search].valid + label:after,
5909
- input[type=search]:focus.valid + label:after,
5910
- textarea.materialize-textarea.valid + label:after,
5911
- textarea.materialize-textarea:focus.valid + label:after {
5912
- content: attr(data-success);
5913
- color: #4CAF50;
5914
- opacity: 1;
5915
- }
5916
-
5917
- input:not([type]).invalid, input:not([type]):focus.invalid,
5918
- input[type=text].invalid,
5919
- input[type=text]:focus.invalid,
5920
- input[type=password].invalid,
5921
- input[type=password]:focus.invalid,
5922
- input[type=email].invalid,
5923
- input[type=email]:focus.invalid,
5924
- input[type=url].invalid,
5925
- input[type=url]:focus.invalid,
5926
- input[type=time].invalid,
5927
- input[type=time]:focus.invalid,
5928
- input[type=date].invalid,
5929
- input[type=date]:focus.invalid,
5930
- input[type=datetime].invalid,
5931
- input[type=datetime]:focus.invalid,
5932
- input[type=datetime-local].invalid,
5933
- input[type=datetime-local]:focus.invalid,
5934
- input[type=tel].invalid,
5935
- input[type=tel]:focus.invalid,
5936
- input[type=number].invalid,
5937
- input[type=number]:focus.invalid,
5938
- input[type=search].invalid,
5939
- input[type=search]:focus.invalid,
5940
- textarea.materialize-textarea.invalid,
5941
- textarea.materialize-textarea:focus.invalid {
5942
- border-bottom: 1px solid #F44336;
5943
- box-shadow: 0 1px 0 0 #F44336;
5944
- }
5945
-
5946
- input:not([type]).invalid + label:after,
5947
- input:not([type]):focus.invalid + label:after,
5948
- input[type=text].invalid + label:after,
5949
- input[type=text]:focus.invalid + label:after,
5950
- input[type=password].invalid + label:after,
5951
- input[type=password]:focus.invalid + label:after,
5952
- input[type=email].invalid + label:after,
5953
- input[type=email]:focus.invalid + label:after,
5954
- input[type=url].invalid + label:after,
5955
- input[type=url]:focus.invalid + label:after,
5956
- input[type=time].invalid + label:after,
5957
- input[type=time]:focus.invalid + label:after,
5958
- input[type=date].invalid + label:after,
5959
- input[type=date]:focus.invalid + label:after,
5960
- input[type=datetime].invalid + label:after,
5961
- input[type=datetime]:focus.invalid + label:after,
5962
- input[type=datetime-local].invalid + label:after,
5963
- input[type=datetime-local]:focus.invalid + label:after,
5964
- input[type=tel].invalid + label:after,
5965
- input[type=tel]:focus.invalid + label:after,
5966
- input[type=number].invalid + label:after,
5967
- input[type=number]:focus.invalid + label:after,
5968
- input[type=search].invalid + label:after,
5969
- input[type=search]:focus.invalid + label:after,
5970
- textarea.materialize-textarea.invalid + label:after,
5971
- textarea.materialize-textarea:focus.invalid + label:after {
5972
- content: attr(data-error);
5973
- color: #F44336;
5974
- opacity: 1;
5975
- }
5976
-
5977
- input:not([type]).validate + label,
5978
- input[type=text].validate + label,
5979
- input[type=password].validate + label,
5980
- input[type=email].validate + label,
5981
- input[type=url].validate + label,
5982
- input[type=time].validate + label,
5983
- input[type=date].validate + label,
5984
- input[type=datetime].validate + label,
5985
- input[type=datetime-local].validate + label,
5986
- input[type=tel].validate + label,
5987
- input[type=number].validate + label,
5988
- input[type=search].validate + label,
5989
- textarea.materialize-textarea.validate + label {
5990
- width: 100%;
5991
- pointer-events: none;
5992
- }
5993
-
5994
- input:not([type]) + label:after,
5995
- input[type=text] + label:after,
5996
- input[type=password] + label:after,
5997
- input[type=email] + label:after,
5998
- input[type=url] + label:after,
5999
- input[type=time] + label:after,
6000
- input[type=date] + label:after,
6001
- input[type=datetime] + label:after,
6002
- input[type=datetime-local] + label:after,
6003
- input[type=tel] + label:after,
6004
- input[type=number] + label:after,
6005
- input[type=search] + label:after,
6006
- textarea.materialize-textarea + label:after {
6007
- display: block;
6008
- content: "";
6009
- position: absolute;
6010
- top: 60px;
6011
- opacity: 0;
6012
- transition: .2s opacity ease-out, .2s color ease-out;
6013
- }
6014
-
6015
- .input-field {
6016
- position: relative;
6017
- margin-top: 1rem;
6018
- }
6019
-
6020
- .input-field.inline {
6021
- display: inline-block;
6022
- vertical-align: middle;
6023
- margin-left: 5px;
6024
- }
6025
-
6026
- .input-field.inline input,
6027
- .input-field.inline .select-dropdown {
6028
- margin-bottom: 1rem;
6029
- }
6030
-
6031
- .input-field.col label {
6032
- left: 0.75rem;
6033
- }
6034
-
6035
- .input-field.col .prefix ~ label,
6036
- .input-field.col .prefix ~ .validate ~ label {
6037
- width: calc(100% - 3rem - 1.5rem);
6038
- }
6039
-
6040
- .input-field label {
6041
- color: #9e9e9e;
6042
- position: absolute;
6043
- top: 0.8rem;
6044
- left: 0;
6045
- font-size: 1rem;
6046
- cursor: text;
6047
- transition: .2s ease-out;
6048
- }
6049
-
6050
- .input-field label:not(.label-icon).active {
6051
- font-size: 0.8rem;
6052
- -webkit-transform: translateY(-140%);
6053
- transform: translateY(-140%);
6054
- }
6055
-
6056
- .input-field .prefix {
6057
- position: absolute;
6058
- width: 3rem;
6059
- font-size: 2rem;
6060
- transition: color .2s;
6061
- }
6062
-
6063
- .input-field .prefix.active {
6064
- color: #26a69a;
6065
- }
6066
-
6067
- .input-field .prefix ~ input,
6068
- .input-field .prefix ~ textarea,
6069
- .input-field .prefix ~ label,
6070
- .input-field .prefix ~ .validate ~ label,
6071
- .input-field .prefix ~ .autocomplete-content {
6072
- margin-left: 3rem;
6073
- width: 92%;
6074
- width: calc(100% - 3rem);
6075
- }
6076
-
6077
- .input-field .prefix ~ label {
6078
- margin-left: 3rem;
6079
- }
6080
-
6081
- @media only screen and (max-width: 992px) {
6082
- .input-field .prefix ~ input {
6083
- width: 86%;
6084
- width: calc(100% - 3rem);
6085
- }
6086
- }
6087
-
6088
- @media only screen and (max-width: 600px) {
6089
- .input-field .prefix ~ input {
6090
- width: 80%;
6091
- width: calc(100% - 3rem);
6092
- }
6093
- }
6094
-
6095
- /* Search Field */
6096
- .input-field input[type=search] {
6097
- display: block;
6098
- line-height: inherit;
6099
- padding-left: 4rem;
6100
- width: calc(100% - 4rem);
6101
- }
6102
-
6103
- .input-field input[type=search]:focus {
6104
- background-color: #fff;
6105
- border: 0;
6106
- box-shadow: none;
6107
- color: #444;
6108
- }
6109
-
6110
- .input-field input[type=search]:focus + label i,
6111
- .input-field input[type=search]:focus ~ .mdi-navigation-close,
6112
- .input-field input[type=search]:focus ~ .material-icons {
6113
- color: #444;
6114
- }
6115
-
6116
- .input-field input[type=search] + label {
6117
- left: 1rem;
6118
- }
6119
-
6120
- .input-field input[type=search] ~ .mdi-navigation-close,
6121
- .input-field input[type=search] ~ .material-icons {
6122
- position: absolute;
6123
- top: 0;
6124
- right: 1rem;
6125
- color: transparent;
6126
- cursor: pointer;
6127
- font-size: 2rem;
6128
- transition: .3s color;
6129
- }
6130
-
6131
- /* Textarea */
6132
- textarea {
6133
- width: 100%;
6134
- height: 3rem;
6135
- background-color: transparent;
6136
- }
6137
-
6138
- textarea.materialize-textarea {
6139
- overflow-y: hidden;
6140
- /* prevents scroll bar flash */
6141
- padding: .8rem 0 1.6rem 0;
6142
- /* prevents text jump on Enter keypress */
6143
- resize: none;
6144
- min-height: 3rem;
6145
- }
6146
-
6147
- .hiddendiv {
6148
- display: none;
6149
- white-space: pre-wrap;
6150
- word-wrap: break-word;
6151
- overflow-wrap: break-word;
6152
- /* future version of deprecated 'word-wrap' */
6153
- padding-top: 1.2rem;
6154
- /* prevents text jump on Enter keypress */
6155
- }
6156
-
6157
- /* Autocomplete */
6158
- .autocomplete-content {
6159
- margin-top: -15px;
6160
- display: block;
6161
- opacity: 1;
6162
- position: static;
6163
- }
6164
-
6165
- .autocomplete-content li .highlight {
6166
- color: #444;
6167
- }
6168
-
6169
- .autocomplete-content li img {
6170
- height: 40px;
6171
- width: 40px;
6172
- margin: 5px 15px;
6173
- }
6174
-
6175
- /* Radio Buttons
6176
- ========================================================================== */
6177
- [type="radio"]:not(:checked),
6178
- [type="radio"]:checked {
6179
- position: absolute;
6180
- left: -9999px;
6181
- opacity: 0;
6182
- }
6183
-
6184
- [type="radio"]:not(:checked) + label,
6185
- [type="radio"]:checked + label {
6186
- position: relative;
6187
- padding-left: 35px;
6188
- cursor: pointer;
6189
- display: inline-block;
6190
- height: 25px;
6191
- line-height: 25px;
6192
- font-size: 1rem;
6193
- transition: .28s ease;
6194
- /* webkit (konqueror) browsers */
6195
- -webkit-user-select: none;
6196
- -moz-user-select: none;
6197
- -ms-user-select: none;
6198
- user-select: none;
6199
- }
6200
-
6201
- [type="radio"] + label:before,
6202
- [type="radio"] + label:after {
6203
- content: '';
6204
- position: absolute;
6205
- left: 0;
6206
- top: 0;
6207
- margin: 4px;
6208
- width: 16px;
6209
- height: 16px;
6210
- z-index: 0;
6211
- transition: .28s ease;
6212
- }
6213
-
6214
- /* Unchecked styles */
6215
- [type="radio"]:not(:checked) + label:before,
6216
- [type="radio"]:not(:checked) + label:after,
6217
- [type="radio"]:checked + label:before,
6218
- [type="radio"]:checked + label:after,
6219
- [type="radio"].with-gap:checked + label:before,
6220
- [type="radio"].with-gap:checked + label:after {
6221
- border-radius: 50%;
6222
- }
6223
-
6224
- [type="radio"]:not(:checked) + label:before,
6225
- [type="radio"]:not(:checked) + label:after {
6226
- border: 2px solid #5a5a5a;
6227
- }
6228
-
6229
- [type="radio"]:not(:checked) + label:after {
6230
- -webkit-transform: scale(0);
6231
- transform: scale(0);
6232
- }
6233
-
6234
- /* Checked styles */
6235
- [type="radio"]:checked + label:before {
6236
- border: 2px solid transparent;
6237
- }
6238
-
6239
- [type="radio"]:checked + label:after,
6240
- [type="radio"].with-gap:checked + label:before,
6241
- [type="radio"].with-gap:checked + label:after {
6242
- border: 2px solid #26a69a;
6243
- }
6244
-
6245
- [type="radio"]:checked + label:after,
6246
- [type="radio"].with-gap:checked + label:after {
6247
- background-color: #26a69a;
6248
- }
6249
-
6250
- [type="radio"]:checked + label:after {
6251
- -webkit-transform: scale(1.02);
6252
- transform: scale(1.02);
6253
- }
6254
-
6255
- /* Radio With gap */
6256
- [type="radio"].with-gap:checked + label:after {
6257
- -webkit-transform: scale(0.5);
6258
- transform: scale(0.5);
6259
- }
6260
-
6261
- /* Focused styles */
6262
- [type="radio"].tabbed:focus + label:before {
6263
- box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
6264
- }
6265
-
6266
- /* Disabled Radio With gap */
6267
- [type="radio"].with-gap:disabled:checked + label:before {
6268
- border: 2px solid rgba(0, 0, 0, 0.26);
6269
- }
6270
-
6271
- [type="radio"].with-gap:disabled:checked + label:after {
6272
- border: none;
6273
- background-color: rgba(0, 0, 0, 0.26);
6274
- }
6275
-
6276
- /* Disabled style */
6277
- [type="radio"]:disabled:not(:checked) + label:before,
6278
- [type="radio"]:disabled:checked + label:before {
6279
- background-color: transparent;
6280
- border-color: rgba(0, 0, 0, 0.26);
6281
- }
6282
-
6283
- [type="radio"]:disabled + label {
6284
- color: rgba(0, 0, 0, 0.26);
6285
- }
6286
-
6287
- [type="radio"]:disabled:not(:checked) + label:before {
6288
- border-color: rgba(0, 0, 0, 0.26);
6289
- }
6290
-
6291
- [type="radio"]:disabled:checked + label:after {
6292
- background-color: rgba(0, 0, 0, 0.26);
6293
- border-color: #BDBDBD;
6294
- }
6295
-
6296
- /* Checkboxes
6297
- ========================================================================== */
6298
- /* CUSTOM CSS CHECKBOXES */
6299
- form p {
6300
- margin-bottom: 10px;
6301
- text-align: left;
6302
- }
6303
-
6304
- form p:last-child {
6305
- margin-bottom: 0;
6306
- }
6307
-
6308
- /* Remove default checkbox */
6309
- [type="checkbox"]:not(:checked),
6310
- [type="checkbox"]:checked {
6311
- position: absolute;
6312
- left: -9999px;
6313
- opacity: 0;
6314
- }
6315
-
6316
- [type="checkbox"] {
6317
- /* checkbox aspect */
6318
- }
6319
-
6320
- [type="checkbox"] + label {
6321
- position: relative;
6322
- padding-left: 35px;
6323
- cursor: pointer;
6324
- display: inline-block;
6325
- height: 25px;
6326
- line-height: 25px;
6327
- font-size: 1rem;
6328
- -webkit-user-select: none;
6329
- /* webkit (safari, chrome) browsers */
6330
- -moz-user-select: none;
6331
- /* mozilla browsers */
6332
- -khtml-user-select: none;
6333
- /* webkit (konqueror) browsers */
6334
- -ms-user-select: none;
6335
- /* IE10+ */
6336
- }
6337
-
6338
- [type="checkbox"] + label:before,
6339
- [type="checkbox"]:not(.filled-in) + label:after {
6340
- content: '';
6341
- position: absolute;
6342
- top: 0;
6343
- left: 0;
6344
- width: 18px;
6345
- height: 18px;
6346
- z-index: 0;
6347
- border: 2px solid #5a5a5a;
6348
- border-radius: 1px;
6349
- margin-top: 2px;
6350
- transition: .2s;
6351
- }
6352
-
6353
- [type="checkbox"]:not(.filled-in) + label:after {
6354
- border: 0;
6355
- -webkit-transform: scale(0);
6356
- transform: scale(0);
6357
- }
6358
-
6359
- [type="checkbox"]:not(:checked):disabled + label:before {
6360
- border: none;
6361
- background-color: rgba(0, 0, 0, 0.26);
6362
- }
6363
-
6364
- [type="checkbox"].tabbed:focus + label:after {
6365
- -webkit-transform: scale(1);
6366
- transform: scale(1);
6367
- border: 0;
6368
- border-radius: 50%;
6369
- box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
6370
- background-color: rgba(0, 0, 0, 0.1);
6371
- }
6372
-
6373
- [type="checkbox"]:checked + label:before {
6374
- top: -4px;
6375
- left: -5px;
6376
- width: 12px;
6377
- height: 22px;
6378
- border-top: 2px solid transparent;
6379
- border-left: 2px solid transparent;
6380
- border-right: 2px solid #26a69a;
6381
- border-bottom: 2px solid #26a69a;
6382
- -webkit-transform: rotate(40deg);
6383
- transform: rotate(40deg);
6384
- -webkit-backface-visibility: hidden;
6385
- backface-visibility: hidden;
6386
- -webkit-transform-origin: 100% 100%;
6387
- transform-origin: 100% 100%;
6388
- }
6389
-
6390
- [type="checkbox"]:checked:disabled + label:before {
6391
- border-right: 2px solid rgba(0, 0, 0, 0.26);
6392
- border-bottom: 2px solid rgba(0, 0, 0, 0.26);
6393
- }
6394
-
6395
- /* Indeterminate checkbox */
6396
- [type="checkbox"]:indeterminate + label:before {
6397
- top: -11px;
6398
- left: -12px;
6399
- width: 10px;
6400
- height: 22px;
6401
- border-top: none;
6402
- border-left: none;
6403
- border-right: 2px solid #26a69a;
6404
- border-bottom: none;
6405
- -webkit-transform: rotate(90deg);
6406
- transform: rotate(90deg);
6407
- -webkit-backface-visibility: hidden;
6408
- backface-visibility: hidden;
6409
- -webkit-transform-origin: 100% 100%;
6410
- transform-origin: 100% 100%;
6411
- }
6412
-
6413
- [type="checkbox"]:indeterminate:disabled + label:before {
6414
- border-right: 2px solid rgba(0, 0, 0, 0.26);
6415
- background-color: transparent;
6416
- }
6417
-
6418
- [type="checkbox"].filled-in + label:after {
6419
- border-radius: 2px;
6420
- }
6421
-
6422
- [type="checkbox"].filled-in + label:before,
6423
- [type="checkbox"].filled-in + label:after {
6424
- content: '';
6425
- left: 0;
6426
- position: absolute;
6427
- /* .1s delay is for check animation */
6428
- transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
6429
- z-index: 1;
6430
- }
6431
-
6432
- [type="checkbox"].filled-in:not(:checked) + label:before {
6433
- width: 0;
6434
- height: 0;
6435
- border: 3px solid transparent;
6436
- left: 6px;
6437
- top: 10px;
6438
- -webkit-transform: rotateZ(37deg);
6439
- transform: rotateZ(37deg);
6440
- -webkit-transform-origin: 20% 40%;
6441
- transform-origin: 100% 100%;
6442
- }
6443
-
6444
- [type="checkbox"].filled-in:not(:checked) + label:after {
6445
- height: 20px;
6446
- width: 20px;
6447
- background-color: transparent;
6448
- border: 2px solid #5a5a5a;
6449
- top: 0px;
6450
- z-index: 0;
6451
- }
6452
-
6453
- [type="checkbox"].filled-in:checked + label:before {
6454
- top: 0;
6455
- left: 1px;
6456
- width: 8px;
6457
- height: 13px;
6458
- border-top: 2px solid transparent;
6459
- border-left: 2px solid transparent;
6460
- border-right: 2px solid #fff;
6461
- border-bottom: 2px solid #fff;
6462
- -webkit-transform: rotateZ(37deg);
6463
- transform: rotateZ(37deg);
6464
- -webkit-transform-origin: 100% 100%;
6465
- transform-origin: 100% 100%;
6466
- }
6467
-
6468
- [type="checkbox"].filled-in:checked + label:after {
6469
- top: 0;
6470
- width: 20px;
6471
- height: 20px;
6472
- border: 2px solid #26a69a;
6473
- background-color: #26a69a;
6474
- z-index: 0;
6475
- }
6476
-
6477
- [type="checkbox"].filled-in.tabbed:focus + label:after {
6478
- border-radius: 2px;
6479
- border-color: #5a5a5a;
6480
- background-color: rgba(0, 0, 0, 0.1);
6481
- }
6482
-
6483
- [type="checkbox"].filled-in.tabbed:checked:focus + label:after {
6484
- border-radius: 2px;
6485
- background-color: #26a69a;
6486
- border-color: #26a69a;
6487
- }
6488
-
6489
- [type="checkbox"].filled-in:disabled:not(:checked) + label:before {
6490
- background-color: transparent;
6491
- border: 2px solid transparent;
6492
- }
6493
-
6494
- [type="checkbox"].filled-in:disabled:not(:checked) + label:after {
6495
- border-color: transparent;
6496
- background-color: #BDBDBD;
6497
- }
6498
-
6499
- [type="checkbox"].filled-in:disabled:checked + label:before {
6500
- background-color: transparent;
6501
- }
6502
-
6503
- [type="checkbox"].filled-in:disabled:checked + label:after {
6504
- background-color: #BDBDBD;
6505
- border-color: #BDBDBD;
6506
- }
6507
-
6508
- /* Switch
6509
- ========================================================================== */
6510
- .switch,
6511
- .switch * {
6512
- -webkit-user-select: none;
6513
- -moz-user-select: none;
6514
- -khtml-user-select: none;
6515
- -ms-user-select: none;
6516
- }
6517
-
6518
- .switch label {
6519
- cursor: pointer;
6520
- }
6521
-
6522
- .switch label input[type=checkbox] {
6523
- opacity: 0;
6524
- width: 0;
6525
- height: 0;
6526
- }
6527
-
6528
- .switch label input[type=checkbox]:checked + .lever {
6529
- background-color: #84c7c1;
6530
- }
6531
-
6532
- .switch label input[type=checkbox]:checked + .lever:after {
6533
- background-color: #26a69a;
6534
- left: 24px;
6535
- }
6536
-
6537
- .switch label .lever {
6538
- content: "";
6539
- display: inline-block;
6540
- position: relative;
6541
- width: 40px;
6542
- height: 15px;
6543
- background-color: #818181;
6544
- border-radius: 15px;
6545
- margin-right: 10px;
6546
- transition: background 0.3s ease;
6547
- vertical-align: middle;
6548
- margin: 0 16px;
6549
- }
6550
-
6551
- .switch label .lever:after {
6552
- content: "";
6553
- position: absolute;
6554
- display: inline-block;
6555
- width: 21px;
6556
- height: 21px;
6557
- background-color: #F1F1F1;
6558
- border-radius: 21px;
6559
- box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
6560
- left: -5px;
6561
- top: -3px;
6562
- transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;
6563
- }
6564
-
6565
- input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,
6566
- input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {
6567
- box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);
6568
- }
6569
-
6570
- input[type=checkbox]:not(:disabled) ~ .lever:active:after,
6571
- input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {
6572
- box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);
6573
- }
6574
-
6575
- .switch input[type=checkbox][disabled] + .lever {
6576
- cursor: default;
6577
- }
6578
-
6579
- .switch label input[type=checkbox][disabled] + .lever:after,
6580
- .switch label input[type=checkbox][disabled]:checked + .lever:after {
6581
- background-color: #BDBDBD;
6582
- }
6583
-
6584
- /* Select Field
6585
- ========================================================================== */
6586
- select {
6587
- display: none;
6588
- }
6589
-
6590
- select.browser-default {
6591
- display: block;
6592
- }
6593
-
6594
- select {
6595
- background-color: rgba(255, 255, 255, 0.9);
6596
- width: 100%;
6597
- padding: 5px;
6598
- border: 1px solid #f2f2f2;
6599
- border-radius: 2px;
6600
- height: 3rem;
6601
- }
6602
-
6603
- .select-label {
6604
- position: absolute;
6605
- }
6606
-
6607
- .select-wrapper {
6608
- position: relative;
6609
- }
6610
-
6611
- .select-wrapper input.select-dropdown {
6612
- position: relative;
6613
- cursor: pointer;
6614
- background-color: transparent;
6615
- border: none;
6616
- border-bottom: 1px solid #9e9e9e;
6617
- outline: none;
6618
- height: 3rem;
6619
- line-height: 3rem;
6620
- width: 100%;
6621
- font-size: 1rem;
6622
- margin: 0 0 20px 0;
6623
- padding: 0;
6624
- display: block;
6625
- }
6626
-
6627
- .select-wrapper span.caret {
6628
- color: initial;
6629
- position: absolute;
6630
- right: 0;
6631
- top: 0;
6632
- bottom: 0;
6633
- height: 10px;
6634
- margin: auto 0;
6635
- font-size: 10px;
6636
- line-height: 10px;
6637
- }
6638
-
6639
- .select-wrapper span.caret.disabled {
6640
- color: rgba(0, 0, 0, 0.26);
6641
- }
6642
-
6643
- .select-wrapper + label {
6644
- position: absolute;
6645
- top: -14px;
6646
- font-size: 0.8rem;
6647
- }
6648
-
6649
- select:disabled {
6650
- color: rgba(0, 0, 0, 0.3);
6651
- }
6652
-
6653
- .select-wrapper input.select-dropdown:disabled {
6654
- color: rgba(0, 0, 0, 0.3);
6655
- cursor: default;
6656
- -webkit-user-select: none;
6657
- /* webkit (safari, chrome) browsers */
6658
- -moz-user-select: none;
6659
- /* mozilla browsers */
6660
- -ms-user-select: none;
6661
- /* IE10+ */
6662
- border-bottom: 1px solid rgba(0, 0, 0, 0.3);
6663
- }
6664
-
6665
- .select-wrapper i {
6666
- color: rgba(0, 0, 0, 0.3);
6667
- }
6668
-
6669
- .select-dropdown li.disabled,
6670
- .select-dropdown li.disabled > span,
6671
- .select-dropdown li.optgroup {
6672
- color: rgba(0, 0, 0, 0.3);
6673
- background-color: transparent;
6674
- }
6675
-
6676
- .prefix ~ .select-wrapper {
6677
- margin-left: 3rem;
6678
- width: 92%;
6679
- width: calc(100% - 3rem);
6680
- }
6681
-
6682
- .prefix ~ label {
6683
- margin-left: 3rem;
6684
- }
6685
-
6686
- .select-dropdown li img {
6687
- height: 40px;
6688
- width: 40px;
6689
- margin: 5px 15px;
6690
- float: right;
6691
- }
6692
-
6693
- .select-dropdown li.optgroup {
6694
- border-top: 1px solid #eee;
6695
- }
6696
-
6697
- .select-dropdown li.optgroup.selected > span {
6698
- color: rgba(0, 0, 0, 0.7);
6699
- }
6700
-
6701
- .select-dropdown li.optgroup > span {
6702
- color: rgba(0, 0, 0, 0.4);
6703
- }
6704
-
6705
- .select-dropdown li.optgroup ~ li.optgroup-option {
6706
- padding-left: 1rem;
6707
- }
6708
-
6709
- /* File Input
6710
- ========================================================================== */
6711
- .file-field {
6712
- position: relative;
6713
- }
6714
-
6715
- .file-field .file-path-wrapper {
6716
- overflow: hidden;
6717
- padding-left: 10px;
6718
- }
6719
-
6720
- .file-field input.file-path {
6721
- width: 100%;
6722
- }
6723
-
6724
- .file-field .btn, .file-field .btn-large {
6725
- float: left;
6726
- height: 3rem;
6727
- line-height: 3rem;
6728
- }
6729
-
6730
- .file-field span {
6731
- cursor: pointer;
6732
- }
6733
-
6734
- .file-field input[type=file] {
6735
- position: absolute;
6736
- top: 0;
6737
- right: 0;
6738
- left: 0;
6739
- bottom: 0;
6740
- width: 100%;
6741
- margin: 0;
6742
- padding: 0;
6743
- font-size: 20px;
6744
- cursor: pointer;
6745
- opacity: 0;
6746
- filter: alpha(opacity=0);
6747
- }
6748
-
6749
- /* Range
6750
- ========================================================================== */
6751
- .range-field {
6752
- position: relative;
6753
- }
6754
-
6755
- input[type=range],
6756
- input[type=range] + .thumb {
6757
- cursor: pointer;
6758
- }
6759
-
6760
- input[type=range] {
6761
- position: relative;
6762
- background-color: transparent;
6763
- border: none;
6764
- outline: none;
6765
- width: 100%;
6766
- margin: 15px 0;
6767
- padding: 0;
6768
- }
6769
-
6770
- input[type=range]:focus {
6771
- outline: none;
6772
- }
6773
-
6774
- input[type=range] + .thumb {
6775
- position: absolute;
6776
- border: none;
6777
- height: 0;
6778
- width: 0;
6779
- border-radius: 50%;
6780
- background-color: #26a69a;
6781
- top: 10px;
6782
- margin-left: -6px;
6783
- -webkit-transform-origin: 50% 50%;
6784
- transform-origin: 50% 50%;
6785
- -webkit-transform: rotate(-45deg);
6786
- transform: rotate(-45deg);
6787
- }
6788
-
6789
- input[type=range] + .thumb .value {
6790
- display: block;
6791
- width: 30px;
6792
- text-align: center;
6793
- color: #26a69a;
6794
- font-size: 0;
6795
- -webkit-transform: rotate(45deg);
6796
- transform: rotate(45deg);
6797
- }
6798
-
6799
- input[type=range] + .thumb.active {
6800
- border-radius: 50% 50% 50% 0;
6801
- }
6802
-
6803
- input[type=range] + .thumb.active .value {
6804
- color: #fff;
6805
- margin-left: -1px;
6806
- margin-top: 8px;
6807
- font-size: 10px;
6808
- }
6809
-
6810
- input[type=range] {
6811
- -webkit-appearance: none;
6812
- }
6813
-
6814
- input[type=range]::-webkit-slider-runnable-track {
6815
- height: 3px;
6816
- background: #c2c0c2;
6817
- border: none;
6818
- }
6819
-
6820
- input[type=range]::-webkit-slider-thumb {
6821
- -webkit-appearance: none;
6822
- border: none;
6823
- height: 14px;
6824
- width: 14px;
6825
- border-radius: 50%;
6826
- background-color: #26a69a;
6827
- -webkit-transform-origin: 50% 50%;
6828
- transform-origin: 50% 50%;
6829
- margin: -5px 0 0 0;
6830
- transition: .3s;
6831
- }
6832
-
6833
- input[type=range]:focus::-webkit-slider-runnable-track {
6834
- background: #ccc;
6835
- }
6836
-
6837
- input[type=range] {
6838
- /* fix for FF unable to apply focus style bug */
6839
- border: 1px solid white;
6840
- /*required for proper track sizing in FF*/
6841
- }
6842
-
6843
- input[type=range]::-moz-range-track {
6844
- height: 3px;
6845
- background: #ddd;
6846
- border: none;
6847
- }
6848
-
6849
- input[type=range]::-moz-range-thumb {
6850
- border: none;
6851
- height: 14px;
6852
- width: 14px;
6853
- border-radius: 50%;
6854
- background: #26a69a;
6855
- margin-top: -5px;
6856
- }
6857
-
6858
- input[type=range]:-moz-focusring {
6859
- outline: 1px solid #fff;
6860
- outline-offset: -1px;
6861
- }
6862
-
6863
- input[type=range]:focus::-moz-range-track {
6864
- background: #ccc;
6865
- }
6866
-
6867
- input[type=range]::-ms-track {
6868
- height: 3px;
6869
- background: transparent;
6870
- border-color: transparent;
6871
- border-width: 6px 0;
6872
- /*remove default tick marks*/
6873
- color: transparent;
6874
- }
6875
-
6876
- input[type=range]::-ms-fill-lower {
6877
- background: #777;
6878
- }
6879
-
6880
- input[type=range]::-ms-fill-upper {
6881
- background: #ddd;
6882
- }
6883
-
6884
- input[type=range]::-ms-thumb {
6885
- border: none;
6886
- height: 14px;
6887
- width: 14px;
6888
- border-radius: 50%;
6889
- background: #26a69a;
6890
- }
6891
-
6892
- input[type=range]:focus::-ms-fill-lower {
6893
- background: #888;
6894
- }
6895
-
6896
- input[type=range]:focus::-ms-fill-upper {
6897
- background: #ccc;
6898
- }
6899
-
6900
- /***************
6901
- Nav List
6902
- ***************/
6903
- .table-of-contents.fixed {
6904
- position: fixed;
6905
- }
6906
-
6907
- .table-of-contents li {
6908
- padding: 2px 0;
6909
- }
6910
-
6911
- .table-of-contents a {
6912
- display: inline-block;
6913
- font-weight: 300;
6914
- color: #757575;
6915
- padding-left: 20px;
6916
- height: 1.5rem;
6917
- line-height: 1.5rem;
6918
- letter-spacing: .4;
6919
- display: inline-block;
6920
- }
6921
-
6922
- .table-of-contents a:hover {
6923
- color: #a8a8a8;
6924
- padding-left: 19px;
6925
- border-left: 1px solid #ee6e73;
6926
- }
6927
-
6928
- .table-of-contents a.active {
6929
- font-weight: 500;
6930
- padding-left: 18px;
6931
- border-left: 2px solid #ee6e73;
6932
- }
6933
-
6934
- .side-nav {
6935
- position: fixed;
6936
- width: 300px;
6937
- left: 0;
6938
- top: 0;
6939
- margin: 0;
6940
- -webkit-transform: translateX(-100%);
6941
- transform: translateX(-100%);
6942
- height: 100%;
6943
- height: calc(100% + 60px);
6944
- height: -moz-calc(100%);
6945
- padding-bottom: 60px;
6946
- background-color: #fff;
6947
- z-index: 999;
6948
- overflow-y: auto;
6949
- will-change: transform;
6950
- -webkit-backface-visibility: hidden;
6951
- backface-visibility: hidden;
6952
- -webkit-transform: translateX(-105%);
6953
- transform: translateX(-105%);
6954
- }
6955
-
6956
- .side-nav.right-aligned {
6957
- right: 0;
6958
- -webkit-transform: translateX(105%);
6959
- transform: translateX(105%);
6960
- left: auto;
6961
- -webkit-transform: translateX(100%);
6962
- transform: translateX(100%);
6963
- }
6964
-
6965
- .side-nav .collapsible {
6966
- margin: 0;
6967
- }
6968
-
6969
- .side-nav li {
6970
- float: none;
6971
- line-height: 48px;
6972
- }
6973
-
6974
- .side-nav li.active {
6975
- background-color: rgba(0, 0, 0, 0.05);
6976
- }
6977
-
6978
- .side-nav a {
6979
- color: rgba(0, 0, 0, 0.87);
6980
- display: block;
6981
- font-size: 14px;
6982
- font-weight: 500;
6983
- height: 48px;
6984
- line-height: 48px;
6985
- padding: 0 32px;
6986
- }
6987
-
6988
- .side-nav a:hover {
6989
- background-color: rgba(0, 0, 0, 0.05);
6990
- }
6991
-
6992
- .side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-flat, .side-nav a.btn-floating {
6993
- margin: 10px 15px;
6994
- }
6995
-
6996
- .side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-floating {
6997
- color: #fff;
6998
- }
6999
-
7000
- .side-nav a.btn-flat {
7001
- color: #343434;
7002
- }
7003
-
7004
- .side-nav a.btn:hover, .side-nav a.btn-large:hover, .side-nav a.btn-large:hover {
7005
- background-color: #2bbbad;
7006
- }
7007
-
7008
- .side-nav a.btn-floating:hover {
7009
- background-color: #26a69a;
7010
- }
7011
-
7012
- .side-nav li > a > i,
7013
- .side-nav li > a > [class^="mdi-"], .side-nav li > a > [class*="mdi-"],
7014
- .side-nav li > a > i.material-icons {
7015
- float: left;
7016
- height: 48px;
7017
- line-height: 48px;
7018
- margin: 0 32px 0 0;
7019
- width: 24px;
7020
- color: rgba(0, 0, 0, 0.54);
7021
- }
7022
-
7023
- .side-nav .divider {
7024
- margin: 8px 0 0 0;
7025
- }
7026
-
7027
- .side-nav .subheader {
7028
- cursor: initial;
7029
- pointer-events: none;
7030
- color: rgba(0, 0, 0, 0.54);
7031
- font-size: 14px;
7032
- font-weight: 500;
7033
- line-height: 48px;
7034
- }
7035
-
7036
- .side-nav .subheader:hover {
7037
- background-color: transparent;
7038
- }
7039
-
7040
- .side-nav .userView {
7041
- position: relative;
7042
- padding: 32px 32px 0;
7043
- margin-bottom: 8px;
7044
- }
7045
-
7046
- .side-nav .userView > a {
7047
- height: auto;
7048
- padding: 0;
7049
- }
7050
-
7051
- .side-nav .userView > a:hover {
7052
- background-color: transparent;
7053
- }
7054
-
7055
- .side-nav .userView .background {
7056
- overflow: hidden;
7057
- position: absolute;
7058
- top: 0;
7059
- right: 0;
7060
- bottom: 0;
7061
- left: 0;
7062
- z-index: -1;
7063
- }
7064
-
7065
- .side-nav .userView .circle, .side-nav .userView .name, .side-nav .userView .email {
7066
- display: block;
7067
- }
7068
-
7069
- .side-nav .userView .circle {
7070
- height: 64px;
7071
- width: 64px;
7072
- }
7073
-
7074
- .side-nav .userView .name,
7075
- .side-nav .userView .email {
7076
- font-size: 14px;
7077
- line-height: 24px;
7078
- }
7079
-
7080
- .side-nav .userView .name {
7081
- margin-top: 16px;
7082
- font-weight: 500;
7083
- }
7084
-
7085
- .side-nav .userView .email {
7086
- padding-bottom: 16px;
7087
- font-weight: 400;
7088
- }
7089
-
7090
- .drag-target {
7091
- height: 100%;
7092
- width: 10px;
7093
- position: fixed;
7094
- top: 0;
7095
- z-index: 998;
7096
- }
7097
-
7098
- .side-nav.fixed {
7099
- left: 0;
7100
- -webkit-transform: translateX(0);
7101
- transform: translateX(0);
7102
- position: fixed;
7103
- }
7104
-
7105
- .side-nav.fixed.right-aligned {
7106
- right: 0;
7107
- left: auto;
7108
- }
7109
-
7110
- @media only screen and (max-width: 992px) {
7111
- .side-nav.fixed {
7112
- -webkit-transform: translateX(-105%);
7113
- transform: translateX(-105%);
7114
- }
7115
- .side-nav.fixed.right-aligned {
7116
- -webkit-transform: translateX(105%);
7117
- transform: translateX(105%);
7118
- }
7119
- .side-nav a {
7120
- padding: 0 16px;
7121
- }
7122
- .side-nav .userView {
7123
- padding: 16px 16px 0;
7124
- }
7125
- }
7126
-
7127
- .side-nav .collapsible-body > ul:not(.collapsible) > li.active,
7128
- .side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active {
7129
- background-color: #ee6e73;
7130
- }
7131
-
7132
- .side-nav .collapsible-body > ul:not(.collapsible) > li.active a,
7133
- .side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active a {
7134
- color: #fff;
7135
- }
7136
-
7137
- #sidenav-overlay {
7138
- position: fixed;
7139
- top: 0;
7140
- left: 0;
7141
- right: 0;
7142
- height: 120vh;
7143
- background-color: rgba(0, 0, 0, 0.5);
7144
- z-index: 997;
7145
- will-change: opacity;
7146
- }
7147
-
7148
- /*
7149
- @license
7150
- Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
7151
- This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
7152
- The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7153
- The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7154
- Code distributed by Google as part of the polymer project is also
7155
- subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
7156
- */
7157
- /**************************/
7158
- /* STYLES FOR THE SPINNER */
7159
- /**************************/
7160
- /*
7161
- * Constants:
7162
- * STROKEWIDTH = 3px
7163
- * ARCSIZE = 270 degrees (amount of circle the arc takes up)
7164
- * ARCTIME = 1333ms (time it takes to expand and contract arc)
7165
- * ARCSTARTROT = 216 degrees (how much the start location of the arc
7166
- * should rotate each time, 216 gives us a
7167
- * 5 pointed star shape (it's 360/5 * 3).
7168
- * For a 7 pointed star, we might do
7169
- * 360/7 * 3 = 154.286)
7170
- * CONTAINERWIDTH = 28px
7171
- * SHRINK_TIME = 400ms
7172
- */
7173
- .preloader-wrapper {
7174
- display: inline-block;
7175
- position: relative;
7176
- width: 48px;
7177
- height: 48px;
7178
- }
7179
-
7180
- .preloader-wrapper.small {
7181
- width: 36px;
7182
- height: 36px;
7183
- }
7184
-
7185
- .preloader-wrapper.big {
7186
- width: 64px;
7187
- height: 64px;
7188
- }
7189
-
7190
- .preloader-wrapper.active {
7191
- /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
7192
- -webkit-animation: container-rotate 1568ms linear infinite;
7193
- animation: container-rotate 1568ms linear infinite;
7194
- }
7195
-
7196
- @-webkit-keyframes container-rotate {
7197
- to {
7198
- -webkit-transform: rotate(360deg);
7199
- }
7200
- }
7201
-
7202
- @keyframes container-rotate {
7203
- to {
7204
- -webkit-transform: rotate(360deg);
7205
- transform: rotate(360deg);
7206
- }
7207
- }
7208
-
7209
- .spinner-layer {
7210
- position: absolute;
7211
- width: 100%;
7212
- height: 100%;
7213
- opacity: 0;
7214
- border-color: #26a69a;
7215
- }
7216
-
7217
- .spinner-blue,
7218
- .spinner-blue-only {
7219
- border-color: #4285f4;
7220
- }
7221
-
7222
- .spinner-red,
7223
- .spinner-red-only {
7224
- border-color: #db4437;
7225
- }
7226
-
7227
- .spinner-yellow,
7228
- .spinner-yellow-only {
7229
- border-color: #f4b400;
7230
- }
7231
-
7232
- .spinner-green,
7233
- .spinner-green-only {
7234
- border-color: #0f9d58;
7235
- }
7236
-
7237
- /**
7238
- * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
7239
- *
7240
- * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
7241
- * guarantee that the animation will start _exactly_ after that value. So we avoid using
7242
- * animation-delay and instead set custom keyframes for each color (as redundant as it
7243
- * seems).
7244
- *
7245
- * We write out each animation in full (instead of separating animation-name,
7246
- * animation-duration, etc.) because under the polyfill, Safari does not recognize those
7247
- * specific properties properly, treats them as -webkit-animation, and overrides the
7248
- * other animation rules. See https://github.com/Polymer/platform/issues/53.
7249
- */
7250
- .active .spinner-layer.spinner-blue {
7251
- /* durations: 4 * ARCTIME */
7252
- -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7253
- animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7254
- }
7255
-
7256
- .active .spinner-layer.spinner-red {
7257
- /* durations: 4 * ARCTIME */
7258
- -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7259
- animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7260
- }
7261
-
7262
- .active .spinner-layer.spinner-yellow {
7263
- /* durations: 4 * ARCTIME */
7264
- -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7265
- animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7266
- }
7267
-
7268
- .active .spinner-layer.spinner-green {
7269
- /* durations: 4 * ARCTIME */
7270
- -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7271
- animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7272
- }
7273
-
7274
- .active .spinner-layer,
7275
- .active .spinner-layer.spinner-blue-only,
7276
- .active .spinner-layer.spinner-red-only,
7277
- .active .spinner-layer.spinner-yellow-only,
7278
- .active .spinner-layer.spinner-green-only {
7279
- /* durations: 4 * ARCTIME */
7280
- opacity: 1;
7281
- -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7282
- animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7283
- }
7284
-
7285
- @-webkit-keyframes fill-unfill-rotate {
7286
- 12.5% {
7287
- -webkit-transform: rotate(135deg);
7288
- }
7289
- /* 0.5 * ARCSIZE */
7290
- 25% {
7291
- -webkit-transform: rotate(270deg);
7292
- }
7293
- /* 1 * ARCSIZE */
7294
- 37.5% {
7295
- -webkit-transform: rotate(405deg);
7296
- }
7297
- /* 1.5 * ARCSIZE */
7298
- 50% {
7299
- -webkit-transform: rotate(540deg);
7300
- }
7301
- /* 2 * ARCSIZE */
7302
- 62.5% {
7303
- -webkit-transform: rotate(675deg);
7304
- }
7305
- /* 2.5 * ARCSIZE */
7306
- 75% {
7307
- -webkit-transform: rotate(810deg);
7308
- }
7309
- /* 3 * ARCSIZE */
7310
- 87.5% {
7311
- -webkit-transform: rotate(945deg);
7312
- }
7313
- /* 3.5 * ARCSIZE */
7314
- to {
7315
- -webkit-transform: rotate(1080deg);
7316
- }
7317
- /* 4 * ARCSIZE */
7318
- }
7319
-
7320
- @keyframes fill-unfill-rotate {
7321
- 12.5% {
7322
- -webkit-transform: rotate(135deg);
7323
- transform: rotate(135deg);
7324
- }
7325
- /* 0.5 * ARCSIZE */
7326
- 25% {
7327
- -webkit-transform: rotate(270deg);
7328
- transform: rotate(270deg);
7329
- }
7330
- /* 1 * ARCSIZE */
7331
- 37.5% {
7332
- -webkit-transform: rotate(405deg);
7333
- transform: rotate(405deg);
7334
- }
7335
- /* 1.5 * ARCSIZE */
7336
- 50% {
7337
- -webkit-transform: rotate(540deg);
7338
- transform: rotate(540deg);
7339
- }
7340
- /* 2 * ARCSIZE */
7341
- 62.5% {
7342
- -webkit-transform: rotate(675deg);
7343
- transform: rotate(675deg);
7344
- }
7345
- /* 2.5 * ARCSIZE */
7346
- 75% {
7347
- -webkit-transform: rotate(810deg);
7348
- transform: rotate(810deg);
7349
- }
7350
- /* 3 * ARCSIZE */
7351
- 87.5% {
7352
- -webkit-transform: rotate(945deg);
7353
- transform: rotate(945deg);
7354
- }
7355
- /* 3.5 * ARCSIZE */
7356
- to {
7357
- -webkit-transform: rotate(1080deg);
7358
- transform: rotate(1080deg);
7359
- }
7360
- /* 4 * ARCSIZE */
7361
- }
7362
-
7363
- @-webkit-keyframes blue-fade-in-out {
7364
- from {
7365
- opacity: 1;
7366
- }
7367
- 25% {
7368
- opacity: 1;
7369
- }
7370
- 26% {
7371
- opacity: 0;
7372
- }
7373
- 89% {
7374
- opacity: 0;
7375
- }
7376
- 90% {
7377
- opacity: 1;
7378
- }
7379
- 100% {
7380
- opacity: 1;
7381
- }
7382
- }
7383
-
7384
- @keyframes blue-fade-in-out {
7385
- from {
7386
- opacity: 1;
7387
- }
7388
- 25% {
7389
- opacity: 1;
7390
- }
7391
- 26% {
7392
- opacity: 0;
7393
- }
7394
- 89% {
7395
- opacity: 0;
7396
- }
7397
- 90% {
7398
- opacity: 1;
7399
- }
7400
- 100% {
7401
- opacity: 1;
7402
- }
7403
- }
7404
-
7405
- @-webkit-keyframes red-fade-in-out {
7406
- from {
7407
- opacity: 0;
7408
- }
7409
- 15% {
7410
- opacity: 0;
7411
- }
7412
- 25% {
7413
- opacity: 1;
7414
- }
7415
- 50% {
7416
- opacity: 1;
7417
- }
7418
- 51% {
7419
- opacity: 0;
7420
- }
7421
- }
7422
-
7423
- @keyframes red-fade-in-out {
7424
- from {
7425
- opacity: 0;
7426
- }
7427
- 15% {
7428
- opacity: 0;
7429
- }
7430
- 25% {
7431
- opacity: 1;
7432
- }
7433
- 50% {
7434
- opacity: 1;
7435
- }
7436
- 51% {
7437
- opacity: 0;
7438
- }
7439
- }
7440
-
7441
- @-webkit-keyframes yellow-fade-in-out {
7442
- from {
7443
- opacity: 0;
7444
- }
7445
- 40% {
7446
- opacity: 0;
7447
- }
7448
- 50% {
7449
- opacity: 1;
7450
- }
7451
- 75% {
7452
- opacity: 1;
7453
- }
7454
- 76% {
7455
- opacity: 0;
7456
- }
7457
- }
7458
-
7459
- @keyframes yellow-fade-in-out {
7460
- from {
7461
- opacity: 0;
7462
- }
7463
- 40% {
7464
- opacity: 0;
7465
- }
7466
- 50% {
7467
- opacity: 1;
7468
- }
7469
- 75% {
7470
- opacity: 1;
7471
- }
7472
- 76% {
7473
- opacity: 0;
7474
- }
7475
- }
7476
-
7477
- @-webkit-keyframes green-fade-in-out {
7478
- from {
7479
- opacity: 0;
7480
- }
7481
- 65% {
7482
- opacity: 0;
7483
- }
7484
- 75% {
7485
- opacity: 1;
7486
- }
7487
- 90% {
7488
- opacity: 1;
7489
- }
7490
- 100% {
7491
- opacity: 0;
7492
- }
7493
- }
7494
-
7495
- @keyframes green-fade-in-out {
7496
- from {
7497
- opacity: 0;
7498
- }
7499
- 65% {
7500
- opacity: 0;
7501
- }
7502
- 75% {
7503
- opacity: 1;
7504
- }
7505
- 90% {
7506
- opacity: 1;
7507
- }
7508
- 100% {
7509
- opacity: 0;
7510
- }
7511
- }
7512
-
7513
- /**
7514
- * Patch the gap that appear between the two adjacent div.circle-clipper while the
7515
- * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
7516
- */
7517
- .gap-patch {
7518
- position: absolute;
7519
- top: 0;
7520
- left: 45%;
7521
- width: 10%;
7522
- height: 100%;
7523
- overflow: hidden;
7524
- border-color: inherit;
7525
- }
7526
-
7527
- .gap-patch .circle {
7528
- width: 1000%;
7529
- left: -450%;
7530
- }
7531
-
7532
- .circle-clipper {
7533
- display: inline-block;
7534
- position: relative;
7535
- width: 50%;
7536
- height: 100%;
7537
- overflow: hidden;
7538
- border-color: inherit;
7539
- }
7540
-
7541
- .circle-clipper .circle {
7542
- width: 200%;
7543
- height: 100%;
7544
- border-width: 3px;
7545
- /* STROKEWIDTH */
7546
- border-style: solid;
7547
- border-color: inherit;
7548
- border-bottom-color: transparent !important;
7549
- border-radius: 50%;
7550
- -webkit-animation: none;
7551
- animation: none;
7552
- position: absolute;
7553
- top: 0;
7554
- right: 0;
7555
- bottom: 0;
7556
- }
7557
-
7558
- .circle-clipper.left .circle {
7559
- left: 0;
7560
- border-right-color: transparent !important;
7561
- -webkit-transform: rotate(129deg);
7562
- transform: rotate(129deg);
7563
- }
7564
-
7565
- .circle-clipper.right .circle {
7566
- left: -100%;
7567
- border-left-color: transparent !important;
7568
- -webkit-transform: rotate(-129deg);
7569
- transform: rotate(-129deg);
7570
- }
7571
-
7572
- .active .circle-clipper.left .circle {
7573
- /* duration: ARCTIME */
7574
- -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7575
- animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7576
- }
7577
-
7578
- .active .circle-clipper.right .circle {
7579
- /* duration: ARCTIME */
7580
- -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7581
- animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7582
- }
7583
-
7584
- @-webkit-keyframes left-spin {
7585
- from {
7586
- -webkit-transform: rotate(130deg);
7587
- }
7588
- 50% {
7589
- -webkit-transform: rotate(-5deg);
7590
- }
7591
- to {
7592
- -webkit-transform: rotate(130deg);
7593
- }
7594
- }
7595
-
7596
- @keyframes left-spin {
7597
- from {
7598
- -webkit-transform: rotate(130deg);
7599
- transform: rotate(130deg);
7600
- }
7601
- 50% {
7602
- -webkit-transform: rotate(-5deg);
7603
- transform: rotate(-5deg);
7604
- }
7605
- to {
7606
- -webkit-transform: rotate(130deg);
7607
- transform: rotate(130deg);
7608
- }
7609
- }
7610
-
7611
- @-webkit-keyframes right-spin {
7612
- from {
7613
- -webkit-transform: rotate(-130deg);
7614
- }
7615
- 50% {
7616
- -webkit-transform: rotate(5deg);
7617
- }
7618
- to {
7619
- -webkit-transform: rotate(-130deg);
7620
- }
7621
- }
7622
-
7623
- @keyframes right-spin {
7624
- from {
7625
- -webkit-transform: rotate(-130deg);
7626
- transform: rotate(-130deg);
7627
- }
7628
- 50% {
7629
- -webkit-transform: rotate(5deg);
7630
- transform: rotate(5deg);
7631
- }
7632
- to {
7633
- -webkit-transform: rotate(-130deg);
7634
- transform: rotate(-130deg);
7635
- }
7636
- }
7637
-
7638
- #spinnerContainer.cooldown {
7639
- /* duration: SHRINK_TIME */
7640
- -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
7641
- animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
7642
- }
7643
-
7644
- @-webkit-keyframes fade-out {
7645
- from {
7646
- opacity: 1;
7647
- }
7648
- to {
7649
- opacity: 0;
7650
- }
7651
- }
7652
-
7653
- @keyframes fade-out {
7654
- from {
7655
- opacity: 1;
7656
- }
7657
- to {
7658
- opacity: 0;
7659
- }
7660
- }
7661
-
7662
- .slider {
7663
- position: relative;
7664
- height: 400px;
7665
- width: 100%;
7666
- }
7667
-
7668
- .slider.fullscreen {
7669
- height: 100%;
7670
- width: 100%;
7671
- position: absolute;
7672
- top: 0;
7673
- left: 0;
7674
- right: 0;
7675
- bottom: 0;
7676
- }
7677
-
7678
- .slider.fullscreen ul.slides {
7679
- height: 100%;
7680
- }
7681
-
7682
- .slider.fullscreen ul.indicators {
7683
- z-index: 2;
7684
- bottom: 30px;
7685
- }
7686
-
7687
- .slider .slides {
7688
- background-color: #9e9e9e;
7689
- margin: 0;
7690
- height: 400px;
7691
- }
7692
-
7693
- .slider .slides li {
7694
- opacity: 0;
7695
- position: absolute;
7696
- top: 0;
7697
- left: 0;
7698
- z-index: 1;
7699
- width: 100%;
7700
- height: inherit;
7701
- overflow: hidden;
7702
- }
7703
-
7704
- .slider .slides li img {
7705
- height: 100%;
7706
- width: 100%;
7707
- background-size: cover;
7708
- background-position: center;
7709
- }
7710
-
7711
- .slider .slides li .caption {
7712
- color: #fff;
7713
- position: absolute;
7714
- top: 15%;
7715
- left: 15%;
7716
- width: 70%;
7717
- opacity: 0;
7718
- }
7719
-
7720
- .slider .slides li .caption p {
7721
- color: #e0e0e0;
7722
- }
7723
-
7724
- .slider .slides li.active {
7725
- z-index: 2;
7726
- }
7727
-
7728
- .slider .indicators {
7729
- position: absolute;
7730
- text-align: center;
7731
- left: 0;
7732
- right: 0;
7733
- bottom: 0;
7734
- margin: 0;
7735
- }
7736
-
7737
- .slider .indicators .indicator-item {
7738
- display: inline-block;
7739
- position: relative;
7740
- cursor: pointer;
7741
- height: 16px;
7742
- width: 16px;
7743
- margin: 0 12px;
7744
- background-color: #e0e0e0;
7745
- transition: background-color .3s;
7746
- border-radius: 50%;
7747
- }
7748
-
7749
- .slider .indicators .indicator-item.active {
7750
- background-color: #4CAF50;
7751
- }
7752
-
7753
- .carousel {
7754
- overflow: hidden;
7755
- position: relative;
7756
- width: 100%;
7757
- height: 400px;
7758
- -webkit-perspective: 500px;
7759
- perspective: 500px;
7760
- -webkit-transform-style: preserve-3d;
7761
- transform-style: preserve-3d;
7762
- -webkit-transform-origin: 0% 50%;
7763
- transform-origin: 0% 50%;
7764
- }
7765
-
7766
- .carousel.carousel-slider {
7767
- top: 0;
7768
- left: 0;
7769
- height: 0;
7770
- }
7771
-
7772
- .carousel.carousel-slider .carousel-fixed-item {
7773
- position: absolute;
7774
- left: 0;
7775
- right: 0;
7776
- bottom: 20px;
7777
- z-index: 1;
7778
- }
7779
-
7780
- .carousel.carousel-slider .carousel-fixed-item.with-indicators {
7781
- bottom: 68px;
7782
- }
7783
-
7784
- .carousel.carousel-slider .carousel-item {
7785
- width: 100%;
7786
- height: 100%;
7787
- min-height: 400px;
7788
- position: absolute;
7789
- top: 0;
7790
- left: 0;
7791
- }
7792
-
7793
- .carousel.carousel-slider .carousel-item h2 {
7794
- font-size: 24px;
7795
- font-weight: 500;
7796
- line-height: 32px;
7797
- }
7798
-
7799
- .carousel.carousel-slider .carousel-item p {
7800
- font-size: 15px;
7801
- }
7802
-
7803
- .carousel .carousel-item {
7804
- display: none;
7805
- width: 200px;
7806
- height: 200px;
7807
- position: absolute;
7808
- top: 0;
7809
- left: 0;
7810
- }
7811
-
7812
- .carousel .carousel-item img {
7813
- width: 100%;
7814
- }
7815
-
7816
- .carousel .indicators {
7817
- position: absolute;
7818
- text-align: center;
7819
- left: 0;
7820
- right: 0;
7821
- bottom: 0;
7822
- margin: 0;
7823
- }
7824
-
7825
- .carousel .indicators .indicator-item {
7826
- display: inline-block;
7827
- position: relative;
7828
- cursor: pointer;
7829
- height: 8px;
7830
- width: 8px;
7831
- margin: 24px 4px;
7832
- background-color: rgba(255, 255, 255, 0.5);
7833
- transition: background-color .3s;
7834
- border-radius: 50%;
7835
- }
7836
-
7837
- .carousel .indicators .indicator-item.active {
7838
- background-color: #fff;
7839
- }
7840
-
7841
- /* ==========================================================================
7842
- $BASE-PICKER
7843
- ========================================================================== */
7844
- /**
7845
- * Note: the root picker element should *NOT* be styled more than what's here.
7846
- */
7847
- .picker {
7848
- font-size: 16px;
7849
- text-align: left;
7850
- line-height: 1.2;
7851
- color: #000000;
7852
- position: absolute;
7853
- z-index: 10000;
7854
- -webkit-user-select: none;
7855
- -moz-user-select: none;
7856
- -ms-user-select: none;
7857
- user-select: none;
7858
- }
7859
-
7860
- /**
7861
- * The picker input element.
7862
- */
7863
- .picker__input {
7864
- cursor: default;
7865
- }
7866
-
7867
- /**
7868
- * When the picker is opened, the input element is "activated".
7869
- */
7870
- .picker__input.picker__input--active {
7871
- border-color: #0089ec;
7872
- }
7873
-
7874
- /**
7875
- * The holder is the only "scrollable" top-level container element.
7876
- */
7877
- .picker__holder {
7878
- width: 100%;
7879
- overflow-y: auto;
7880
- -webkit-overflow-scrolling: touch;
7881
- }
7882
-
7883
- /*!
7884
- * Default mobile-first, responsive styling for pickadate.js
7885
- * Demo: http://amsul.github.io/pickadate.js
7886
- */
7887
- /**
7888
- * Note: the root picker element should *NOT* be styled more than what's here.
7889
- */
7890
- /**
7891
- * Make the holder and frame fullscreen.
7892
- */
7893
- .picker__holder,
7894
- .picker__frame {
7895
- bottom: 0;
7896
- left: 0;
7897
- right: 0;
7898
- top: 100%;
7899
- }
7900
-
7901
- /**
7902
- * The holder should overlay the entire screen.
7903
- */
7904
- .picker__holder {
7905
- position: fixed;
7906
- transition: background 0.15s ease-out, top 0s 0.15s;
7907
- -webkit-backface-visibility: hidden;
7908
- }
7909
-
7910
- /**
7911
- * The frame that bounds the box contents of the picker.
7912
- */
7913
- .picker__frame {
7914
- position: absolute;
7915
- margin: 0 auto;
7916
- min-width: 256px;
7917
- width: 300px;
7918
- max-height: 350px;
7919
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
7920
- filter: alpha(opacity=0);
7921
- -moz-opacity: 0;
7922
- opacity: 0;
7923
- transition: all 0.15s ease-out;
7924
- }
7925
-
7926
- @media (min-height: 28.875em) {
7927
- .picker__frame {
7928
- overflow: visible;
7929
- top: auto;
7930
- bottom: -100%;
7931
- max-height: 80%;
7932
- }
7933
- }
7934
-
7935
- @media (min-height: 40.125em) {
7936
- .picker__frame {
7937
- margin-bottom: 7.5%;
7938
- }
7939
- }
7940
-
7941
- /**
7942
- * The wrapper sets the stage to vertically align the box contents.
7943
- */
7944
- .picker__wrap {
7945
- display: table;
7946
- width: 100%;
7947
- height: 100%;
7948
- }
7949
-
7950
- @media (min-height: 28.875em) {
7951
- .picker__wrap {
7952
- display: block;
7953
- }
7954
- }
7955
-
7956
- /**
7957
- * The box contains all the picker contents.
7958
- */
7959
- .picker__box {
7960
- background: #ffffff;
7961
- display: table-cell;
7962
- vertical-align: middle;
7963
- }
7964
-
7965
- @media (min-height: 28.875em) {
7966
- .picker__box {
7967
- display: block;
7968
- border: 1px solid #777777;
7969
- border-top-color: #898989;
7970
- border-bottom-width: 0;
7971
- border-radius: 5px 5px 0 0;
7972
- box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
7973
- }
7974
- }
7975
-
7976
- /**
7977
- * When the picker opens...
7978
- */
7979
- .picker--opened .picker__holder {
7980
- top: 0;
7981
- background: transparent;
7982
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
7983
- zoom: 1;
7984
- background: rgba(0, 0, 0, 0.32);
7985
- transition: background 0.15s ease-out;
7986
- }
7987
-
7988
- .picker--opened .picker__frame {
7989
- top: 0;
7990
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
7991
- filter: alpha(opacity=100);
7992
- -moz-opacity: 1;
7993
- opacity: 1;
7994
- }
7995
-
7996
- @media (min-height: 35.875em) {
7997
- .picker--opened .picker__frame {
7998
- top: 10%;
7999
- bottom: auto;
8000
- }
8001
- }
8002
-
8003
- /**
8004
- * For `large` screens, transform into an inline picker.
8005
- */
8006
- /* ==========================================================================
8007
- CUSTOM MATERIALIZE STYLES
8008
- ========================================================================== */
8009
- .picker__input.picker__input--active {
8010
- border-color: #E3F2FD;
8011
- }
8012
-
8013
- .picker__frame {
8014
- margin: 0 auto;
8015
- max-width: 325px;
8016
- }
8017
-
8018
- @media (min-height: 38.875em) {
8019
- .picker--opened .picker__frame {
8020
- top: 10%;
8021
- bottom: auto;
8022
- }
8023
- }
8024
-
8025
- /* ==========================================================================
8026
- $BASE-DATE-PICKER
8027
- ========================================================================== */
8028
- /**
8029
- * The picker box.
8030
- */
8031
- .picker__box {
8032
- padding: 0 1em;
8033
- }
8034
-
8035
- /**
8036
- * The header containing the month and year stuff.
8037
- */
8038
- .picker__header {
8039
- text-align: center;
8040
- position: relative;
8041
- margin-top: .75em;
8042
- }
8043
-
8044
- /**
8045
- * The month and year labels.
8046
- */
8047
- .picker__month,
8048
- .picker__year {
8049
- display: inline-block;
8050
- margin-left: .25em;
8051
- margin-right: .25em;
8052
- }
8053
-
8054
- /**
8055
- * The month and year selectors.
8056
- */
8057
- .picker__select--month,
8058
- .picker__select--year {
8059
- height: 2em;
8060
- padding: 0;
8061
- margin-left: .25em;
8062
- margin-right: .25em;
8063
- }
8064
-
8065
- .picker__select--month.browser-default {
8066
- display: inline;
8067
- background-color: #FFFFFF;
8068
- width: 40%;
8069
- }
8070
-
8071
- .picker__select--year.browser-default {
8072
- display: inline;
8073
- background-color: #FFFFFF;
8074
- width: 26%;
8075
- }
8076
-
8077
- .picker__select--month:focus,
8078
- .picker__select--year:focus {
8079
- border-color: rgba(0, 0, 0, 0.05);
8080
- }
8081
-
8082
- /**
8083
- * The month navigation buttons.
8084
- */
8085
- .picker__nav--prev,
8086
- .picker__nav--next {
8087
- position: absolute;
8088
- padding: .5em 1.25em;
8089
- width: 1em;
8090
- height: 1em;
8091
- box-sizing: content-box;
8092
- top: -0.25em;
8093
- }
8094
-
8095
- .picker__nav--prev {
8096
- left: -1em;
8097
- padding-right: 1.25em;
8098
- }
8099
-
8100
- .picker__nav--next {
8101
- right: -1em;
8102
- padding-left: 1.25em;
8103
- }
8104
-
8105
- .picker__nav--disabled,
8106
- .picker__nav--disabled:hover,
8107
- .picker__nav--disabled:before,
8108
- .picker__nav--disabled:before:hover {
8109
- cursor: default;
8110
- background: none;
8111
- border-right-color: #f5f5f5;
8112
- border-left-color: #f5f5f5;
8113
- }
8114
-
8115
- /**
8116
- * The calendar table of dates
8117
- */
8118
- .picker__table {
8119
- text-align: center;
8120
- border-collapse: collapse;
8121
- border-spacing: 0;
8122
- table-layout: fixed;
8123
- font-size: 1rem;
8124
- width: 100%;
8125
- margin-top: .75em;
8126
- margin-bottom: .5em;
8127
- }
8128
-
8129
- .picker__table th, .picker__table td {
8130
- text-align: center;
8131
- }
8132
-
8133
- .picker__table td {
8134
- margin: 0;
8135
- padding: 0;
8136
- }
8137
-
8138
- /**
8139
- * The weekday labels
8140
- */
8141
- .picker__weekday {
8142
- width: 14.285714286%;
8143
- font-size: .75em;
8144
- padding-bottom: .25em;
8145
- color: #999999;
8146
- font-weight: 500;
8147
- /* Increase the spacing a tad */
8148
- }
8149
-
8150
- @media (min-height: 33.875em) {
8151
- .picker__weekday {
8152
- padding-bottom: .5em;
8153
- }
8154
- }
8155
-
8156
- /**
8157
- * The days on the calendar
8158
- */
8159
- .picker__day--today {
8160
- position: relative;
8161
- color: #595959;
8162
- letter-spacing: -.3;
8163
- padding: .75rem 0;
8164
- font-weight: 400;
8165
- border: 1px solid transparent;
8166
- }
8167
-
8168
- .picker__day--disabled:before {
8169
- border-top-color: #aaaaaa;
8170
- }
8171
-
8172
- .picker__day--infocus:hover {
8173
- cursor: pointer;
8174
- color: #000;
8175
- font-weight: 500;
8176
- }
8177
-
8178
- .picker__day--outfocus {
8179
- display: none;
8180
- padding: .75rem 0;
8181
- color: #fff;
8182
- }
8183
-
8184
- .picker__day--outfocus:hover {
8185
- cursor: pointer;
8186
- color: #dddddd;
8187
- font-weight: 500;
8188
- }
8189
-
8190
- .picker__day--highlighted:hover,
8191
- .picker--focused .picker__day--highlighted {
8192
- cursor: pointer;
8193
- }
8194
-
8195
- .picker__day--selected,
8196
- .picker__day--selected:hover,
8197
- .picker--focused .picker__day--selected {
8198
- border-radius: 50%;
8199
- -webkit-transform: scale(0.75);
8200
- transform: scale(0.75);
8201
- background: #0089ec;
8202
- color: #ffffff;
8203
- }
8204
-
8205
- .picker__day--disabled,
8206
- .picker__day--disabled:hover,
8207
- .picker--focused .picker__day--disabled {
8208
- background: #f5f5f5;
8209
- border-color: #f5f5f5;
8210
- color: #dddddd;
8211
- cursor: default;
8212
- }
8213
-
8214
- .picker__day--highlighted.picker__day--disabled,
8215
- .picker__day--highlighted.picker__day--disabled:hover {
8216
- background: #bbbbbb;
8217
- }
8218
-
8219
- /**
8220
- * The footer containing the "today", "clear", and "close" buttons.
8221
- */
8222
- .picker__footer {
8223
- text-align: center;
8224
- display: -webkit-flex;
8225
- display: -ms-flexbox;
8226
- display: flex;
8227
- -webkit-align-items: center;
8228
- -ms-flex-align: center;
8229
- align-items: center;
8230
- -webkit-justify-content: space-between;
8231
- -ms-flex-pack: justify;
8232
- justify-content: space-between;
8233
- }
8234
-
8235
- .picker__button--today,
8236
- .picker__button--clear,
8237
- .picker__button--close {
8238
- border: 1px solid #ffffff;
8239
- background: #ffffff;
8240
- font-size: .8em;
8241
- padding: .66em 0;
8242
- font-weight: bold;
8243
- width: 33%;
8244
- display: inline-block;
8245
- vertical-align: bottom;
8246
- }
8247
-
8248
- .picker__button--today:hover,
8249
- .picker__button--clear:hover,
8250
- .picker__button--close:hover {
8251
- cursor: pointer;
8252
- color: #000000;
8253
- background: #b1dcfb;
8254
- border-bottom-color: #b1dcfb;
8255
- }
8256
-
8257
- .picker__button--today:focus,
8258
- .picker__button--clear:focus,
8259
- .picker__button--close:focus {
8260
- background: #b1dcfb;
8261
- border-color: rgba(0, 0, 0, 0.05);
8262
- outline: none;
8263
- }
8264
-
8265
- .picker__button--today:before,
8266
- .picker__button--clear:before,
8267
- .picker__button--close:before {
8268
- position: relative;
8269
- display: inline-block;
8270
- height: 0;
8271
- }
8272
-
8273
- .picker__button--today:before,
8274
- .picker__button--clear:before {
8275
- content: " ";
8276
- margin-right: .45em;
8277
- }
8278
-
8279
- .picker__button--today:before {
8280
- top: -0.05em;
8281
- width: 0;
8282
- border-top: 0.66em solid #0059bc;
8283
- border-left: .66em solid transparent;
8284
- }
8285
-
8286
- .picker__button--clear:before {
8287
- top: -0.25em;
8288
- width: .66em;
8289
- border-top: 3px solid #ee2200;
8290
- }
8291
-
8292
- .picker__button--close:before {
8293
- content: "\D7";
8294
- top: -0.1em;
8295
- vertical-align: top;
8296
- font-size: 1.1em;
8297
- margin-right: .35em;
8298
- color: #777777;
8299
- }
8300
-
8301
- .picker__button--today[disabled],
8302
- .picker__button--today[disabled]:hover {
8303
- background: #f5f5f5;
8304
- border-color: #f5f5f5;
8305
- color: #dddddd;
8306
- cursor: default;
8307
- }
8308
-
8309
- .picker__button--today[disabled]:before {
8310
- border-top-color: #aaaaaa;
8311
- }
8312
-
8313
- /* ==========================================================================
8314
- CUSTOM MATERIALIZE STYLES
8315
- ========================================================================== */
8316
- .picker__box {
8317
- border-radius: 2px;
8318
- overflow: hidden;
8319
- }
8320
-
8321
- .picker__date-display {
8322
- text-align: center;
8323
- background-color: #26a69a;
8324
- color: #fff;
8325
- padding-bottom: 15px;
8326
- font-weight: 300;
8327
- }
8328
-
8329
- .picker__nav--prev:hover,
8330
- .picker__nav--next:hover {
8331
- cursor: pointer;
8332
- color: #000000;
8333
- background: #a1ded8;
8334
- }
8335
-
8336
- .picker__weekday-display {
8337
- background-color: #1f897f;
8338
- padding: 10px;
8339
- font-weight: 200;
8340
- letter-spacing: .5;
8341
- font-size: 1rem;
8342
- margin-bottom: 15px;
8343
- }
8344
-
8345
- .picker__month-display {
8346
- text-transform: uppercase;
8347
- font-size: 2rem;
8348
- }
8349
-
8350
- .picker__day-display {
8351
- font-size: 4.5rem;
8352
- font-weight: 400;
8353
- }
8354
-
8355
- .picker__year-display {
8356
- font-size: 1.8rem;
8357
- color: rgba(255, 255, 255, 0.4);
8358
- }
8359
-
8360
- .picker__box {
8361
- padding: 0;
8362
- }
8363
-
8364
- .picker__calendar-container {
8365
- padding: 0 1rem;
8366
- }
8367
-
8368
- .picker__calendar-container thead {
8369
- border: none;
8370
- }
8371
-
8372
- .picker__table {
8373
- margin-top: 0;
8374
- margin-bottom: .5em;
8375
- }
8376
-
8377
- .picker__day--infocus {
8378
- color: #595959;
8379
- letter-spacing: -.3;
8380
- padding: .75rem 0;
8381
- font-weight: 400;
8382
- border: 1px solid transparent;
8383
- }
8384
-
8385
- .picker__day.picker__day--today {
8386
- color: #26a69a;
8387
- }
8388
-
8389
- .picker__day.picker__day--today.picker__day--selected {
8390
- color: #fff;
8391
- }
8392
-
8393
- .picker__weekday {
8394
- font-size: .9rem;
8395
- }
8396
-
8397
- .picker__day--selected,
8398
- .picker__day--selected:hover,
8399
- .picker--focused .picker__day--selected {
8400
- border-radius: 50%;
8401
- -webkit-transform: scale(0.9);
8402
- transform: scale(0.9);
8403
- background-color: #26a69a;
8404
- color: #ffffff;
8405
- }
8406
-
8407
- .picker__day--selected.picker__day--outfocus,
8408
- .picker__day--selected:hover.picker__day--outfocus,
8409
- .picker--focused .picker__day--selected.picker__day--outfocus {
8410
- background-color: #a1ded8;
8411
- }
8412
-
8413
- .picker__footer {
8414
- text-align: right;
8415
- padding: 5px 10px;
8416
- }
8417
-
8418
- .picker__close, .picker__today {
8419
- font-size: 1.1rem;
8420
- padding: 0 1rem;
8421
- color: #26a69a;
8422
- }
8423
-
8424
- .picker__nav--prev:before,
8425
- .picker__nav--next:before {
8426
- content: " ";
8427
- border-top: .5em solid transparent;
8428
- border-bottom: .5em solid transparent;
8429
- border-right: 0.75em solid #676767;
8430
- width: 0;
8431
- height: 0;
8432
- display: block;
8433
- margin: 0 auto;
8434
- }
8435
-
8436
- .picker__nav--next:before {
8437
- border-right: 0;
8438
- border-left: 0.75em solid #676767;
8439
- }
8440
-
8441
- button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {
8442
- background-color: #a1ded8;
8443
- }
8444
-
8445
- /* ==========================================================================
8446
- $BASE-TIME-PICKER
8447
- ========================================================================== */
8448
- /**
8449
- * The list of times.
8450
- */
8451
- .picker__list {
8452
- list-style: none;
8453
- padding: 0.75em 0 4.2em;
8454
- margin: 0;
8455
- }
8456
-
8457
- /**
8458
- * The times on the clock.
8459
- */
8460
- .picker__list-item {
8461
- border-bottom: 1px solid #dddddd;
8462
- border-top: 1px solid #dddddd;
8463
- margin-bottom: -1px;
8464
- position: relative;
8465
- background: #ffffff;
8466
- padding: .75em 1.25em;
8467
- }
8468
-
8469
- @media (min-height: 46.75em) {
8470
- .picker__list-item {
8471
- padding: .5em 1em;
8472
- }
8473
- }
8474
-
8475
- /* Hovered time */
8476
- .picker__list-item:hover {
8477
- cursor: pointer;
8478
- color: #000000;
8479
- background: #b1dcfb;
8480
- border-color: #0089ec;
8481
- z-index: 10;
8482
- }
8483
-
8484
- /* Highlighted and hovered/focused time */
8485
- .picker__list-item--highlighted {
8486
- border-color: #0089ec;
8487
- z-index: 10;
8488
- }
8489
-
8490
- .picker__list-item--highlighted:hover,
8491
- .picker--focused .picker__list-item--highlighted {
8492
- cursor: pointer;
8493
- color: #000000;
8494
- background: #b1dcfb;
8495
- }
8496
-
8497
- /* Selected and hovered/focused time */
8498
- .picker__list-item--selected,
8499
- .picker__list-item--selected:hover,
8500
- .picker--focused .picker__list-item--selected {
8501
- background: #0089ec;
8502
- color: #ffffff;
8503
- z-index: 10;
8504
- }
8505
-
8506
- /* Disabled time */
8507
- .picker__list-item--disabled,
8508
- .picker__list-item--disabled:hover,
8509
- .picker--focused .picker__list-item--disabled {
8510
- background: #f5f5f5;
8511
- border-color: #f5f5f5;
8512
- color: #dddddd;
8513
- cursor: default;
8514
- border-color: #dddddd;
8515
- z-index: auto;
8516
- }
8517
-
8518
- /**
8519
- * The clear button
8520
- */
8521
- .picker--time .picker__button--clear {
8522
- display: block;
8523
- width: 80%;
8524
- margin: 1em auto 0;
8525
- padding: 1em 1.25em;
8526
- background: none;
8527
- border: 0;
8528
- font-weight: 500;
8529
- font-size: .67em;
8530
- text-align: center;
8531
- text-transform: uppercase;
8532
- color: #666;
8533
- }
8534
-
8535
- .picker--time .picker__button--clear:hover,
8536
- .picker--time .picker__button--clear:focus {
8537
- color: #000000;
8538
- background: #b1dcfb;
8539
- background: #ee2200;
8540
- border-color: #ee2200;
8541
- cursor: pointer;
8542
- color: #ffffff;
8543
- outline: none;
8544
- }
8545
-
8546
- .picker--time .picker__button--clear:before {
8547
- top: -0.25em;
8548
- color: #666;
8549
- font-size: 1.25em;
8550
- font-weight: bold;
8551
- }
8552
-
8553
- .picker--time .picker__button--clear:hover:before,
8554
- .picker--time .picker__button--clear:focus:before {
8555
- color: #ffffff;
8556
- }
8557
-
8558
- /* ==========================================================================
8559
- $DEFAULT-TIME-PICKER
8560
- ========================================================================== */
8561
- /**
8562
- * The frame the bounds the time picker.
8563
- */
8564
- .picker--time .picker__frame {
8565
- min-width: 256px;
8566
- max-width: 320px;
8567
- }
8568
-
8569
- /**
8570
- * The picker box.
8571
- */
8572
- .picker--time .picker__box {
8573
- font-size: 1em;
8574
- background: #f2f2f2;
8575
- padding: 0;
8576
- }
8577
-
8578
- @media (min-height: 40.125em) {
8579
- .picker--time .picker__box {
8580
- margin-bottom: 5em;
8581
- }
8582
- }
1
+ /*!
2
+ * Materialize v0.98.0 (http://materializecss.com)
3
+ * Copyright 2014-2015 Materialize
4
+ * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
5
+ */
6
+ .materialize-red {
7
+ background-color: #e51c23 !important;
8
+ }
9
+
10
+ .materialize-red-text {
11
+ color: #e51c23 !important;
12
+ }
13
+
14
+ .materialize-red.lighten-5 {
15
+ background-color: #fdeaeb !important;
16
+ }
17
+
18
+ .materialize-red-text.text-lighten-5 {
19
+ color: #fdeaeb !important;
20
+ }
21
+
22
+ .materialize-red.lighten-4 {
23
+ background-color: #f8c1c3 !important;
24
+ }
25
+
26
+ .materialize-red-text.text-lighten-4 {
27
+ color: #f8c1c3 !important;
28
+ }
29
+
30
+ .materialize-red.lighten-3 {
31
+ background-color: #f3989b !important;
32
+ }
33
+
34
+ .materialize-red-text.text-lighten-3 {
35
+ color: #f3989b !important;
36
+ }
37
+
38
+ .materialize-red.lighten-2 {
39
+ background-color: #ee6e73 !important;
40
+ }
41
+
42
+ .materialize-red-text.text-lighten-2 {
43
+ color: #ee6e73 !important;
44
+ }
45
+
46
+ .materialize-red.lighten-1 {
47
+ background-color: #ea454b !important;
48
+ }
49
+
50
+ .materialize-red-text.text-lighten-1 {
51
+ color: #ea454b !important;
52
+ }
53
+
54
+ .materialize-red.darken-1 {
55
+ background-color: #d0181e !important;
56
+ }
57
+
58
+ .materialize-red-text.text-darken-1 {
59
+ color: #d0181e !important;
60
+ }
61
+
62
+ .materialize-red.darken-2 {
63
+ background-color: #b9151b !important;
64
+ }
65
+
66
+ .materialize-red-text.text-darken-2 {
67
+ color: #b9151b !important;
68
+ }
69
+
70
+ .materialize-red.darken-3 {
71
+ background-color: #a21318 !important;
72
+ }
73
+
74
+ .materialize-red-text.text-darken-3 {
75
+ color: #a21318 !important;
76
+ }
77
+
78
+ .materialize-red.darken-4 {
79
+ background-color: #8b1014 !important;
80
+ }
81
+
82
+ .materialize-red-text.text-darken-4 {
83
+ color: #8b1014 !important;
84
+ }
85
+
86
+ .red {
87
+ background-color: #F44336 !important;
88
+ }
89
+
90
+ .red-text {
91
+ color: #F44336 !important;
92
+ }
93
+
94
+ .red.lighten-5 {
95
+ background-color: #FFEBEE !important;
96
+ }
97
+
98
+ .red-text.text-lighten-5 {
99
+ color: #FFEBEE !important;
100
+ }
101
+
102
+ .red.lighten-4 {
103
+ background-color: #FFCDD2 !important;
104
+ }
105
+
106
+ .red-text.text-lighten-4 {
107
+ color: #FFCDD2 !important;
108
+ }
109
+
110
+ .red.lighten-3 {
111
+ background-color: #EF9A9A !important;
112
+ }
113
+
114
+ .red-text.text-lighten-3 {
115
+ color: #EF9A9A !important;
116
+ }
117
+
118
+ .red.lighten-2 {
119
+ background-color: #E57373 !important;
120
+ }
121
+
122
+ .red-text.text-lighten-2 {
123
+ color: #E57373 !important;
124
+ }
125
+
126
+ .red.lighten-1 {
127
+ background-color: #EF5350 !important;
128
+ }
129
+
130
+ .red-text.text-lighten-1 {
131
+ color: #EF5350 !important;
132
+ }
133
+
134
+ .red.darken-1 {
135
+ background-color: #E53935 !important;
136
+ }
137
+
138
+ .red-text.text-darken-1 {
139
+ color: #E53935 !important;
140
+ }
141
+
142
+ .red.darken-2 {
143
+ background-color: #D32F2F !important;
144
+ }
145
+
146
+ .red-text.text-darken-2 {
147
+ color: #D32F2F !important;
148
+ }
149
+
150
+ .red.darken-3 {
151
+ background-color: #C62828 !important;
152
+ }
153
+
154
+ .red-text.text-darken-3 {
155
+ color: #C62828 !important;
156
+ }
157
+
158
+ .red.darken-4 {
159
+ background-color: #B71C1C !important;
160
+ }
161
+
162
+ .red-text.text-darken-4 {
163
+ color: #B71C1C !important;
164
+ }
165
+
166
+ .red.accent-1 {
167
+ background-color: #FF8A80 !important;
168
+ }
169
+
170
+ .red-text.text-accent-1 {
171
+ color: #FF8A80 !important;
172
+ }
173
+
174
+ .red.accent-2 {
175
+ background-color: #FF5252 !important;
176
+ }
177
+
178
+ .red-text.text-accent-2 {
179
+ color: #FF5252 !important;
180
+ }
181
+
182
+ .red.accent-3 {
183
+ background-color: #FF1744 !important;
184
+ }
185
+
186
+ .red-text.text-accent-3 {
187
+ color: #FF1744 !important;
188
+ }
189
+
190
+ .red.accent-4 {
191
+ background-color: #D50000 !important;
192
+ }
193
+
194
+ .red-text.text-accent-4 {
195
+ color: #D50000 !important;
196
+ }
197
+
198
+ .pink {
199
+ background-color: #e91e63 !important;
200
+ }
201
+
202
+ .pink-text {
203
+ color: #e91e63 !important;
204
+ }
205
+
206
+ .pink.lighten-5 {
207
+ background-color: #fce4ec !important;
208
+ }
209
+
210
+ .pink-text.text-lighten-5 {
211
+ color: #fce4ec !important;
212
+ }
213
+
214
+ .pink.lighten-4 {
215
+ background-color: #f8bbd0 !important;
216
+ }
217
+
218
+ .pink-text.text-lighten-4 {
219
+ color: #f8bbd0 !important;
220
+ }
221
+
222
+ .pink.lighten-3 {
223
+ background-color: #f48fb1 !important;
224
+ }
225
+
226
+ .pink-text.text-lighten-3 {
227
+ color: #f48fb1 !important;
228
+ }
229
+
230
+ .pink.lighten-2 {
231
+ background-color: #f06292 !important;
232
+ }
233
+
234
+ .pink-text.text-lighten-2 {
235
+ color: #f06292 !important;
236
+ }
237
+
238
+ .pink.lighten-1 {
239
+ background-color: #ec407a !important;
240
+ }
241
+
242
+ .pink-text.text-lighten-1 {
243
+ color: #ec407a !important;
244
+ }
245
+
246
+ .pink.darken-1 {
247
+ background-color: #d81b60 !important;
248
+ }
249
+
250
+ .pink-text.text-darken-1 {
251
+ color: #d81b60 !important;
252
+ }
253
+
254
+ .pink.darken-2 {
255
+ background-color: #c2185b !important;
256
+ }
257
+
258
+ .pink-text.text-darken-2 {
259
+ color: #c2185b !important;
260
+ }
261
+
262
+ .pink.darken-3 {
263
+ background-color: #ad1457 !important;
264
+ }
265
+
266
+ .pink-text.text-darken-3 {
267
+ color: #ad1457 !important;
268
+ }
269
+
270
+ .pink.darken-4 {
271
+ background-color: #880e4f !important;
272
+ }
273
+
274
+ .pink-text.text-darken-4 {
275
+ color: #880e4f !important;
276
+ }
277
+
278
+ .pink.accent-1 {
279
+ background-color: #ff80ab !important;
280
+ }
281
+
282
+ .pink-text.text-accent-1 {
283
+ color: #ff80ab !important;
284
+ }
285
+
286
+ .pink.accent-2 {
287
+ background-color: #ff4081 !important;
288
+ }
289
+
290
+ .pink-text.text-accent-2 {
291
+ color: #ff4081 !important;
292
+ }
293
+
294
+ .pink.accent-3 {
295
+ background-color: #f50057 !important;
296
+ }
297
+
298
+ .pink-text.text-accent-3 {
299
+ color: #f50057 !important;
300
+ }
301
+
302
+ .pink.accent-4 {
303
+ background-color: #c51162 !important;
304
+ }
305
+
306
+ .pink-text.text-accent-4 {
307
+ color: #c51162 !important;
308
+ }
309
+
310
+ .purple {
311
+ background-color: #9c27b0 !important;
312
+ }
313
+
314
+ .purple-text {
315
+ color: #9c27b0 !important;
316
+ }
317
+
318
+ .purple.lighten-5 {
319
+ background-color: #f3e5f5 !important;
320
+ }
321
+
322
+ .purple-text.text-lighten-5 {
323
+ color: #f3e5f5 !important;
324
+ }
325
+
326
+ .purple.lighten-4 {
327
+ background-color: #e1bee7 !important;
328
+ }
329
+
330
+ .purple-text.text-lighten-4 {
331
+ color: #e1bee7 !important;
332
+ }
333
+
334
+ .purple.lighten-3 {
335
+ background-color: #ce93d8 !important;
336
+ }
337
+
338
+ .purple-text.text-lighten-3 {
339
+ color: #ce93d8 !important;
340
+ }
341
+
342
+ .purple.lighten-2 {
343
+ background-color: #ba68c8 !important;
344
+ }
345
+
346
+ .purple-text.text-lighten-2 {
347
+ color: #ba68c8 !important;
348
+ }
349
+
350
+ .purple.lighten-1 {
351
+ background-color: #ab47bc !important;
352
+ }
353
+
354
+ .purple-text.text-lighten-1 {
355
+ color: #ab47bc !important;
356
+ }
357
+
358
+ .purple.darken-1 {
359
+ background-color: #8e24aa !important;
360
+ }
361
+
362
+ .purple-text.text-darken-1 {
363
+ color: #8e24aa !important;
364
+ }
365
+
366
+ .purple.darken-2 {
367
+ background-color: #7b1fa2 !important;
368
+ }
369
+
370
+ .purple-text.text-darken-2 {
371
+ color: #7b1fa2 !important;
372
+ }
373
+
374
+ .purple.darken-3 {
375
+ background-color: #6a1b9a !important;
376
+ }
377
+
378
+ .purple-text.text-darken-3 {
379
+ color: #6a1b9a !important;
380
+ }
381
+
382
+ .purple.darken-4 {
383
+ background-color: #4a148c !important;
384
+ }
385
+
386
+ .purple-text.text-darken-4 {
387
+ color: #4a148c !important;
388
+ }
389
+
390
+ .purple.accent-1 {
391
+ background-color: #ea80fc !important;
392
+ }
393
+
394
+ .purple-text.text-accent-1 {
395
+ color: #ea80fc !important;
396
+ }
397
+
398
+ .purple.accent-2 {
399
+ background-color: #e040fb !important;
400
+ }
401
+
402
+ .purple-text.text-accent-2 {
403
+ color: #e040fb !important;
404
+ }
405
+
406
+ .purple.accent-3 {
407
+ background-color: #d500f9 !important;
408
+ }
409
+
410
+ .purple-text.text-accent-3 {
411
+ color: #d500f9 !important;
412
+ }
413
+
414
+ .purple.accent-4 {
415
+ background-color: #aa00ff !important;
416
+ }
417
+
418
+ .purple-text.text-accent-4 {
419
+ color: #aa00ff !important;
420
+ }
421
+
422
+ .deep-purple {
423
+ background-color: #673ab7 !important;
424
+ }
425
+
426
+ .deep-purple-text {
427
+ color: #673ab7 !important;
428
+ }
429
+
430
+ .deep-purple.lighten-5 {
431
+ background-color: #ede7f6 !important;
432
+ }
433
+
434
+ .deep-purple-text.text-lighten-5 {
435
+ color: #ede7f6 !important;
436
+ }
437
+
438
+ .deep-purple.lighten-4 {
439
+ background-color: #d1c4e9 !important;
440
+ }
441
+
442
+ .deep-purple-text.text-lighten-4 {
443
+ color: #d1c4e9 !important;
444
+ }
445
+
446
+ .deep-purple.lighten-3 {
447
+ background-color: #b39ddb !important;
448
+ }
449
+
450
+ .deep-purple-text.text-lighten-3 {
451
+ color: #b39ddb !important;
452
+ }
453
+
454
+ .deep-purple.lighten-2 {
455
+ background-color: #9575cd !important;
456
+ }
457
+
458
+ .deep-purple-text.text-lighten-2 {
459
+ color: #9575cd !important;
460
+ }
461
+
462
+ .deep-purple.lighten-1 {
463
+ background-color: #7e57c2 !important;
464
+ }
465
+
466
+ .deep-purple-text.text-lighten-1 {
467
+ color: #7e57c2 !important;
468
+ }
469
+
470
+ .deep-purple.darken-1 {
471
+ background-color: #5e35b1 !important;
472
+ }
473
+
474
+ .deep-purple-text.text-darken-1 {
475
+ color: #5e35b1 !important;
476
+ }
477
+
478
+ .deep-purple.darken-2 {
479
+ background-color: #512da8 !important;
480
+ }
481
+
482
+ .deep-purple-text.text-darken-2 {
483
+ color: #512da8 !important;
484
+ }
485
+
486
+ .deep-purple.darken-3 {
487
+ background-color: #4527a0 !important;
488
+ }
489
+
490
+ .deep-purple-text.text-darken-3 {
491
+ color: #4527a0 !important;
492
+ }
493
+
494
+ .deep-purple.darken-4 {
495
+ background-color: #311b92 !important;
496
+ }
497
+
498
+ .deep-purple-text.text-darken-4 {
499
+ color: #311b92 !important;
500
+ }
501
+
502
+ .deep-purple.accent-1 {
503
+ background-color: #b388ff !important;
504
+ }
505
+
506
+ .deep-purple-text.text-accent-1 {
507
+ color: #b388ff !important;
508
+ }
509
+
510
+ .deep-purple.accent-2 {
511
+ background-color: #7c4dff !important;
512
+ }
513
+
514
+ .deep-purple-text.text-accent-2 {
515
+ color: #7c4dff !important;
516
+ }
517
+
518
+ .deep-purple.accent-3 {
519
+ background-color: #651fff !important;
520
+ }
521
+
522
+ .deep-purple-text.text-accent-3 {
523
+ color: #651fff !important;
524
+ }
525
+
526
+ .deep-purple.accent-4 {
527
+ background-color: #6200ea !important;
528
+ }
529
+
530
+ .deep-purple-text.text-accent-4 {
531
+ color: #6200ea !important;
532
+ }
533
+
534
+ .indigo {
535
+ background-color: #3f51b5 !important;
536
+ }
537
+
538
+ .indigo-text {
539
+ color: #3f51b5 !important;
540
+ }
541
+
542
+ .indigo.lighten-5 {
543
+ background-color: #e8eaf6 !important;
544
+ }
545
+
546
+ .indigo-text.text-lighten-5 {
547
+ color: #e8eaf6 !important;
548
+ }
549
+
550
+ .indigo.lighten-4 {
551
+ background-color: #c5cae9 !important;
552
+ }
553
+
554
+ .indigo-text.text-lighten-4 {
555
+ color: #c5cae9 !important;
556
+ }
557
+
558
+ .indigo.lighten-3 {
559
+ background-color: #9fa8da !important;
560
+ }
561
+
562
+ .indigo-text.text-lighten-3 {
563
+ color: #9fa8da !important;
564
+ }
565
+
566
+ .indigo.lighten-2 {
567
+ background-color: #7986cb !important;
568
+ }
569
+
570
+ .indigo-text.text-lighten-2 {
571
+ color: #7986cb !important;
572
+ }
573
+
574
+ .indigo.lighten-1 {
575
+ background-color: #5c6bc0 !important;
576
+ }
577
+
578
+ .indigo-text.text-lighten-1 {
579
+ color: #5c6bc0 !important;
580
+ }
581
+
582
+ .indigo.darken-1 {
583
+ background-color: #3949ab !important;
584
+ }
585
+
586
+ .indigo-text.text-darken-1 {
587
+ color: #3949ab !important;
588
+ }
589
+
590
+ .indigo.darken-2 {
591
+ background-color: #303f9f !important;
592
+ }
593
+
594
+ .indigo-text.text-darken-2 {
595
+ color: #303f9f !important;
596
+ }
597
+
598
+ .indigo.darken-3 {
599
+ background-color: #283593 !important;
600
+ }
601
+
602
+ .indigo-text.text-darken-3 {
603
+ color: #283593 !important;
604
+ }
605
+
606
+ .indigo.darken-4 {
607
+ background-color: #1a237e !important;
608
+ }
609
+
610
+ .indigo-text.text-darken-4 {
611
+ color: #1a237e !important;
612
+ }
613
+
614
+ .indigo.accent-1 {
615
+ background-color: #8c9eff !important;
616
+ }
617
+
618
+ .indigo-text.text-accent-1 {
619
+ color: #8c9eff !important;
620
+ }
621
+
622
+ .indigo.accent-2 {
623
+ background-color: #536dfe !important;
624
+ }
625
+
626
+ .indigo-text.text-accent-2 {
627
+ color: #536dfe !important;
628
+ }
629
+
630
+ .indigo.accent-3 {
631
+ background-color: #3d5afe !important;
632
+ }
633
+
634
+ .indigo-text.text-accent-3 {
635
+ color: #3d5afe !important;
636
+ }
637
+
638
+ .indigo.accent-4 {
639
+ background-color: #304ffe !important;
640
+ }
641
+
642
+ .indigo-text.text-accent-4 {
643
+ color: #304ffe !important;
644
+ }
645
+
646
+ .blue {
647
+ background-color: #2196F3 !important;
648
+ }
649
+
650
+ .blue-text {
651
+ color: #2196F3 !important;
652
+ }
653
+
654
+ .blue.lighten-5 {
655
+ background-color: #E3F2FD !important;
656
+ }
657
+
658
+ .blue-text.text-lighten-5 {
659
+ color: #E3F2FD !important;
660
+ }
661
+
662
+ .blue.lighten-4 {
663
+ background-color: #BBDEFB !important;
664
+ }
665
+
666
+ .blue-text.text-lighten-4 {
667
+ color: #BBDEFB !important;
668
+ }
669
+
670
+ .blue.lighten-3 {
671
+ background-color: #90CAF9 !important;
672
+ }
673
+
674
+ .blue-text.text-lighten-3 {
675
+ color: #90CAF9 !important;
676
+ }
677
+
678
+ .blue.lighten-2 {
679
+ background-color: #64B5F6 !important;
680
+ }
681
+
682
+ .blue-text.text-lighten-2 {
683
+ color: #64B5F6 !important;
684
+ }
685
+
686
+ .blue.lighten-1 {
687
+ background-color: #42A5F5 !important;
688
+ }
689
+
690
+ .blue-text.text-lighten-1 {
691
+ color: #42A5F5 !important;
692
+ }
693
+
694
+ .blue.darken-1 {
695
+ background-color: #1E88E5 !important;
696
+ }
697
+
698
+ .blue-text.text-darken-1 {
699
+ color: #1E88E5 !important;
700
+ }
701
+
702
+ .blue.darken-2 {
703
+ background-color: #1976D2 !important;
704
+ }
705
+
706
+ .blue-text.text-darken-2 {
707
+ color: #1976D2 !important;
708
+ }
709
+
710
+ .blue.darken-3 {
711
+ background-color: #1565C0 !important;
712
+ }
713
+
714
+ .blue-text.text-darken-3 {
715
+ color: #1565C0 !important;
716
+ }
717
+
718
+ .blue.darken-4 {
719
+ background-color: #0D47A1 !important;
720
+ }
721
+
722
+ .blue-text.text-darken-4 {
723
+ color: #0D47A1 !important;
724
+ }
725
+
726
+ .blue.accent-1 {
727
+ background-color: #82B1FF !important;
728
+ }
729
+
730
+ .blue-text.text-accent-1 {
731
+ color: #82B1FF !important;
732
+ }
733
+
734
+ .blue.accent-2 {
735
+ background-color: #448AFF !important;
736
+ }
737
+
738
+ .blue-text.text-accent-2 {
739
+ color: #448AFF !important;
740
+ }
741
+
742
+ .blue.accent-3 {
743
+ background-color: #2979FF !important;
744
+ }
745
+
746
+ .blue-text.text-accent-3 {
747
+ color: #2979FF !important;
748
+ }
749
+
750
+ .blue.accent-4 {
751
+ background-color: #2962FF !important;
752
+ }
753
+
754
+ .blue-text.text-accent-4 {
755
+ color: #2962FF !important;
756
+ }
757
+
758
+ .light-blue {
759
+ background-color: #03a9f4 !important;
760
+ }
761
+
762
+ .light-blue-text {
763
+ color: #03a9f4 !important;
764
+ }
765
+
766
+ .light-blue.lighten-5 {
767
+ background-color: #e1f5fe !important;
768
+ }
769
+
770
+ .light-blue-text.text-lighten-5 {
771
+ color: #e1f5fe !important;
772
+ }
773
+
774
+ .light-blue.lighten-4 {
775
+ background-color: #b3e5fc !important;
776
+ }
777
+
778
+ .light-blue-text.text-lighten-4 {
779
+ color: #b3e5fc !important;
780
+ }
781
+
782
+ .light-blue.lighten-3 {
783
+ background-color: #81d4fa !important;
784
+ }
785
+
786
+ .light-blue-text.text-lighten-3 {
787
+ color: #81d4fa !important;
788
+ }
789
+
790
+ .light-blue.lighten-2 {
791
+ background-color: #4fc3f7 !important;
792
+ }
793
+
794
+ .light-blue-text.text-lighten-2 {
795
+ color: #4fc3f7 !important;
796
+ }
797
+
798
+ .light-blue.lighten-1 {
799
+ background-color: #29b6f6 !important;
800
+ }
801
+
802
+ .light-blue-text.text-lighten-1 {
803
+ color: #29b6f6 !important;
804
+ }
805
+
806
+ .light-blue.darken-1 {
807
+ background-color: #039be5 !important;
808
+ }
809
+
810
+ .light-blue-text.text-darken-1 {
811
+ color: #039be5 !important;
812
+ }
813
+
814
+ .light-blue.darken-2 {
815
+ background-color: #0288d1 !important;
816
+ }
817
+
818
+ .light-blue-text.text-darken-2 {
819
+ color: #0288d1 !important;
820
+ }
821
+
822
+ .light-blue.darken-3 {
823
+ background-color: #0277bd !important;
824
+ }
825
+
826
+ .light-blue-text.text-darken-3 {
827
+ color: #0277bd !important;
828
+ }
829
+
830
+ .light-blue.darken-4 {
831
+ background-color: #01579b !important;
832
+ }
833
+
834
+ .light-blue-text.text-darken-4 {
835
+ color: #01579b !important;
836
+ }
837
+
838
+ .light-blue.accent-1 {
839
+ background-color: #80d8ff !important;
840
+ }
841
+
842
+ .light-blue-text.text-accent-1 {
843
+ color: #80d8ff !important;
844
+ }
845
+
846
+ .light-blue.accent-2 {
847
+ background-color: #40c4ff !important;
848
+ }
849
+
850
+ .light-blue-text.text-accent-2 {
851
+ color: #40c4ff !important;
852
+ }
853
+
854
+ .light-blue.accent-3 {
855
+ background-color: #00b0ff !important;
856
+ }
857
+
858
+ .light-blue-text.text-accent-3 {
859
+ color: #00b0ff !important;
860
+ }
861
+
862
+ .light-blue.accent-4 {
863
+ background-color: #0091ea !important;
864
+ }
865
+
866
+ .light-blue-text.text-accent-4 {
867
+ color: #0091ea !important;
868
+ }
869
+
870
+ .cyan {
871
+ background-color: #00bcd4 !important;
872
+ }
873
+
874
+ .cyan-text {
875
+ color: #00bcd4 !important;
876
+ }
877
+
878
+ .cyan.lighten-5 {
879
+ background-color: #e0f7fa !important;
880
+ }
881
+
882
+ .cyan-text.text-lighten-5 {
883
+ color: #e0f7fa !important;
884
+ }
885
+
886
+ .cyan.lighten-4 {
887
+ background-color: #b2ebf2 !important;
888
+ }
889
+
890
+ .cyan-text.text-lighten-4 {
891
+ color: #b2ebf2 !important;
892
+ }
893
+
894
+ .cyan.lighten-3 {
895
+ background-color: #80deea !important;
896
+ }
897
+
898
+ .cyan-text.text-lighten-3 {
899
+ color: #80deea !important;
900
+ }
901
+
902
+ .cyan.lighten-2 {
903
+ background-color: #4dd0e1 !important;
904
+ }
905
+
906
+ .cyan-text.text-lighten-2 {
907
+ color: #4dd0e1 !important;
908
+ }
909
+
910
+ .cyan.lighten-1 {
911
+ background-color: #26c6da !important;
912
+ }
913
+
914
+ .cyan-text.text-lighten-1 {
915
+ color: #26c6da !important;
916
+ }
917
+
918
+ .cyan.darken-1 {
919
+ background-color: #00acc1 !important;
920
+ }
921
+
922
+ .cyan-text.text-darken-1 {
923
+ color: #00acc1 !important;
924
+ }
925
+
926
+ .cyan.darken-2 {
927
+ background-color: #0097a7 !important;
928
+ }
929
+
930
+ .cyan-text.text-darken-2 {
931
+ color: #0097a7 !important;
932
+ }
933
+
934
+ .cyan.darken-3 {
935
+ background-color: #00838f !important;
936
+ }
937
+
938
+ .cyan-text.text-darken-3 {
939
+ color: #00838f !important;
940
+ }
941
+
942
+ .cyan.darken-4 {
943
+ background-color: #006064 !important;
944
+ }
945
+
946
+ .cyan-text.text-darken-4 {
947
+ color: #006064 !important;
948
+ }
949
+
950
+ .cyan.accent-1 {
951
+ background-color: #84ffff !important;
952
+ }
953
+
954
+ .cyan-text.text-accent-1 {
955
+ color: #84ffff !important;
956
+ }
957
+
958
+ .cyan.accent-2 {
959
+ background-color: #18ffff !important;
960
+ }
961
+
962
+ .cyan-text.text-accent-2 {
963
+ color: #18ffff !important;
964
+ }
965
+
966
+ .cyan.accent-3 {
967
+ background-color: #00e5ff !important;
968
+ }
969
+
970
+ .cyan-text.text-accent-3 {
971
+ color: #00e5ff !important;
972
+ }
973
+
974
+ .cyan.accent-4 {
975
+ background-color: #00b8d4 !important;
976
+ }
977
+
978
+ .cyan-text.text-accent-4 {
979
+ color: #00b8d4 !important;
980
+ }
981
+
982
+ .teal {
983
+ background-color: #009688 !important;
984
+ }
985
+
986
+ .teal-text {
987
+ color: #009688 !important;
988
+ }
989
+
990
+ .teal.lighten-5 {
991
+ background-color: #e0f2f1 !important;
992
+ }
993
+
994
+ .teal-text.text-lighten-5 {
995
+ color: #e0f2f1 !important;
996
+ }
997
+
998
+ .teal.lighten-4 {
999
+ background-color: #b2dfdb !important;
1000
+ }
1001
+
1002
+ .teal-text.text-lighten-4 {
1003
+ color: #b2dfdb !important;
1004
+ }
1005
+
1006
+ .teal.lighten-3 {
1007
+ background-color: #80cbc4 !important;
1008
+ }
1009
+
1010
+ .teal-text.text-lighten-3 {
1011
+ color: #80cbc4 !important;
1012
+ }
1013
+
1014
+ .teal.lighten-2 {
1015
+ background-color: #4db6ac !important;
1016
+ }
1017
+
1018
+ .teal-text.text-lighten-2 {
1019
+ color: #4db6ac !important;
1020
+ }
1021
+
1022
+ .teal.lighten-1 {
1023
+ background-color: #26a69a !important;
1024
+ }
1025
+
1026
+ .teal-text.text-lighten-1 {
1027
+ color: #26a69a !important;
1028
+ }
1029
+
1030
+ .teal.darken-1 {
1031
+ background-color: #00897b !important;
1032
+ }
1033
+
1034
+ .teal-text.text-darken-1 {
1035
+ color: #00897b !important;
1036
+ }
1037
+
1038
+ .teal.darken-2 {
1039
+ background-color: #00796b !important;
1040
+ }
1041
+
1042
+ .teal-text.text-darken-2 {
1043
+ color: #00796b !important;
1044
+ }
1045
+
1046
+ .teal.darken-3 {
1047
+ background-color: #00695c !important;
1048
+ }
1049
+
1050
+ .teal-text.text-darken-3 {
1051
+ color: #00695c !important;
1052
+ }
1053
+
1054
+ .teal.darken-4 {
1055
+ background-color: #004d40 !important;
1056
+ }
1057
+
1058
+ .teal-text.text-darken-4 {
1059
+ color: #004d40 !important;
1060
+ }
1061
+
1062
+ .teal.accent-1 {
1063
+ background-color: #a7ffeb !important;
1064
+ }
1065
+
1066
+ .teal-text.text-accent-1 {
1067
+ color: #a7ffeb !important;
1068
+ }
1069
+
1070
+ .teal.accent-2 {
1071
+ background-color: #64ffda !important;
1072
+ }
1073
+
1074
+ .teal-text.text-accent-2 {
1075
+ color: #64ffda !important;
1076
+ }
1077
+
1078
+ .teal.accent-3 {
1079
+ background-color: #1de9b6 !important;
1080
+ }
1081
+
1082
+ .teal-text.text-accent-3 {
1083
+ color: #1de9b6 !important;
1084
+ }
1085
+
1086
+ .teal.accent-4 {
1087
+ background-color: #00bfa5 !important;
1088
+ }
1089
+
1090
+ .teal-text.text-accent-4 {
1091
+ color: #00bfa5 !important;
1092
+ }
1093
+
1094
+ .green {
1095
+ background-color: #4CAF50 !important;
1096
+ }
1097
+
1098
+ .green-text {
1099
+ color: #4CAF50 !important;
1100
+ }
1101
+
1102
+ .green.lighten-5 {
1103
+ background-color: #E8F5E9 !important;
1104
+ }
1105
+
1106
+ .green-text.text-lighten-5 {
1107
+ color: #E8F5E9 !important;
1108
+ }
1109
+
1110
+ .green.lighten-4 {
1111
+ background-color: #C8E6C9 !important;
1112
+ }
1113
+
1114
+ .green-text.text-lighten-4 {
1115
+ color: #C8E6C9 !important;
1116
+ }
1117
+
1118
+ .green.lighten-3 {
1119
+ background-color: #A5D6A7 !important;
1120
+ }
1121
+
1122
+ .green-text.text-lighten-3 {
1123
+ color: #A5D6A7 !important;
1124
+ }
1125
+
1126
+ .green.lighten-2 {
1127
+ background-color: #81C784 !important;
1128
+ }
1129
+
1130
+ .green-text.text-lighten-2 {
1131
+ color: #81C784 !important;
1132
+ }
1133
+
1134
+ .green.lighten-1 {
1135
+ background-color: #66BB6A !important;
1136
+ }
1137
+
1138
+ .green-text.text-lighten-1 {
1139
+ color: #66BB6A !important;
1140
+ }
1141
+
1142
+ .green.darken-1 {
1143
+ background-color: #43A047 !important;
1144
+ }
1145
+
1146
+ .green-text.text-darken-1 {
1147
+ color: #43A047 !important;
1148
+ }
1149
+
1150
+ .green.darken-2 {
1151
+ background-color: #388E3C !important;
1152
+ }
1153
+
1154
+ .green-text.text-darken-2 {
1155
+ color: #388E3C !important;
1156
+ }
1157
+
1158
+ .green.darken-3 {
1159
+ background-color: #2E7D32 !important;
1160
+ }
1161
+
1162
+ .green-text.text-darken-3 {
1163
+ color: #2E7D32 !important;
1164
+ }
1165
+
1166
+ .green.darken-4 {
1167
+ background-color: #1B5E20 !important;
1168
+ }
1169
+
1170
+ .green-text.text-darken-4 {
1171
+ color: #1B5E20 !important;
1172
+ }
1173
+
1174
+ .green.accent-1 {
1175
+ background-color: #B9F6CA !important;
1176
+ }
1177
+
1178
+ .green-text.text-accent-1 {
1179
+ color: #B9F6CA !important;
1180
+ }
1181
+
1182
+ .green.accent-2 {
1183
+ background-color: #69F0AE !important;
1184
+ }
1185
+
1186
+ .green-text.text-accent-2 {
1187
+ color: #69F0AE !important;
1188
+ }
1189
+
1190
+ .green.accent-3 {
1191
+ background-color: #00E676 !important;
1192
+ }
1193
+
1194
+ .green-text.text-accent-3 {
1195
+ color: #00E676 !important;
1196
+ }
1197
+
1198
+ .green.accent-4 {
1199
+ background-color: #00C853 !important;
1200
+ }
1201
+
1202
+ .green-text.text-accent-4 {
1203
+ color: #00C853 !important;
1204
+ }
1205
+
1206
+ .light-green {
1207
+ background-color: #8bc34a !important;
1208
+ }
1209
+
1210
+ .light-green-text {
1211
+ color: #8bc34a !important;
1212
+ }
1213
+
1214
+ .light-green.lighten-5 {
1215
+ background-color: #f1f8e9 !important;
1216
+ }
1217
+
1218
+ .light-green-text.text-lighten-5 {
1219
+ color: #f1f8e9 !important;
1220
+ }
1221
+
1222
+ .light-green.lighten-4 {
1223
+ background-color: #dcedc8 !important;
1224
+ }
1225
+
1226
+ .light-green-text.text-lighten-4 {
1227
+ color: #dcedc8 !important;
1228
+ }
1229
+
1230
+ .light-green.lighten-3 {
1231
+ background-color: #c5e1a5 !important;
1232
+ }
1233
+
1234
+ .light-green-text.text-lighten-3 {
1235
+ color: #c5e1a5 !important;
1236
+ }
1237
+
1238
+ .light-green.lighten-2 {
1239
+ background-color: #aed581 !important;
1240
+ }
1241
+
1242
+ .light-green-text.text-lighten-2 {
1243
+ color: #aed581 !important;
1244
+ }
1245
+
1246
+ .light-green.lighten-1 {
1247
+ background-color: #9ccc65 !important;
1248
+ }
1249
+
1250
+ .light-green-text.text-lighten-1 {
1251
+ color: #9ccc65 !important;
1252
+ }
1253
+
1254
+ .light-green.darken-1 {
1255
+ background-color: #7cb342 !important;
1256
+ }
1257
+
1258
+ .light-green-text.text-darken-1 {
1259
+ color: #7cb342 !important;
1260
+ }
1261
+
1262
+ .light-green.darken-2 {
1263
+ background-color: #689f38 !important;
1264
+ }
1265
+
1266
+ .light-green-text.text-darken-2 {
1267
+ color: #689f38 !important;
1268
+ }
1269
+
1270
+ .light-green.darken-3 {
1271
+ background-color: #558b2f !important;
1272
+ }
1273
+
1274
+ .light-green-text.text-darken-3 {
1275
+ color: #558b2f !important;
1276
+ }
1277
+
1278
+ .light-green.darken-4 {
1279
+ background-color: #33691e !important;
1280
+ }
1281
+
1282
+ .light-green-text.text-darken-4 {
1283
+ color: #33691e !important;
1284
+ }
1285
+
1286
+ .light-green.accent-1 {
1287
+ background-color: #ccff90 !important;
1288
+ }
1289
+
1290
+ .light-green-text.text-accent-1 {
1291
+ color: #ccff90 !important;
1292
+ }
1293
+
1294
+ .light-green.accent-2 {
1295
+ background-color: #b2ff59 !important;
1296
+ }
1297
+
1298
+ .light-green-text.text-accent-2 {
1299
+ color: #b2ff59 !important;
1300
+ }
1301
+
1302
+ .light-green.accent-3 {
1303
+ background-color: #76ff03 !important;
1304
+ }
1305
+
1306
+ .light-green-text.text-accent-3 {
1307
+ color: #76ff03 !important;
1308
+ }
1309
+
1310
+ .light-green.accent-4 {
1311
+ background-color: #64dd17 !important;
1312
+ }
1313
+
1314
+ .light-green-text.text-accent-4 {
1315
+ color: #64dd17 !important;
1316
+ }
1317
+
1318
+ .lime {
1319
+ background-color: #cddc39 !important;
1320
+ }
1321
+
1322
+ .lime-text {
1323
+ color: #cddc39 !important;
1324
+ }
1325
+
1326
+ .lime.lighten-5 {
1327
+ background-color: #f9fbe7 !important;
1328
+ }
1329
+
1330
+ .lime-text.text-lighten-5 {
1331
+ color: #f9fbe7 !important;
1332
+ }
1333
+
1334
+ .lime.lighten-4 {
1335
+ background-color: #f0f4c3 !important;
1336
+ }
1337
+
1338
+ .lime-text.text-lighten-4 {
1339
+ color: #f0f4c3 !important;
1340
+ }
1341
+
1342
+ .lime.lighten-3 {
1343
+ background-color: #e6ee9c !important;
1344
+ }
1345
+
1346
+ .lime-text.text-lighten-3 {
1347
+ color: #e6ee9c !important;
1348
+ }
1349
+
1350
+ .lime.lighten-2 {
1351
+ background-color: #dce775 !important;
1352
+ }
1353
+
1354
+ .lime-text.text-lighten-2 {
1355
+ color: #dce775 !important;
1356
+ }
1357
+
1358
+ .lime.lighten-1 {
1359
+ background-color: #d4e157 !important;
1360
+ }
1361
+
1362
+ .lime-text.text-lighten-1 {
1363
+ color: #d4e157 !important;
1364
+ }
1365
+
1366
+ .lime.darken-1 {
1367
+ background-color: #c0ca33 !important;
1368
+ }
1369
+
1370
+ .lime-text.text-darken-1 {
1371
+ color: #c0ca33 !important;
1372
+ }
1373
+
1374
+ .lime.darken-2 {
1375
+ background-color: #afb42b !important;
1376
+ }
1377
+
1378
+ .lime-text.text-darken-2 {
1379
+ color: #afb42b !important;
1380
+ }
1381
+
1382
+ .lime.darken-3 {
1383
+ background-color: #9e9d24 !important;
1384
+ }
1385
+
1386
+ .lime-text.text-darken-3 {
1387
+ color: #9e9d24 !important;
1388
+ }
1389
+
1390
+ .lime.darken-4 {
1391
+ background-color: #827717 !important;
1392
+ }
1393
+
1394
+ .lime-text.text-darken-4 {
1395
+ color: #827717 !important;
1396
+ }
1397
+
1398
+ .lime.accent-1 {
1399
+ background-color: #f4ff81 !important;
1400
+ }
1401
+
1402
+ .lime-text.text-accent-1 {
1403
+ color: #f4ff81 !important;
1404
+ }
1405
+
1406
+ .lime.accent-2 {
1407
+ background-color: #eeff41 !important;
1408
+ }
1409
+
1410
+ .lime-text.text-accent-2 {
1411
+ color: #eeff41 !important;
1412
+ }
1413
+
1414
+ .lime.accent-3 {
1415
+ background-color: #c6ff00 !important;
1416
+ }
1417
+
1418
+ .lime-text.text-accent-3 {
1419
+ color: #c6ff00 !important;
1420
+ }
1421
+
1422
+ .lime.accent-4 {
1423
+ background-color: #aeea00 !important;
1424
+ }
1425
+
1426
+ .lime-text.text-accent-4 {
1427
+ color: #aeea00 !important;
1428
+ }
1429
+
1430
+ .yellow {
1431
+ background-color: #ffeb3b !important;
1432
+ }
1433
+
1434
+ .yellow-text {
1435
+ color: #ffeb3b !important;
1436
+ }
1437
+
1438
+ .yellow.lighten-5 {
1439
+ background-color: #fffde7 !important;
1440
+ }
1441
+
1442
+ .yellow-text.text-lighten-5 {
1443
+ color: #fffde7 !important;
1444
+ }
1445
+
1446
+ .yellow.lighten-4 {
1447
+ background-color: #fff9c4 !important;
1448
+ }
1449
+
1450
+ .yellow-text.text-lighten-4 {
1451
+ color: #fff9c4 !important;
1452
+ }
1453
+
1454
+ .yellow.lighten-3 {
1455
+ background-color: #fff59d !important;
1456
+ }
1457
+
1458
+ .yellow-text.text-lighten-3 {
1459
+ color: #fff59d !important;
1460
+ }
1461
+
1462
+ .yellow.lighten-2 {
1463
+ background-color: #fff176 !important;
1464
+ }
1465
+
1466
+ .yellow-text.text-lighten-2 {
1467
+ color: #fff176 !important;
1468
+ }
1469
+
1470
+ .yellow.lighten-1 {
1471
+ background-color: #ffee58 !important;
1472
+ }
1473
+
1474
+ .yellow-text.text-lighten-1 {
1475
+ color: #ffee58 !important;
1476
+ }
1477
+
1478
+ .yellow.darken-1 {
1479
+ background-color: #fdd835 !important;
1480
+ }
1481
+
1482
+ .yellow-text.text-darken-1 {
1483
+ color: #fdd835 !important;
1484
+ }
1485
+
1486
+ .yellow.darken-2 {
1487
+ background-color: #fbc02d !important;
1488
+ }
1489
+
1490
+ .yellow-text.text-darken-2 {
1491
+ color: #fbc02d !important;
1492
+ }
1493
+
1494
+ .yellow.darken-3 {
1495
+ background-color: #f9a825 !important;
1496
+ }
1497
+
1498
+ .yellow-text.text-darken-3 {
1499
+ color: #f9a825 !important;
1500
+ }
1501
+
1502
+ .yellow.darken-4 {
1503
+ background-color: #f57f17 !important;
1504
+ }
1505
+
1506
+ .yellow-text.text-darken-4 {
1507
+ color: #f57f17 !important;
1508
+ }
1509
+
1510
+ .yellow.accent-1 {
1511
+ background-color: #ffff8d !important;
1512
+ }
1513
+
1514
+ .yellow-text.text-accent-1 {
1515
+ color: #ffff8d !important;
1516
+ }
1517
+
1518
+ .yellow.accent-2 {
1519
+ background-color: #ffff00 !important;
1520
+ }
1521
+
1522
+ .yellow-text.text-accent-2 {
1523
+ color: #ffff00 !important;
1524
+ }
1525
+
1526
+ .yellow.accent-3 {
1527
+ background-color: #ffea00 !important;
1528
+ }
1529
+
1530
+ .yellow-text.text-accent-3 {
1531
+ color: #ffea00 !important;
1532
+ }
1533
+
1534
+ .yellow.accent-4 {
1535
+ background-color: #ffd600 !important;
1536
+ }
1537
+
1538
+ .yellow-text.text-accent-4 {
1539
+ color: #ffd600 !important;
1540
+ }
1541
+
1542
+ .amber {
1543
+ background-color: #ffc107 !important;
1544
+ }
1545
+
1546
+ .amber-text {
1547
+ color: #ffc107 !important;
1548
+ }
1549
+
1550
+ .amber.lighten-5 {
1551
+ background-color: #fff8e1 !important;
1552
+ }
1553
+
1554
+ .amber-text.text-lighten-5 {
1555
+ color: #fff8e1 !important;
1556
+ }
1557
+
1558
+ .amber.lighten-4 {
1559
+ background-color: #ffecb3 !important;
1560
+ }
1561
+
1562
+ .amber-text.text-lighten-4 {
1563
+ color: #ffecb3 !important;
1564
+ }
1565
+
1566
+ .amber.lighten-3 {
1567
+ background-color: #ffe082 !important;
1568
+ }
1569
+
1570
+ .amber-text.text-lighten-3 {
1571
+ color: #ffe082 !important;
1572
+ }
1573
+
1574
+ .amber.lighten-2 {
1575
+ background-color: #ffd54f !important;
1576
+ }
1577
+
1578
+ .amber-text.text-lighten-2 {
1579
+ color: #ffd54f !important;
1580
+ }
1581
+
1582
+ .amber.lighten-1 {
1583
+ background-color: #ffca28 !important;
1584
+ }
1585
+
1586
+ .amber-text.text-lighten-1 {
1587
+ color: #ffca28 !important;
1588
+ }
1589
+
1590
+ .amber.darken-1 {
1591
+ background-color: #ffb300 !important;
1592
+ }
1593
+
1594
+ .amber-text.text-darken-1 {
1595
+ color: #ffb300 !important;
1596
+ }
1597
+
1598
+ .amber.darken-2 {
1599
+ background-color: #ffa000 !important;
1600
+ }
1601
+
1602
+ .amber-text.text-darken-2 {
1603
+ color: #ffa000 !important;
1604
+ }
1605
+
1606
+ .amber.darken-3 {
1607
+ background-color: #ff8f00 !important;
1608
+ }
1609
+
1610
+ .amber-text.text-darken-3 {
1611
+ color: #ff8f00 !important;
1612
+ }
1613
+
1614
+ .amber.darken-4 {
1615
+ background-color: #ff6f00 !important;
1616
+ }
1617
+
1618
+ .amber-text.text-darken-4 {
1619
+ color: #ff6f00 !important;
1620
+ }
1621
+
1622
+ .amber.accent-1 {
1623
+ background-color: #ffe57f !important;
1624
+ }
1625
+
1626
+ .amber-text.text-accent-1 {
1627
+ color: #ffe57f !important;
1628
+ }
1629
+
1630
+ .amber.accent-2 {
1631
+ background-color: #ffd740 !important;
1632
+ }
1633
+
1634
+ .amber-text.text-accent-2 {
1635
+ color: #ffd740 !important;
1636
+ }
1637
+
1638
+ .amber.accent-3 {
1639
+ background-color: #ffc400 !important;
1640
+ }
1641
+
1642
+ .amber-text.text-accent-3 {
1643
+ color: #ffc400 !important;
1644
+ }
1645
+
1646
+ .amber.accent-4 {
1647
+ background-color: #ffab00 !important;
1648
+ }
1649
+
1650
+ .amber-text.text-accent-4 {
1651
+ color: #ffab00 !important;
1652
+ }
1653
+
1654
+ .orange {
1655
+ background-color: #ff9800 !important;
1656
+ }
1657
+
1658
+ .orange-text {
1659
+ color: #ff9800 !important;
1660
+ }
1661
+
1662
+ .orange.lighten-5 {
1663
+ background-color: #fff3e0 !important;
1664
+ }
1665
+
1666
+ .orange-text.text-lighten-5 {
1667
+ color: #fff3e0 !important;
1668
+ }
1669
+
1670
+ .orange.lighten-4 {
1671
+ background-color: #ffe0b2 !important;
1672
+ }
1673
+
1674
+ .orange-text.text-lighten-4 {
1675
+ color: #ffe0b2 !important;
1676
+ }
1677
+
1678
+ .orange.lighten-3 {
1679
+ background-color: #ffcc80 !important;
1680
+ }
1681
+
1682
+ .orange-text.text-lighten-3 {
1683
+ color: #ffcc80 !important;
1684
+ }
1685
+
1686
+ .orange.lighten-2 {
1687
+ background-color: #ffb74d !important;
1688
+ }
1689
+
1690
+ .orange-text.text-lighten-2 {
1691
+ color: #ffb74d !important;
1692
+ }
1693
+
1694
+ .orange.lighten-1 {
1695
+ background-color: #ffa726 !important;
1696
+ }
1697
+
1698
+ .orange-text.text-lighten-1 {
1699
+ color: #ffa726 !important;
1700
+ }
1701
+
1702
+ .orange.darken-1 {
1703
+ background-color: #fb8c00 !important;
1704
+ }
1705
+
1706
+ .orange-text.text-darken-1 {
1707
+ color: #fb8c00 !important;
1708
+ }
1709
+
1710
+ .orange.darken-2 {
1711
+ background-color: #f57c00 !important;
1712
+ }
1713
+
1714
+ .orange-text.text-darken-2 {
1715
+ color: #f57c00 !important;
1716
+ }
1717
+
1718
+ .orange.darken-3 {
1719
+ background-color: #ef6c00 !important;
1720
+ }
1721
+
1722
+ .orange-text.text-darken-3 {
1723
+ color: #ef6c00 !important;
1724
+ }
1725
+
1726
+ .orange.darken-4 {
1727
+ background-color: #e65100 !important;
1728
+ }
1729
+
1730
+ .orange-text.text-darken-4 {
1731
+ color: #e65100 !important;
1732
+ }
1733
+
1734
+ .orange.accent-1 {
1735
+ background-color: #ffd180 !important;
1736
+ }
1737
+
1738
+ .orange-text.text-accent-1 {
1739
+ color: #ffd180 !important;
1740
+ }
1741
+
1742
+ .orange.accent-2 {
1743
+ background-color: #ffab40 !important;
1744
+ }
1745
+
1746
+ .orange-text.text-accent-2 {
1747
+ color: #ffab40 !important;
1748
+ }
1749
+
1750
+ .orange.accent-3 {
1751
+ background-color: #ff9100 !important;
1752
+ }
1753
+
1754
+ .orange-text.text-accent-3 {
1755
+ color: #ff9100 !important;
1756
+ }
1757
+
1758
+ .orange.accent-4 {
1759
+ background-color: #ff6d00 !important;
1760
+ }
1761
+
1762
+ .orange-text.text-accent-4 {
1763
+ color: #ff6d00 !important;
1764
+ }
1765
+
1766
+ .deep-orange {
1767
+ background-color: #ff5722 !important;
1768
+ }
1769
+
1770
+ .deep-orange-text {
1771
+ color: #ff5722 !important;
1772
+ }
1773
+
1774
+ .deep-orange.lighten-5 {
1775
+ background-color: #fbe9e7 !important;
1776
+ }
1777
+
1778
+ .deep-orange-text.text-lighten-5 {
1779
+ color: #fbe9e7 !important;
1780
+ }
1781
+
1782
+ .deep-orange.lighten-4 {
1783
+ background-color: #ffccbc !important;
1784
+ }
1785
+
1786
+ .deep-orange-text.text-lighten-4 {
1787
+ color: #ffccbc !important;
1788
+ }
1789
+
1790
+ .deep-orange.lighten-3 {
1791
+ background-color: #ffab91 !important;
1792
+ }
1793
+
1794
+ .deep-orange-text.text-lighten-3 {
1795
+ color: #ffab91 !important;
1796
+ }
1797
+
1798
+ .deep-orange.lighten-2 {
1799
+ background-color: #ff8a65 !important;
1800
+ }
1801
+
1802
+ .deep-orange-text.text-lighten-2 {
1803
+ color: #ff8a65 !important;
1804
+ }
1805
+
1806
+ .deep-orange.lighten-1 {
1807
+ background-color: #ff7043 !important;
1808
+ }
1809
+
1810
+ .deep-orange-text.text-lighten-1 {
1811
+ color: #ff7043 !important;
1812
+ }
1813
+
1814
+ .deep-orange.darken-1 {
1815
+ background-color: #f4511e !important;
1816
+ }
1817
+
1818
+ .deep-orange-text.text-darken-1 {
1819
+ color: #f4511e !important;
1820
+ }
1821
+
1822
+ .deep-orange.darken-2 {
1823
+ background-color: #e64a19 !important;
1824
+ }
1825
+
1826
+ .deep-orange-text.text-darken-2 {
1827
+ color: #e64a19 !important;
1828
+ }
1829
+
1830
+ .deep-orange.darken-3 {
1831
+ background-color: #d84315 !important;
1832
+ }
1833
+
1834
+ .deep-orange-text.text-darken-3 {
1835
+ color: #d84315 !important;
1836
+ }
1837
+
1838
+ .deep-orange.darken-4 {
1839
+ background-color: #bf360c !important;
1840
+ }
1841
+
1842
+ .deep-orange-text.text-darken-4 {
1843
+ color: #bf360c !important;
1844
+ }
1845
+
1846
+ .deep-orange.accent-1 {
1847
+ background-color: #ff9e80 !important;
1848
+ }
1849
+
1850
+ .deep-orange-text.text-accent-1 {
1851
+ color: #ff9e80 !important;
1852
+ }
1853
+
1854
+ .deep-orange.accent-2 {
1855
+ background-color: #ff6e40 !important;
1856
+ }
1857
+
1858
+ .deep-orange-text.text-accent-2 {
1859
+ color: #ff6e40 !important;
1860
+ }
1861
+
1862
+ .deep-orange.accent-3 {
1863
+ background-color: #ff3d00 !important;
1864
+ }
1865
+
1866
+ .deep-orange-text.text-accent-3 {
1867
+ color: #ff3d00 !important;
1868
+ }
1869
+
1870
+ .deep-orange.accent-4 {
1871
+ background-color: #dd2c00 !important;
1872
+ }
1873
+
1874
+ .deep-orange-text.text-accent-4 {
1875
+ color: #dd2c00 !important;
1876
+ }
1877
+
1878
+ .brown {
1879
+ background-color: #795548 !important;
1880
+ }
1881
+
1882
+ .brown-text {
1883
+ color: #795548 !important;
1884
+ }
1885
+
1886
+ .brown.lighten-5 {
1887
+ background-color: #efebe9 !important;
1888
+ }
1889
+
1890
+ .brown-text.text-lighten-5 {
1891
+ color: #efebe9 !important;
1892
+ }
1893
+
1894
+ .brown.lighten-4 {
1895
+ background-color: #d7ccc8 !important;
1896
+ }
1897
+
1898
+ .brown-text.text-lighten-4 {
1899
+ color: #d7ccc8 !important;
1900
+ }
1901
+
1902
+ .brown.lighten-3 {
1903
+ background-color: #bcaaa4 !important;
1904
+ }
1905
+
1906
+ .brown-text.text-lighten-3 {
1907
+ color: #bcaaa4 !important;
1908
+ }
1909
+
1910
+ .brown.lighten-2 {
1911
+ background-color: #a1887f !important;
1912
+ }
1913
+
1914
+ .brown-text.text-lighten-2 {
1915
+ color: #a1887f !important;
1916
+ }
1917
+
1918
+ .brown.lighten-1 {
1919
+ background-color: #8d6e63 !important;
1920
+ }
1921
+
1922
+ .brown-text.text-lighten-1 {
1923
+ color: #8d6e63 !important;
1924
+ }
1925
+
1926
+ .brown.darken-1 {
1927
+ background-color: #6d4c41 !important;
1928
+ }
1929
+
1930
+ .brown-text.text-darken-1 {
1931
+ color: #6d4c41 !important;
1932
+ }
1933
+
1934
+ .brown.darken-2 {
1935
+ background-color: #5d4037 !important;
1936
+ }
1937
+
1938
+ .brown-text.text-darken-2 {
1939
+ color: #5d4037 !important;
1940
+ }
1941
+
1942
+ .brown.darken-3 {
1943
+ background-color: #4e342e !important;
1944
+ }
1945
+
1946
+ .brown-text.text-darken-3 {
1947
+ color: #4e342e !important;
1948
+ }
1949
+
1950
+ .brown.darken-4 {
1951
+ background-color: #3e2723 !important;
1952
+ }
1953
+
1954
+ .brown-text.text-darken-4 {
1955
+ color: #3e2723 !important;
1956
+ }
1957
+
1958
+ .blue-grey {
1959
+ background-color: #607d8b !important;
1960
+ }
1961
+
1962
+ .blue-grey-text {
1963
+ color: #607d8b !important;
1964
+ }
1965
+
1966
+ .blue-grey.lighten-5 {
1967
+ background-color: #eceff1 !important;
1968
+ }
1969
+
1970
+ .blue-grey-text.text-lighten-5 {
1971
+ color: #eceff1 !important;
1972
+ }
1973
+
1974
+ .blue-grey.lighten-4 {
1975
+ background-color: #cfd8dc !important;
1976
+ }
1977
+
1978
+ .blue-grey-text.text-lighten-4 {
1979
+ color: #cfd8dc !important;
1980
+ }
1981
+
1982
+ .blue-grey.lighten-3 {
1983
+ background-color: #b0bec5 !important;
1984
+ }
1985
+
1986
+ .blue-grey-text.text-lighten-3 {
1987
+ color: #b0bec5 !important;
1988
+ }
1989
+
1990
+ .blue-grey.lighten-2 {
1991
+ background-color: #90a4ae !important;
1992
+ }
1993
+
1994
+ .blue-grey-text.text-lighten-2 {
1995
+ color: #90a4ae !important;
1996
+ }
1997
+
1998
+ .blue-grey.lighten-1 {
1999
+ background-color: #78909c !important;
2000
+ }
2001
+
2002
+ .blue-grey-text.text-lighten-1 {
2003
+ color: #78909c !important;
2004
+ }
2005
+
2006
+ .blue-grey.darken-1 {
2007
+ background-color: #546e7a !important;
2008
+ }
2009
+
2010
+ .blue-grey-text.text-darken-1 {
2011
+ color: #546e7a !important;
2012
+ }
2013
+
2014
+ .blue-grey.darken-2 {
2015
+ background-color: #455a64 !important;
2016
+ }
2017
+
2018
+ .blue-grey-text.text-darken-2 {
2019
+ color: #455a64 !important;
2020
+ }
2021
+
2022
+ .blue-grey.darken-3 {
2023
+ background-color: #37474f !important;
2024
+ }
2025
+
2026
+ .blue-grey-text.text-darken-3 {
2027
+ color: #37474f !important;
2028
+ }
2029
+
2030
+ .blue-grey.darken-4 {
2031
+ background-color: #263238 !important;
2032
+ }
2033
+
2034
+ .blue-grey-text.text-darken-4 {
2035
+ color: #263238 !important;
2036
+ }
2037
+
2038
+ .grey {
2039
+ background-color: #9e9e9e !important;
2040
+ }
2041
+
2042
+ .grey-text {
2043
+ color: #9e9e9e !important;
2044
+ }
2045
+
2046
+ .grey.lighten-5 {
2047
+ background-color: #fafafa !important;
2048
+ }
2049
+
2050
+ .grey-text.text-lighten-5 {
2051
+ color: #fafafa !important;
2052
+ }
2053
+
2054
+ .grey.lighten-4 {
2055
+ background-color: #f5f5f5 !important;
2056
+ }
2057
+
2058
+ .grey-text.text-lighten-4 {
2059
+ color: #f5f5f5 !important;
2060
+ }
2061
+
2062
+ .grey.lighten-3 {
2063
+ background-color: #eeeeee !important;
2064
+ }
2065
+
2066
+ .grey-text.text-lighten-3 {
2067
+ color: #eeeeee !important;
2068
+ }
2069
+
2070
+ .grey.lighten-2 {
2071
+ background-color: #e0e0e0 !important;
2072
+ }
2073
+
2074
+ .grey-text.text-lighten-2 {
2075
+ color: #e0e0e0 !important;
2076
+ }
2077
+
2078
+ .grey.lighten-1 {
2079
+ background-color: #bdbdbd !important;
2080
+ }
2081
+
2082
+ .grey-text.text-lighten-1 {
2083
+ color: #bdbdbd !important;
2084
+ }
2085
+
2086
+ .grey.darken-1 {
2087
+ background-color: #757575 !important;
2088
+ }
2089
+
2090
+ .grey-text.text-darken-1 {
2091
+ color: #757575 !important;
2092
+ }
2093
+
2094
+ .grey.darken-2 {
2095
+ background-color: #616161 !important;
2096
+ }
2097
+
2098
+ .grey-text.text-darken-2 {
2099
+ color: #616161 !important;
2100
+ }
2101
+
2102
+ .grey.darken-3 {
2103
+ background-color: #424242 !important;
2104
+ }
2105
+
2106
+ .grey-text.text-darken-3 {
2107
+ color: #424242 !important;
2108
+ }
2109
+
2110
+ .grey.darken-4 {
2111
+ background-color: #212121 !important;
2112
+ }
2113
+
2114
+ .grey-text.text-darken-4 {
2115
+ color: #212121 !important;
2116
+ }
2117
+
2118
+ .black {
2119
+ background-color: #000000 !important;
2120
+ }
2121
+
2122
+ .black-text {
2123
+ color: #000000 !important;
2124
+ }
2125
+
2126
+ .white {
2127
+ background-color: #FFFFFF !important;
2128
+ }
2129
+
2130
+ .white-text {
2131
+ color: #FFFFFF !important;
2132
+ }
2133
+
2134
+ .transparent {
2135
+ background-color: transparent !important;
2136
+ }
2137
+
2138
+ .transparent-text {
2139
+ color: transparent !important;
2140
+ }
2141
+
2142
+ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
2143
+ /**
2144
+ * 1. Set default font family to sans-serif.
2145
+ * 2. Prevent iOS and IE text size adjust after device orientation change,
2146
+ * without disabling user zoom.
2147
+ */
2148
+ html {
2149
+ font-family: sans-serif;
2150
+ /* 1 */
2151
+ -ms-text-size-adjust: 100%;
2152
+ /* 2 */
2153
+ -webkit-text-size-adjust: 100%;
2154
+ /* 2 */
2155
+ }
2156
+
2157
+ /**
2158
+ * Remove default margin.
2159
+ */
2160
+ body {
2161
+ margin: 0;
2162
+ }
2163
+
2164
+ /* HTML5 display definitions
2165
+ ========================================================================== */
2166
+ /**
2167
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
2168
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
2169
+ * and Firefox.
2170
+ * Correct `block` display not defined for `main` in IE 11.
2171
+ */
2172
+ article,
2173
+ aside,
2174
+ details,
2175
+ figcaption,
2176
+ figure,
2177
+ footer,
2178
+ header,
2179
+ hgroup,
2180
+ main,
2181
+ menu,
2182
+ nav,
2183
+ section,
2184
+ summary {
2185
+ display: block;
2186
+ }
2187
+
2188
+ /**
2189
+ * 1. Correct `inline-block` display not defined in IE 8/9.
2190
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
2191
+ */
2192
+ audio,
2193
+ canvas,
2194
+ progress,
2195
+ video {
2196
+ display: inline-block;
2197
+ /* 1 */
2198
+ vertical-align: baseline;
2199
+ /* 2 */
2200
+ }
2201
+
2202
+ /**
2203
+ * Prevent modern browsers from displaying `audio` without controls.
2204
+ * Remove excess height in iOS 5 devices.
2205
+ */
2206
+ audio:not([controls]) {
2207
+ display: none;
2208
+ height: 0;
2209
+ }
2210
+
2211
+ /**
2212
+ * Address `[hidden]` styling not present in IE 8/9/10.
2213
+ * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
2214
+ */
2215
+ [hidden],
2216
+ template {
2217
+ display: none;
2218
+ }
2219
+
2220
+ /* Links
2221
+ ========================================================================== */
2222
+ /**
2223
+ * Remove the gray background color from active links in IE 10.
2224
+ */
2225
+ a {
2226
+ background-color: transparent;
2227
+ }
2228
+
2229
+ /**
2230
+ * Improve readability of focused elements when they are also in an
2231
+ * active/hover state.
2232
+ */
2233
+ a:active,
2234
+ a:hover {
2235
+ outline: 0;
2236
+ }
2237
+
2238
+ /* Text-level semantics
2239
+ ========================================================================== */
2240
+ /**
2241
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
2242
+ */
2243
+ abbr[title] {
2244
+ border-bottom: 1px dotted;
2245
+ }
2246
+
2247
+ /**
2248
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
2249
+ */
2250
+ b,
2251
+ strong {
2252
+ font-weight: bold;
2253
+ }
2254
+
2255
+ /**
2256
+ * Address styling not present in Safari and Chrome.
2257
+ */
2258
+ dfn {
2259
+ font-style: italic;
2260
+ }
2261
+
2262
+ /**
2263
+ * Address variable `h1` font-size and margin within `section` and `article`
2264
+ * contexts in Firefox 4+, Safari, and Chrome.
2265
+ */
2266
+ h1 {
2267
+ font-size: 2em;
2268
+ margin: 0.67em 0;
2269
+ }
2270
+
2271
+ /**
2272
+ * Address styling not present in IE 8/9.
2273
+ */
2274
+ mark {
2275
+ background: #ff0;
2276
+ color: #000;
2277
+ }
2278
+
2279
+ /**
2280
+ * Address inconsistent and variable font size in all browsers.
2281
+ */
2282
+ small {
2283
+ font-size: 80%;
2284
+ }
2285
+
2286
+ /**
2287
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
2288
+ */
2289
+ sub,
2290
+ sup {
2291
+ font-size: 75%;
2292
+ line-height: 0;
2293
+ position: relative;
2294
+ vertical-align: baseline;
2295
+ }
2296
+
2297
+ sup {
2298
+ top: -0.5em;
2299
+ }
2300
+
2301
+ sub {
2302
+ bottom: -0.25em;
2303
+ }
2304
+
2305
+ /* Embedded content
2306
+ ========================================================================== */
2307
+ /**
2308
+ * Remove border when inside `a` element in IE 8/9/10.
2309
+ */
2310
+ img {
2311
+ border: 0;
2312
+ }
2313
+
2314
+ /**
2315
+ * Correct overflow not hidden in IE 9/10/11.
2316
+ */
2317
+ svg:not(:root) {
2318
+ overflow: hidden;
2319
+ }
2320
+
2321
+ /* Grouping content
2322
+ ========================================================================== */
2323
+ /**
2324
+ * Address margin not present in IE 8/9 and Safari.
2325
+ */
2326
+ figure {
2327
+ margin: 1em 40px;
2328
+ }
2329
+
2330
+ /**
2331
+ * Address differences between Firefox and other browsers.
2332
+ */
2333
+ hr {
2334
+ box-sizing: content-box;
2335
+ height: 0;
2336
+ }
2337
+
2338
+ /**
2339
+ * Contain overflow in all browsers.
2340
+ */
2341
+ pre {
2342
+ overflow: auto;
2343
+ }
2344
+
2345
+ /**
2346
+ * Address odd `em`-unit font size rendering in all browsers.
2347
+ */
2348
+ code,
2349
+ kbd,
2350
+ pre,
2351
+ samp {
2352
+ font-family: monospace, monospace;
2353
+ font-size: 1em;
2354
+ }
2355
+
2356
+ /* Forms
2357
+ ========================================================================== */
2358
+ /**
2359
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
2360
+ * styling of `select`, unless a `border` property is set.
2361
+ */
2362
+ /**
2363
+ * 1. Correct color not being inherited.
2364
+ * Known issue: affects color of disabled elements.
2365
+ * 2. Correct font properties not being inherited.
2366
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
2367
+ */
2368
+ button,
2369
+ input,
2370
+ optgroup,
2371
+ select,
2372
+ textarea {
2373
+ color: inherit;
2374
+ /* 1 */
2375
+ font: inherit;
2376
+ /* 2 */
2377
+ margin: 0;
2378
+ /* 3 */
2379
+ }
2380
+
2381
+ /**
2382
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
2383
+ */
2384
+ button {
2385
+ overflow: visible;
2386
+ }
2387
+
2388
+ /**
2389
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
2390
+ * All other form control elements do not inherit `text-transform` values.
2391
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
2392
+ * Correct `select` style inheritance in Firefox.
2393
+ */
2394
+ button,
2395
+ select {
2396
+ text-transform: none;
2397
+ }
2398
+
2399
+ /**
2400
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
2401
+ * and `video` controls.
2402
+ * 2. Correct inability to style clickable `input` types in iOS.
2403
+ * 3. Improve usability and consistency of cursor style between image-type
2404
+ * `input` and others.
2405
+ */
2406
+ button,
2407
+ html input[type="button"],
2408
+ input[type="reset"],
2409
+ input[type="submit"] {
2410
+ -webkit-appearance: button;
2411
+ /* 2 */
2412
+ cursor: pointer;
2413
+ /* 3 */
2414
+ }
2415
+
2416
+ /**
2417
+ * Re-set default cursor for disabled elements.
2418
+ */
2419
+ button[disabled],
2420
+ html input[disabled] {
2421
+ cursor: default;
2422
+ }
2423
+
2424
+ /**
2425
+ * Remove inner padding and border in Firefox 4+.
2426
+ */
2427
+ button::-moz-focus-inner,
2428
+ input::-moz-focus-inner {
2429
+ border: 0;
2430
+ padding: 0;
2431
+ }
2432
+
2433
+ /**
2434
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
2435
+ * the UA stylesheet.
2436
+ */
2437
+ input {
2438
+ line-height: normal;
2439
+ }
2440
+
2441
+ /**
2442
+ * It's recommended that you don't attempt to style these elements.
2443
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
2444
+ *
2445
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
2446
+ * 2. Remove excess padding in IE 8/9/10.
2447
+ */
2448
+ input[type="checkbox"],
2449
+ input[type="radio"] {
2450
+ box-sizing: border-box;
2451
+ /* 1 */
2452
+ padding: 0;
2453
+ /* 2 */
2454
+ }
2455
+
2456
+ /**
2457
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
2458
+ * `font-size` values of the `input`, it causes the cursor style of the
2459
+ * decrement button to change from `default` to `text`.
2460
+ */
2461
+ input[type="number"]::-webkit-inner-spin-button,
2462
+ input[type="number"]::-webkit-outer-spin-button {
2463
+ height: auto;
2464
+ }
2465
+
2466
+ /**
2467
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
2468
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
2469
+ */
2470
+ input[type="search"] {
2471
+ -webkit-appearance: textfield;
2472
+ /* 1 */
2473
+ box-sizing: content-box;
2474
+ /* 2 */
2475
+ }
2476
+
2477
+ /**
2478
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
2479
+ * Safari (but not Chrome) clips the cancel button when the search input has
2480
+ * padding (and `textfield` appearance).
2481
+ */
2482
+ input[type="search"]::-webkit-search-cancel-button,
2483
+ input[type="search"]::-webkit-search-decoration {
2484
+ -webkit-appearance: none;
2485
+ }
2486
+
2487
+ /**
2488
+ * Define consistent border, margin, and padding.
2489
+ */
2490
+ fieldset {
2491
+ border: 1px solid #c0c0c0;
2492
+ margin: 0 2px;
2493
+ padding: 0.35em 0.625em 0.75em;
2494
+ }
2495
+
2496
+ /**
2497
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
2498
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
2499
+ */
2500
+ legend {
2501
+ border: 0;
2502
+ /* 1 */
2503
+ padding: 0;
2504
+ /* 2 */
2505
+ }
2506
+
2507
+ /**
2508
+ * Remove default vertical scrollbar in IE 8/9/10/11.
2509
+ */
2510
+ textarea {
2511
+ overflow: auto;
2512
+ }
2513
+
2514
+ /**
2515
+ * Don't inherit the `font-weight` (applied by a rule above).
2516
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
2517
+ */
2518
+ optgroup {
2519
+ font-weight: bold;
2520
+ }
2521
+
2522
+ /* Tables
2523
+ ========================================================================== */
2524
+ /**
2525
+ * Remove most spacing between table cells.
2526
+ */
2527
+ table {
2528
+ border-collapse: collapse;
2529
+ border-spacing: 0;
2530
+ }
2531
+
2532
+ td,
2533
+ th {
2534
+ padding: 0;
2535
+ }
2536
+
2537
+ html {
2538
+ box-sizing: border-box;
2539
+ }
2540
+
2541
+ *, *:before, *:after {
2542
+ box-sizing: inherit;
2543
+ }
2544
+
2545
+ ul:not(.browser-default) {
2546
+ padding-left: 0;
2547
+ list-style-type: none;
2548
+ }
2549
+
2550
+ ul:not(.browser-default) li {
2551
+ list-style-type: none;
2552
+ }
2553
+
2554
+ a {
2555
+ color: #039be5;
2556
+ text-decoration: none;
2557
+ -webkit-tap-highlight-color: transparent;
2558
+ }
2559
+
2560
+ .valign-wrapper {
2561
+ display: -webkit-flex;
2562
+ display: -ms-flexbox;
2563
+ display: flex;
2564
+ -webkit-align-items: center;
2565
+ -ms-flex-align: center;
2566
+ align-items: center;
2567
+ }
2568
+
2569
+ .valign-wrapper .valign {
2570
+ display: block;
2571
+ }
2572
+
2573
+ .clearfix {
2574
+ clear: both;
2575
+ }
2576
+
2577
+ .z-depth-0 {
2578
+ box-shadow: none !important;
2579
+ }
2580
+
2581
+ .z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {
2582
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
2583
+ }
2584
+
2585
+ .z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {
2586
+ box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);
2587
+ }
2588
+
2589
+ .z-depth-2 {
2590
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
2591
+ }
2592
+
2593
+ .z-depth-3 {
2594
+ box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3);
2595
+ }
2596
+
2597
+ .z-depth-4, .modal {
2598
+ box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3);
2599
+ }
2600
+
2601
+ .z-depth-5 {
2602
+ box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);
2603
+ }
2604
+
2605
+ .hoverable {
2606
+ transition: box-shadow .25s;
2607
+ box-shadow: 0;
2608
+ }
2609
+
2610
+ .hoverable:hover {
2611
+ transition: box-shadow .25s;
2612
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
2613
+ }
2614
+
2615
+ .divider {
2616
+ height: 1px;
2617
+ overflow: hidden;
2618
+ background-color: #e0e0e0;
2619
+ }
2620
+
2621
+ blockquote {
2622
+ margin: 20px 0;
2623
+ padding-left: 1.5rem;
2624
+ border-left: 5px solid #ee6e73;
2625
+ }
2626
+
2627
+ i {
2628
+ line-height: inherit;
2629
+ }
2630
+
2631
+ i.left {
2632
+ float: left;
2633
+ margin-right: 15px;
2634
+ }
2635
+
2636
+ i.right {
2637
+ float: right;
2638
+ margin-left: 15px;
2639
+ }
2640
+
2641
+ i.tiny {
2642
+ font-size: 1rem;
2643
+ }
2644
+
2645
+ i.small {
2646
+ font-size: 2rem;
2647
+ }
2648
+
2649
+ i.medium {
2650
+ font-size: 4rem;
2651
+ }
2652
+
2653
+ i.large {
2654
+ font-size: 6rem;
2655
+ }
2656
+
2657
+ img.responsive-img,
2658
+ video.responsive-video {
2659
+ max-width: 100%;
2660
+ height: auto;
2661
+ }
2662
+
2663
+ .pagination li {
2664
+ display: inline-block;
2665
+ border-radius: 2px;
2666
+ text-align: center;
2667
+ vertical-align: top;
2668
+ height: 30px;
2669
+ }
2670
+
2671
+ .pagination li a {
2672
+ color: #444;
2673
+ display: inline-block;
2674
+ font-size: 1.2rem;
2675
+ padding: 0 10px;
2676
+ line-height: 30px;
2677
+ }
2678
+
2679
+ .pagination li.active a {
2680
+ color: #fff;
2681
+ }
2682
+
2683
+ .pagination li.active {
2684
+ background-color: #ee6e73;
2685
+ }
2686
+
2687
+ .pagination li.disabled a {
2688
+ cursor: default;
2689
+ color: #999;
2690
+ }
2691
+
2692
+ .pagination li i {
2693
+ font-size: 2rem;
2694
+ }
2695
+
2696
+ .pagination li.pages ul li {
2697
+ display: inline-block;
2698
+ float: none;
2699
+ }
2700
+
2701
+ @media only screen and (max-width: 992px) {
2702
+ .pagination {
2703
+ width: 100%;
2704
+ }
2705
+ .pagination li.prev,
2706
+ .pagination li.next {
2707
+ width: 10%;
2708
+ }
2709
+ .pagination li.pages {
2710
+ width: 80%;
2711
+ overflow: hidden;
2712
+ white-space: nowrap;
2713
+ }
2714
+ }
2715
+
2716
+ .breadcrumb {
2717
+ font-size: 18px;
2718
+ color: rgba(255, 255, 255, 0.7);
2719
+ }
2720
+
2721
+ .breadcrumb i,
2722
+ .breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"],
2723
+ .breadcrumb i.material-icons {
2724
+ display: inline-block;
2725
+ float: left;
2726
+ font-size: 24px;
2727
+ }
2728
+
2729
+ .breadcrumb:before {
2730
+ content: '\E5CC';
2731
+ color: rgba(255, 255, 255, 0.7);
2732
+ vertical-align: top;
2733
+ display: inline-block;
2734
+ font-family: 'Material Icons';
2735
+ font-weight: normal;
2736
+ font-style: normal;
2737
+ font-size: 25px;
2738
+ margin: 0 10px 0 8px;
2739
+ -webkit-font-smoothing: antialiased;
2740
+ }
2741
+
2742
+ .breadcrumb:first-child:before {
2743
+ display: none;
2744
+ }
2745
+
2746
+ .breadcrumb:last-child {
2747
+ color: #fff;
2748
+ }
2749
+
2750
+ .parallax-container {
2751
+ position: relative;
2752
+ overflow: hidden;
2753
+ height: 500px;
2754
+ }
2755
+
2756
+ .parallax {
2757
+ position: absolute;
2758
+ top: 0;
2759
+ left: 0;
2760
+ right: 0;
2761
+ bottom: 0;
2762
+ z-index: -1;
2763
+ }
2764
+
2765
+ .parallax img {
2766
+ display: none;
2767
+ position: absolute;
2768
+ left: 50%;
2769
+ bottom: 0;
2770
+ min-width: 100%;
2771
+ min-height: 100%;
2772
+ -webkit-transform: translate3d(0, 0, 0);
2773
+ transform: translate3d(0, 0, 0);
2774
+ -webkit-transform: translateX(-50%);
2775
+ transform: translateX(-50%);
2776
+ }
2777
+
2778
+ .pin-top, .pin-bottom {
2779
+ position: relative;
2780
+ }
2781
+
2782
+ .pinned {
2783
+ position: fixed !important;
2784
+ }
2785
+
2786
+ /*********************
2787
+ Transition Classes
2788
+ **********************/
2789
+ ul.staggered-list li {
2790
+ opacity: 0;
2791
+ }
2792
+
2793
+ .fade-in {
2794
+ opacity: 0;
2795
+ -webkit-transform-origin: 0 50%;
2796
+ transform-origin: 0 50%;
2797
+ }
2798
+
2799
+ /*********************
2800
+ Media Query Classes
2801
+ **********************/
2802
+ @media only screen and (max-width: 600px) {
2803
+ .hide-on-small-only, .hide-on-small-and-down {
2804
+ display: none !important;
2805
+ }
2806
+ }
2807
+
2808
+ @media only screen and (max-width: 992px) {
2809
+ .hide-on-med-and-down {
2810
+ display: none !important;
2811
+ }
2812
+ }
2813
+
2814
+ @media only screen and (min-width: 601px) {
2815
+ .hide-on-med-and-up {
2816
+ display: none !important;
2817
+ }
2818
+ }
2819
+
2820
+ @media only screen and (min-width: 600px) and (max-width: 992px) {
2821
+ .hide-on-med-only {
2822
+ display: none !important;
2823
+ }
2824
+ }
2825
+
2826
+ @media only screen and (min-width: 993px) {
2827
+ .hide-on-large-only {
2828
+ display: none !important;
2829
+ }
2830
+ }
2831
+
2832
+ @media only screen and (min-width: 993px) {
2833
+ .show-on-large {
2834
+ display: block !important;
2835
+ }
2836
+ }
2837
+
2838
+ @media only screen and (min-width: 600px) and (max-width: 992px) {
2839
+ .show-on-medium {
2840
+ display: block !important;
2841
+ }
2842
+ }
2843
+
2844
+ @media only screen and (max-width: 600px) {
2845
+ .show-on-small {
2846
+ display: block !important;
2847
+ }
2848
+ }
2849
+
2850
+ @media only screen and (min-width: 601px) {
2851
+ .show-on-medium-and-up {
2852
+ display: block !important;
2853
+ }
2854
+ }
2855
+
2856
+ @media only screen and (max-width: 992px) {
2857
+ .show-on-medium-and-down {
2858
+ display: block !important;
2859
+ }
2860
+ }
2861
+
2862
+ @media only screen and (max-width: 600px) {
2863
+ .center-on-small-only {
2864
+ text-align: center;
2865
+ }
2866
+ }
2867
+
2868
+ footer.page-footer {
2869
+ padding-top: 20px;
2870
+ background-color: #ee6e73;
2871
+ }
2872
+
2873
+ footer.page-footer .footer-copyright {
2874
+ overflow: hidden;
2875
+ min-height: 50px;
2876
+ display: -webkit-flex;
2877
+ display: -ms-flexbox;
2878
+ display: flex;
2879
+ -webkit-align-items: center;
2880
+ -ms-flex-align: center;
2881
+ align-items: center;
2882
+ padding: 10px 0px;
2883
+ color: rgba(255, 255, 255, 0.8);
2884
+ background-color: rgba(51, 51, 51, 0.08);
2885
+ }
2886
+
2887
+ table, th, td {
2888
+ border: none;
2889
+ }
2890
+
2891
+ table {
2892
+ width: 100%;
2893
+ display: table;
2894
+ }
2895
+
2896
+ table.bordered > thead > tr,
2897
+ table.bordered > tbody > tr {
2898
+ border-bottom: 1px solid #d0d0d0;
2899
+ }
2900
+
2901
+ table.striped > tbody > tr:nth-child(odd) {
2902
+ background-color: #f2f2f2;
2903
+ }
2904
+
2905
+ table.striped > tbody > tr > td {
2906
+ border-radius: 0;
2907
+ }
2908
+
2909
+ table.highlight > tbody > tr {
2910
+ transition: background-color .25s ease;
2911
+ }
2912
+
2913
+ table.highlight > tbody > tr:hover {
2914
+ background-color: #f2f2f2;
2915
+ }
2916
+
2917
+ table.centered thead tr th, table.centered tbody tr td {
2918
+ text-align: center;
2919
+ }
2920
+
2921
+ thead {
2922
+ border-bottom: 1px solid #d0d0d0;
2923
+ }
2924
+
2925
+ td, th {
2926
+ padding: 15px 5px;
2927
+ display: table-cell;
2928
+ text-align: left;
2929
+ vertical-align: middle;
2930
+ border-radius: 2px;
2931
+ }
2932
+
2933
+ @media only screen and (max-width: 992px) {
2934
+ table.responsive-table {
2935
+ width: 100%;
2936
+ border-collapse: collapse;
2937
+ border-spacing: 0;
2938
+ display: block;
2939
+ position: relative;
2940
+ /* sort out borders */
2941
+ }
2942
+ table.responsive-table td:empty:before {
2943
+ content: '\00a0';
2944
+ }
2945
+ table.responsive-table th,
2946
+ table.responsive-table td {
2947
+ margin: 0;
2948
+ vertical-align: top;
2949
+ }
2950
+ table.responsive-table th {
2951
+ text-align: left;
2952
+ }
2953
+ table.responsive-table thead {
2954
+ display: block;
2955
+ float: left;
2956
+ }
2957
+ table.responsive-table thead tr {
2958
+ display: block;
2959
+ padding: 0 10px 0 0;
2960
+ }
2961
+ table.responsive-table thead tr th::before {
2962
+ content: "\00a0";
2963
+ }
2964
+ table.responsive-table tbody {
2965
+ display: block;
2966
+ width: auto;
2967
+ position: relative;
2968
+ overflow-x: auto;
2969
+ white-space: nowrap;
2970
+ }
2971
+ table.responsive-table tbody tr {
2972
+ display: inline-block;
2973
+ vertical-align: top;
2974
+ }
2975
+ table.responsive-table th {
2976
+ display: block;
2977
+ text-align: right;
2978
+ }
2979
+ table.responsive-table td {
2980
+ display: block;
2981
+ min-height: 1.25em;
2982
+ text-align: left;
2983
+ }
2984
+ table.responsive-table tr {
2985
+ padding: 0 10px;
2986
+ }
2987
+ table.responsive-table thead {
2988
+ border: 0;
2989
+ border-right: 1px solid #d0d0d0;
2990
+ }
2991
+ table.responsive-table.bordered th {
2992
+ border-bottom: 0;
2993
+ border-left: 0;
2994
+ }
2995
+ table.responsive-table.bordered td {
2996
+ border-left: 0;
2997
+ border-right: 0;
2998
+ border-bottom: 0;
2999
+ }
3000
+ table.responsive-table.bordered tr {
3001
+ border: 0;
3002
+ }
3003
+ table.responsive-table.bordered tbody tr {
3004
+ border-right: 1px solid #d0d0d0;
3005
+ }
3006
+ }
3007
+
3008
+ .collection {
3009
+ margin: 0.5rem 0 1rem 0;
3010
+ border: 1px solid #e0e0e0;
3011
+ border-radius: 2px;
3012
+ overflow: hidden;
3013
+ position: relative;
3014
+ }
3015
+
3016
+ .collection .collection-item {
3017
+ background-color: #fff;
3018
+ line-height: 1.5rem;
3019
+ padding: 10px 20px;
3020
+ margin: 0;
3021
+ border-bottom: 1px solid #e0e0e0;
3022
+ }
3023
+
3024
+ .collection .collection-item.avatar {
3025
+ min-height: 84px;
3026
+ padding-left: 72px;
3027
+ position: relative;
3028
+ }
3029
+
3030
+ .collection .collection-item.avatar .circle {
3031
+ position: absolute;
3032
+ width: 42px;
3033
+ height: 42px;
3034
+ overflow: hidden;
3035
+ left: 15px;
3036
+ display: inline-block;
3037
+ vertical-align: middle;
3038
+ }
3039
+
3040
+ .collection .collection-item.avatar i.circle {
3041
+ font-size: 18px;
3042
+ line-height: 42px;
3043
+ color: #fff;
3044
+ background-color: #999;
3045
+ text-align: center;
3046
+ }
3047
+
3048
+ .collection .collection-item.avatar .title {
3049
+ font-size: 16px;
3050
+ }
3051
+
3052
+ .collection .collection-item.avatar p {
3053
+ margin: 0;
3054
+ }
3055
+
3056
+ .collection .collection-item.avatar .secondary-content {
3057
+ position: absolute;
3058
+ top: 16px;
3059
+ right: 16px;
3060
+ }
3061
+
3062
+ .collection .collection-item:last-child {
3063
+ border-bottom: none;
3064
+ }
3065
+
3066
+ .collection .collection-item.active {
3067
+ background-color: #26a69a;
3068
+ color: #eafaf9;
3069
+ }
3070
+
3071
+ .collection .collection-item.active .secondary-content {
3072
+ color: #fff;
3073
+ }
3074
+
3075
+ .collection a.collection-item {
3076
+ display: block;
3077
+ transition: .25s;
3078
+ color: #26a69a;
3079
+ }
3080
+
3081
+ .collection a.collection-item:not(.active):hover {
3082
+ background-color: #ddd;
3083
+ }
3084
+
3085
+ .collection.with-header .collection-header {
3086
+ background-color: #fff;
3087
+ border-bottom: 1px solid #e0e0e0;
3088
+ padding: 10px 20px;
3089
+ }
3090
+
3091
+ .collection.with-header .collection-item {
3092
+ padding-left: 30px;
3093
+ }
3094
+
3095
+ .collection.with-header .collection-item.avatar {
3096
+ padding-left: 72px;
3097
+ }
3098
+
3099
+ .secondary-content {
3100
+ float: right;
3101
+ color: #26a69a;
3102
+ }
3103
+
3104
+ .collapsible .collection {
3105
+ margin: 0;
3106
+ border: none;
3107
+ }
3108
+
3109
+ .video-container {
3110
+ position: relative;
3111
+ padding-bottom: 56.25%;
3112
+ height: 0;
3113
+ overflow: hidden;
3114
+ }
3115
+
3116
+ .video-container iframe, .video-container object, .video-container embed {
3117
+ position: absolute;
3118
+ top: 0;
3119
+ left: 0;
3120
+ width: 100%;
3121
+ height: 100%;
3122
+ }
3123
+
3124
+ .progress {
3125
+ position: relative;
3126
+ height: 4px;
3127
+ display: block;
3128
+ width: 100%;
3129
+ background-color: #acece6;
3130
+ border-radius: 2px;
3131
+ margin: 0.5rem 0 1rem 0;
3132
+ overflow: hidden;
3133
+ }
3134
+
3135
+ .progress .determinate {
3136
+ position: absolute;
3137
+ top: 0;
3138
+ left: 0;
3139
+ bottom: 0;
3140
+ background-color: #26a69a;
3141
+ transition: width .3s linear;
3142
+ }
3143
+
3144
+ .progress .indeterminate {
3145
+ background-color: #26a69a;
3146
+ }
3147
+
3148
+ .progress .indeterminate:before {
3149
+ content: '';
3150
+ position: absolute;
3151
+ background-color: inherit;
3152
+ top: 0;
3153
+ left: 0;
3154
+ bottom: 0;
3155
+ will-change: left, right;
3156
+ -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
3157
+ animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
3158
+ }
3159
+
3160
+ .progress .indeterminate:after {
3161
+ content: '';
3162
+ position: absolute;
3163
+ background-color: inherit;
3164
+ top: 0;
3165
+ left: 0;
3166
+ bottom: 0;
3167
+ will-change: left, right;
3168
+ -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
3169
+ animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
3170
+ -webkit-animation-delay: 1.15s;
3171
+ animation-delay: 1.15s;
3172
+ }
3173
+
3174
+ @-webkit-keyframes indeterminate {
3175
+ 0% {
3176
+ left: -35%;
3177
+ right: 100%;
3178
+ }
3179
+ 60% {
3180
+ left: 100%;
3181
+ right: -90%;
3182
+ }
3183
+ 100% {
3184
+ left: 100%;
3185
+ right: -90%;
3186
+ }
3187
+ }
3188
+
3189
+ @keyframes indeterminate {
3190
+ 0% {
3191
+ left: -35%;
3192
+ right: 100%;
3193
+ }
3194
+ 60% {
3195
+ left: 100%;
3196
+ right: -90%;
3197
+ }
3198
+ 100% {
3199
+ left: 100%;
3200
+ right: -90%;
3201
+ }
3202
+ }
3203
+
3204
+ @-webkit-keyframes indeterminate-short {
3205
+ 0% {
3206
+ left: -200%;
3207
+ right: 100%;
3208
+ }
3209
+ 60% {
3210
+ left: 107%;
3211
+ right: -8%;
3212
+ }
3213
+ 100% {
3214
+ left: 107%;
3215
+ right: -8%;
3216
+ }
3217
+ }
3218
+
3219
+ @keyframes indeterminate-short {
3220
+ 0% {
3221
+ left: -200%;
3222
+ right: 100%;
3223
+ }
3224
+ 60% {
3225
+ left: 107%;
3226
+ right: -8%;
3227
+ }
3228
+ 100% {
3229
+ left: 107%;
3230
+ right: -8%;
3231
+ }
3232
+ }
3233
+
3234
+ /*******************
3235
+ Utility Classes
3236
+ *******************/
3237
+ .hide {
3238
+ display: none !important;
3239
+ }
3240
+
3241
+ .left-align {
3242
+ text-align: left;
3243
+ }
3244
+
3245
+ .right-align {
3246
+ text-align: right;
3247
+ }
3248
+
3249
+ .center, .center-align {
3250
+ text-align: center;
3251
+ }
3252
+
3253
+ .left {
3254
+ float: left !important;
3255
+ }
3256
+
3257
+ .right {
3258
+ float: right !important;
3259
+ }
3260
+
3261
+ .no-select, input[type=range],
3262
+ input[type=range] + .thumb {
3263
+ -webkit-touch-callout: none;
3264
+ -webkit-user-select: none;
3265
+ -moz-user-select: none;
3266
+ -ms-user-select: none;
3267
+ user-select: none;
3268
+ }
3269
+
3270
+ .circle {
3271
+ border-radius: 50%;
3272
+ }
3273
+
3274
+ .center-block {
3275
+ display: block;
3276
+ margin-left: auto;
3277
+ margin-right: auto;
3278
+ }
3279
+
3280
+ .truncate {
3281
+ display: block;
3282
+ white-space: nowrap;
3283
+ overflow: hidden;
3284
+ text-overflow: ellipsis;
3285
+ }
3286
+
3287
+ .no-padding {
3288
+ padding: 0 !important;
3289
+ }
3290
+
3291
+ span.badge {
3292
+ min-width: 3rem;
3293
+ padding: 0 6px;
3294
+ margin-left: 14px;
3295
+ text-align: center;
3296
+ font-size: 1rem;
3297
+ line-height: 22px;
3298
+ height: 22px;
3299
+ color: #757575;
3300
+ float: right;
3301
+ box-sizing: border-box;
3302
+ }
3303
+
3304
+ span.badge.new {
3305
+ font-weight: 300;
3306
+ font-size: 0.8rem;
3307
+ color: #fff;
3308
+ background-color: #26a69a;
3309
+ border-radius: 2px;
3310
+ }
3311
+
3312
+ span.badge.new:after {
3313
+ content: " new";
3314
+ }
3315
+
3316
+ span.badge[data-badge-caption]::after {
3317
+ content: " " attr(data-badge-caption);
3318
+ }
3319
+
3320
+ nav ul a span.badge {
3321
+ display: inline-block;
3322
+ float: none;
3323
+ margin-left: 4px;
3324
+ line-height: 22px;
3325
+ height: 22px;
3326
+ }
3327
+
3328
+ .collection-item span.badge {
3329
+ margin-top: calc(0.75rem - 11px);
3330
+ }
3331
+
3332
+ .collapsible span.badge {
3333
+ margin-top: calc(1.5rem - 11px);
3334
+ }
3335
+
3336
+ .side-nav span.badge {
3337
+ margin-top: calc(24px - 11px);
3338
+ }
3339
+
3340
+ /* This is needed for some mobile phones to display the Google Icon font properly */
3341
+ .material-icons {
3342
+ text-rendering: optimizeLegibility;
3343
+ -webkit-font-feature-settings: 'liga';
3344
+ -moz-font-feature-settings: 'liga';
3345
+ font-feature-settings: 'liga';
3346
+ }
3347
+
3348
+ .container {
3349
+ margin: 0 auto;
3350
+ max-width: 1280px;
3351
+ width: 90%;
3352
+ }
3353
+
3354
+ @media only screen and (min-width: 601px) {
3355
+ .container {
3356
+ width: 85%;
3357
+ }
3358
+ }
3359
+
3360
+ @media only screen and (min-width: 993px) {
3361
+ .container {
3362
+ width: 70%;
3363
+ }
3364
+ }
3365
+
3366
+ .container .row {
3367
+ margin-left: -0.75rem;
3368
+ margin-right: -0.75rem;
3369
+ }
3370
+
3371
+ .section {
3372
+ padding-top: 1rem;
3373
+ padding-bottom: 1rem;
3374
+ }
3375
+
3376
+ .section.no-pad {
3377
+ padding: 0;
3378
+ }
3379
+
3380
+ .section.no-pad-bot {
3381
+ padding-bottom: 0;
3382
+ }
3383
+
3384
+ .section.no-pad-top {
3385
+ padding-top: 0;
3386
+ }
3387
+
3388
+ .row {
3389
+ margin-left: auto;
3390
+ margin-right: auto;
3391
+ margin-bottom: 20px;
3392
+ }
3393
+
3394
+ .row:after {
3395
+ content: "";
3396
+ display: table;
3397
+ clear: both;
3398
+ }
3399
+
3400
+ .row .col {
3401
+ float: left;
3402
+ box-sizing: border-box;
3403
+ padding: 0 0.75rem;
3404
+ min-height: 1px;
3405
+ }
3406
+
3407
+ .row .col[class*="push-"], .row .col[class*="pull-"] {
3408
+ position: relative;
3409
+ }
3410
+
3411
+ .row .col.s1 {
3412
+ width: 8.3333333333%;
3413
+ margin-left: auto;
3414
+ left: auto;
3415
+ right: auto;
3416
+ }
3417
+
3418
+ .row .col.s2 {
3419
+ width: 16.6666666667%;
3420
+ margin-left: auto;
3421
+ left: auto;
3422
+ right: auto;
3423
+ }
3424
+
3425
+ .row .col.s3 {
3426
+ width: 25%;
3427
+ margin-left: auto;
3428
+ left: auto;
3429
+ right: auto;
3430
+ }
3431
+
3432
+ .row .col.s4 {
3433
+ width: 33.3333333333%;
3434
+ margin-left: auto;
3435
+ left: auto;
3436
+ right: auto;
3437
+ }
3438
+
3439
+ .row .col.s5 {
3440
+ width: 41.6666666667%;
3441
+ margin-left: auto;
3442
+ left: auto;
3443
+ right: auto;
3444
+ }
3445
+
3446
+ .row .col.s6 {
3447
+ width: 50%;
3448
+ margin-left: auto;
3449
+ left: auto;
3450
+ right: auto;
3451
+ }
3452
+
3453
+ .row .col.s7 {
3454
+ width: 58.3333333333%;
3455
+ margin-left: auto;
3456
+ left: auto;
3457
+ right: auto;
3458
+ }
3459
+
3460
+ .row .col.s8 {
3461
+ width: 66.6666666667%;
3462
+ margin-left: auto;
3463
+ left: auto;
3464
+ right: auto;
3465
+ }
3466
+
3467
+ .row .col.s9 {
3468
+ width: 75%;
3469
+ margin-left: auto;
3470
+ left: auto;
3471
+ right: auto;
3472
+ }
3473
+
3474
+ .row .col.s10 {
3475
+ width: 83.3333333333%;
3476
+ margin-left: auto;
3477
+ left: auto;
3478
+ right: auto;
3479
+ }
3480
+
3481
+ .row .col.s11 {
3482
+ width: 91.6666666667%;
3483
+ margin-left: auto;
3484
+ left: auto;
3485
+ right: auto;
3486
+ }
3487
+
3488
+ .row .col.s12 {
3489
+ width: 100%;
3490
+ margin-left: auto;
3491
+ left: auto;
3492
+ right: auto;
3493
+ }
3494
+
3495
+ .row .col.offset-s1 {
3496
+ margin-left: 8.3333333333%;
3497
+ }
3498
+
3499
+ .row .col.pull-s1 {
3500
+ right: 8.3333333333%;
3501
+ }
3502
+
3503
+ .row .col.push-s1 {
3504
+ left: 8.3333333333%;
3505
+ }
3506
+
3507
+ .row .col.offset-s2 {
3508
+ margin-left: 16.6666666667%;
3509
+ }
3510
+
3511
+ .row .col.pull-s2 {
3512
+ right: 16.6666666667%;
3513
+ }
3514
+
3515
+ .row .col.push-s2 {
3516
+ left: 16.6666666667%;
3517
+ }
3518
+
3519
+ .row .col.offset-s3 {
3520
+ margin-left: 25%;
3521
+ }
3522
+
3523
+ .row .col.pull-s3 {
3524
+ right: 25%;
3525
+ }
3526
+
3527
+ .row .col.push-s3 {
3528
+ left: 25%;
3529
+ }
3530
+
3531
+ .row .col.offset-s4 {
3532
+ margin-left: 33.3333333333%;
3533
+ }
3534
+
3535
+ .row .col.pull-s4 {
3536
+ right: 33.3333333333%;
3537
+ }
3538
+
3539
+ .row .col.push-s4 {
3540
+ left: 33.3333333333%;
3541
+ }
3542
+
3543
+ .row .col.offset-s5 {
3544
+ margin-left: 41.6666666667%;
3545
+ }
3546
+
3547
+ .row .col.pull-s5 {
3548
+ right: 41.6666666667%;
3549
+ }
3550
+
3551
+ .row .col.push-s5 {
3552
+ left: 41.6666666667%;
3553
+ }
3554
+
3555
+ .row .col.offset-s6 {
3556
+ margin-left: 50%;
3557
+ }
3558
+
3559
+ .row .col.pull-s6 {
3560
+ right: 50%;
3561
+ }
3562
+
3563
+ .row .col.push-s6 {
3564
+ left: 50%;
3565
+ }
3566
+
3567
+ .row .col.offset-s7 {
3568
+ margin-left: 58.3333333333%;
3569
+ }
3570
+
3571
+ .row .col.pull-s7 {
3572
+ right: 58.3333333333%;
3573
+ }
3574
+
3575
+ .row .col.push-s7 {
3576
+ left: 58.3333333333%;
3577
+ }
3578
+
3579
+ .row .col.offset-s8 {
3580
+ margin-left: 66.6666666667%;
3581
+ }
3582
+
3583
+ .row .col.pull-s8 {
3584
+ right: 66.6666666667%;
3585
+ }
3586
+
3587
+ .row .col.push-s8 {
3588
+ left: 66.6666666667%;
3589
+ }
3590
+
3591
+ .row .col.offset-s9 {
3592
+ margin-left: 75%;
3593
+ }
3594
+
3595
+ .row .col.pull-s9 {
3596
+ right: 75%;
3597
+ }
3598
+
3599
+ .row .col.push-s9 {
3600
+ left: 75%;
3601
+ }
3602
+
3603
+ .row .col.offset-s10 {
3604
+ margin-left: 83.3333333333%;
3605
+ }
3606
+
3607
+ .row .col.pull-s10 {
3608
+ right: 83.3333333333%;
3609
+ }
3610
+
3611
+ .row .col.push-s10 {
3612
+ left: 83.3333333333%;
3613
+ }
3614
+
3615
+ .row .col.offset-s11 {
3616
+ margin-left: 91.6666666667%;
3617
+ }
3618
+
3619
+ .row .col.pull-s11 {
3620
+ right: 91.6666666667%;
3621
+ }
3622
+
3623
+ .row .col.push-s11 {
3624
+ left: 91.6666666667%;
3625
+ }
3626
+
3627
+ .row .col.offset-s12 {
3628
+ margin-left: 100%;
3629
+ }
3630
+
3631
+ .row .col.pull-s12 {
3632
+ right: 100%;
3633
+ }
3634
+
3635
+ .row .col.push-s12 {
3636
+ left: 100%;
3637
+ }
3638
+
3639
+ @media only screen and (min-width: 601px) {
3640
+ .row .col.m1 {
3641
+ width: 8.3333333333%;
3642
+ margin-left: auto;
3643
+ left: auto;
3644
+ right: auto;
3645
+ }
3646
+ .row .col.m2 {
3647
+ width: 16.6666666667%;
3648
+ margin-left: auto;
3649
+ left: auto;
3650
+ right: auto;
3651
+ }
3652
+ .row .col.m3 {
3653
+ width: 25%;
3654
+ margin-left: auto;
3655
+ left: auto;
3656
+ right: auto;
3657
+ }
3658
+ .row .col.m4 {
3659
+ width: 33.3333333333%;
3660
+ margin-left: auto;
3661
+ left: auto;
3662
+ right: auto;
3663
+ }
3664
+ .row .col.m5 {
3665
+ width: 41.6666666667%;
3666
+ margin-left: auto;
3667
+ left: auto;
3668
+ right: auto;
3669
+ }
3670
+ .row .col.m6 {
3671
+ width: 50%;
3672
+ margin-left: auto;
3673
+ left: auto;
3674
+ right: auto;
3675
+ }
3676
+ .row .col.m7 {
3677
+ width: 58.3333333333%;
3678
+ margin-left: auto;
3679
+ left: auto;
3680
+ right: auto;
3681
+ }
3682
+ .row .col.m8 {
3683
+ width: 66.6666666667%;
3684
+ margin-left: auto;
3685
+ left: auto;
3686
+ right: auto;
3687
+ }
3688
+ .row .col.m9 {
3689
+ width: 75%;
3690
+ margin-left: auto;
3691
+ left: auto;
3692
+ right: auto;
3693
+ }
3694
+ .row .col.m10 {
3695
+ width: 83.3333333333%;
3696
+ margin-left: auto;
3697
+ left: auto;
3698
+ right: auto;
3699
+ }
3700
+ .row .col.m11 {
3701
+ width: 91.6666666667%;
3702
+ margin-left: auto;
3703
+ left: auto;
3704
+ right: auto;
3705
+ }
3706
+ .row .col.m12 {
3707
+ width: 100%;
3708
+ margin-left: auto;
3709
+ left: auto;
3710
+ right: auto;
3711
+ }
3712
+ .row .col.offset-m1 {
3713
+ margin-left: 8.3333333333%;
3714
+ }
3715
+ .row .col.pull-m1 {
3716
+ right: 8.3333333333%;
3717
+ }
3718
+ .row .col.push-m1 {
3719
+ left: 8.3333333333%;
3720
+ }
3721
+ .row .col.offset-m2 {
3722
+ margin-left: 16.6666666667%;
3723
+ }
3724
+ .row .col.pull-m2 {
3725
+ right: 16.6666666667%;
3726
+ }
3727
+ .row .col.push-m2 {
3728
+ left: 16.6666666667%;
3729
+ }
3730
+ .row .col.offset-m3 {
3731
+ margin-left: 25%;
3732
+ }
3733
+ .row .col.pull-m3 {
3734
+ right: 25%;
3735
+ }
3736
+ .row .col.push-m3 {
3737
+ left: 25%;
3738
+ }
3739
+ .row .col.offset-m4 {
3740
+ margin-left: 33.3333333333%;
3741
+ }
3742
+ .row .col.pull-m4 {
3743
+ right: 33.3333333333%;
3744
+ }
3745
+ .row .col.push-m4 {
3746
+ left: 33.3333333333%;
3747
+ }
3748
+ .row .col.offset-m5 {
3749
+ margin-left: 41.6666666667%;
3750
+ }
3751
+ .row .col.pull-m5 {
3752
+ right: 41.6666666667%;
3753
+ }
3754
+ .row .col.push-m5 {
3755
+ left: 41.6666666667%;
3756
+ }
3757
+ .row .col.offset-m6 {
3758
+ margin-left: 50%;
3759
+ }
3760
+ .row .col.pull-m6 {
3761
+ right: 50%;
3762
+ }
3763
+ .row .col.push-m6 {
3764
+ left: 50%;
3765
+ }
3766
+ .row .col.offset-m7 {
3767
+ margin-left: 58.3333333333%;
3768
+ }
3769
+ .row .col.pull-m7 {
3770
+ right: 58.3333333333%;
3771
+ }
3772
+ .row .col.push-m7 {
3773
+ left: 58.3333333333%;
3774
+ }
3775
+ .row .col.offset-m8 {
3776
+ margin-left: 66.6666666667%;
3777
+ }
3778
+ .row .col.pull-m8 {
3779
+ right: 66.6666666667%;
3780
+ }
3781
+ .row .col.push-m8 {
3782
+ left: 66.6666666667%;
3783
+ }
3784
+ .row .col.offset-m9 {
3785
+ margin-left: 75%;
3786
+ }
3787
+ .row .col.pull-m9 {
3788
+ right: 75%;
3789
+ }
3790
+ .row .col.push-m9 {
3791
+ left: 75%;
3792
+ }
3793
+ .row .col.offset-m10 {
3794
+ margin-left: 83.3333333333%;
3795
+ }
3796
+ .row .col.pull-m10 {
3797
+ right: 83.3333333333%;
3798
+ }
3799
+ .row .col.push-m10 {
3800
+ left: 83.3333333333%;
3801
+ }
3802
+ .row .col.offset-m11 {
3803
+ margin-left: 91.6666666667%;
3804
+ }
3805
+ .row .col.pull-m11 {
3806
+ right: 91.6666666667%;
3807
+ }
3808
+ .row .col.push-m11 {
3809
+ left: 91.6666666667%;
3810
+ }
3811
+ .row .col.offset-m12 {
3812
+ margin-left: 100%;
3813
+ }
3814
+ .row .col.pull-m12 {
3815
+ right: 100%;
3816
+ }
3817
+ .row .col.push-m12 {
3818
+ left: 100%;
3819
+ }
3820
+ }
3821
+
3822
+ @media only screen and (min-width: 993px) {
3823
+ .row .col.l1 {
3824
+ width: 8.3333333333%;
3825
+ margin-left: auto;
3826
+ left: auto;
3827
+ right: auto;
3828
+ }
3829
+ .row .col.l2 {
3830
+ width: 16.6666666667%;
3831
+ margin-left: auto;
3832
+ left: auto;
3833
+ right: auto;
3834
+ }
3835
+ .row .col.l3 {
3836
+ width: 25%;
3837
+ margin-left: auto;
3838
+ left: auto;
3839
+ right: auto;
3840
+ }
3841
+ .row .col.l4 {
3842
+ width: 33.3333333333%;
3843
+ margin-left: auto;
3844
+ left: auto;
3845
+ right: auto;
3846
+ }
3847
+ .row .col.l5 {
3848
+ width: 41.6666666667%;
3849
+ margin-left: auto;
3850
+ left: auto;
3851
+ right: auto;
3852
+ }
3853
+ .row .col.l6 {
3854
+ width: 50%;
3855
+ margin-left: auto;
3856
+ left: auto;
3857
+ right: auto;
3858
+ }
3859
+ .row .col.l7 {
3860
+ width: 58.3333333333%;
3861
+ margin-left: auto;
3862
+ left: auto;
3863
+ right: auto;
3864
+ }
3865
+ .row .col.l8 {
3866
+ width: 66.6666666667%;
3867
+ margin-left: auto;
3868
+ left: auto;
3869
+ right: auto;
3870
+ }
3871
+ .row .col.l9 {
3872
+ width: 75%;
3873
+ margin-left: auto;
3874
+ left: auto;
3875
+ right: auto;
3876
+ }
3877
+ .row .col.l10 {
3878
+ width: 83.3333333333%;
3879
+ margin-left: auto;
3880
+ left: auto;
3881
+ right: auto;
3882
+ }
3883
+ .row .col.l11 {
3884
+ width: 91.6666666667%;
3885
+ margin-left: auto;
3886
+ left: auto;
3887
+ right: auto;
3888
+ }
3889
+ .row .col.l12 {
3890
+ width: 100%;
3891
+ margin-left: auto;
3892
+ left: auto;
3893
+ right: auto;
3894
+ }
3895
+ .row .col.offset-l1 {
3896
+ margin-left: 8.3333333333%;
3897
+ }
3898
+ .row .col.pull-l1 {
3899
+ right: 8.3333333333%;
3900
+ }
3901
+ .row .col.push-l1 {
3902
+ left: 8.3333333333%;
3903
+ }
3904
+ .row .col.offset-l2 {
3905
+ margin-left: 16.6666666667%;
3906
+ }
3907
+ .row .col.pull-l2 {
3908
+ right: 16.6666666667%;
3909
+ }
3910
+ .row .col.push-l2 {
3911
+ left: 16.6666666667%;
3912
+ }
3913
+ .row .col.offset-l3 {
3914
+ margin-left: 25%;
3915
+ }
3916
+ .row .col.pull-l3 {
3917
+ right: 25%;
3918
+ }
3919
+ .row .col.push-l3 {
3920
+ left: 25%;
3921
+ }
3922
+ .row .col.offset-l4 {
3923
+ margin-left: 33.3333333333%;
3924
+ }
3925
+ .row .col.pull-l4 {
3926
+ right: 33.3333333333%;
3927
+ }
3928
+ .row .col.push-l4 {
3929
+ left: 33.3333333333%;
3930
+ }
3931
+ .row .col.offset-l5 {
3932
+ margin-left: 41.6666666667%;
3933
+ }
3934
+ .row .col.pull-l5 {
3935
+ right: 41.6666666667%;
3936
+ }
3937
+ .row .col.push-l5 {
3938
+ left: 41.6666666667%;
3939
+ }
3940
+ .row .col.offset-l6 {
3941
+ margin-left: 50%;
3942
+ }
3943
+ .row .col.pull-l6 {
3944
+ right: 50%;
3945
+ }
3946
+ .row .col.push-l6 {
3947
+ left: 50%;
3948
+ }
3949
+ .row .col.offset-l7 {
3950
+ margin-left: 58.3333333333%;
3951
+ }
3952
+ .row .col.pull-l7 {
3953
+ right: 58.3333333333%;
3954
+ }
3955
+ .row .col.push-l7 {
3956
+ left: 58.3333333333%;
3957
+ }
3958
+ .row .col.offset-l8 {
3959
+ margin-left: 66.6666666667%;
3960
+ }
3961
+ .row .col.pull-l8 {
3962
+ right: 66.6666666667%;
3963
+ }
3964
+ .row .col.push-l8 {
3965
+ left: 66.6666666667%;
3966
+ }
3967
+ .row .col.offset-l9 {
3968
+ margin-left: 75%;
3969
+ }
3970
+ .row .col.pull-l9 {
3971
+ right: 75%;
3972
+ }
3973
+ .row .col.push-l9 {
3974
+ left: 75%;
3975
+ }
3976
+ .row .col.offset-l10 {
3977
+ margin-left: 83.3333333333%;
3978
+ }
3979
+ .row .col.pull-l10 {
3980
+ right: 83.3333333333%;
3981
+ }
3982
+ .row .col.push-l10 {
3983
+ left: 83.3333333333%;
3984
+ }
3985
+ .row .col.offset-l11 {
3986
+ margin-left: 91.6666666667%;
3987
+ }
3988
+ .row .col.pull-l11 {
3989
+ right: 91.6666666667%;
3990
+ }
3991
+ .row .col.push-l11 {
3992
+ left: 91.6666666667%;
3993
+ }
3994
+ .row .col.offset-l12 {
3995
+ margin-left: 100%;
3996
+ }
3997
+ .row .col.pull-l12 {
3998
+ right: 100%;
3999
+ }
4000
+ .row .col.push-l12 {
4001
+ left: 100%;
4002
+ }
4003
+ }
4004
+
4005
+ nav {
4006
+ color: #fff;
4007
+ background-color: #ee6e73;
4008
+ width: 100%;
4009
+ height: 56px;
4010
+ line-height: 56px;
4011
+ }
4012
+
4013
+ nav.nav-extended {
4014
+ height: auto;
4015
+ }
4016
+
4017
+ nav.nav-extended .nav-wrapper {
4018
+ min-height: 56px;
4019
+ height: auto;
4020
+ }
4021
+
4022
+ nav.nav-extended .nav-content {
4023
+ position: relative;
4024
+ line-height: normal;
4025
+ }
4026
+
4027
+ nav a {
4028
+ color: #fff;
4029
+ }
4030
+
4031
+ nav i,
4032
+ nav [class^="mdi-"], nav [class*="mdi-"],
4033
+ nav i.material-icons {
4034
+ display: block;
4035
+ font-size: 24px;
4036
+ height: 56px;
4037
+ line-height: 56px;
4038
+ }
4039
+
4040
+ nav .nav-wrapper {
4041
+ position: relative;
4042
+ height: 100%;
4043
+ }
4044
+
4045
+ @media only screen and (min-width: 993px) {
4046
+ nav a.button-collapse {
4047
+ display: none;
4048
+ }
4049
+ }
4050
+
4051
+ nav .button-collapse {
4052
+ float: left;
4053
+ position: relative;
4054
+ z-index: 1;
4055
+ height: 56px;
4056
+ margin: 0 18px;
4057
+ }
4058
+
4059
+ nav .button-collapse i {
4060
+ height: 56px;
4061
+ line-height: 56px;
4062
+ }
4063
+
4064
+ nav .brand-logo {
4065
+ position: absolute;
4066
+ color: #fff;
4067
+ display: inline-block;
4068
+ font-size: 2.1rem;
4069
+ padding: 0;
4070
+ white-space: nowrap;
4071
+ }
4072
+
4073
+ nav .brand-logo.center {
4074
+ left: 50%;
4075
+ -webkit-transform: translateX(-50%);
4076
+ transform: translateX(-50%);
4077
+ }
4078
+
4079
+ @media only screen and (max-width: 992px) {
4080
+ nav .brand-logo {
4081
+ left: 50%;
4082
+ -webkit-transform: translateX(-50%);
4083
+ transform: translateX(-50%);
4084
+ }
4085
+ nav .brand-logo.left, nav .brand-logo.right {
4086
+ padding: 0;
4087
+ -webkit-transform: none;
4088
+ transform: none;
4089
+ }
4090
+ nav .brand-logo.left {
4091
+ left: 0.5rem;
4092
+ }
4093
+ nav .brand-logo.right {
4094
+ right: 0.5rem;
4095
+ left: auto;
4096
+ }
4097
+ }
4098
+
4099
+ nav .brand-logo.right {
4100
+ right: 0.5rem;
4101
+ padding: 0;
4102
+ }
4103
+
4104
+ nav .brand-logo i,
4105
+ nav .brand-logo [class^="mdi-"], nav .brand-logo [class*="mdi-"],
4106
+ nav .brand-logo i.material-icons {
4107
+ float: left;
4108
+ margin-right: 15px;
4109
+ }
4110
+
4111
+ nav .nav-title {
4112
+ display: inline-block;
4113
+ font-size: 32px;
4114
+ padding: 28px 0;
4115
+ }
4116
+
4117
+ nav ul {
4118
+ margin: 0;
4119
+ }
4120
+
4121
+ nav ul li {
4122
+ transition: background-color .3s;
4123
+ float: left;
4124
+ padding: 0;
4125
+ }
4126
+
4127
+ nav ul li.active {
4128
+ background-color: rgba(0, 0, 0, 0.1);
4129
+ }
4130
+
4131
+ nav ul a {
4132
+ transition: background-color .3s;
4133
+ font-size: 1rem;
4134
+ color: #fff;
4135
+ display: block;
4136
+ padding: 0 15px;
4137
+ cursor: pointer;
4138
+ }
4139
+
4140
+ nav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {
4141
+ margin-top: -2px;
4142
+ margin-left: 15px;
4143
+ margin-right: 15px;
4144
+ }
4145
+
4146
+ nav ul a.btn > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {
4147
+ height: inherit;
4148
+ line-height: inherit;
4149
+ }
4150
+
4151
+ nav ul a:hover {
4152
+ background-color: rgba(0, 0, 0, 0.1);
4153
+ }
4154
+
4155
+ nav ul.left {
4156
+ float: left;
4157
+ }
4158
+
4159
+ nav form {
4160
+ height: 100%;
4161
+ }
4162
+
4163
+ nav .input-field {
4164
+ margin: 0;
4165
+ height: 100%;
4166
+ }
4167
+
4168
+ nav .input-field input {
4169
+ height: 100%;
4170
+ font-size: 1.2rem;
4171
+ border: none;
4172
+ padding-left: 2rem;
4173
+ }
4174
+
4175
+ nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {
4176
+ border: none;
4177
+ box-shadow: none;
4178
+ }
4179
+
4180
+ nav .input-field label {
4181
+ top: 0;
4182
+ left: 0;
4183
+ }
4184
+
4185
+ nav .input-field label i {
4186
+ color: rgba(255, 255, 255, 0.7);
4187
+ transition: color .3s;
4188
+ }
4189
+
4190
+ nav .input-field label.active i {
4191
+ color: #fff;
4192
+ }
4193
+
4194
+ .navbar-fixed {
4195
+ position: relative;
4196
+ height: 56px;
4197
+ z-index: 997;
4198
+ }
4199
+
4200
+ .navbar-fixed nav {
4201
+ position: fixed;
4202
+ }
4203
+
4204
+ @media only screen and (min-width: 601px) {
4205
+ nav.nav-extended .nav-wrapper {
4206
+ min-height: 64px;
4207
+ }
4208
+ nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {
4209
+ height: 64px;
4210
+ line-height: 64px;
4211
+ }
4212
+ .navbar-fixed {
4213
+ height: 64px;
4214
+ }
4215
+ }
4216
+
4217
+ @font-face {
4218
+ font-family: "Roboto";
4219
+ src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot");
4220
+ src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");
4221
+ font-weight: 200;
4222
+ }
4223
+
4224
+ @font-face {
4225
+ font-family: "Roboto";
4226
+ src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot");
4227
+ src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype");
4228
+ font-weight: 300;
4229
+ }
4230
+
4231
+ @font-face {
4232
+ font-family: "Roboto";
4233
+ src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot");
4234
+ src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");
4235
+ font-weight: 400;
4236
+ }
4237
+
4238
+ @font-face {
4239
+ font-family: "Roboto";
4240
+ src: url("../fonts/roboto/Roboto-Medium.eot");
4241
+ src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");
4242
+ font-weight: 500;
4243
+ }
4244
+
4245
+ @font-face {
4246
+ font-family: "Roboto";
4247
+ src: url("../fonts/roboto/Roboto-Bold.eot");
4248
+ src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");
4249
+ font-weight: 700;
4250
+ }
4251
+
4252
+ a {
4253
+ text-decoration: none;
4254
+ }
4255
+
4256
+ html {
4257
+ line-height: 1.5;
4258
+ font-family: "Roboto", sans-serif;
4259
+ font-weight: normal;
4260
+ color: rgba(0, 0, 0, 0.87);
4261
+ }
4262
+
4263
+ @media only screen and (min-width: 0) {
4264
+ html {
4265
+ font-size: 14px;
4266
+ }
4267
+ }
4268
+
4269
+ @media only screen and (min-width: 992px) {
4270
+ html {
4271
+ font-size: 14.5px;
4272
+ }
4273
+ }
4274
+
4275
+ @media only screen and (min-width: 1200px) {
4276
+ html {
4277
+ font-size: 15px;
4278
+ }
4279
+ }
4280
+
4281
+ h1, h2, h3, h4, h5, h6 {
4282
+ font-weight: 400;
4283
+ line-height: 1.1;
4284
+ }
4285
+
4286
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
4287
+ font-weight: inherit;
4288
+ }
4289
+
4290
+ h1 {
4291
+ font-size: 4.2rem;
4292
+ line-height: 110%;
4293
+ margin: 2.1rem 0 1.68rem 0;
4294
+ }
4295
+
4296
+ h2 {
4297
+ font-size: 3.56rem;
4298
+ line-height: 110%;
4299
+ margin: 1.78rem 0 1.424rem 0;
4300
+ }
4301
+
4302
+ h3 {
4303
+ font-size: 2.92rem;
4304
+ line-height: 110%;
4305
+ margin: 1.46rem 0 1.168rem 0;
4306
+ }
4307
+
4308
+ h4 {
4309
+ font-size: 2.28rem;
4310
+ line-height: 110%;
4311
+ margin: 1.14rem 0 0.912rem 0;
4312
+ }
4313
+
4314
+ h5 {
4315
+ font-size: 1.64rem;
4316
+ line-height: 110%;
4317
+ margin: 0.82rem 0 0.656rem 0;
4318
+ }
4319
+
4320
+ h6 {
4321
+ font-size: 1rem;
4322
+ line-height: 110%;
4323
+ margin: 0.5rem 0 0.4rem 0;
4324
+ }
4325
+
4326
+ em {
4327
+ font-style: italic;
4328
+ }
4329
+
4330
+ strong {
4331
+ font-weight: 500;
4332
+ }
4333
+
4334
+ small {
4335
+ font-size: 75%;
4336
+ }
4337
+
4338
+ .light, footer.page-footer .footer-copyright {
4339
+ font-weight: 300;
4340
+ }
4341
+
4342
+ .thin {
4343
+ font-weight: 200;
4344
+ }
4345
+
4346
+ .flow-text {
4347
+ font-weight: 300;
4348
+ }
4349
+
4350
+ @media only screen and (min-width: 360px) {
4351
+ .flow-text {
4352
+ font-size: 1.2rem;
4353
+ }
4354
+ }
4355
+
4356
+ @media only screen and (min-width: 390px) {
4357
+ .flow-text {
4358
+ font-size: 1.224rem;
4359
+ }
4360
+ }
4361
+
4362
+ @media only screen and (min-width: 420px) {
4363
+ .flow-text {
4364
+ font-size: 1.248rem;
4365
+ }
4366
+ }
4367
+
4368
+ @media only screen and (min-width: 450px) {
4369
+ .flow-text {
4370
+ font-size: 1.272rem;
4371
+ }
4372
+ }
4373
+
4374
+ @media only screen and (min-width: 480px) {
4375
+ .flow-text {
4376
+ font-size: 1.296rem;
4377
+ }
4378
+ }
4379
+
4380
+ @media only screen and (min-width: 510px) {
4381
+ .flow-text {
4382
+ font-size: 1.32rem;
4383
+ }
4384
+ }
4385
+
4386
+ @media only screen and (min-width: 540px) {
4387
+ .flow-text {
4388
+ font-size: 1.344rem;
4389
+ }
4390
+ }
4391
+
4392
+ @media only screen and (min-width: 570px) {
4393
+ .flow-text {
4394
+ font-size: 1.368rem;
4395
+ }
4396
+ }
4397
+
4398
+ @media only screen and (min-width: 600px) {
4399
+ .flow-text {
4400
+ font-size: 1.392rem;
4401
+ }
4402
+ }
4403
+
4404
+ @media only screen and (min-width: 630px) {
4405
+ .flow-text {
4406
+ font-size: 1.416rem;
4407
+ }
4408
+ }
4409
+
4410
+ @media only screen and (min-width: 660px) {
4411
+ .flow-text {
4412
+ font-size: 1.44rem;
4413
+ }
4414
+ }
4415
+
4416
+ @media only screen and (min-width: 690px) {
4417
+ .flow-text {
4418
+ font-size: 1.464rem;
4419
+ }
4420
+ }
4421
+
4422
+ @media only screen and (min-width: 720px) {
4423
+ .flow-text {
4424
+ font-size: 1.488rem;
4425
+ }
4426
+ }
4427
+
4428
+ @media only screen and (min-width: 750px) {
4429
+ .flow-text {
4430
+ font-size: 1.512rem;
4431
+ }
4432
+ }
4433
+
4434
+ @media only screen and (min-width: 780px) {
4435
+ .flow-text {
4436
+ font-size: 1.536rem;
4437
+ }
4438
+ }
4439
+
4440
+ @media only screen and (min-width: 810px) {
4441
+ .flow-text {
4442
+ font-size: 1.56rem;
4443
+ }
4444
+ }
4445
+
4446
+ @media only screen and (min-width: 840px) {
4447
+ .flow-text {
4448
+ font-size: 1.584rem;
4449
+ }
4450
+ }
4451
+
4452
+ @media only screen and (min-width: 870px) {
4453
+ .flow-text {
4454
+ font-size: 1.608rem;
4455
+ }
4456
+ }
4457
+
4458
+ @media only screen and (min-width: 900px) {
4459
+ .flow-text {
4460
+ font-size: 1.632rem;
4461
+ }
4462
+ }
4463
+
4464
+ @media only screen and (min-width: 930px) {
4465
+ .flow-text {
4466
+ font-size: 1.656rem;
4467
+ }
4468
+ }
4469
+
4470
+ @media only screen and (min-width: 960px) {
4471
+ .flow-text {
4472
+ font-size: 1.68rem;
4473
+ }
4474
+ }
4475
+
4476
+ @media only screen and (max-width: 360px) {
4477
+ .flow-text {
4478
+ font-size: 1.2rem;
4479
+ }
4480
+ }
4481
+
4482
+ .scale-transition {
4483
+ transition: -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4484
+ transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4485
+ transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4486
+ }
4487
+
4488
+ .scale-transition.scale-out {
4489
+ -webkit-transform: scale(0);
4490
+ transform: scale(0);
4491
+ transition: -webkit-transform .2s !important;
4492
+ transition: transform .2s !important;
4493
+ transition: transform .2s, -webkit-transform .2s !important;
4494
+ }
4495
+
4496
+ .scale-transition.scale-in {
4497
+ -webkit-transform: scale(1);
4498
+ transform: scale(1);
4499
+ }
4500
+
4501
+ .card-panel {
4502
+ transition: box-shadow .25s;
4503
+ padding: 24px;
4504
+ margin: 0.5rem 0 1rem 0;
4505
+ border-radius: 2px;
4506
+ background-color: #fff;
4507
+ }
4508
+
4509
+ .card {
4510
+ position: relative;
4511
+ margin: 0.5rem 0 1rem 0;
4512
+ background-color: #fff;
4513
+ transition: box-shadow .25s;
4514
+ border-radius: 2px;
4515
+ }
4516
+
4517
+ .card .card-title {
4518
+ font-size: 24px;
4519
+ font-weight: 300;
4520
+ }
4521
+
4522
+ .card .card-title.activator {
4523
+ cursor: pointer;
4524
+ }
4525
+
4526
+ .card.small, .card.medium, .card.large {
4527
+ position: relative;
4528
+ }
4529
+
4530
+ .card.small .card-image, .card.medium .card-image, .card.large .card-image {
4531
+ max-height: 60%;
4532
+ overflow: hidden;
4533
+ }
4534
+
4535
+ .card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {
4536
+ max-height: 40%;
4537
+ }
4538
+
4539
+ .card.small .card-content, .card.medium .card-content, .card.large .card-content {
4540
+ max-height: 100%;
4541
+ overflow: hidden;
4542
+ }
4543
+
4544
+ .card.small .card-action, .card.medium .card-action, .card.large .card-action {
4545
+ position: absolute;
4546
+ bottom: 0;
4547
+ left: 0;
4548
+ right: 0;
4549
+ }
4550
+
4551
+ .card.small {
4552
+ height: 300px;
4553
+ }
4554
+
4555
+ .card.medium {
4556
+ height: 400px;
4557
+ }
4558
+
4559
+ .card.large {
4560
+ height: 500px;
4561
+ }
4562
+
4563
+ .card.horizontal {
4564
+ display: -webkit-flex;
4565
+ display: -ms-flexbox;
4566
+ display: flex;
4567
+ }
4568
+
4569
+ .card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {
4570
+ height: 100%;
4571
+ max-height: none;
4572
+ overflow: visible;
4573
+ }
4574
+
4575
+ .card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {
4576
+ height: 100%;
4577
+ }
4578
+
4579
+ .card.horizontal .card-image {
4580
+ max-width: 50%;
4581
+ }
4582
+
4583
+ .card.horizontal .card-image img {
4584
+ border-radius: 2px 0 0 2px;
4585
+ max-width: 100%;
4586
+ width: auto;
4587
+ }
4588
+
4589
+ .card.horizontal .card-stacked {
4590
+ display: -webkit-flex;
4591
+ display: -ms-flexbox;
4592
+ display: flex;
4593
+ -webkit-flex-direction: column;
4594
+ -ms-flex-direction: column;
4595
+ flex-direction: column;
4596
+ -webkit-flex: 1;
4597
+ -ms-flex: 1;
4598
+ flex: 1;
4599
+ position: relative;
4600
+ }
4601
+
4602
+ .card.horizontal .card-stacked .card-content {
4603
+ -webkit-flex-grow: 1;
4604
+ -ms-flex-positive: 1;
4605
+ flex-grow: 1;
4606
+ }
4607
+
4608
+ .card.sticky-action .card-action {
4609
+ z-index: 2;
4610
+ }
4611
+
4612
+ .card.sticky-action .card-reveal {
4613
+ z-index: 1;
4614
+ padding-bottom: 64px;
4615
+ }
4616
+
4617
+ .card .card-image {
4618
+ position: relative;
4619
+ }
4620
+
4621
+ .card .card-image img {
4622
+ display: block;
4623
+ border-radius: 2px 2px 0 0;
4624
+ position: relative;
4625
+ left: 0;
4626
+ right: 0;
4627
+ top: 0;
4628
+ bottom: 0;
4629
+ width: 100%;
4630
+ }
4631
+
4632
+ .card .card-image .card-title {
4633
+ color: #fff;
4634
+ position: absolute;
4635
+ bottom: 0;
4636
+ left: 0;
4637
+ max-width: 100%;
4638
+ padding: 24px;
4639
+ }
4640
+
4641
+ .card .card-content {
4642
+ padding: 24px;
4643
+ border-radius: 0 0 2px 2px;
4644
+ }
4645
+
4646
+ .card .card-content p {
4647
+ margin: 0;
4648
+ color: inherit;
4649
+ }
4650
+
4651
+ .card .card-content .card-title {
4652
+ display: block;
4653
+ line-height: 32px;
4654
+ margin-bottom: 8px;
4655
+ }
4656
+
4657
+ .card .card-content .card-title i {
4658
+ line-height: 32px;
4659
+ }
4660
+
4661
+ .card .card-action {
4662
+ position: relative;
4663
+ background-color: inherit;
4664
+ border-top: 1px solid rgba(160, 160, 160, 0.2);
4665
+ padding: 16px 24px;
4666
+ }
4667
+
4668
+ .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating) {
4669
+ color: #ffab40;
4670
+ margin-right: 24px;
4671
+ transition: color .3s ease;
4672
+ text-transform: uppercase;
4673
+ }
4674
+
4675
+ .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover {
4676
+ color: #ffd8a6;
4677
+ }
4678
+
4679
+ .card .card-reveal {
4680
+ padding: 24px;
4681
+ position: absolute;
4682
+ background-color: #fff;
4683
+ width: 100%;
4684
+ overflow-y: auto;
4685
+ left: 0;
4686
+ top: 100%;
4687
+ height: 100%;
4688
+ z-index: 3;
4689
+ display: none;
4690
+ }
4691
+
4692
+ .card .card-reveal .card-title {
4693
+ cursor: pointer;
4694
+ display: block;
4695
+ }
4696
+
4697
+ #toast-container {
4698
+ display: block;
4699
+ position: fixed;
4700
+ z-index: 10000;
4701
+ }
4702
+
4703
+ @media only screen and (max-width: 600px) {
4704
+ #toast-container {
4705
+ min-width: 100%;
4706
+ bottom: 0%;
4707
+ }
4708
+ }
4709
+
4710
+ @media only screen and (min-width: 601px) and (max-width: 992px) {
4711
+ #toast-container {
4712
+ left: 5%;
4713
+ bottom: 7%;
4714
+ max-width: 90%;
4715
+ }
4716
+ }
4717
+
4718
+ @media only screen and (min-width: 993px) {
4719
+ #toast-container {
4720
+ top: 10%;
4721
+ right: 7%;
4722
+ max-width: 86%;
4723
+ }
4724
+ }
4725
+
4726
+ .toast {
4727
+ border-radius: 2px;
4728
+ top: 35px;
4729
+ width: auto;
4730
+ clear: both;
4731
+ margin-top: 10px;
4732
+ position: relative;
4733
+ max-width: 100%;
4734
+ height: auto;
4735
+ min-height: 48px;
4736
+ line-height: 1.5em;
4737
+ word-break: break-all;
4738
+ background-color: #323232;
4739
+ padding: 10px 25px;
4740
+ font-size: 1.1rem;
4741
+ font-weight: 300;
4742
+ color: #fff;
4743
+ display: -webkit-flex;
4744
+ display: -ms-flexbox;
4745
+ display: flex;
4746
+ -webkit-align-items: center;
4747
+ -ms-flex-align: center;
4748
+ align-items: center;
4749
+ -webkit-justify-content: space-between;
4750
+ -ms-flex-pack: justify;
4751
+ justify-content: space-between;
4752
+ }
4753
+
4754
+ .toast .btn, .toast .btn-large, .toast .btn-flat {
4755
+ margin: 0;
4756
+ margin-left: 3rem;
4757
+ }
4758
+
4759
+ .toast.rounded {
4760
+ border-radius: 24px;
4761
+ }
4762
+
4763
+ @media only screen and (max-width: 600px) {
4764
+ .toast {
4765
+ width: 100%;
4766
+ border-radius: 0;
4767
+ }
4768
+ }
4769
+
4770
+ @media only screen and (min-width: 601px) and (max-width: 992px) {
4771
+ .toast {
4772
+ float: left;
4773
+ }
4774
+ }
4775
+
4776
+ @media only screen and (min-width: 993px) {
4777
+ .toast {
4778
+ float: right;
4779
+ }
4780
+ }
4781
+
4782
+ .tabs {
4783
+ position: relative;
4784
+ overflow-x: auto;
4785
+ overflow-y: hidden;
4786
+ height: 48px;
4787
+ width: 100%;
4788
+ background-color: #fff;
4789
+ margin: 0 auto;
4790
+ white-space: nowrap;
4791
+ }
4792
+
4793
+ .tabs.tabs-transparent {
4794
+ background-color: transparent;
4795
+ }
4796
+
4797
+ .tabs.tabs-transparent .tab a,
4798
+ .tabs.tabs-transparent .tab.disabled a,
4799
+ .tabs.tabs-transparent .tab.disabled a:hover {
4800
+ color: rgba(255, 255, 255, 0.7);
4801
+ }
4802
+
4803
+ .tabs.tabs-transparent .tab a:hover,
4804
+ .tabs.tabs-transparent .tab a.active {
4805
+ color: #fff;
4806
+ }
4807
+
4808
+ .tabs.tabs-transparent .indicator {
4809
+ background-color: #fff;
4810
+ }
4811
+
4812
+ .tabs.tabs-fixed-width {
4813
+ display: -webkit-flex;
4814
+ display: -ms-flexbox;
4815
+ display: flex;
4816
+ }
4817
+
4818
+ .tabs.tabs-fixed-width .tab {
4819
+ -webkit-flex-grow: 1;
4820
+ -ms-flex-positive: 1;
4821
+ flex-grow: 1;
4822
+ }
4823
+
4824
+ .tabs .tab {
4825
+ display: inline-block;
4826
+ text-align: center;
4827
+ line-height: 48px;
4828
+ height: 48px;
4829
+ padding: 0;
4830
+ margin: 0;
4831
+ text-transform: uppercase;
4832
+ }
4833
+
4834
+ .tabs .tab a {
4835
+ color: rgba(238, 110, 115, 0.7);
4836
+ display: block;
4837
+ width: 100%;
4838
+ height: 100%;
4839
+ padding: 0 24px;
4840
+ font-size: 14px;
4841
+ text-overflow: ellipsis;
4842
+ overflow: hidden;
4843
+ transition: color .28s ease;
4844
+ }
4845
+
4846
+ .tabs .tab a:hover, .tabs .tab a.active {
4847
+ background-color: transparent;
4848
+ color: #ee6e73;
4849
+ }
4850
+
4851
+ .tabs .tab.disabled a,
4852
+ .tabs .tab.disabled a:hover {
4853
+ color: rgba(238, 110, 115, 0.7);
4854
+ cursor: default;
4855
+ }
4856
+
4857
+ .tabs .indicator {
4858
+ position: absolute;
4859
+ bottom: 0;
4860
+ height: 2px;
4861
+ background-color: #f6b2b5;
4862
+ will-change: left, right;
4863
+ }
4864
+
4865
+ @media only screen and (max-width: 992px) {
4866
+ .tabs {
4867
+ display: -webkit-flex;
4868
+ display: -ms-flexbox;
4869
+ display: flex;
4870
+ }
4871
+ .tabs .tab {
4872
+ -webkit-flex-grow: 1;
4873
+ -ms-flex-positive: 1;
4874
+ flex-grow: 1;
4875
+ }
4876
+ .tabs .tab a {
4877
+ padding: 0 12px;
4878
+ }
4879
+ }
4880
+
4881
+ .material-tooltip {
4882
+ padding: 10px 8px;
4883
+ font-size: 1rem;
4884
+ z-index: 2000;
4885
+ background-color: transparent;
4886
+ border-radius: 2px;
4887
+ color: #fff;
4888
+ min-height: 36px;
4889
+ line-height: 120%;
4890
+ opacity: 0;
4891
+ position: absolute;
4892
+ text-align: center;
4893
+ max-width: calc(100% - 4px);
4894
+ overflow: hidden;
4895
+ left: 0;
4896
+ top: 0;
4897
+ pointer-events: none;
4898
+ visibility: hidden;
4899
+ }
4900
+
4901
+ .backdrop {
4902
+ position: absolute;
4903
+ opacity: 0;
4904
+ height: 7px;
4905
+ width: 14px;
4906
+ border-radius: 0 0 50% 50%;
4907
+ background-color: #323232;
4908
+ z-index: -1;
4909
+ -webkit-transform-origin: 50% 0%;
4910
+ transform-origin: 50% 0%;
4911
+ visibility: hidden;
4912
+ }
4913
+
4914
+ .btn, .btn-large,
4915
+ .btn-flat {
4916
+ border: none;
4917
+ border-radius: 2px;
4918
+ display: inline-block;
4919
+ height: 36px;
4920
+ line-height: 36px;
4921
+ padding: 0 2rem;
4922
+ text-transform: uppercase;
4923
+ vertical-align: middle;
4924
+ -webkit-tap-highlight-color: transparent;
4925
+ }
4926
+
4927
+ .btn.disabled, .disabled.btn-large,
4928
+ .btn-floating.disabled,
4929
+ .btn-large.disabled,
4930
+ .btn-flat.disabled,
4931
+ .btn:disabled,
4932
+ .btn-large:disabled,
4933
+ .btn-floating:disabled,
4934
+ .btn-large:disabled,
4935
+ .btn-flat:disabled,
4936
+ .btn[disabled],
4937
+ [disabled].btn-large,
4938
+ .btn-floating[disabled],
4939
+ .btn-large[disabled],
4940
+ .btn-flat[disabled] {
4941
+ pointer-events: none;
4942
+ background-color: #DFDFDF !important;
4943
+ box-shadow: none;
4944
+ color: #9F9F9F !important;
4945
+ cursor: default;
4946
+ }
4947
+
4948
+ .btn.disabled:hover, .disabled.btn-large:hover,
4949
+ .btn-floating.disabled:hover,
4950
+ .btn-large.disabled:hover,
4951
+ .btn-flat.disabled:hover,
4952
+ .btn:disabled:hover,
4953
+ .btn-large:disabled:hover,
4954
+ .btn-floating:disabled:hover,
4955
+ .btn-large:disabled:hover,
4956
+ .btn-flat:disabled:hover,
4957
+ .btn[disabled]:hover,
4958
+ [disabled].btn-large:hover,
4959
+ .btn-floating[disabled]:hover,
4960
+ .btn-large[disabled]:hover,
4961
+ .btn-flat[disabled]:hover {
4962
+ background-color: #DFDFDF !important;
4963
+ color: #9F9F9F !important;
4964
+ }
4965
+
4966
+ .btn, .btn-large,
4967
+ .btn-floating,
4968
+ .btn-large,
4969
+ .btn-flat {
4970
+ outline: 0;
4971
+ }
4972
+
4973
+ .btn i, .btn-large i,
4974
+ .btn-floating i,
4975
+ .btn-large i,
4976
+ .btn-flat i {
4977
+ font-size: 1.3rem;
4978
+ line-height: inherit;
4979
+ }
4980
+
4981
+ .btn:focus, .btn-large:focus,
4982
+ .btn-floating:focus {
4983
+ background-color: #1d7d74;
4984
+ }
4985
+
4986
+ .btn, .btn-large {
4987
+ text-decoration: none;
4988
+ color: #fff;
4989
+ background-color: #26a69a;
4990
+ text-align: center;
4991
+ letter-spacing: .5px;
4992
+ transition: .2s ease-out;
4993
+ cursor: pointer;
4994
+ }
4995
+
4996
+ .btn:hover, .btn-large:hover {
4997
+ background-color: #2bbbad;
4998
+ }
4999
+
5000
+ .btn-floating {
5001
+ display: inline-block;
5002
+ color: #fff;
5003
+ position: relative;
5004
+ overflow: hidden;
5005
+ z-index: 1;
5006
+ width: 40px;
5007
+ height: 40px;
5008
+ line-height: 40px;
5009
+ padding: 0;
5010
+ background-color: #26a69a;
5011
+ border-radius: 50%;
5012
+ transition: .3s;
5013
+ cursor: pointer;
5014
+ vertical-align: middle;
5015
+ }
5016
+
5017
+ .btn-floating:hover {
5018
+ background-color: #26a69a;
5019
+ }
5020
+
5021
+ .btn-floating:before {
5022
+ border-radius: 0;
5023
+ }
5024
+
5025
+ .btn-floating.btn-large {
5026
+ width: 56px;
5027
+ height: 56px;
5028
+ }
5029
+
5030
+ .btn-floating.btn-large i {
5031
+ line-height: 56px;
5032
+ }
5033
+
5034
+ .btn-floating.halfway-fab {
5035
+ position: absolute;
5036
+ right: 24px;
5037
+ bottom: 0;
5038
+ -webkit-transform: translateY(50%);
5039
+ transform: translateY(50%);
5040
+ }
5041
+
5042
+ .btn-floating.halfway-fab.left {
5043
+ right: auto;
5044
+ left: 24px;
5045
+ }
5046
+
5047
+ .btn-floating i {
5048
+ width: inherit;
5049
+ display: inline-block;
5050
+ text-align: center;
5051
+ color: #fff;
5052
+ font-size: 1.6rem;
5053
+ line-height: 40px;
5054
+ }
5055
+
5056
+ button.btn-floating {
5057
+ border: none;
5058
+ }
5059
+
5060
+ .fixed-action-btn {
5061
+ position: fixed;
5062
+ right: 23px;
5063
+ bottom: 23px;
5064
+ padding-top: 15px;
5065
+ margin-bottom: 0;
5066
+ z-index: 998;
5067
+ }
5068
+
5069
+ .fixed-action-btn.active ul {
5070
+ visibility: visible;
5071
+ }
5072
+
5073
+ .fixed-action-btn.horizontal {
5074
+ padding: 0 0 0 15px;
5075
+ }
5076
+
5077
+ .fixed-action-btn.horizontal ul {
5078
+ text-align: right;
5079
+ right: 64px;
5080
+ top: 50%;
5081
+ -webkit-transform: translateY(-50%);
5082
+ transform: translateY(-50%);
5083
+ height: 100%;
5084
+ left: auto;
5085
+ width: 500px;
5086
+ /*width 100% only goes to width of button container */
5087
+ }
5088
+
5089
+ .fixed-action-btn.horizontal ul li {
5090
+ display: inline-block;
5091
+ margin: 15px 15px 0 0;
5092
+ }
5093
+
5094
+ .fixed-action-btn.toolbar {
5095
+ padding: 0;
5096
+ height: 56px;
5097
+ }
5098
+
5099
+ .fixed-action-btn.toolbar.active > a i {
5100
+ opacity: 0;
5101
+ }
5102
+
5103
+ .fixed-action-btn.toolbar ul {
5104
+ display: -webkit-flex;
5105
+ display: -ms-flexbox;
5106
+ display: flex;
5107
+ top: 0;
5108
+ bottom: 0;
5109
+ }
5110
+
5111
+ .fixed-action-btn.toolbar ul li {
5112
+ -webkit-flex: 1;
5113
+ -ms-flex: 1;
5114
+ flex: 1;
5115
+ display: inline-block;
5116
+ margin: 0;
5117
+ height: 100%;
5118
+ transition: none;
5119
+ }
5120
+
5121
+ .fixed-action-btn.toolbar ul li a {
5122
+ display: block;
5123
+ overflow: hidden;
5124
+ position: relative;
5125
+ width: 100%;
5126
+ height: 100%;
5127
+ background-color: transparent;
5128
+ box-shadow: none;
5129
+ color: #fff;
5130
+ line-height: 56px;
5131
+ z-index: 1;
5132
+ }
5133
+
5134
+ .fixed-action-btn.toolbar ul li a i {
5135
+ line-height: inherit;
5136
+ }
5137
+
5138
+ .fixed-action-btn ul {
5139
+ left: 0;
5140
+ right: 0;
5141
+ text-align: center;
5142
+ position: absolute;
5143
+ bottom: 64px;
5144
+ margin: 0;
5145
+ visibility: hidden;
5146
+ }
5147
+
5148
+ .fixed-action-btn ul li {
5149
+ margin-bottom: 15px;
5150
+ }
5151
+
5152
+ .fixed-action-btn ul a.btn-floating {
5153
+ opacity: 0;
5154
+ }
5155
+
5156
+ .fixed-action-btn .fab-backdrop {
5157
+ position: absolute;
5158
+ top: 0;
5159
+ left: 0;
5160
+ z-index: -1;
5161
+ width: 40px;
5162
+ height: 40px;
5163
+ background-color: #26a69a;
5164
+ border-radius: 50%;
5165
+ -webkit-transform: scale(0);
5166
+ transform: scale(0);
5167
+ }
5168
+
5169
+ .btn-flat {
5170
+ box-shadow: none;
5171
+ background-color: transparent;
5172
+ color: #343434;
5173
+ cursor: pointer;
5174
+ transition: background-color .2s;
5175
+ }
5176
+
5177
+ .btn-flat:focus, .btn-flat:active {
5178
+ background-color: transparent;
5179
+ }
5180
+
5181
+ .btn-flat:focus, .btn-flat:hover {
5182
+ background-color: rgba(0, 0, 0, 0.1);
5183
+ box-shadow: none;
5184
+ }
5185
+
5186
+ .btn-flat:active {
5187
+ background-color: rgba(0, 0, 0, 0.2);
5188
+ }
5189
+
5190
+ .btn-flat.disabled {
5191
+ background-color: transparent !important;
5192
+ color: #b3b3b3 !important;
5193
+ cursor: default;
5194
+ }
5195
+
5196
+ .btn-large {
5197
+ height: 54px;
5198
+ line-height: 54px;
5199
+ }
5200
+
5201
+ .btn-large i {
5202
+ font-size: 1.6rem;
5203
+ }
5204
+
5205
+ .btn-block {
5206
+ display: block;
5207
+ }
5208
+
5209
+ .dropdown-content {
5210
+ background-color: #fff;
5211
+ margin: 0;
5212
+ display: none;
5213
+ min-width: 100px;
5214
+ max-height: 650px;
5215
+ overflow-y: auto;
5216
+ opacity: 0;
5217
+ position: absolute;
5218
+ z-index: 999;
5219
+ will-change: width, height;
5220
+ }
5221
+
5222
+ .dropdown-content li {
5223
+ clear: both;
5224
+ color: rgba(0, 0, 0, 0.87);
5225
+ cursor: pointer;
5226
+ min-height: 50px;
5227
+ line-height: 1.5rem;
5228
+ width: 100%;
5229
+ text-align: left;
5230
+ text-transform: none;
5231
+ }
5232
+
5233
+ .dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {
5234
+ background-color: #eee;
5235
+ }
5236
+
5237
+ .dropdown-content li.active.selected {
5238
+ background-color: #e1e1e1;
5239
+ }
5240
+
5241
+ .dropdown-content li.divider {
5242
+ min-height: 0;
5243
+ height: 1px;
5244
+ }
5245
+
5246
+ .dropdown-content li > a, .dropdown-content li > span {
5247
+ font-size: 16px;
5248
+ color: #26a69a;
5249
+ display: block;
5250
+ line-height: 22px;
5251
+ padding: 14px 16px;
5252
+ }
5253
+
5254
+ .dropdown-content li > span > label {
5255
+ top: 1px;
5256
+ left: 0;
5257
+ height: 18px;
5258
+ }
5259
+
5260
+ .dropdown-content li > a > i {
5261
+ height: inherit;
5262
+ line-height: inherit;
5263
+ }
5264
+
5265
+ .input-field.col .dropdown-content [type="checkbox"] + label {
5266
+ top: 1px;
5267
+ left: 0;
5268
+ height: 18px;
5269
+ }
5270
+
5271
+ /*!
5272
+ * Waves v0.6.0
5273
+ * http://fian.my.id/Waves
5274
+ *
5275
+ * Copyright 2014 Alfiana E. Sibuea and other contributors
5276
+ * Released under the MIT license
5277
+ * https://github.com/fians/Waves/blob/master/LICENSE
5278
+ */
5279
+ .waves-effect {
5280
+ position: relative;
5281
+ cursor: pointer;
5282
+ display: inline-block;
5283
+ overflow: hidden;
5284
+ -webkit-user-select: none;
5285
+ -moz-user-select: none;
5286
+ -ms-user-select: none;
5287
+ user-select: none;
5288
+ -webkit-tap-highlight-color: transparent;
5289
+ vertical-align: middle;
5290
+ z-index: 1;
5291
+ transition: .3s ease-out;
5292
+ }
5293
+
5294
+ .waves-effect .waves-ripple {
5295
+ position: absolute;
5296
+ border-radius: 50%;
5297
+ width: 20px;
5298
+ height: 20px;
5299
+ margin-top: -10px;
5300
+ margin-left: -10px;
5301
+ opacity: 0;
5302
+ background: rgba(0, 0, 0, 0.2);
5303
+ transition: all 0.7s ease-out;
5304
+ transition-property: opacity, -webkit-transform;
5305
+ transition-property: transform, opacity;
5306
+ transition-property: transform, opacity, -webkit-transform;
5307
+ -webkit-transform: scale(0);
5308
+ transform: scale(0);
5309
+ pointer-events: none;
5310
+ }
5311
+
5312
+ .waves-effect.waves-light .waves-ripple {
5313
+ background-color: rgba(255, 255, 255, 0.45);
5314
+ }
5315
+
5316
+ .waves-effect.waves-red .waves-ripple {
5317
+ background-color: rgba(244, 67, 54, 0.7);
5318
+ }
5319
+
5320
+ .waves-effect.waves-yellow .waves-ripple {
5321
+ background-color: rgba(255, 235, 59, 0.7);
5322
+ }
5323
+
5324
+ .waves-effect.waves-orange .waves-ripple {
5325
+ background-color: rgba(255, 152, 0, 0.7);
5326
+ }
5327
+
5328
+ .waves-effect.waves-purple .waves-ripple {
5329
+ background-color: rgba(156, 39, 176, 0.7);
5330
+ }
5331
+
5332
+ .waves-effect.waves-green .waves-ripple {
5333
+ background-color: rgba(76, 175, 80, 0.7);
5334
+ }
5335
+
5336
+ .waves-effect.waves-teal .waves-ripple {
5337
+ background-color: rgba(0, 150, 136, 0.7);
5338
+ }
5339
+
5340
+ .waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] {
5341
+ border: 0;
5342
+ font-style: normal;
5343
+ font-size: inherit;
5344
+ text-transform: inherit;
5345
+ background: none;
5346
+ }
5347
+
5348
+ .waves-effect img {
5349
+ position: relative;
5350
+ z-index: -1;
5351
+ }
5352
+
5353
+ .waves-notransition {
5354
+ transition: none !important;
5355
+ }
5356
+
5357
+ .waves-circle {
5358
+ -webkit-transform: translateZ(0);
5359
+ transform: translateZ(0);
5360
+ -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
5361
+ }
5362
+
5363
+ .waves-input-wrapper {
5364
+ border-radius: 0.2em;
5365
+ vertical-align: bottom;
5366
+ }
5367
+
5368
+ .waves-input-wrapper .waves-button-input {
5369
+ position: relative;
5370
+ top: 0;
5371
+ left: 0;
5372
+ z-index: 1;
5373
+ }
5374
+
5375
+ .waves-circle {
5376
+ text-align: center;
5377
+ width: 2.5em;
5378
+ height: 2.5em;
5379
+ line-height: 2.5em;
5380
+ border-radius: 50%;
5381
+ -webkit-mask-image: none;
5382
+ }
5383
+
5384
+ .waves-block {
5385
+ display: block;
5386
+ }
5387
+
5388
+ /* Firefox Bug: link not triggered */
5389
+ .waves-effect .waves-ripple {
5390
+ z-index: -1;
5391
+ }
5392
+
5393
+ .modal {
5394
+ display: none;
5395
+ position: fixed;
5396
+ left: 0;
5397
+ right: 0;
5398
+ background-color: #fafafa;
5399
+ padding: 0;
5400
+ max-height: 70%;
5401
+ width: 55%;
5402
+ margin: auto;
5403
+ overflow-y: auto;
5404
+ border-radius: 2px;
5405
+ will-change: top, opacity;
5406
+ }
5407
+
5408
+ @media only screen and (max-width: 992px) {
5409
+ .modal {
5410
+ width: 80%;
5411
+ }
5412
+ }
5413
+
5414
+ .modal h1, .modal h2, .modal h3, .modal h4 {
5415
+ margin-top: 0;
5416
+ }
5417
+
5418
+ .modal .modal-content {
5419
+ padding: 24px;
5420
+ }
5421
+
5422
+ .modal .modal-close {
5423
+ cursor: pointer;
5424
+ }
5425
+
5426
+ .modal .modal-footer {
5427
+ border-radius: 0 0 2px 2px;
5428
+ background-color: #fafafa;
5429
+ padding: 4px 6px;
5430
+ height: 56px;
5431
+ width: 100%;
5432
+ }
5433
+
5434
+ .modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {
5435
+ float: right;
5436
+ margin: 6px 0;
5437
+ }
5438
+
5439
+ .modal-overlay {
5440
+ position: fixed;
5441
+ z-index: 999;
5442
+ top: -100px;
5443
+ left: 0;
5444
+ bottom: 0;
5445
+ right: 0;
5446
+ height: 125%;
5447
+ width: 100%;
5448
+ background: #000;
5449
+ display: none;
5450
+ will-change: opacity;
5451
+ }
5452
+
5453
+ .modal.modal-fixed-footer {
5454
+ padding: 0;
5455
+ height: 70%;
5456
+ }
5457
+
5458
+ .modal.modal-fixed-footer .modal-content {
5459
+ position: absolute;
5460
+ height: calc(100% - 56px);
5461
+ max-height: 100%;
5462
+ width: 100%;
5463
+ overflow-y: auto;
5464
+ }
5465
+
5466
+ .modal.modal-fixed-footer .modal-footer {
5467
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
5468
+ position: absolute;
5469
+ bottom: 0;
5470
+ }
5471
+
5472
+ .modal.bottom-sheet {
5473
+ top: auto;
5474
+ bottom: -100%;
5475
+ margin: 0;
5476
+ width: 100%;
5477
+ max-height: 45%;
5478
+ border-radius: 0;
5479
+ will-change: bottom, opacity;
5480
+ }
5481
+
5482
+ .collapsible {
5483
+ border-top: 1px solid #ddd;
5484
+ border-right: 1px solid #ddd;
5485
+ border-left: 1px solid #ddd;
5486
+ margin: 0.5rem 0 1rem 0;
5487
+ }
5488
+
5489
+ .collapsible-header {
5490
+ display: block;
5491
+ cursor: pointer;
5492
+ min-height: 3rem;
5493
+ line-height: 3rem;
5494
+ padding: 0 1rem;
5495
+ background-color: #fff;
5496
+ border-bottom: 1px solid #ddd;
5497
+ }
5498
+
5499
+ .collapsible-header i {
5500
+ width: 2rem;
5501
+ font-size: 1.6rem;
5502
+ line-height: 3rem;
5503
+ display: block;
5504
+ float: left;
5505
+ text-align: center;
5506
+ margin-right: 1rem;
5507
+ }
5508
+
5509
+ .collapsible-body {
5510
+ display: none;
5511
+ border-bottom: 1px solid #ddd;
5512
+ box-sizing: border-box;
5513
+ padding: 2rem;
5514
+ }
5515
+
5516
+ .side-nav .collapsible,
5517
+ .side-nav.fixed .collapsible {
5518
+ border: none;
5519
+ box-shadow: none;
5520
+ }
5521
+
5522
+ .side-nav .collapsible li,
5523
+ .side-nav.fixed .collapsible li {
5524
+ padding: 0;
5525
+ }
5526
+
5527
+ .side-nav .collapsible-header,
5528
+ .side-nav.fixed .collapsible-header {
5529
+ background-color: transparent;
5530
+ border: none;
5531
+ line-height: inherit;
5532
+ height: inherit;
5533
+ padding: 0 16px;
5534
+ }
5535
+
5536
+ .side-nav .collapsible-header:hover,
5537
+ .side-nav.fixed .collapsible-header:hover {
5538
+ background-color: rgba(0, 0, 0, 0.05);
5539
+ }
5540
+
5541
+ .side-nav .collapsible-header i,
5542
+ .side-nav.fixed .collapsible-header i {
5543
+ line-height: inherit;
5544
+ }
5545
+
5546
+ .side-nav .collapsible-body,
5547
+ .side-nav.fixed .collapsible-body {
5548
+ border: 0;
5549
+ background-color: #fff;
5550
+ }
5551
+
5552
+ .side-nav .collapsible-body li a,
5553
+ .side-nav.fixed .collapsible-body li a {
5554
+ padding: 0 23.5px 0 31px;
5555
+ }
5556
+
5557
+ .collapsible.popout {
5558
+ border: none;
5559
+ box-shadow: none;
5560
+ }
5561
+
5562
+ .collapsible.popout > li {
5563
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
5564
+ margin: 0 24px;
5565
+ transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
5566
+ }
5567
+
5568
+ .collapsible.popout > li.active {
5569
+ box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
5570
+ margin: 16px 0;
5571
+ }
5572
+
5573
+ .chip {
5574
+ display: inline-block;
5575
+ height: 32px;
5576
+ font-size: 13px;
5577
+ font-weight: 500;
5578
+ color: rgba(0, 0, 0, 0.6);
5579
+ line-height: 32px;
5580
+ padding: 0 12px;
5581
+ border-radius: 16px;
5582
+ background-color: #e4e4e4;
5583
+ margin-bottom: 5px;
5584
+ margin-right: 5px;
5585
+ }
5586
+
5587
+ .chip img {
5588
+ float: left;
5589
+ margin: 0 8px 0 -12px;
5590
+ height: 32px;
5591
+ width: 32px;
5592
+ border-radius: 50%;
5593
+ }
5594
+
5595
+ .chip .close {
5596
+ cursor: pointer;
5597
+ float: right;
5598
+ font-size: 16px;
5599
+ line-height: 32px;
5600
+ padding-left: 8px;
5601
+ }
5602
+
5603
+ .chips {
5604
+ border: none;
5605
+ border-bottom: 1px solid #9e9e9e;
5606
+ box-shadow: none;
5607
+ margin: 0 0 20px 0;
5608
+ min-height: 45px;
5609
+ outline: none;
5610
+ transition: all .3s;
5611
+ }
5612
+
5613
+ .chips.focus {
5614
+ border-bottom: 1px solid #26a69a;
5615
+ box-shadow: 0 1px 0 0 #26a69a;
5616
+ }
5617
+
5618
+ .chips:hover {
5619
+ cursor: text;
5620
+ }
5621
+
5622
+ .chips .chip.selected {
5623
+ background-color: #26a69a;
5624
+ color: #fff;
5625
+ }
5626
+
5627
+ .chips .input {
5628
+ background: none;
5629
+ border: 0;
5630
+ color: rgba(0, 0, 0, 0.6);
5631
+ display: inline-block;
5632
+ font-size: 1rem;
5633
+ height: 3rem;
5634
+ line-height: 32px;
5635
+ outline: 0;
5636
+ margin: 0;
5637
+ padding: 0 !important;
5638
+ width: 120px !important;
5639
+ }
5640
+
5641
+ .chips .input:focus {
5642
+ border: 0 !important;
5643
+ box-shadow: none !important;
5644
+ }
5645
+
5646
+ .prefix ~ .chips {
5647
+ margin-left: 3rem;
5648
+ width: 92%;
5649
+ width: calc(100% - 3rem);
5650
+ }
5651
+
5652
+ .chips:empty ~ label {
5653
+ font-size: 0.8rem;
5654
+ -webkit-transform: translateY(-140%);
5655
+ transform: translateY(-140%);
5656
+ }
5657
+
5658
+ .materialboxed {
5659
+ display: block;
5660
+ cursor: -webkit-zoom-in;
5661
+ cursor: zoom-in;
5662
+ position: relative;
5663
+ transition: opacity .4s;
5664
+ -webkit-backface-visibility: hidden;
5665
+ }
5666
+
5667
+ .materialboxed:hover:not(.active) {
5668
+ opacity: .8;
5669
+ }
5670
+
5671
+ .materialboxed.active {
5672
+ cursor: -webkit-zoom-out;
5673
+ cursor: zoom-out;
5674
+ }
5675
+
5676
+ #materialbox-overlay {
5677
+ position: fixed;
5678
+ top: 0;
5679
+ right: 0;
5680
+ bottom: 0;
5681
+ left: 0;
5682
+ background-color: #292929;
5683
+ z-index: 1000;
5684
+ will-change: opacity;
5685
+ }
5686
+
5687
+ .materialbox-caption {
5688
+ position: fixed;
5689
+ display: none;
5690
+ color: #fff;
5691
+ line-height: 50px;
5692
+ bottom: 0;
5693
+ left: 0;
5694
+ width: 100%;
5695
+ text-align: center;
5696
+ padding: 0% 15%;
5697
+ height: 50px;
5698
+ z-index: 1000;
5699
+ -webkit-font-smoothing: antialiased;
5700
+ }
5701
+
5702
+ select:focus {
5703
+ outline: 1px solid #c9f3ef;
5704
+ }
5705
+
5706
+ button:focus {
5707
+ outline: none;
5708
+ background-color: #2ab7a9;
5709
+ }
5710
+
5711
+ label {
5712
+ font-size: 0.8rem;
5713
+ color: #9e9e9e;
5714
+ }
5715
+
5716
+ /* Text Inputs + Textarea
5717
+ ========================================================================== */
5718
+ /* Style Placeholders */
5719
+ ::-webkit-input-placeholder {
5720
+ color: #d1d1d1;
5721
+ }
5722
+
5723
+ :-moz-placeholder {
5724
+ /* Firefox 18- */
5725
+ color: #d1d1d1;
5726
+ }
5727
+
5728
+ ::-moz-placeholder {
5729
+ /* Firefox 19+ */
5730
+ color: #d1d1d1;
5731
+ }
5732
+
5733
+ :-ms-input-placeholder {
5734
+ color: #d1d1d1;
5735
+ }
5736
+
5737
+ /* Text inputs */
5738
+ input:not([type]),
5739
+ input[type=text],
5740
+ input[type=password],
5741
+ input[type=email],
5742
+ input[type=url],
5743
+ input[type=time],
5744
+ input[type=date],
5745
+ input[type=datetime],
5746
+ input[type=datetime-local],
5747
+ input[type=tel],
5748
+ input[type=number],
5749
+ input[type=search],
5750
+ textarea.materialize-textarea {
5751
+ background-color: transparent;
5752
+ border: none;
5753
+ border-bottom: 1px solid #9e9e9e;
5754
+ border-radius: 0;
5755
+ outline: none;
5756
+ height: 3rem;
5757
+ width: 100%;
5758
+ font-size: 1rem;
5759
+ margin: 0 0 20px 0;
5760
+ padding: 0;
5761
+ box-shadow: none;
5762
+ box-sizing: content-box;
5763
+ transition: all 0.3s;
5764
+ }
5765
+
5766
+ input:not([type]):disabled, input:not([type])[readonly="readonly"],
5767
+ input[type=text]:disabled,
5768
+ input[type=text][readonly="readonly"],
5769
+ input[type=password]:disabled,
5770
+ input[type=password][readonly="readonly"],
5771
+ input[type=email]:disabled,
5772
+ input[type=email][readonly="readonly"],
5773
+ input[type=url]:disabled,
5774
+ input[type=url][readonly="readonly"],
5775
+ input[type=time]:disabled,
5776
+ input[type=time][readonly="readonly"],
5777
+ input[type=date]:disabled,
5778
+ input[type=date][readonly="readonly"],
5779
+ input[type=datetime]:disabled,
5780
+ input[type=datetime][readonly="readonly"],
5781
+ input[type=datetime-local]:disabled,
5782
+ input[type=datetime-local][readonly="readonly"],
5783
+ input[type=tel]:disabled,
5784
+ input[type=tel][readonly="readonly"],
5785
+ input[type=number]:disabled,
5786
+ input[type=number][readonly="readonly"],
5787
+ input[type=search]:disabled,
5788
+ input[type=search][readonly="readonly"],
5789
+ textarea.materialize-textarea:disabled,
5790
+ textarea.materialize-textarea[readonly="readonly"] {
5791
+ color: rgba(0, 0, 0, 0.26);
5792
+ border-bottom: 1px dotted rgba(0, 0, 0, 0.26);
5793
+ }
5794
+
5795
+ input:not([type]):disabled + label,
5796
+ input:not([type])[readonly="readonly"] + label,
5797
+ input[type=text]:disabled + label,
5798
+ input[type=text][readonly="readonly"] + label,
5799
+ input[type=password]:disabled + label,
5800
+ input[type=password][readonly="readonly"] + label,
5801
+ input[type=email]:disabled + label,
5802
+ input[type=email][readonly="readonly"] + label,
5803
+ input[type=url]:disabled + label,
5804
+ input[type=url][readonly="readonly"] + label,
5805
+ input[type=time]:disabled + label,
5806
+ input[type=time][readonly="readonly"] + label,
5807
+ input[type=date]:disabled + label,
5808
+ input[type=date][readonly="readonly"] + label,
5809
+ input[type=datetime]:disabled + label,
5810
+ input[type=datetime][readonly="readonly"] + label,
5811
+ input[type=datetime-local]:disabled + label,
5812
+ input[type=datetime-local][readonly="readonly"] + label,
5813
+ input[type=tel]:disabled + label,
5814
+ input[type=tel][readonly="readonly"] + label,
5815
+ input[type=number]:disabled + label,
5816
+ input[type=number][readonly="readonly"] + label,
5817
+ input[type=search]:disabled + label,
5818
+ input[type=search][readonly="readonly"] + label,
5819
+ textarea.materialize-textarea:disabled + label,
5820
+ textarea.materialize-textarea[readonly="readonly"] + label {
5821
+ color: rgba(0, 0, 0, 0.26);
5822
+ }
5823
+
5824
+ input:not([type]):focus:not([readonly]),
5825
+ input[type=text]:focus:not([readonly]),
5826
+ input[type=password]:focus:not([readonly]),
5827
+ input[type=email]:focus:not([readonly]),
5828
+ input[type=url]:focus:not([readonly]),
5829
+ input[type=time]:focus:not([readonly]),
5830
+ input[type=date]:focus:not([readonly]),
5831
+ input[type=datetime]:focus:not([readonly]),
5832
+ input[type=datetime-local]:focus:not([readonly]),
5833
+ input[type=tel]:focus:not([readonly]),
5834
+ input[type=number]:focus:not([readonly]),
5835
+ input[type=search]:focus:not([readonly]),
5836
+ textarea.materialize-textarea:focus:not([readonly]) {
5837
+ border-bottom: 1px solid #26a69a;
5838
+ box-shadow: 0 1px 0 0 #26a69a;
5839
+ }
5840
+
5841
+ input:not([type]):focus:not([readonly]) + label,
5842
+ input[type=text]:focus:not([readonly]) + label,
5843
+ input[type=password]:focus:not([readonly]) + label,
5844
+ input[type=email]:focus:not([readonly]) + label,
5845
+ input[type=url]:focus:not([readonly]) + label,
5846
+ input[type=time]:focus:not([readonly]) + label,
5847
+ input[type=date]:focus:not([readonly]) + label,
5848
+ input[type=datetime]:focus:not([readonly]) + label,
5849
+ input[type=datetime-local]:focus:not([readonly]) + label,
5850
+ input[type=tel]:focus:not([readonly]) + label,
5851
+ input[type=number]:focus:not([readonly]) + label,
5852
+ input[type=search]:focus:not([readonly]) + label,
5853
+ textarea.materialize-textarea:focus:not([readonly]) + label {
5854
+ color: #26a69a;
5855
+ }
5856
+
5857
+ input:not([type]).valid, input:not([type]):focus.valid,
5858
+ input[type=text].valid,
5859
+ input[type=text]:focus.valid,
5860
+ input[type=password].valid,
5861
+ input[type=password]:focus.valid,
5862
+ input[type=email].valid,
5863
+ input[type=email]:focus.valid,
5864
+ input[type=url].valid,
5865
+ input[type=url]:focus.valid,
5866
+ input[type=time].valid,
5867
+ input[type=time]:focus.valid,
5868
+ input[type=date].valid,
5869
+ input[type=date]:focus.valid,
5870
+ input[type=datetime].valid,
5871
+ input[type=datetime]:focus.valid,
5872
+ input[type=datetime-local].valid,
5873
+ input[type=datetime-local]:focus.valid,
5874
+ input[type=tel].valid,
5875
+ input[type=tel]:focus.valid,
5876
+ input[type=number].valid,
5877
+ input[type=number]:focus.valid,
5878
+ input[type=search].valid,
5879
+ input[type=search]:focus.valid,
5880
+ textarea.materialize-textarea.valid,
5881
+ textarea.materialize-textarea:focus.valid {
5882
+ border-bottom: 1px solid #4CAF50;
5883
+ box-shadow: 0 1px 0 0 #4CAF50;
5884
+ }
5885
+
5886
+ input:not([type]).valid + label:after,
5887
+ input:not([type]):focus.valid + label:after,
5888
+ input[type=text].valid + label:after,
5889
+ input[type=text]:focus.valid + label:after,
5890
+ input[type=password].valid + label:after,
5891
+ input[type=password]:focus.valid + label:after,
5892
+ input[type=email].valid + label:after,
5893
+ input[type=email]:focus.valid + label:after,
5894
+ input[type=url].valid + label:after,
5895
+ input[type=url]:focus.valid + label:after,
5896
+ input[type=time].valid + label:after,
5897
+ input[type=time]:focus.valid + label:after,
5898
+ input[type=date].valid + label:after,
5899
+ input[type=date]:focus.valid + label:after,
5900
+ input[type=datetime].valid + label:after,
5901
+ input[type=datetime]:focus.valid + label:after,
5902
+ input[type=datetime-local].valid + label:after,
5903
+ input[type=datetime-local]:focus.valid + label:after,
5904
+ input[type=tel].valid + label:after,
5905
+ input[type=tel]:focus.valid + label:after,
5906
+ input[type=number].valid + label:after,
5907
+ input[type=number]:focus.valid + label:after,
5908
+ input[type=search].valid + label:after,
5909
+ input[type=search]:focus.valid + label:after,
5910
+ textarea.materialize-textarea.valid + label:after,
5911
+ textarea.materialize-textarea:focus.valid + label:after {
5912
+ content: attr(data-success);
5913
+ color: #4CAF50;
5914
+ opacity: 1;
5915
+ }
5916
+
5917
+ input:not([type]).invalid, input:not([type]):focus.invalid,
5918
+ input[type=text].invalid,
5919
+ input[type=text]:focus.invalid,
5920
+ input[type=password].invalid,
5921
+ input[type=password]:focus.invalid,
5922
+ input[type=email].invalid,
5923
+ input[type=email]:focus.invalid,
5924
+ input[type=url].invalid,
5925
+ input[type=url]:focus.invalid,
5926
+ input[type=time].invalid,
5927
+ input[type=time]:focus.invalid,
5928
+ input[type=date].invalid,
5929
+ input[type=date]:focus.invalid,
5930
+ input[type=datetime].invalid,
5931
+ input[type=datetime]:focus.invalid,
5932
+ input[type=datetime-local].invalid,
5933
+ input[type=datetime-local]:focus.invalid,
5934
+ input[type=tel].invalid,
5935
+ input[type=tel]:focus.invalid,
5936
+ input[type=number].invalid,
5937
+ input[type=number]:focus.invalid,
5938
+ input[type=search].invalid,
5939
+ input[type=search]:focus.invalid,
5940
+ textarea.materialize-textarea.invalid,
5941
+ textarea.materialize-textarea:focus.invalid {
5942
+ border-bottom: 1px solid #F44336;
5943
+ box-shadow: 0 1px 0 0 #F44336;
5944
+ }
5945
+
5946
+ input:not([type]).invalid + label:after,
5947
+ input:not([type]):focus.invalid + label:after,
5948
+ input[type=text].invalid + label:after,
5949
+ input[type=text]:focus.invalid + label:after,
5950
+ input[type=password].invalid + label:after,
5951
+ input[type=password]:focus.invalid + label:after,
5952
+ input[type=email].invalid + label:after,
5953
+ input[type=email]:focus.invalid + label:after,
5954
+ input[type=url].invalid + label:after,
5955
+ input[type=url]:focus.invalid + label:after,
5956
+ input[type=time].invalid + label:after,
5957
+ input[type=time]:focus.invalid + label:after,
5958
+ input[type=date].invalid + label:after,
5959
+ input[type=date]:focus.invalid + label:after,
5960
+ input[type=datetime].invalid + label:after,
5961
+ input[type=datetime]:focus.invalid + label:after,
5962
+ input[type=datetime-local].invalid + label:after,
5963
+ input[type=datetime-local]:focus.invalid + label:after,
5964
+ input[type=tel].invalid + label:after,
5965
+ input[type=tel]:focus.invalid + label:after,
5966
+ input[type=number].invalid + label:after,
5967
+ input[type=number]:focus.invalid + label:after,
5968
+ input[type=search].invalid + label:after,
5969
+ input[type=search]:focus.invalid + label:after,
5970
+ textarea.materialize-textarea.invalid + label:after,
5971
+ textarea.materialize-textarea:focus.invalid + label:after {
5972
+ content: attr(data-error);
5973
+ color: #F44336;
5974
+ opacity: 1;
5975
+ }
5976
+
5977
+ input:not([type]).validate + label,
5978
+ input[type=text].validate + label,
5979
+ input[type=password].validate + label,
5980
+ input[type=email].validate + label,
5981
+ input[type=url].validate + label,
5982
+ input[type=time].validate + label,
5983
+ input[type=date].validate + label,
5984
+ input[type=datetime].validate + label,
5985
+ input[type=datetime-local].validate + label,
5986
+ input[type=tel].validate + label,
5987
+ input[type=number].validate + label,
5988
+ input[type=search].validate + label,
5989
+ textarea.materialize-textarea.validate + label {
5990
+ width: 100%;
5991
+ pointer-events: none;
5992
+ }
5993
+
5994
+ input:not([type]) + label:after,
5995
+ input[type=text] + label:after,
5996
+ input[type=password] + label:after,
5997
+ input[type=email] + label:after,
5998
+ input[type=url] + label:after,
5999
+ input[type=time] + label:after,
6000
+ input[type=date] + label:after,
6001
+ input[type=datetime] + label:after,
6002
+ input[type=datetime-local] + label:after,
6003
+ input[type=tel] + label:after,
6004
+ input[type=number] + label:after,
6005
+ input[type=search] + label:after,
6006
+ textarea.materialize-textarea + label:after {
6007
+ display: block;
6008
+ content: "";
6009
+ position: absolute;
6010
+ top: 60px;
6011
+ opacity: 0;
6012
+ transition: .2s opacity ease-out, .2s color ease-out;
6013
+ }
6014
+
6015
+ .input-field {
6016
+ position: relative;
6017
+ margin-top: 1rem;
6018
+ }
6019
+
6020
+ .input-field.inline {
6021
+ display: inline-block;
6022
+ vertical-align: middle;
6023
+ margin-left: 5px;
6024
+ }
6025
+
6026
+ .input-field.inline input,
6027
+ .input-field.inline .select-dropdown {
6028
+ margin-bottom: 1rem;
6029
+ }
6030
+
6031
+ .input-field.col label {
6032
+ left: 0.75rem;
6033
+ }
6034
+
6035
+ .input-field.col .prefix ~ label,
6036
+ .input-field.col .prefix ~ .validate ~ label {
6037
+ width: calc(100% - 3rem - 1.5rem);
6038
+ }
6039
+
6040
+ .input-field label {
6041
+ color: #9e9e9e;
6042
+ position: absolute;
6043
+ top: 0.8rem;
6044
+ left: 0;
6045
+ font-size: 1rem;
6046
+ cursor: text;
6047
+ transition: .2s ease-out;
6048
+ }
6049
+
6050
+ .input-field label:not(.label-icon).active {
6051
+ font-size: 0.8rem;
6052
+ -webkit-transform: translateY(-140%);
6053
+ transform: translateY(-140%);
6054
+ }
6055
+
6056
+ .input-field .prefix {
6057
+ position: absolute;
6058
+ width: 3rem;
6059
+ font-size: 2rem;
6060
+ transition: color .2s;
6061
+ }
6062
+
6063
+ .input-field .prefix.active {
6064
+ color: #26a69a;
6065
+ }
6066
+
6067
+ .input-field .prefix ~ input,
6068
+ .input-field .prefix ~ textarea,
6069
+ .input-field .prefix ~ label,
6070
+ .input-field .prefix ~ .validate ~ label,
6071
+ .input-field .prefix ~ .autocomplete-content {
6072
+ margin-left: 3rem;
6073
+ width: 92%;
6074
+ width: calc(100% - 3rem);
6075
+ }
6076
+
6077
+ .input-field .prefix ~ label {
6078
+ margin-left: 3rem;
6079
+ }
6080
+
6081
+ @media only screen and (max-width: 992px) {
6082
+ .input-field .prefix ~ input {
6083
+ width: 86%;
6084
+ width: calc(100% - 3rem);
6085
+ }
6086
+ }
6087
+
6088
+ @media only screen and (max-width: 600px) {
6089
+ .input-field .prefix ~ input {
6090
+ width: 80%;
6091
+ width: calc(100% - 3rem);
6092
+ }
6093
+ }
6094
+
6095
+ /* Search Field */
6096
+ .input-field input[type=search] {
6097
+ display: block;
6098
+ line-height: inherit;
6099
+ padding-left: 4rem;
6100
+ width: calc(100% - 4rem);
6101
+ }
6102
+
6103
+ .input-field input[type=search]:focus {
6104
+ background-color: #fff;
6105
+ border: 0;
6106
+ box-shadow: none;
6107
+ color: #444;
6108
+ }
6109
+
6110
+ .input-field input[type=search]:focus + label i,
6111
+ .input-field input[type=search]:focus ~ .mdi-navigation-close,
6112
+ .input-field input[type=search]:focus ~ .material-icons {
6113
+ color: #444;
6114
+ }
6115
+
6116
+ .input-field input[type=search] + label {
6117
+ left: 1rem;
6118
+ }
6119
+
6120
+ .input-field input[type=search] ~ .mdi-navigation-close,
6121
+ .input-field input[type=search] ~ .material-icons {
6122
+ position: absolute;
6123
+ top: 0;
6124
+ right: 1rem;
6125
+ color: transparent;
6126
+ cursor: pointer;
6127
+ font-size: 2rem;
6128
+ transition: .3s color;
6129
+ }
6130
+
6131
+ /* Textarea */
6132
+ textarea {
6133
+ width: 100%;
6134
+ height: 3rem;
6135
+ background-color: transparent;
6136
+ }
6137
+
6138
+ textarea.materialize-textarea {
6139
+ overflow-y: hidden;
6140
+ /* prevents scroll bar flash */
6141
+ padding: .8rem 0 1.6rem 0;
6142
+ /* prevents text jump on Enter keypress */
6143
+ resize: none;
6144
+ min-height: 3rem;
6145
+ }
6146
+
6147
+ .hiddendiv {
6148
+ display: none;
6149
+ white-space: pre-wrap;
6150
+ word-wrap: break-word;
6151
+ overflow-wrap: break-word;
6152
+ /* future version of deprecated 'word-wrap' */
6153
+ padding-top: 1.2rem;
6154
+ /* prevents text jump on Enter keypress */
6155
+ }
6156
+
6157
+ /* Autocomplete */
6158
+ .autocomplete-content {
6159
+ margin-top: -15px;
6160
+ display: block;
6161
+ opacity: 1;
6162
+ position: static;
6163
+ }
6164
+
6165
+ .autocomplete-content li .highlight {
6166
+ color: #444;
6167
+ }
6168
+
6169
+ .autocomplete-content li img {
6170
+ height: 40px;
6171
+ width: 40px;
6172
+ margin: 5px 15px;
6173
+ }
6174
+
6175
+ /* Radio Buttons
6176
+ ========================================================================== */
6177
+ [type="radio"]:not(:checked),
6178
+ [type="radio"]:checked {
6179
+ position: absolute;
6180
+ left: -9999px;
6181
+ opacity: 0;
6182
+ }
6183
+
6184
+ [type="radio"]:not(:checked) + label,
6185
+ [type="radio"]:checked + label {
6186
+ position: relative;
6187
+ padding-left: 35px;
6188
+ cursor: pointer;
6189
+ display: inline-block;
6190
+ height: 25px;
6191
+ line-height: 25px;
6192
+ font-size: 1rem;
6193
+ transition: .28s ease;
6194
+ /* webkit (konqueror) browsers */
6195
+ -webkit-user-select: none;
6196
+ -moz-user-select: none;
6197
+ -ms-user-select: none;
6198
+ user-select: none;
6199
+ }
6200
+
6201
+ [type="radio"] + label:before,
6202
+ [type="radio"] + label:after {
6203
+ content: '';
6204
+ position: absolute;
6205
+ left: 0;
6206
+ top: 0;
6207
+ margin: 4px;
6208
+ width: 16px;
6209
+ height: 16px;
6210
+ z-index: 0;
6211
+ transition: .28s ease;
6212
+ }
6213
+
6214
+ /* Unchecked styles */
6215
+ [type="radio"]:not(:checked) + label:before,
6216
+ [type="radio"]:not(:checked) + label:after,
6217
+ [type="radio"]:checked + label:before,
6218
+ [type="radio"]:checked + label:after,
6219
+ [type="radio"].with-gap:checked + label:before,
6220
+ [type="radio"].with-gap:checked + label:after {
6221
+ border-radius: 50%;
6222
+ }
6223
+
6224
+ [type="radio"]:not(:checked) + label:before,
6225
+ [type="radio"]:not(:checked) + label:after {
6226
+ border: 2px solid #5a5a5a;
6227
+ }
6228
+
6229
+ [type="radio"]:not(:checked) + label:after {
6230
+ -webkit-transform: scale(0);
6231
+ transform: scale(0);
6232
+ }
6233
+
6234
+ /* Checked styles */
6235
+ [type="radio"]:checked + label:before {
6236
+ border: 2px solid transparent;
6237
+ }
6238
+
6239
+ [type="radio"]:checked + label:after,
6240
+ [type="radio"].with-gap:checked + label:before,
6241
+ [type="radio"].with-gap:checked + label:after {
6242
+ border: 2px solid #26a69a;
6243
+ }
6244
+
6245
+ [type="radio"]:checked + label:after,
6246
+ [type="radio"].with-gap:checked + label:after {
6247
+ background-color: #26a69a;
6248
+ }
6249
+
6250
+ [type="radio"]:checked + label:after {
6251
+ -webkit-transform: scale(1.02);
6252
+ transform: scale(1.02);
6253
+ }
6254
+
6255
+ /* Radio With gap */
6256
+ [type="radio"].with-gap:checked + label:after {
6257
+ -webkit-transform: scale(0.5);
6258
+ transform: scale(0.5);
6259
+ }
6260
+
6261
+ /* Focused styles */
6262
+ [type="radio"].tabbed:focus + label:before {
6263
+ box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
6264
+ }
6265
+
6266
+ /* Disabled Radio With gap */
6267
+ [type="radio"].with-gap:disabled:checked + label:before {
6268
+ border: 2px solid rgba(0, 0, 0, 0.26);
6269
+ }
6270
+
6271
+ [type="radio"].with-gap:disabled:checked + label:after {
6272
+ border: none;
6273
+ background-color: rgba(0, 0, 0, 0.26);
6274
+ }
6275
+
6276
+ /* Disabled style */
6277
+ [type="radio"]:disabled:not(:checked) + label:before,
6278
+ [type="radio"]:disabled:checked + label:before {
6279
+ background-color: transparent;
6280
+ border-color: rgba(0, 0, 0, 0.26);
6281
+ }
6282
+
6283
+ [type="radio"]:disabled + label {
6284
+ color: rgba(0, 0, 0, 0.26);
6285
+ }
6286
+
6287
+ [type="radio"]:disabled:not(:checked) + label:before {
6288
+ border-color: rgba(0, 0, 0, 0.26);
6289
+ }
6290
+
6291
+ [type="radio"]:disabled:checked + label:after {
6292
+ background-color: rgba(0, 0, 0, 0.26);
6293
+ border-color: #BDBDBD;
6294
+ }
6295
+
6296
+ /* Checkboxes
6297
+ ========================================================================== */
6298
+ /* CUSTOM CSS CHECKBOXES */
6299
+ form p {
6300
+ margin-bottom: 10px;
6301
+ text-align: left;
6302
+ }
6303
+
6304
+ form p:last-child {
6305
+ margin-bottom: 0;
6306
+ }
6307
+
6308
+ /* Remove default checkbox */
6309
+ [type="checkbox"]:not(:checked),
6310
+ [type="checkbox"]:checked {
6311
+ position: absolute;
6312
+ left: -9999px;
6313
+ opacity: 0;
6314
+ }
6315
+
6316
+ [type="checkbox"] {
6317
+ /* checkbox aspect */
6318
+ }
6319
+
6320
+ [type="checkbox"] + label {
6321
+ position: relative;
6322
+ padding-left: 35px;
6323
+ cursor: pointer;
6324
+ display: inline-block;
6325
+ height: 25px;
6326
+ line-height: 25px;
6327
+ font-size: 1rem;
6328
+ -webkit-user-select: none;
6329
+ /* webkit (safari, chrome) browsers */
6330
+ -moz-user-select: none;
6331
+ /* mozilla browsers */
6332
+ -khtml-user-select: none;
6333
+ /* webkit (konqueror) browsers */
6334
+ -ms-user-select: none;
6335
+ /* IE10+ */
6336
+ }
6337
+
6338
+ [type="checkbox"] + label:before,
6339
+ [type="checkbox"]:not(.filled-in) + label:after {
6340
+ content: '';
6341
+ position: absolute;
6342
+ top: 0;
6343
+ left: 0;
6344
+ width: 18px;
6345
+ height: 18px;
6346
+ z-index: 0;
6347
+ border: 2px solid #5a5a5a;
6348
+ border-radius: 1px;
6349
+ margin-top: 2px;
6350
+ transition: .2s;
6351
+ }
6352
+
6353
+ [type="checkbox"]:not(.filled-in) + label:after {
6354
+ border: 0;
6355
+ -webkit-transform: scale(0);
6356
+ transform: scale(0);
6357
+ }
6358
+
6359
+ [type="checkbox"]:not(:checked):disabled + label:before {
6360
+ border: none;
6361
+ background-color: rgba(0, 0, 0, 0.26);
6362
+ }
6363
+
6364
+ [type="checkbox"].tabbed:focus + label:after {
6365
+ -webkit-transform: scale(1);
6366
+ transform: scale(1);
6367
+ border: 0;
6368
+ border-radius: 50%;
6369
+ box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
6370
+ background-color: rgba(0, 0, 0, 0.1);
6371
+ }
6372
+
6373
+ [type="checkbox"]:checked + label:before {
6374
+ top: -4px;
6375
+ left: -5px;
6376
+ width: 12px;
6377
+ height: 22px;
6378
+ border-top: 2px solid transparent;
6379
+ border-left: 2px solid transparent;
6380
+ border-right: 2px solid #26a69a;
6381
+ border-bottom: 2px solid #26a69a;
6382
+ -webkit-transform: rotate(40deg);
6383
+ transform: rotate(40deg);
6384
+ -webkit-backface-visibility: hidden;
6385
+ backface-visibility: hidden;
6386
+ -webkit-transform-origin: 100% 100%;
6387
+ transform-origin: 100% 100%;
6388
+ }
6389
+
6390
+ [type="checkbox"]:checked:disabled + label:before {
6391
+ border-right: 2px solid rgba(0, 0, 0, 0.26);
6392
+ border-bottom: 2px solid rgba(0, 0, 0, 0.26);
6393
+ }
6394
+
6395
+ /* Indeterminate checkbox */
6396
+ [type="checkbox"]:indeterminate + label:before {
6397
+ top: -11px;
6398
+ left: -12px;
6399
+ width: 10px;
6400
+ height: 22px;
6401
+ border-top: none;
6402
+ border-left: none;
6403
+ border-right: 2px solid #26a69a;
6404
+ border-bottom: none;
6405
+ -webkit-transform: rotate(90deg);
6406
+ transform: rotate(90deg);
6407
+ -webkit-backface-visibility: hidden;
6408
+ backface-visibility: hidden;
6409
+ -webkit-transform-origin: 100% 100%;
6410
+ transform-origin: 100% 100%;
6411
+ }
6412
+
6413
+ [type="checkbox"]:indeterminate:disabled + label:before {
6414
+ border-right: 2px solid rgba(0, 0, 0, 0.26);
6415
+ background-color: transparent;
6416
+ }
6417
+
6418
+ [type="checkbox"].filled-in + label:after {
6419
+ border-radius: 2px;
6420
+ }
6421
+
6422
+ [type="checkbox"].filled-in + label:before,
6423
+ [type="checkbox"].filled-in + label:after {
6424
+ content: '';
6425
+ left: 0;
6426
+ position: absolute;
6427
+ /* .1s delay is for check animation */
6428
+ transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
6429
+ z-index: 1;
6430
+ }
6431
+
6432
+ [type="checkbox"].filled-in:not(:checked) + label:before {
6433
+ width: 0;
6434
+ height: 0;
6435
+ border: 3px solid transparent;
6436
+ left: 6px;
6437
+ top: 10px;
6438
+ -webkit-transform: rotateZ(37deg);
6439
+ transform: rotateZ(37deg);
6440
+ -webkit-transform-origin: 20% 40%;
6441
+ transform-origin: 100% 100%;
6442
+ }
6443
+
6444
+ [type="checkbox"].filled-in:not(:checked) + label:after {
6445
+ height: 20px;
6446
+ width: 20px;
6447
+ background-color: transparent;
6448
+ border: 2px solid #5a5a5a;
6449
+ top: 0px;
6450
+ z-index: 0;
6451
+ }
6452
+
6453
+ [type="checkbox"].filled-in:checked + label:before {
6454
+ top: 0;
6455
+ left: 1px;
6456
+ width: 8px;
6457
+ height: 13px;
6458
+ border-top: 2px solid transparent;
6459
+ border-left: 2px solid transparent;
6460
+ border-right: 2px solid #fff;
6461
+ border-bottom: 2px solid #fff;
6462
+ -webkit-transform: rotateZ(37deg);
6463
+ transform: rotateZ(37deg);
6464
+ -webkit-transform-origin: 100% 100%;
6465
+ transform-origin: 100% 100%;
6466
+ }
6467
+
6468
+ [type="checkbox"].filled-in:checked + label:after {
6469
+ top: 0;
6470
+ width: 20px;
6471
+ height: 20px;
6472
+ border: 2px solid #26a69a;
6473
+ background-color: #26a69a;
6474
+ z-index: 0;
6475
+ }
6476
+
6477
+ [type="checkbox"].filled-in.tabbed:focus + label:after {
6478
+ border-radius: 2px;
6479
+ border-color: #5a5a5a;
6480
+ background-color: rgba(0, 0, 0, 0.1);
6481
+ }
6482
+
6483
+ [type="checkbox"].filled-in.tabbed:checked:focus + label:after {
6484
+ border-radius: 2px;
6485
+ background-color: #26a69a;
6486
+ border-color: #26a69a;
6487
+ }
6488
+
6489
+ [type="checkbox"].filled-in:disabled:not(:checked) + label:before {
6490
+ background-color: transparent;
6491
+ border: 2px solid transparent;
6492
+ }
6493
+
6494
+ [type="checkbox"].filled-in:disabled:not(:checked) + label:after {
6495
+ border-color: transparent;
6496
+ background-color: #BDBDBD;
6497
+ }
6498
+
6499
+ [type="checkbox"].filled-in:disabled:checked + label:before {
6500
+ background-color: transparent;
6501
+ }
6502
+
6503
+ [type="checkbox"].filled-in:disabled:checked + label:after {
6504
+ background-color: #BDBDBD;
6505
+ border-color: #BDBDBD;
6506
+ }
6507
+
6508
+ /* Switch
6509
+ ========================================================================== */
6510
+ .switch,
6511
+ .switch * {
6512
+ -webkit-user-select: none;
6513
+ -moz-user-select: none;
6514
+ -khtml-user-select: none;
6515
+ -ms-user-select: none;
6516
+ }
6517
+
6518
+ .switch label {
6519
+ cursor: pointer;
6520
+ }
6521
+
6522
+ .switch label input[type=checkbox] {
6523
+ opacity: 0;
6524
+ width: 0;
6525
+ height: 0;
6526
+ }
6527
+
6528
+ .switch label input[type=checkbox]:checked + .lever {
6529
+ background-color: #84c7c1;
6530
+ }
6531
+
6532
+ .switch label input[type=checkbox]:checked + .lever:after {
6533
+ background-color: #26a69a;
6534
+ left: 24px;
6535
+ }
6536
+
6537
+ .switch label .lever {
6538
+ content: "";
6539
+ display: inline-block;
6540
+ position: relative;
6541
+ width: 40px;
6542
+ height: 15px;
6543
+ background-color: #818181;
6544
+ border-radius: 15px;
6545
+ margin-right: 10px;
6546
+ transition: background 0.3s ease;
6547
+ vertical-align: middle;
6548
+ margin: 0 16px;
6549
+ }
6550
+
6551
+ .switch label .lever:after {
6552
+ content: "";
6553
+ position: absolute;
6554
+ display: inline-block;
6555
+ width: 21px;
6556
+ height: 21px;
6557
+ background-color: #F1F1F1;
6558
+ border-radius: 21px;
6559
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
6560
+ left: -5px;
6561
+ top: -3px;
6562
+ transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;
6563
+ }
6564
+
6565
+ input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,
6566
+ input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {
6567
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);
6568
+ }
6569
+
6570
+ input[type=checkbox]:not(:disabled) ~ .lever:active:after,
6571
+ input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {
6572
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);
6573
+ }
6574
+
6575
+ .switch input[type=checkbox][disabled] + .lever {
6576
+ cursor: default;
6577
+ }
6578
+
6579
+ .switch label input[type=checkbox][disabled] + .lever:after,
6580
+ .switch label input[type=checkbox][disabled]:checked + .lever:after {
6581
+ background-color: #BDBDBD;
6582
+ }
6583
+
6584
+ /* Select Field
6585
+ ========================================================================== */
6586
+ select {
6587
+ display: none;
6588
+ }
6589
+
6590
+ select.browser-default {
6591
+ display: block;
6592
+ }
6593
+
6594
+ select {
6595
+ background-color: rgba(255, 255, 255, 0.9);
6596
+ width: 100%;
6597
+ padding: 5px;
6598
+ border: 1px solid #f2f2f2;
6599
+ border-radius: 2px;
6600
+ height: 3rem;
6601
+ }
6602
+
6603
+ .select-label {
6604
+ position: absolute;
6605
+ }
6606
+
6607
+ .select-wrapper {
6608
+ position: relative;
6609
+ }
6610
+
6611
+ .select-wrapper input.select-dropdown {
6612
+ position: relative;
6613
+ cursor: pointer;
6614
+ background-color: transparent;
6615
+ border: none;
6616
+ border-bottom: 1px solid #9e9e9e;
6617
+ outline: none;
6618
+ height: 3rem;
6619
+ line-height: 3rem;
6620
+ width: 100%;
6621
+ font-size: 1rem;
6622
+ margin: 0 0 20px 0;
6623
+ padding: 0;
6624
+ display: block;
6625
+ }
6626
+
6627
+ .select-wrapper span.caret {
6628
+ color: initial;
6629
+ position: absolute;
6630
+ right: 0;
6631
+ top: 0;
6632
+ bottom: 0;
6633
+ height: 10px;
6634
+ margin: auto 0;
6635
+ font-size: 10px;
6636
+ line-height: 10px;
6637
+ }
6638
+
6639
+ .select-wrapper span.caret.disabled {
6640
+ color: rgba(0, 0, 0, 0.26);
6641
+ }
6642
+
6643
+ .select-wrapper + label {
6644
+ position: absolute;
6645
+ top: -14px;
6646
+ font-size: 0.8rem;
6647
+ }
6648
+
6649
+ select:disabled {
6650
+ color: rgba(0, 0, 0, 0.3);
6651
+ }
6652
+
6653
+ .select-wrapper input.select-dropdown:disabled {
6654
+ color: rgba(0, 0, 0, 0.3);
6655
+ cursor: default;
6656
+ -webkit-user-select: none;
6657
+ /* webkit (safari, chrome) browsers */
6658
+ -moz-user-select: none;
6659
+ /* mozilla browsers */
6660
+ -ms-user-select: none;
6661
+ /* IE10+ */
6662
+ border-bottom: 1px solid rgba(0, 0, 0, 0.3);
6663
+ }
6664
+
6665
+ .select-wrapper i {
6666
+ color: rgba(0, 0, 0, 0.3);
6667
+ }
6668
+
6669
+ .select-dropdown li.disabled,
6670
+ .select-dropdown li.disabled > span,
6671
+ .select-dropdown li.optgroup {
6672
+ color: rgba(0, 0, 0, 0.3);
6673
+ background-color: transparent;
6674
+ }
6675
+
6676
+ .prefix ~ .select-wrapper {
6677
+ margin-left: 3rem;
6678
+ width: 92%;
6679
+ width: calc(100% - 3rem);
6680
+ }
6681
+
6682
+ .prefix ~ label {
6683
+ margin-left: 3rem;
6684
+ }
6685
+
6686
+ .select-dropdown li img {
6687
+ height: 40px;
6688
+ width: 40px;
6689
+ margin: 5px 15px;
6690
+ float: right;
6691
+ }
6692
+
6693
+ .select-dropdown li.optgroup {
6694
+ border-top: 1px solid #eee;
6695
+ }
6696
+
6697
+ .select-dropdown li.optgroup.selected > span {
6698
+ color: rgba(0, 0, 0, 0.7);
6699
+ }
6700
+
6701
+ .select-dropdown li.optgroup > span {
6702
+ color: rgba(0, 0, 0, 0.4);
6703
+ }
6704
+
6705
+ .select-dropdown li.optgroup ~ li.optgroup-option {
6706
+ padding-left: 1rem;
6707
+ }
6708
+
6709
+ /* File Input
6710
+ ========================================================================== */
6711
+ .file-field {
6712
+ position: relative;
6713
+ }
6714
+
6715
+ .file-field .file-path-wrapper {
6716
+ overflow: hidden;
6717
+ padding-left: 10px;
6718
+ }
6719
+
6720
+ .file-field input.file-path {
6721
+ width: 100%;
6722
+ }
6723
+
6724
+ .file-field .btn, .file-field .btn-large {
6725
+ float: left;
6726
+ height: 3rem;
6727
+ line-height: 3rem;
6728
+ }
6729
+
6730
+ .file-field span {
6731
+ cursor: pointer;
6732
+ }
6733
+
6734
+ .file-field input[type=file] {
6735
+ position: absolute;
6736
+ top: 0;
6737
+ right: 0;
6738
+ left: 0;
6739
+ bottom: 0;
6740
+ width: 100%;
6741
+ margin: 0;
6742
+ padding: 0;
6743
+ font-size: 20px;
6744
+ cursor: pointer;
6745
+ opacity: 0;
6746
+ filter: alpha(opacity=0);
6747
+ }
6748
+
6749
+ /* Range
6750
+ ========================================================================== */
6751
+ .range-field {
6752
+ position: relative;
6753
+ }
6754
+
6755
+ input[type=range],
6756
+ input[type=range] + .thumb {
6757
+ cursor: pointer;
6758
+ }
6759
+
6760
+ input[type=range] {
6761
+ position: relative;
6762
+ background-color: transparent;
6763
+ border: none;
6764
+ outline: none;
6765
+ width: 100%;
6766
+ margin: 15px 0;
6767
+ padding: 0;
6768
+ }
6769
+
6770
+ input[type=range]:focus {
6771
+ outline: none;
6772
+ }
6773
+
6774
+ input[type=range] + .thumb {
6775
+ position: absolute;
6776
+ border: none;
6777
+ height: 0;
6778
+ width: 0;
6779
+ border-radius: 50%;
6780
+ background-color: #26a69a;
6781
+ top: 10px;
6782
+ margin-left: -6px;
6783
+ -webkit-transform-origin: 50% 50%;
6784
+ transform-origin: 50% 50%;
6785
+ -webkit-transform: rotate(-45deg);
6786
+ transform: rotate(-45deg);
6787
+ }
6788
+
6789
+ input[type=range] + .thumb .value {
6790
+ display: block;
6791
+ width: 30px;
6792
+ text-align: center;
6793
+ color: #26a69a;
6794
+ font-size: 0;
6795
+ -webkit-transform: rotate(45deg);
6796
+ transform: rotate(45deg);
6797
+ }
6798
+
6799
+ input[type=range] + .thumb.active {
6800
+ border-radius: 50% 50% 50% 0;
6801
+ }
6802
+
6803
+ input[type=range] + .thumb.active .value {
6804
+ color: #fff;
6805
+ margin-left: -1px;
6806
+ margin-top: 8px;
6807
+ font-size: 10px;
6808
+ }
6809
+
6810
+ input[type=range] {
6811
+ -webkit-appearance: none;
6812
+ }
6813
+
6814
+ input[type=range]::-webkit-slider-runnable-track {
6815
+ height: 3px;
6816
+ background: #c2c0c2;
6817
+ border: none;
6818
+ }
6819
+
6820
+ input[type=range]::-webkit-slider-thumb {
6821
+ -webkit-appearance: none;
6822
+ border: none;
6823
+ height: 14px;
6824
+ width: 14px;
6825
+ border-radius: 50%;
6826
+ background-color: #26a69a;
6827
+ -webkit-transform-origin: 50% 50%;
6828
+ transform-origin: 50% 50%;
6829
+ margin: -5px 0 0 0;
6830
+ transition: .3s;
6831
+ }
6832
+
6833
+ input[type=range]:focus::-webkit-slider-runnable-track {
6834
+ background: #ccc;
6835
+ }
6836
+
6837
+ input[type=range] {
6838
+ /* fix for FF unable to apply focus style bug */
6839
+ border: 1px solid white;
6840
+ /*required for proper track sizing in FF*/
6841
+ }
6842
+
6843
+ input[type=range]::-moz-range-track {
6844
+ height: 3px;
6845
+ background: #ddd;
6846
+ border: none;
6847
+ }
6848
+
6849
+ input[type=range]::-moz-range-thumb {
6850
+ border: none;
6851
+ height: 14px;
6852
+ width: 14px;
6853
+ border-radius: 50%;
6854
+ background: #26a69a;
6855
+ margin-top: -5px;
6856
+ }
6857
+
6858
+ input[type=range]:-moz-focusring {
6859
+ outline: 1px solid #fff;
6860
+ outline-offset: -1px;
6861
+ }
6862
+
6863
+ input[type=range]:focus::-moz-range-track {
6864
+ background: #ccc;
6865
+ }
6866
+
6867
+ input[type=range]::-ms-track {
6868
+ height: 3px;
6869
+ background: transparent;
6870
+ border-color: transparent;
6871
+ border-width: 6px 0;
6872
+ /*remove default tick marks*/
6873
+ color: transparent;
6874
+ }
6875
+
6876
+ input[type=range]::-ms-fill-lower {
6877
+ background: #777;
6878
+ }
6879
+
6880
+ input[type=range]::-ms-fill-upper {
6881
+ background: #ddd;
6882
+ }
6883
+
6884
+ input[type=range]::-ms-thumb {
6885
+ border: none;
6886
+ height: 14px;
6887
+ width: 14px;
6888
+ border-radius: 50%;
6889
+ background: #26a69a;
6890
+ }
6891
+
6892
+ input[type=range]:focus::-ms-fill-lower {
6893
+ background: #888;
6894
+ }
6895
+
6896
+ input[type=range]:focus::-ms-fill-upper {
6897
+ background: #ccc;
6898
+ }
6899
+
6900
+ /***************
6901
+ Nav List
6902
+ ***************/
6903
+ .table-of-contents.fixed {
6904
+ position: fixed;
6905
+ }
6906
+
6907
+ .table-of-contents li {
6908
+ padding: 2px 0;
6909
+ }
6910
+
6911
+ .table-of-contents a {
6912
+ display: inline-block;
6913
+ font-weight: 300;
6914
+ color: #757575;
6915
+ padding-left: 20px;
6916
+ height: 1.5rem;
6917
+ line-height: 1.5rem;
6918
+ letter-spacing: .4;
6919
+ display: inline-block;
6920
+ }
6921
+
6922
+ .table-of-contents a:hover {
6923
+ color: #a8a8a8;
6924
+ padding-left: 19px;
6925
+ border-left: 1px solid #ee6e73;
6926
+ }
6927
+
6928
+ .table-of-contents a.active {
6929
+ font-weight: 500;
6930
+ padding-left: 18px;
6931
+ border-left: 2px solid #ee6e73;
6932
+ }
6933
+
6934
+ .side-nav {
6935
+ position: fixed;
6936
+ width: 300px;
6937
+ left: 0;
6938
+ top: 0;
6939
+ margin: 0;
6940
+ -webkit-transform: translateX(-100%);
6941
+ transform: translateX(-100%);
6942
+ height: 100%;
6943
+ height: calc(100% + 60px);
6944
+ height: -moz-calc(100%);
6945
+ padding-bottom: 60px;
6946
+ background-color: #fff;
6947
+ z-index: 999;
6948
+ overflow-y: auto;
6949
+ will-change: transform;
6950
+ -webkit-backface-visibility: hidden;
6951
+ backface-visibility: hidden;
6952
+ -webkit-transform: translateX(-105%);
6953
+ transform: translateX(-105%);
6954
+ }
6955
+
6956
+ .side-nav.right-aligned {
6957
+ right: 0;
6958
+ -webkit-transform: translateX(105%);
6959
+ transform: translateX(105%);
6960
+ left: auto;
6961
+ -webkit-transform: translateX(100%);
6962
+ transform: translateX(100%);
6963
+ }
6964
+
6965
+ .side-nav .collapsible {
6966
+ margin: 0;
6967
+ }
6968
+
6969
+ .side-nav li {
6970
+ float: none;
6971
+ line-height: 48px;
6972
+ }
6973
+
6974
+ .side-nav li.active {
6975
+ background-color: rgba(0, 0, 0, 0.05);
6976
+ }
6977
+
6978
+ .side-nav a {
6979
+ color: rgba(0, 0, 0, 0.87);
6980
+ display: block;
6981
+ font-size: 14px;
6982
+ font-weight: 500;
6983
+ height: 48px;
6984
+ line-height: 48px;
6985
+ padding: 0 32px;
6986
+ }
6987
+
6988
+ .side-nav a:hover {
6989
+ background-color: rgba(0, 0, 0, 0.05);
6990
+ }
6991
+
6992
+ .side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-flat, .side-nav a.btn-floating {
6993
+ margin: 10px 15px;
6994
+ }
6995
+
6996
+ .side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-floating {
6997
+ color: #fff;
6998
+ }
6999
+
7000
+ .side-nav a.btn-flat {
7001
+ color: #343434;
7002
+ }
7003
+
7004
+ .side-nav a.btn:hover, .side-nav a.btn-large:hover, .side-nav a.btn-large:hover {
7005
+ background-color: #2bbbad;
7006
+ }
7007
+
7008
+ .side-nav a.btn-floating:hover {
7009
+ background-color: #26a69a;
7010
+ }
7011
+
7012
+ .side-nav li > a > i,
7013
+ .side-nav li > a > [class^="mdi-"], .side-nav li > a > [class*="mdi-"],
7014
+ .side-nav li > a > i.material-icons {
7015
+ float: left;
7016
+ height: 48px;
7017
+ line-height: 48px;
7018
+ margin: 0 32px 0 0;
7019
+ width: 24px;
7020
+ color: rgba(0, 0, 0, 0.54);
7021
+ }
7022
+
7023
+ .side-nav .divider {
7024
+ margin: 8px 0 0 0;
7025
+ }
7026
+
7027
+ .side-nav .subheader {
7028
+ cursor: initial;
7029
+ pointer-events: none;
7030
+ color: rgba(0, 0, 0, 0.54);
7031
+ font-size: 14px;
7032
+ font-weight: 500;
7033
+ line-height: 48px;
7034
+ }
7035
+
7036
+ .side-nav .subheader:hover {
7037
+ background-color: transparent;
7038
+ }
7039
+
7040
+ .side-nav .userView {
7041
+ position: relative;
7042
+ padding: 32px 32px 0;
7043
+ margin-bottom: 8px;
7044
+ }
7045
+
7046
+ .side-nav .userView > a {
7047
+ height: auto;
7048
+ padding: 0;
7049
+ }
7050
+
7051
+ .side-nav .userView > a:hover {
7052
+ background-color: transparent;
7053
+ }
7054
+
7055
+ .side-nav .userView .background {
7056
+ overflow: hidden;
7057
+ position: absolute;
7058
+ top: 0;
7059
+ right: 0;
7060
+ bottom: 0;
7061
+ left: 0;
7062
+ z-index: -1;
7063
+ }
7064
+
7065
+ .side-nav .userView .circle, .side-nav .userView .name, .side-nav .userView .email {
7066
+ display: block;
7067
+ }
7068
+
7069
+ .side-nav .userView .circle {
7070
+ height: 64px;
7071
+ width: 64px;
7072
+ }
7073
+
7074
+ .side-nav .userView .name,
7075
+ .side-nav .userView .email {
7076
+ font-size: 14px;
7077
+ line-height: 24px;
7078
+ }
7079
+
7080
+ .side-nav .userView .name {
7081
+ margin-top: 16px;
7082
+ font-weight: 500;
7083
+ }
7084
+
7085
+ .side-nav .userView .email {
7086
+ padding-bottom: 16px;
7087
+ font-weight: 400;
7088
+ }
7089
+
7090
+ .drag-target {
7091
+ height: 100%;
7092
+ width: 10px;
7093
+ position: fixed;
7094
+ top: 0;
7095
+ z-index: 998;
7096
+ }
7097
+
7098
+ .side-nav.fixed {
7099
+ left: 0;
7100
+ -webkit-transform: translateX(0);
7101
+ transform: translateX(0);
7102
+ position: fixed;
7103
+ }
7104
+
7105
+ .side-nav.fixed.right-aligned {
7106
+ right: 0;
7107
+ left: auto;
7108
+ }
7109
+
7110
+ @media only screen and (max-width: 992px) {
7111
+ .side-nav.fixed {
7112
+ -webkit-transform: translateX(-105%);
7113
+ transform: translateX(-105%);
7114
+ }
7115
+ .side-nav.fixed.right-aligned {
7116
+ -webkit-transform: translateX(105%);
7117
+ transform: translateX(105%);
7118
+ }
7119
+ .side-nav a {
7120
+ padding: 0 16px;
7121
+ }
7122
+ .side-nav .userView {
7123
+ padding: 16px 16px 0;
7124
+ }
7125
+ }
7126
+
7127
+ .side-nav .collapsible-body > ul:not(.collapsible) > li.active,
7128
+ .side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active {
7129
+ background-color: #ee6e73;
7130
+ }
7131
+
7132
+ .side-nav .collapsible-body > ul:not(.collapsible) > li.active a,
7133
+ .side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active a {
7134
+ color: #fff;
7135
+ }
7136
+
7137
+ #sidenav-overlay {
7138
+ position: fixed;
7139
+ top: 0;
7140
+ left: 0;
7141
+ right: 0;
7142
+ height: 120vh;
7143
+ background-color: rgba(0, 0, 0, 0.5);
7144
+ z-index: 997;
7145
+ will-change: opacity;
7146
+ }
7147
+
7148
+ /*
7149
+ @license
7150
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
7151
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
7152
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7153
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7154
+ Code distributed by Google as part of the polymer project is also
7155
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
7156
+ */
7157
+ /**************************/
7158
+ /* STYLES FOR THE SPINNER */
7159
+ /**************************/
7160
+ /*
7161
+ * Constants:
7162
+ * STROKEWIDTH = 3px
7163
+ * ARCSIZE = 270 degrees (amount of circle the arc takes up)
7164
+ * ARCTIME = 1333ms (time it takes to expand and contract arc)
7165
+ * ARCSTARTROT = 216 degrees (how much the start location of the arc
7166
+ * should rotate each time, 216 gives us a
7167
+ * 5 pointed star shape (it's 360/5 * 3).
7168
+ * For a 7 pointed star, we might do
7169
+ * 360/7 * 3 = 154.286)
7170
+ * CONTAINERWIDTH = 28px
7171
+ * SHRINK_TIME = 400ms
7172
+ */
7173
+ .preloader-wrapper {
7174
+ display: inline-block;
7175
+ position: relative;
7176
+ width: 48px;
7177
+ height: 48px;
7178
+ }
7179
+
7180
+ .preloader-wrapper.small {
7181
+ width: 36px;
7182
+ height: 36px;
7183
+ }
7184
+
7185
+ .preloader-wrapper.big {
7186
+ width: 64px;
7187
+ height: 64px;
7188
+ }
7189
+
7190
+ .preloader-wrapper.active {
7191
+ /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
7192
+ -webkit-animation: container-rotate 1568ms linear infinite;
7193
+ animation: container-rotate 1568ms linear infinite;
7194
+ }
7195
+
7196
+ @-webkit-keyframes container-rotate {
7197
+ to {
7198
+ -webkit-transform: rotate(360deg);
7199
+ }
7200
+ }
7201
+
7202
+ @keyframes container-rotate {
7203
+ to {
7204
+ -webkit-transform: rotate(360deg);
7205
+ transform: rotate(360deg);
7206
+ }
7207
+ }
7208
+
7209
+ .spinner-layer {
7210
+ position: absolute;
7211
+ width: 100%;
7212
+ height: 100%;
7213
+ opacity: 0;
7214
+ border-color: #26a69a;
7215
+ }
7216
+
7217
+ .spinner-blue,
7218
+ .spinner-blue-only {
7219
+ border-color: #4285f4;
7220
+ }
7221
+
7222
+ .spinner-red,
7223
+ .spinner-red-only {
7224
+ border-color: #db4437;
7225
+ }
7226
+
7227
+ .spinner-yellow,
7228
+ .spinner-yellow-only {
7229
+ border-color: #f4b400;
7230
+ }
7231
+
7232
+ .spinner-green,
7233
+ .spinner-green-only {
7234
+ border-color: #0f9d58;
7235
+ }
7236
+
7237
+ /**
7238
+ * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
7239
+ *
7240
+ * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
7241
+ * guarantee that the animation will start _exactly_ after that value. So we avoid using
7242
+ * animation-delay and instead set custom keyframes for each color (as redundant as it
7243
+ * seems).
7244
+ *
7245
+ * We write out each animation in full (instead of separating animation-name,
7246
+ * animation-duration, etc.) because under the polyfill, Safari does not recognize those
7247
+ * specific properties properly, treats them as -webkit-animation, and overrides the
7248
+ * other animation rules. See https://github.com/Polymer/platform/issues/53.
7249
+ */
7250
+ .active .spinner-layer.spinner-blue {
7251
+ /* durations: 4 * ARCTIME */
7252
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7253
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7254
+ }
7255
+
7256
+ .active .spinner-layer.spinner-red {
7257
+ /* durations: 4 * ARCTIME */
7258
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7259
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7260
+ }
7261
+
7262
+ .active .spinner-layer.spinner-yellow {
7263
+ /* durations: 4 * ARCTIME */
7264
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7265
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7266
+ }
7267
+
7268
+ .active .spinner-layer.spinner-green {
7269
+ /* durations: 4 * ARCTIME */
7270
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7271
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7272
+ }
7273
+
7274
+ .active .spinner-layer,
7275
+ .active .spinner-layer.spinner-blue-only,
7276
+ .active .spinner-layer.spinner-red-only,
7277
+ .active .spinner-layer.spinner-yellow-only,
7278
+ .active .spinner-layer.spinner-green-only {
7279
+ /* durations: 4 * ARCTIME */
7280
+ opacity: 1;
7281
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7282
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7283
+ }
7284
+
7285
+ @-webkit-keyframes fill-unfill-rotate {
7286
+ 12.5% {
7287
+ -webkit-transform: rotate(135deg);
7288
+ }
7289
+ /* 0.5 * ARCSIZE */
7290
+ 25% {
7291
+ -webkit-transform: rotate(270deg);
7292
+ }
7293
+ /* 1 * ARCSIZE */
7294
+ 37.5% {
7295
+ -webkit-transform: rotate(405deg);
7296
+ }
7297
+ /* 1.5 * ARCSIZE */
7298
+ 50% {
7299
+ -webkit-transform: rotate(540deg);
7300
+ }
7301
+ /* 2 * ARCSIZE */
7302
+ 62.5% {
7303
+ -webkit-transform: rotate(675deg);
7304
+ }
7305
+ /* 2.5 * ARCSIZE */
7306
+ 75% {
7307
+ -webkit-transform: rotate(810deg);
7308
+ }
7309
+ /* 3 * ARCSIZE */
7310
+ 87.5% {
7311
+ -webkit-transform: rotate(945deg);
7312
+ }
7313
+ /* 3.5 * ARCSIZE */
7314
+ to {
7315
+ -webkit-transform: rotate(1080deg);
7316
+ }
7317
+ /* 4 * ARCSIZE */
7318
+ }
7319
+
7320
+ @keyframes fill-unfill-rotate {
7321
+ 12.5% {
7322
+ -webkit-transform: rotate(135deg);
7323
+ transform: rotate(135deg);
7324
+ }
7325
+ /* 0.5 * ARCSIZE */
7326
+ 25% {
7327
+ -webkit-transform: rotate(270deg);
7328
+ transform: rotate(270deg);
7329
+ }
7330
+ /* 1 * ARCSIZE */
7331
+ 37.5% {
7332
+ -webkit-transform: rotate(405deg);
7333
+ transform: rotate(405deg);
7334
+ }
7335
+ /* 1.5 * ARCSIZE */
7336
+ 50% {
7337
+ -webkit-transform: rotate(540deg);
7338
+ transform: rotate(540deg);
7339
+ }
7340
+ /* 2 * ARCSIZE */
7341
+ 62.5% {
7342
+ -webkit-transform: rotate(675deg);
7343
+ transform: rotate(675deg);
7344
+ }
7345
+ /* 2.5 * ARCSIZE */
7346
+ 75% {
7347
+ -webkit-transform: rotate(810deg);
7348
+ transform: rotate(810deg);
7349
+ }
7350
+ /* 3 * ARCSIZE */
7351
+ 87.5% {
7352
+ -webkit-transform: rotate(945deg);
7353
+ transform: rotate(945deg);
7354
+ }
7355
+ /* 3.5 * ARCSIZE */
7356
+ to {
7357
+ -webkit-transform: rotate(1080deg);
7358
+ transform: rotate(1080deg);
7359
+ }
7360
+ /* 4 * ARCSIZE */
7361
+ }
7362
+
7363
+ @-webkit-keyframes blue-fade-in-out {
7364
+ from {
7365
+ opacity: 1;
7366
+ }
7367
+ 25% {
7368
+ opacity: 1;
7369
+ }
7370
+ 26% {
7371
+ opacity: 0;
7372
+ }
7373
+ 89% {
7374
+ opacity: 0;
7375
+ }
7376
+ 90% {
7377
+ opacity: 1;
7378
+ }
7379
+ 100% {
7380
+ opacity: 1;
7381
+ }
7382
+ }
7383
+
7384
+ @keyframes blue-fade-in-out {
7385
+ from {
7386
+ opacity: 1;
7387
+ }
7388
+ 25% {
7389
+ opacity: 1;
7390
+ }
7391
+ 26% {
7392
+ opacity: 0;
7393
+ }
7394
+ 89% {
7395
+ opacity: 0;
7396
+ }
7397
+ 90% {
7398
+ opacity: 1;
7399
+ }
7400
+ 100% {
7401
+ opacity: 1;
7402
+ }
7403
+ }
7404
+
7405
+ @-webkit-keyframes red-fade-in-out {
7406
+ from {
7407
+ opacity: 0;
7408
+ }
7409
+ 15% {
7410
+ opacity: 0;
7411
+ }
7412
+ 25% {
7413
+ opacity: 1;
7414
+ }
7415
+ 50% {
7416
+ opacity: 1;
7417
+ }
7418
+ 51% {
7419
+ opacity: 0;
7420
+ }
7421
+ }
7422
+
7423
+ @keyframes red-fade-in-out {
7424
+ from {
7425
+ opacity: 0;
7426
+ }
7427
+ 15% {
7428
+ opacity: 0;
7429
+ }
7430
+ 25% {
7431
+ opacity: 1;
7432
+ }
7433
+ 50% {
7434
+ opacity: 1;
7435
+ }
7436
+ 51% {
7437
+ opacity: 0;
7438
+ }
7439
+ }
7440
+
7441
+ @-webkit-keyframes yellow-fade-in-out {
7442
+ from {
7443
+ opacity: 0;
7444
+ }
7445
+ 40% {
7446
+ opacity: 0;
7447
+ }
7448
+ 50% {
7449
+ opacity: 1;
7450
+ }
7451
+ 75% {
7452
+ opacity: 1;
7453
+ }
7454
+ 76% {
7455
+ opacity: 0;
7456
+ }
7457
+ }
7458
+
7459
+ @keyframes yellow-fade-in-out {
7460
+ from {
7461
+ opacity: 0;
7462
+ }
7463
+ 40% {
7464
+ opacity: 0;
7465
+ }
7466
+ 50% {
7467
+ opacity: 1;
7468
+ }
7469
+ 75% {
7470
+ opacity: 1;
7471
+ }
7472
+ 76% {
7473
+ opacity: 0;
7474
+ }
7475
+ }
7476
+
7477
+ @-webkit-keyframes green-fade-in-out {
7478
+ from {
7479
+ opacity: 0;
7480
+ }
7481
+ 65% {
7482
+ opacity: 0;
7483
+ }
7484
+ 75% {
7485
+ opacity: 1;
7486
+ }
7487
+ 90% {
7488
+ opacity: 1;
7489
+ }
7490
+ 100% {
7491
+ opacity: 0;
7492
+ }
7493
+ }
7494
+
7495
+ @keyframes green-fade-in-out {
7496
+ from {
7497
+ opacity: 0;
7498
+ }
7499
+ 65% {
7500
+ opacity: 0;
7501
+ }
7502
+ 75% {
7503
+ opacity: 1;
7504
+ }
7505
+ 90% {
7506
+ opacity: 1;
7507
+ }
7508
+ 100% {
7509
+ opacity: 0;
7510
+ }
7511
+ }
7512
+
7513
+ /**
7514
+ * Patch the gap that appear between the two adjacent div.circle-clipper while the
7515
+ * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
7516
+ */
7517
+ .gap-patch {
7518
+ position: absolute;
7519
+ top: 0;
7520
+ left: 45%;
7521
+ width: 10%;
7522
+ height: 100%;
7523
+ overflow: hidden;
7524
+ border-color: inherit;
7525
+ }
7526
+
7527
+ .gap-patch .circle {
7528
+ width: 1000%;
7529
+ left: -450%;
7530
+ }
7531
+
7532
+ .circle-clipper {
7533
+ display: inline-block;
7534
+ position: relative;
7535
+ width: 50%;
7536
+ height: 100%;
7537
+ overflow: hidden;
7538
+ border-color: inherit;
7539
+ }
7540
+
7541
+ .circle-clipper .circle {
7542
+ width: 200%;
7543
+ height: 100%;
7544
+ border-width: 3px;
7545
+ /* STROKEWIDTH */
7546
+ border-style: solid;
7547
+ border-color: inherit;
7548
+ border-bottom-color: transparent !important;
7549
+ border-radius: 50%;
7550
+ -webkit-animation: none;
7551
+ animation: none;
7552
+ position: absolute;
7553
+ top: 0;
7554
+ right: 0;
7555
+ bottom: 0;
7556
+ }
7557
+
7558
+ .circle-clipper.left .circle {
7559
+ left: 0;
7560
+ border-right-color: transparent !important;
7561
+ -webkit-transform: rotate(129deg);
7562
+ transform: rotate(129deg);
7563
+ }
7564
+
7565
+ .circle-clipper.right .circle {
7566
+ left: -100%;
7567
+ border-left-color: transparent !important;
7568
+ -webkit-transform: rotate(-129deg);
7569
+ transform: rotate(-129deg);
7570
+ }
7571
+
7572
+ .active .circle-clipper.left .circle {
7573
+ /* duration: ARCTIME */
7574
+ -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7575
+ animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7576
+ }
7577
+
7578
+ .active .circle-clipper.right .circle {
7579
+ /* duration: ARCTIME */
7580
+ -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7581
+ animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7582
+ }
7583
+
7584
+ @-webkit-keyframes left-spin {
7585
+ from {
7586
+ -webkit-transform: rotate(130deg);
7587
+ }
7588
+ 50% {
7589
+ -webkit-transform: rotate(-5deg);
7590
+ }
7591
+ to {
7592
+ -webkit-transform: rotate(130deg);
7593
+ }
7594
+ }
7595
+
7596
+ @keyframes left-spin {
7597
+ from {
7598
+ -webkit-transform: rotate(130deg);
7599
+ transform: rotate(130deg);
7600
+ }
7601
+ 50% {
7602
+ -webkit-transform: rotate(-5deg);
7603
+ transform: rotate(-5deg);
7604
+ }
7605
+ to {
7606
+ -webkit-transform: rotate(130deg);
7607
+ transform: rotate(130deg);
7608
+ }
7609
+ }
7610
+
7611
+ @-webkit-keyframes right-spin {
7612
+ from {
7613
+ -webkit-transform: rotate(-130deg);
7614
+ }
7615
+ 50% {
7616
+ -webkit-transform: rotate(5deg);
7617
+ }
7618
+ to {
7619
+ -webkit-transform: rotate(-130deg);
7620
+ }
7621
+ }
7622
+
7623
+ @keyframes right-spin {
7624
+ from {
7625
+ -webkit-transform: rotate(-130deg);
7626
+ transform: rotate(-130deg);
7627
+ }
7628
+ 50% {
7629
+ -webkit-transform: rotate(5deg);
7630
+ transform: rotate(5deg);
7631
+ }
7632
+ to {
7633
+ -webkit-transform: rotate(-130deg);
7634
+ transform: rotate(-130deg);
7635
+ }
7636
+ }
7637
+
7638
+ #spinnerContainer.cooldown {
7639
+ /* duration: SHRINK_TIME */
7640
+ -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
7641
+ animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
7642
+ }
7643
+
7644
+ @-webkit-keyframes fade-out {
7645
+ from {
7646
+ opacity: 1;
7647
+ }
7648
+ to {
7649
+ opacity: 0;
7650
+ }
7651
+ }
7652
+
7653
+ @keyframes fade-out {
7654
+ from {
7655
+ opacity: 1;
7656
+ }
7657
+ to {
7658
+ opacity: 0;
7659
+ }
7660
+ }
7661
+
7662
+ .slider {
7663
+ position: relative;
7664
+ height: 400px;
7665
+ width: 100%;
7666
+ }
7667
+
7668
+ .slider.fullscreen {
7669
+ height: 100%;
7670
+ width: 100%;
7671
+ position: absolute;
7672
+ top: 0;
7673
+ left: 0;
7674
+ right: 0;
7675
+ bottom: 0;
7676
+ }
7677
+
7678
+ .slider.fullscreen ul.slides {
7679
+ height: 100%;
7680
+ }
7681
+
7682
+ .slider.fullscreen ul.indicators {
7683
+ z-index: 2;
7684
+ bottom: 30px;
7685
+ }
7686
+
7687
+ .slider .slides {
7688
+ background-color: #9e9e9e;
7689
+ margin: 0;
7690
+ height: 400px;
7691
+ }
7692
+
7693
+ .slider .slides li {
7694
+ opacity: 0;
7695
+ position: absolute;
7696
+ top: 0;
7697
+ left: 0;
7698
+ z-index: 1;
7699
+ width: 100%;
7700
+ height: inherit;
7701
+ overflow: hidden;
7702
+ }
7703
+
7704
+ .slider .slides li img {
7705
+ height: 100%;
7706
+ width: 100%;
7707
+ background-size: cover;
7708
+ background-position: center;
7709
+ }
7710
+
7711
+ .slider .slides li .caption {
7712
+ color: #fff;
7713
+ position: absolute;
7714
+ top: 15%;
7715
+ left: 15%;
7716
+ width: 70%;
7717
+ opacity: 0;
7718
+ }
7719
+
7720
+ .slider .slides li .caption p {
7721
+ color: #e0e0e0;
7722
+ }
7723
+
7724
+ .slider .slides li.active {
7725
+ z-index: 2;
7726
+ }
7727
+
7728
+ .slider .indicators {
7729
+ position: absolute;
7730
+ text-align: center;
7731
+ left: 0;
7732
+ right: 0;
7733
+ bottom: 0;
7734
+ margin: 0;
7735
+ }
7736
+
7737
+ .slider .indicators .indicator-item {
7738
+ display: inline-block;
7739
+ position: relative;
7740
+ cursor: pointer;
7741
+ height: 16px;
7742
+ width: 16px;
7743
+ margin: 0 12px;
7744
+ background-color: #e0e0e0;
7745
+ transition: background-color .3s;
7746
+ border-radius: 50%;
7747
+ }
7748
+
7749
+ .slider .indicators .indicator-item.active {
7750
+ background-color: #4CAF50;
7751
+ }
7752
+
7753
+ .carousel {
7754
+ overflow: hidden;
7755
+ position: relative;
7756
+ width: 100%;
7757
+ height: 400px;
7758
+ -webkit-perspective: 500px;
7759
+ perspective: 500px;
7760
+ -webkit-transform-style: preserve-3d;
7761
+ transform-style: preserve-3d;
7762
+ -webkit-transform-origin: 0% 50%;
7763
+ transform-origin: 0% 50%;
7764
+ }
7765
+
7766
+ .carousel.carousel-slider {
7767
+ top: 0;
7768
+ left: 0;
7769
+ height: 0;
7770
+ }
7771
+
7772
+ .carousel.carousel-slider .carousel-fixed-item {
7773
+ position: absolute;
7774
+ left: 0;
7775
+ right: 0;
7776
+ bottom: 20px;
7777
+ z-index: 1;
7778
+ }
7779
+
7780
+ .carousel.carousel-slider .carousel-fixed-item.with-indicators {
7781
+ bottom: 68px;
7782
+ }
7783
+
7784
+ .carousel.carousel-slider .carousel-item {
7785
+ width: 100%;
7786
+ height: 100%;
7787
+ min-height: 400px;
7788
+ position: absolute;
7789
+ top: 0;
7790
+ left: 0;
7791
+ }
7792
+
7793
+ .carousel.carousel-slider .carousel-item h2 {
7794
+ font-size: 24px;
7795
+ font-weight: 500;
7796
+ line-height: 32px;
7797
+ }
7798
+
7799
+ .carousel.carousel-slider .carousel-item p {
7800
+ font-size: 15px;
7801
+ }
7802
+
7803
+ .carousel .carousel-item {
7804
+ display: none;
7805
+ width: 200px;
7806
+ height: 200px;
7807
+ position: absolute;
7808
+ top: 0;
7809
+ left: 0;
7810
+ }
7811
+
7812
+ .carousel .carousel-item img {
7813
+ width: 100%;
7814
+ }
7815
+
7816
+ .carousel .indicators {
7817
+ position: absolute;
7818
+ text-align: center;
7819
+ left: 0;
7820
+ right: 0;
7821
+ bottom: 0;
7822
+ margin: 0;
7823
+ }
7824
+
7825
+ .carousel .indicators .indicator-item {
7826
+ display: inline-block;
7827
+ position: relative;
7828
+ cursor: pointer;
7829
+ height: 8px;
7830
+ width: 8px;
7831
+ margin: 24px 4px;
7832
+ background-color: rgba(255, 255, 255, 0.5);
7833
+ transition: background-color .3s;
7834
+ border-radius: 50%;
7835
+ }
7836
+
7837
+ .carousel .indicators .indicator-item.active {
7838
+ background-color: #fff;
7839
+ }
7840
+
7841
+ /* ==========================================================================
7842
+ $BASE-PICKER
7843
+ ========================================================================== */
7844
+ /**
7845
+ * Note: the root picker element should *NOT* be styled more than what's here.
7846
+ */
7847
+ .picker {
7848
+ font-size: 16px;
7849
+ text-align: left;
7850
+ line-height: 1.2;
7851
+ color: #000000;
7852
+ position: absolute;
7853
+ z-index: 10000;
7854
+ -webkit-user-select: none;
7855
+ -moz-user-select: none;
7856
+ -ms-user-select: none;
7857
+ user-select: none;
7858
+ }
7859
+
7860
+ /**
7861
+ * The picker input element.
7862
+ */
7863
+ .picker__input {
7864
+ cursor: default;
7865
+ }
7866
+
7867
+ /**
7868
+ * When the picker is opened, the input element is "activated".
7869
+ */
7870
+ .picker__input.picker__input--active {
7871
+ border-color: #0089ec;
7872
+ }
7873
+
7874
+ /**
7875
+ * The holder is the only "scrollable" top-level container element.
7876
+ */
7877
+ .picker__holder {
7878
+ width: 100%;
7879
+ overflow-y: auto;
7880
+ -webkit-overflow-scrolling: touch;
7881
+ }
7882
+
7883
+ /*!
7884
+ * Default mobile-first, responsive styling for pickadate.js
7885
+ * Demo: http://amsul.github.io/pickadate.js
7886
+ */
7887
+ /**
7888
+ * Note: the root picker element should *NOT* be styled more than what's here.
7889
+ */
7890
+ /**
7891
+ * Make the holder and frame fullscreen.
7892
+ */
7893
+ .picker__holder,
7894
+ .picker__frame {
7895
+ bottom: 0;
7896
+ left: 0;
7897
+ right: 0;
7898
+ top: 100%;
7899
+ }
7900
+
7901
+ /**
7902
+ * The holder should overlay the entire screen.
7903
+ */
7904
+ .picker__holder {
7905
+ position: fixed;
7906
+ transition: background 0.15s ease-out, top 0s 0.15s;
7907
+ -webkit-backface-visibility: hidden;
7908
+ }
7909
+
7910
+ /**
7911
+ * The frame that bounds the box contents of the picker.
7912
+ */
7913
+ .picker__frame {
7914
+ position: absolute;
7915
+ margin: 0 auto;
7916
+ min-width: 256px;
7917
+ width: 300px;
7918
+ max-height: 350px;
7919
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
7920
+ filter: alpha(opacity=0);
7921
+ -moz-opacity: 0;
7922
+ opacity: 0;
7923
+ transition: all 0.15s ease-out;
7924
+ }
7925
+
7926
+ @media (min-height: 28.875em) {
7927
+ .picker__frame {
7928
+ overflow: visible;
7929
+ top: auto;
7930
+ bottom: -100%;
7931
+ max-height: 80%;
7932
+ }
7933
+ }
7934
+
7935
+ @media (min-height: 40.125em) {
7936
+ .picker__frame {
7937
+ margin-bottom: 7.5%;
7938
+ }
7939
+ }
7940
+
7941
+ /**
7942
+ * The wrapper sets the stage to vertically align the box contents.
7943
+ */
7944
+ .picker__wrap {
7945
+ display: table;
7946
+ width: 100%;
7947
+ height: 100%;
7948
+ }
7949
+
7950
+ @media (min-height: 28.875em) {
7951
+ .picker__wrap {
7952
+ display: block;
7953
+ }
7954
+ }
7955
+
7956
+ /**
7957
+ * The box contains all the picker contents.
7958
+ */
7959
+ .picker__box {
7960
+ background: #ffffff;
7961
+ display: table-cell;
7962
+ vertical-align: middle;
7963
+ }
7964
+
7965
+ @media (min-height: 28.875em) {
7966
+ .picker__box {
7967
+ display: block;
7968
+ border: 1px solid #777777;
7969
+ border-top-color: #898989;
7970
+ border-bottom-width: 0;
7971
+ border-radius: 5px 5px 0 0;
7972
+ box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
7973
+ }
7974
+ }
7975
+
7976
+ /**
7977
+ * When the picker opens...
7978
+ */
7979
+ .picker--opened .picker__holder {
7980
+ top: 0;
7981
+ background: transparent;
7982
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
7983
+ zoom: 1;
7984
+ background: rgba(0, 0, 0, 0.32);
7985
+ transition: background 0.15s ease-out;
7986
+ }
7987
+
7988
+ .picker--opened .picker__frame {
7989
+ top: 0;
7990
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
7991
+ filter: alpha(opacity=100);
7992
+ -moz-opacity: 1;
7993
+ opacity: 1;
7994
+ }
7995
+
7996
+ @media (min-height: 35.875em) {
7997
+ .picker--opened .picker__frame {
7998
+ top: 10%;
7999
+ bottom: auto;
8000
+ }
8001
+ }
8002
+
8003
+ /**
8004
+ * For `large` screens, transform into an inline picker.
8005
+ */
8006
+ /* ==========================================================================
8007
+ CUSTOM MATERIALIZE STYLES
8008
+ ========================================================================== */
8009
+ .picker__input.picker__input--active {
8010
+ border-color: #E3F2FD;
8011
+ }
8012
+
8013
+ .picker__frame {
8014
+ margin: 0 auto;
8015
+ max-width: 325px;
8016
+ }
8017
+
8018
+ @media (min-height: 38.875em) {
8019
+ .picker--opened .picker__frame {
8020
+ top: 10%;
8021
+ bottom: auto;
8022
+ }
8023
+ }
8024
+
8025
+ /* ==========================================================================
8026
+ $BASE-DATE-PICKER
8027
+ ========================================================================== */
8028
+ /**
8029
+ * The picker box.
8030
+ */
8031
+ .picker__box {
8032
+ padding: 0 1em;
8033
+ }
8034
+
8035
+ /**
8036
+ * The header containing the month and year stuff.
8037
+ */
8038
+ .picker__header {
8039
+ text-align: center;
8040
+ position: relative;
8041
+ margin-top: .75em;
8042
+ }
8043
+
8044
+ /**
8045
+ * The month and year labels.
8046
+ */
8047
+ .picker__month,
8048
+ .picker__year {
8049
+ display: inline-block;
8050
+ margin-left: .25em;
8051
+ margin-right: .25em;
8052
+ }
8053
+
8054
+ /**
8055
+ * The month and year selectors.
8056
+ */
8057
+ .picker__select--month,
8058
+ .picker__select--year {
8059
+ height: 2em;
8060
+ padding: 0;
8061
+ margin-left: .25em;
8062
+ margin-right: .25em;
8063
+ }
8064
+
8065
+ .picker__select--month.browser-default {
8066
+ display: inline;
8067
+ background-color: #FFFFFF;
8068
+ width: 40%;
8069
+ }
8070
+
8071
+ .picker__select--year.browser-default {
8072
+ display: inline;
8073
+ background-color: #FFFFFF;
8074
+ width: 26%;
8075
+ }
8076
+
8077
+ .picker__select--month:focus,
8078
+ .picker__select--year:focus {
8079
+ border-color: rgba(0, 0, 0, 0.05);
8080
+ }
8081
+
8082
+ /**
8083
+ * The month navigation buttons.
8084
+ */
8085
+ .picker__nav--prev,
8086
+ .picker__nav--next {
8087
+ position: absolute;
8088
+ padding: .5em 1.25em;
8089
+ width: 1em;
8090
+ height: 1em;
8091
+ box-sizing: content-box;
8092
+ top: -0.25em;
8093
+ }
8094
+
8095
+ .picker__nav--prev {
8096
+ left: -1em;
8097
+ padding-right: 1.25em;
8098
+ }
8099
+
8100
+ .picker__nav--next {
8101
+ right: -1em;
8102
+ padding-left: 1.25em;
8103
+ }
8104
+
8105
+ .picker__nav--disabled,
8106
+ .picker__nav--disabled:hover,
8107
+ .picker__nav--disabled:before,
8108
+ .picker__nav--disabled:before:hover {
8109
+ cursor: default;
8110
+ background: none;
8111
+ border-right-color: #f5f5f5;
8112
+ border-left-color: #f5f5f5;
8113
+ }
8114
+
8115
+ /**
8116
+ * The calendar table of dates
8117
+ */
8118
+ .picker__table {
8119
+ text-align: center;
8120
+ border-collapse: collapse;
8121
+ border-spacing: 0;
8122
+ table-layout: fixed;
8123
+ font-size: 1rem;
8124
+ width: 100%;
8125
+ margin-top: .75em;
8126
+ margin-bottom: .5em;
8127
+ }
8128
+
8129
+ .picker__table th, .picker__table td {
8130
+ text-align: center;
8131
+ }
8132
+
8133
+ .picker__table td {
8134
+ margin: 0;
8135
+ padding: 0;
8136
+ }
8137
+
8138
+ /**
8139
+ * The weekday labels
8140
+ */
8141
+ .picker__weekday {
8142
+ width: 14.285714286%;
8143
+ font-size: .75em;
8144
+ padding-bottom: .25em;
8145
+ color: #999999;
8146
+ font-weight: 500;
8147
+ /* Increase the spacing a tad */
8148
+ }
8149
+
8150
+ @media (min-height: 33.875em) {
8151
+ .picker__weekday {
8152
+ padding-bottom: .5em;
8153
+ }
8154
+ }
8155
+
8156
+ /**
8157
+ * The days on the calendar
8158
+ */
8159
+ .picker__day--today {
8160
+ position: relative;
8161
+ color: #595959;
8162
+ letter-spacing: -.3;
8163
+ padding: .75rem 0;
8164
+ font-weight: 400;
8165
+ border: 1px solid transparent;
8166
+ }
8167
+
8168
+ .picker__day--disabled:before {
8169
+ border-top-color: #aaaaaa;
8170
+ }
8171
+
8172
+ .picker__day--infocus:hover {
8173
+ cursor: pointer;
8174
+ color: #000;
8175
+ font-weight: 500;
8176
+ }
8177
+
8178
+ .picker__day--outfocus {
8179
+ display: none;
8180
+ padding: .75rem 0;
8181
+ color: #fff;
8182
+ }
8183
+
8184
+ .picker__day--outfocus:hover {
8185
+ cursor: pointer;
8186
+ color: #dddddd;
8187
+ font-weight: 500;
8188
+ }
8189
+
8190
+ .picker__day--highlighted:hover,
8191
+ .picker--focused .picker__day--highlighted {
8192
+ cursor: pointer;
8193
+ }
8194
+
8195
+ .picker__day--selected,
8196
+ .picker__day--selected:hover,
8197
+ .picker--focused .picker__day--selected {
8198
+ border-radius: 50%;
8199
+ -webkit-transform: scale(0.75);
8200
+ transform: scale(0.75);
8201
+ background: #0089ec;
8202
+ color: #ffffff;
8203
+ }
8204
+
8205
+ .picker__day--disabled,
8206
+ .picker__day--disabled:hover,
8207
+ .picker--focused .picker__day--disabled {
8208
+ background: #f5f5f5;
8209
+ border-color: #f5f5f5;
8210
+ color: #dddddd;
8211
+ cursor: default;
8212
+ }
8213
+
8214
+ .picker__day--highlighted.picker__day--disabled,
8215
+ .picker__day--highlighted.picker__day--disabled:hover {
8216
+ background: #bbbbbb;
8217
+ }
8218
+
8219
+ /**
8220
+ * The footer containing the "today", "clear", and "close" buttons.
8221
+ */
8222
+ .picker__footer {
8223
+ text-align: center;
8224
+ display: -webkit-flex;
8225
+ display: -ms-flexbox;
8226
+ display: flex;
8227
+ -webkit-align-items: center;
8228
+ -ms-flex-align: center;
8229
+ align-items: center;
8230
+ -webkit-justify-content: space-between;
8231
+ -ms-flex-pack: justify;
8232
+ justify-content: space-between;
8233
+ }
8234
+
8235
+ .picker__button--today,
8236
+ .picker__button--clear,
8237
+ .picker__button--close {
8238
+ border: 1px solid #ffffff;
8239
+ background: #ffffff;
8240
+ font-size: .8em;
8241
+ padding: .66em 0;
8242
+ font-weight: bold;
8243
+ width: 33%;
8244
+ display: inline-block;
8245
+ vertical-align: bottom;
8246
+ }
8247
+
8248
+ .picker__button--today:hover,
8249
+ .picker__button--clear:hover,
8250
+ .picker__button--close:hover {
8251
+ cursor: pointer;
8252
+ color: #000000;
8253
+ background: #b1dcfb;
8254
+ border-bottom-color: #b1dcfb;
8255
+ }
8256
+
8257
+ .picker__button--today:focus,
8258
+ .picker__button--clear:focus,
8259
+ .picker__button--close:focus {
8260
+ background: #b1dcfb;
8261
+ border-color: rgba(0, 0, 0, 0.05);
8262
+ outline: none;
8263
+ }
8264
+
8265
+ .picker__button--today:before,
8266
+ .picker__button--clear:before,
8267
+ .picker__button--close:before {
8268
+ position: relative;
8269
+ display: inline-block;
8270
+ height: 0;
8271
+ }
8272
+
8273
+ .picker__button--today:before,
8274
+ .picker__button--clear:before {
8275
+ content: " ";
8276
+ margin-right: .45em;
8277
+ }
8278
+
8279
+ .picker__button--today:before {
8280
+ top: -0.05em;
8281
+ width: 0;
8282
+ border-top: 0.66em solid #0059bc;
8283
+ border-left: .66em solid transparent;
8284
+ }
8285
+
8286
+ .picker__button--clear:before {
8287
+ top: -0.25em;
8288
+ width: .66em;
8289
+ border-top: 3px solid #ee2200;
8290
+ }
8291
+
8292
+ .picker__button--close:before {
8293
+ content: "\D7";
8294
+ top: -0.1em;
8295
+ vertical-align: top;
8296
+ font-size: 1.1em;
8297
+ margin-right: .35em;
8298
+ color: #777777;
8299
+ }
8300
+
8301
+ .picker__button--today[disabled],
8302
+ .picker__button--today[disabled]:hover {
8303
+ background: #f5f5f5;
8304
+ border-color: #f5f5f5;
8305
+ color: #dddddd;
8306
+ cursor: default;
8307
+ }
8308
+
8309
+ .picker__button--today[disabled]:before {
8310
+ border-top-color: #aaaaaa;
8311
+ }
8312
+
8313
+ /* ==========================================================================
8314
+ CUSTOM MATERIALIZE STYLES
8315
+ ========================================================================== */
8316
+ .picker__box {
8317
+ border-radius: 2px;
8318
+ overflow: hidden;
8319
+ }
8320
+
8321
+ .picker__date-display {
8322
+ text-align: center;
8323
+ background-color: #26a69a;
8324
+ color: #fff;
8325
+ padding-bottom: 15px;
8326
+ font-weight: 300;
8327
+ }
8328
+
8329
+ .picker__nav--prev:hover,
8330
+ .picker__nav--next:hover {
8331
+ cursor: pointer;
8332
+ color: #000000;
8333
+ background: #a1ded8;
8334
+ }
8335
+
8336
+ .picker__weekday-display {
8337
+ background-color: #1f897f;
8338
+ padding: 10px;
8339
+ font-weight: 200;
8340
+ letter-spacing: .5;
8341
+ font-size: 1rem;
8342
+ margin-bottom: 15px;
8343
+ }
8344
+
8345
+ .picker__month-display {
8346
+ text-transform: uppercase;
8347
+ font-size: 2rem;
8348
+ }
8349
+
8350
+ .picker__day-display {
8351
+ font-size: 4.5rem;
8352
+ font-weight: 400;
8353
+ }
8354
+
8355
+ .picker__year-display {
8356
+ font-size: 1.8rem;
8357
+ color: rgba(255, 255, 255, 0.4);
8358
+ }
8359
+
8360
+ .picker__box {
8361
+ padding: 0;
8362
+ }
8363
+
8364
+ .picker__calendar-container {
8365
+ padding: 0 1rem;
8366
+ }
8367
+
8368
+ .picker__calendar-container thead {
8369
+ border: none;
8370
+ }
8371
+
8372
+ .picker__table {
8373
+ margin-top: 0;
8374
+ margin-bottom: .5em;
8375
+ }
8376
+
8377
+ .picker__day--infocus {
8378
+ color: #595959;
8379
+ letter-spacing: -.3;
8380
+ padding: .75rem 0;
8381
+ font-weight: 400;
8382
+ border: 1px solid transparent;
8383
+ }
8384
+
8385
+ .picker__day.picker__day--today {
8386
+ color: #26a69a;
8387
+ }
8388
+
8389
+ .picker__day.picker__day--today.picker__day--selected {
8390
+ color: #fff;
8391
+ }
8392
+
8393
+ .picker__weekday {
8394
+ font-size: .9rem;
8395
+ }
8396
+
8397
+ .picker__day--selected,
8398
+ .picker__day--selected:hover,
8399
+ .picker--focused .picker__day--selected {
8400
+ border-radius: 50%;
8401
+ -webkit-transform: scale(0.9);
8402
+ transform: scale(0.9);
8403
+ background-color: #26a69a;
8404
+ color: #ffffff;
8405
+ }
8406
+
8407
+ .picker__day--selected.picker__day--outfocus,
8408
+ .picker__day--selected:hover.picker__day--outfocus,
8409
+ .picker--focused .picker__day--selected.picker__day--outfocus {
8410
+ background-color: #a1ded8;
8411
+ }
8412
+
8413
+ .picker__footer {
8414
+ text-align: right;
8415
+ padding: 5px 10px;
8416
+ }
8417
+
8418
+ .picker__close, .picker__today {
8419
+ font-size: 1.1rem;
8420
+ padding: 0 1rem;
8421
+ color: #26a69a;
8422
+ }
8423
+
8424
+ .picker__nav--prev:before,
8425
+ .picker__nav--next:before {
8426
+ content: " ";
8427
+ border-top: .5em solid transparent;
8428
+ border-bottom: .5em solid transparent;
8429
+ border-right: 0.75em solid #676767;
8430
+ width: 0;
8431
+ height: 0;
8432
+ display: block;
8433
+ margin: 0 auto;
8434
+ }
8435
+
8436
+ .picker__nav--next:before {
8437
+ border-right: 0;
8438
+ border-left: 0.75em solid #676767;
8439
+ }
8440
+
8441
+ button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {
8442
+ background-color: #a1ded8;
8443
+ }
8444
+
8445
+ /* ==========================================================================
8446
+ $BASE-TIME-PICKER
8447
+ ========================================================================== */
8448
+ /**
8449
+ * The list of times.
8450
+ */
8451
+ .picker__list {
8452
+ list-style: none;
8453
+ padding: 0.75em 0 4.2em;
8454
+ margin: 0;
8455
+ }
8456
+
8457
+ /**
8458
+ * The times on the clock.
8459
+ */
8460
+ .picker__list-item {
8461
+ border-bottom: 1px solid #dddddd;
8462
+ border-top: 1px solid #dddddd;
8463
+ margin-bottom: -1px;
8464
+ position: relative;
8465
+ background: #ffffff;
8466
+ padding: .75em 1.25em;
8467
+ }
8468
+
8469
+ @media (min-height: 46.75em) {
8470
+ .picker__list-item {
8471
+ padding: .5em 1em;
8472
+ }
8473
+ }
8474
+
8475
+ /* Hovered time */
8476
+ .picker__list-item:hover {
8477
+ cursor: pointer;
8478
+ color: #000000;
8479
+ background: #b1dcfb;
8480
+ border-color: #0089ec;
8481
+ z-index: 10;
8482
+ }
8483
+
8484
+ /* Highlighted and hovered/focused time */
8485
+ .picker__list-item--highlighted {
8486
+ border-color: #0089ec;
8487
+ z-index: 10;
8488
+ }
8489
+
8490
+ .picker__list-item--highlighted:hover,
8491
+ .picker--focused .picker__list-item--highlighted {
8492
+ cursor: pointer;
8493
+ color: #000000;
8494
+ background: #b1dcfb;
8495
+ }
8496
+
8497
+ /* Selected and hovered/focused time */
8498
+ .picker__list-item--selected,
8499
+ .picker__list-item--selected:hover,
8500
+ .picker--focused .picker__list-item--selected {
8501
+ background: #0089ec;
8502
+ color: #ffffff;
8503
+ z-index: 10;
8504
+ }
8505
+
8506
+ /* Disabled time */
8507
+ .picker__list-item--disabled,
8508
+ .picker__list-item--disabled:hover,
8509
+ .picker--focused .picker__list-item--disabled {
8510
+ background: #f5f5f5;
8511
+ border-color: #f5f5f5;
8512
+ color: #dddddd;
8513
+ cursor: default;
8514
+ border-color: #dddddd;
8515
+ z-index: auto;
8516
+ }
8517
+
8518
+ /**
8519
+ * The clear button
8520
+ */
8521
+ .picker--time .picker__button--clear {
8522
+ display: block;
8523
+ width: 80%;
8524
+ margin: 1em auto 0;
8525
+ padding: 1em 1.25em;
8526
+ background: none;
8527
+ border: 0;
8528
+ font-weight: 500;
8529
+ font-size: .67em;
8530
+ text-align: center;
8531
+ text-transform: uppercase;
8532
+ color: #666;
8533
+ }
8534
+
8535
+ .picker--time .picker__button--clear:hover,
8536
+ .picker--time .picker__button--clear:focus {
8537
+ color: #000000;
8538
+ background: #b1dcfb;
8539
+ background: #ee2200;
8540
+ border-color: #ee2200;
8541
+ cursor: pointer;
8542
+ color: #ffffff;
8543
+ outline: none;
8544
+ }
8545
+
8546
+ .picker--time .picker__button--clear:before {
8547
+ top: -0.25em;
8548
+ color: #666;
8549
+ font-size: 1.25em;
8550
+ font-weight: bold;
8551
+ }
8552
+
8553
+ .picker--time .picker__button--clear:hover:before,
8554
+ .picker--time .picker__button--clear:focus:before {
8555
+ color: #ffffff;
8556
+ }
8557
+
8558
+ /* ==========================================================================
8559
+ $DEFAULT-TIME-PICKER
8560
+ ========================================================================== */
8561
+ /**
8562
+ * The frame the bounds the time picker.
8563
+ */
8564
+ .picker--time .picker__frame {
8565
+ min-width: 256px;
8566
+ max-width: 320px;
8567
+ }
8568
+
8569
+ /**
8570
+ * The picker box.
8571
+ */
8572
+ .picker--time .picker__box {
8573
+ font-size: 1em;
8574
+ background: #f2f2f2;
8575
+ padding: 0;
8576
+ }
8577
+
8578
+ @media (min-height: 40.125em) {
8579
+ .picker--time .picker__box {
8580
+ margin-bottom: 5em;
8581
+ }
8582
+ }
admin/css/materialize.min.css CHANGED
@@ -1,16 +1,16 @@
1
- /*!