Version Description
Download this release
Release Info
Developer | rextheme |
Plugin | WP VR – 360 Panorama and virtual tour creator for WordPress |
Version | 1.0.0 |
Comparing to | |
See all releases |
Version 1.0.0
- LICENSE.txt +339 -0
- README.txt +99 -0
- admin/class-wpvr-admin-pages.php +35 -0
- admin/class-wpvr-admin.php +1364 -0
- admin/class-wpvr-ajax.php +353 -0
- admin/css/font-awesome.min.css +4 -0
- admin/css/materialize.css +8582 -0
- admin/css/materialize.min.css +16 -0
- admin/css/wpvr-admin.css +1222 -0
- admin/icon/Document.png +0 -0
- admin/icon/Feedback.png +0 -0
- admin/icon/Heart.png +0 -0
- admin/icon/Rating.png +0 -0
- admin/icon/Social_Booster_Banner.png +0 -0
- admin/icon/Support.png +0 -0
- admin/icon/banner.png +0 -0
- admin/icon/icon-128x128.png +0 -0
- admin/icon/icon.png +0 -0
- admin/index.php +1 -0
- admin/js/jquery.repeater.min.js +5 -0
- admin/js/materialize.js +8031 -0
- admin/js/materialize.min.js +10 -0
- admin/js/wpvr-admin.js +465 -0
- admin/lib/pannellum/.gitignore +8 -0
- admin/lib/pannellum/.npmignore +8 -0
- admin/lib/pannellum/src/css/img/background.svg +3 -0
- admin/lib/pannellum/src/css/img/compass.svg +3 -0
- admin/lib/pannellum/src/css/img/grab.svg +3 -0
- admin/lib/pannellum/src/css/img/grabbing.svg +3 -0
- admin/lib/pannellum/src/css/img/sprites.svg +14 -0
- admin/lib/pannellum/src/css/pannellum.css +439 -0
- admin/lib/pannellum/src/js/RequestAnimationFrame.js +22 -0
- admin/lib/pannellum/src/js/libpannellum.js +1317 -0
- admin/lib/pannellum/src/js/pannellum.js +33 -0
LICENSE.txt
ADDED
@@ -0,0 +1,339 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
GNU GENERAL PUBLIC LICENSE
|
2 |
+
Version 2, June 1991
|
3 |
+
|
4 |
+
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
5 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
6 |
+
Everyone is permitted to copy and distribute verbatim copies
|
7 |
+
of this license document, but changing it is not allowed.
|
8 |
+
|
9 |
+
Preamble
|
10 |
+
|
11 |
+
The licenses for most software are designed to take away your
|
12 |
+
freedom to share and change it. By contrast, the GNU General Public
|
13 |
+
License is intended to guarantee your freedom to share and change free
|
14 |
+
software--to make sure the software is free for all its users. This
|
15 |
+
General Public License applies to most of the Free Software
|
16 |
+
Foundation's software and to any other program whose authors commit to
|
17 |
+
using it. (Some other Free Software Foundation software is covered by
|
18 |
+
the GNU Lesser General Public License instead.) You can apply it to
|
19 |
+
your programs, too.
|
20 |
+
|
21 |
+
When we speak of free software, we are referring to freedom, not
|
22 |
+
price. Our General Public Licenses are designed to make sure that you
|
23 |
+
have the freedom to distribute copies of free software (and charge for
|
24 |
+
this service if you wish), that you receive source code or can get it
|
25 |
+
if you want it, that you can change the software or use pieces of it
|
26 |
+
in new free programs; and that you know you can do these things.
|
27 |
+
|
28 |
+
To protect your rights, we need to make restrictions that forbid
|
29 |
+
anyone to deny you these rights or to ask you to surrender the rights.
|
30 |
+
These restrictions translate to certain responsibilities for you if you
|
31 |
+
distribute copies of the software, or if you modify it.
|
32 |
+
|
33 |
+
For example, if you distribute copies of such a program, whether
|
34 |
+
gratis or for a fee, you must give the recipients all the rights that
|
35 |
+
you have. You must make sure that they, too, receive or can get the
|
36 |
+
source code. And you must show them these terms so they know their
|
37 |
+
rights.
|
38 |
+
|
39 |
+
We protect your rights with two steps: (1) copyright the software, and
|
40 |
+
(2) offer you this license which gives you legal permission to copy,
|
41 |
+
distribute and/or modify the software.
|
42 |
+
|
43 |
+
Also, for each author's protection and ours, we want to make certain
|
44 |
+
that everyone understands that there is no warranty for this free
|
45 |
+
software. If the software is modified by someone else and passed on, we
|
46 |
+
want its recipients to know that what they have is not the original, so
|
47 |
+
that any problems introduced by others will not reflect on the original
|
48 |
+
authors' reputations.
|
49 |
+
|
50 |
+
Finally, any free program is threatened constantly by software
|
51 |
+
patents. We wish to avoid the danger that redistributors of a free
|
52 |
+
program will individually obtain patent licenses, in effect making the
|
53 |
+
program proprietary. To prevent this, we have made it clear that any
|
54 |
+
patent must be licensed for everyone's free use or not licensed at all.
|
55 |
+
|
56 |
+
The precise terms and conditions for copying, distribution and
|
57 |
+
modification follow.
|
58 |
+
|
59 |
+
GNU GENERAL PUBLIC LICENSE
|
60 |
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
61 |
+
|
62 |
+
0. This License applies to any program or other work which contains
|
63 |
+
a notice placed by the copyright holder saying it may be distributed
|
64 |
+
under the terms of this General Public License. The "Program", below,
|
65 |
+
refers to any such program or work, and a "work based on the Program"
|
66 |
+
means either the Program or any derivative work under copyright law:
|
67 |
+
that is to say, a work containing the Program or a portion of it,
|
68 |
+
either verbatim or with modifications and/or translated into another
|
69 |
+
language. (Hereinafter, translation is included without limitation in
|
70 |
+
the term "modification".) Each licensee is addressed as "you".
|
71 |
+
|
72 |
+
Activities other than copying, distribution and modification are not
|
73 |
+
covered by this License; they are outside its scope. The act of
|
74 |
+
running the Program is not restricted, and the output from the Program
|
75 |
+
is covered only if its contents constitute a work based on the
|
76 |
+
Program (independent of having been made by running the Program).
|
77 |
+
Whether that is true depends on what the Program does.
|
78 |
+
|
79 |
+
1. You may copy and distribute verbatim copies of the Program's
|
80 |
+
source code as you receive it, in any medium, provided that you
|
81 |
+
conspicuously and appropriately publish on each copy an appropriate
|
82 |
+
copyright notice and disclaimer of warranty; keep intact all the
|
83 |
+
notices that refer to this License and to the absence of any warranty;
|
84 |
+
and give any other recipients of the Program a copy of this License
|
85 |
+
along with the Program.
|
86 |
+
|
87 |
+
You may charge a fee for the physical act of transferring a copy, and
|
88 |
+
you may at your option offer warranty protection in exchange for a fee.
|
89 |
+
|
90 |
+
2. You may modify your copy or copies of the Program or any portion
|
91 |
+
of it, thus forming a work based on the Program, and copy and
|
92 |
+
distribute such modifications or work under the terms of Section 1
|
93 |
+
above, provided that you also meet all of these conditions:
|
94 |
+
|
95 |
+
a) You must cause the modified files to carry prominent notices
|
96 |
+
stating that you changed the files and the date of any change.
|
97 |
+
|
98 |
+
b) You must cause any work that you distribute or publish, that in
|
99 |
+
whole or in part contains or is derived from the Program or any
|
100 |
+
part thereof, to be licensed as a whole at no charge to all third
|
101 |
+
parties under the terms of this License.
|
102 |
+
|
103 |
+
c) If the modified program normally reads commands interactively
|
104 |
+
when run, you must cause it, when started running for such
|
105 |
+
interactive use in the most ordinary way, to print or display an
|
106 |
+
announcement including an appropriate copyright notice and a
|
107 |
+
notice that there is no warranty (or else, saying that you provide
|
108 |
+
a warranty) and that users may redistribute the program under
|
109 |
+
these conditions, and telling the user how to view a copy of this
|
110 |
+
License. (Exception: if the Program itself is interactive but
|
111 |
+
does not normally print such an announcement, your work based on
|
112 |
+
the Program is not required to print an announcement.)
|
113 |
+
|
114 |
+
These requirements apply to the modified work as a whole. If
|
115 |
+
identifiable sections of that work are not derived from the Program,
|
116 |
+
and can be reasonably considered independent and separate works in
|
117 |
+
themselves, then this License, and its terms, do not apply to those
|
118 |
+
sections when you distribute them as separate works. But when you
|
119 |
+
distribute the same sections as part of a whole which is a work based
|
120 |
+
on the Program, the distribution of the whole must be on the terms of
|
121 |
+
this License, whose permissions for other licensees extend to the
|
122 |
+
entire whole, and thus to each and every part regardless of who wrote it.
|
123 |
+
|
124 |
+
Thus, it is not the intent of this section to claim rights or contest
|
125 |
+
your rights to work written entirely by you; rather, the intent is to
|
126 |
+
exercise the right to control the distribution of derivative or
|
127 |
+
collective works based on the Program.
|
128 |
+
|
129 |
+
In addition, mere aggregation of another work not based on the Program
|
130 |
+
with the Program (or with a work based on the Program) on a volume of
|
131 |
+
a storage or distribution medium does not bring the other work under
|
132 |
+
the scope of this License.
|
133 |
+
|
134 |
+
3. You may copy and distribute the Program (or a work based on it,
|
135 |
+
under Section 2) in object code or executable form under the terms of
|
136 |
+
Sections 1 and 2 above provided that you also do one of the following:
|
137 |
+
|
138 |
+
a) Accompany it with the complete corresponding machine-readable
|
139 |
+
source code, which must be distributed under the terms of Sections
|
140 |
+
1 and 2 above on a medium customarily used for software interchange; or,
|
141 |
+
|
142 |
+
b) Accompany it with a written offer, valid for at least three
|
143 |
+
years, to give any third party, for a charge no more than your
|
144 |
+
cost of physically performing source distribution, a complete
|
145 |
+
machine-readable copy of the corresponding source code, to be
|
146 |
+
distributed under the terms of Sections 1 and 2 above on a medium
|
147 |
+
customarily used for software interchange; or,
|
148 |
+
|
149 |
+
c) Accompany it with the information you received as to the offer
|
150 |
+
to distribute corresponding source code. (This alternative is
|
151 |
+
allowed only for noncommercial distribution and only if you
|
152 |
+
received the program in object code or executable form with such
|
153 |
+
an offer, in accord with Subsection b above.)
|
154 |
+
|
155 |
+
The source code for a work means the preferred form of the work for
|
156 |
+
making modifications to it. For an executable work, complete source
|
157 |
+
code means all the source code for all modules it contains, plus any
|
158 |
+
associated interface definition files, plus the scripts used to
|
159 |
+
control compilation and installation of the executable. However, as a
|
160 |
+
special exception, the source code distributed need not include
|
161 |
+
anything that is normally distributed (in either source or binary
|
162 |
+
form) with the major components (compiler, kernel, and so on) of the
|
163 |
+
operating system on which the executable runs, unless that component
|
164 |
+
itself accompanies the executable.
|
165 |
+
|
166 |
+
If distribution of executable or object code is made by offering
|
167 |
+
access to copy from a designated place, then offering equivalent
|
168 |
+
access to copy the source code from the same place counts as
|
169 |
+
distribution of the source code, even though third parties are not
|
170 |
+
compelled to copy the source along with the object code.
|
171 |
+
|
172 |
+
4. You may not copy, modify, sublicense, or distribute the Program
|
173 |
+
except as expressly provided under this License. Any attempt
|
174 |
+
otherwise to copy, modify, sublicense or distribute the Program is
|
175 |
+
void, and will automatically terminate your rights under this License.
|
176 |
+
However, parties who have received copies, or rights, from you under
|
177 |
+
this License will not have their licenses terminated so long as such
|
178 |
+
parties remain in full compliance.
|
179 |
+
|
180 |
+
5. You are not required to accept this License, since you have not
|
181 |
+
signed it. However, nothing else grants you permission to modify or
|
182 |
+
distribute the Program or its derivative works. These actions are
|
183 |
+
prohibited by law if you do not accept this License. Therefore, by
|
184 |
+
modifying or distributing the Program (or any work based on the
|
185 |
+
Program), you indicate your acceptance of this License to do so, and
|
186 |
+
all its terms and conditions for copying, distributing or modifying
|
187 |
+
the Program or works based on it.
|
188 |
+
|
189 |
+
6. Each time you redistribute the Program (or any work based on the
|
190 |
+
Program), the recipient automatically receives a license from the
|
191 |
+
original licensor to copy, distribute or modify the Program subject to
|
192 |
+
these terms and conditions. You may not impose any further
|
193 |
+
restrictions on the recipients' exercise of the rights granted herein.
|
194 |
+
You are not responsible for enforcing compliance by third parties to
|
195 |
+
this License.
|
196 |
+
|
197 |
+
7. If, as a consequence of a court judgment or allegation of patent
|
198 |
+
infringement or for any other reason (not limited to patent issues),
|
199 |
+
conditions are imposed on you (whether by court order, agreement or
|
200 |
+
otherwise) that contradict the conditions of this License, they do not
|
201 |
+
excuse you from the conditions of this License. If you cannot
|
202 |
+
distribute so as to satisfy simultaneously your obligations under this
|
203 |
+
License and any other pertinent obligations, then as a consequence you
|
204 |
+
may not distribute the Program at all. For example, if a patent
|
205 |
+
license would not permit royalty-free redistribution of the Program by
|
206 |
+
all those who receive copies directly or indirectly through you, then
|
207 |
+
the only way you could satisfy both it and this License would be to
|
208 |
+
refrain entirely from distribution of the Program.
|
209 |
+
|
210 |
+
If any portion of this section is held invalid or unenforceable under
|
211 |
+
any particular circumstance, the balance of the section is intended to
|
212 |
+
apply and the section as a whole is intended to apply in other
|
213 |
+
circumstances.
|
214 |
+
|
215 |
+
It is not the purpose of this section to induce you to infringe any
|
216 |
+
patents or other property right claims or to contest validity of any
|
217 |
+
such claims; this section has the sole purpose of protecting the
|
218 |
+
integrity of the free software distribution system, which is
|
219 |
+
implemented by public license practices. Many people have made
|
220 |
+
generous contributions to the wide range of software distributed
|
221 |
+
through that system in reliance on consistent application of that
|
222 |
+
system; it is up to the author/donor to decide if he or she is willing
|
223 |
+
to distribute software through any other system and a licensee cannot
|
224 |
+
impose that choice.
|
225 |
+
|
226 |
+
This section is intended to make thoroughly clear what is believed to
|
227 |
+
be a consequence of the rest of this License.
|
228 |
+
|
229 |
+
8. If the distribution and/or use of the Program is restricted in
|
230 |
+
certain countries either by patents or by copyrighted interfaces, the
|
231 |
+
original copyright holder who places the Program under this License
|
232 |
+
may add an explicit geographical distribution limitation excluding
|
233 |
+
those countries, so that distribution is permitted only in or among
|
234 |
+
countries not thus excluded. In such case, this License incorporates
|
235 |
+
the limitation as if written in the body of this License.
|
236 |
+
|
237 |
+
9. The Free Software Foundation may publish revised and/or new versions
|
238 |
+
of the General Public License from time to time. Such new versions will
|
239 |
+
be similar in spirit to the present version, but may differ in detail to
|
240 |
+
address new problems or concerns.
|
241 |
+
|
242 |
+
Each version is given a distinguishing version number. If the Program
|
243 |
+
specifies a version number of this License which applies to it and "any
|
244 |
+
later version", you have the option of following the terms and conditions
|
245 |
+
either of that version or of any later version published by the Free
|
246 |
+
Software Foundation. If the Program does not specify a version number of
|
247 |
+
this License, you may choose any version ever published by the Free Software
|
248 |
+
Foundation.
|
249 |
+
|
250 |
+
10. If you wish to incorporate parts of the Program into other free
|
251 |
+
programs whose distribution conditions are different, write to the author
|
252 |
+
to ask for permission. For software which is copyrighted by the Free
|
253 |
+
Software Foundation, write to the Free Software Foundation; we sometimes
|
254 |
+
make exceptions for this. Our decision will be guided by the two goals
|
255 |
+
of preserving the free status of all derivatives of our free software and
|
256 |
+
of promoting the sharing and reuse of software generally.
|
257 |
+
|
258 |
+
NO WARRANTY
|
259 |
+
|
260 |
+
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
261 |
+
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
262 |
+
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
263 |
+
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
264 |
+
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
265 |
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
266 |
+
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
267 |
+
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
268 |
+
REPAIR OR CORRECTION.
|
269 |
+
|
270 |
+
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
271 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
272 |
+
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
273 |
+
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
274 |
+
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
275 |
+
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
276 |
+
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
277 |
+
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
278 |
+
POSSIBILITY OF SUCH DAMAGES.
|
279 |
+
|
280 |
+
END OF TERMS AND CONDITIONS
|
281 |
+
|
282 |
+
How to Apply These Terms to Your New Programs
|
283 |
+
|
284 |
+
If you develop a new program, and you want it to be of the greatest
|
285 |
+
possible use to the public, the best way to achieve this is to make it
|
286 |
+
free software which everyone can redistribute and change under these terms.
|
287 |
+
|
288 |
+
To do so, attach the following notices to the program. It is safest
|
289 |
+
to attach them to the start of each source file to most effectively
|
290 |
+
convey the exclusion of warranty; and each file should have at least
|
291 |
+
the "copyright" line and a pointer to where the full notice is found.
|
292 |
+
|
293 |
+
<one line to give the program's name and a brief idea of what it does.>
|
294 |
+
Copyright (C) <year> <name of author>
|
295 |
+
|
296 |
+
This program is free software; you can redistribute it and/or modify
|
297 |
+
it under the terms of the GNU General Public License as published by
|
298 |
+
the Free Software Foundation; either version 2 of the License, or
|
299 |
+
(at your option) any later version.
|
300 |
+
|
301 |
+
This program is distributed in the hope that it will be useful,
|
302 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
303 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
304 |
+
GNU General Public License for more details.
|
305 |
+
|
306 |
+
You should have received a copy of the GNU General Public License along
|
307 |
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
308 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
309 |
+
|
310 |
+
Also add information on how to contact you by electronic and paper mail.
|
311 |
+
|
312 |
+
If the program is interactive, make it output a short notice like this
|
313 |
+
when it starts in an interactive mode:
|
314 |
+
|
315 |
+
Gnomovision version 69, Copyright (C) year name of author
|
316 |
+
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
317 |
+
This is free software, and you are welcome to redistribute it
|
318 |
+
under certain conditions; type `show c' for details.
|
319 |
+
|
320 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
321 |
+
parts of the General Public License. Of course, the commands you use may
|
322 |
+
be called something other than `show w' and `show c'; they could even be
|
323 |
+
mouse-clicks or menu items--whatever suits your program.
|
324 |
+
|
325 |
+
You should also get your employer (if you work as a programmer) or your
|
326 |
+
school, if any, to sign a "copyright disclaimer" for the program, if
|
327 |
+
necessary. Here is a sample; alter the names:
|
328 |
+
|
329 |
+
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
330 |
+
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
331 |
+
|
332 |
+
<signature of Ty Coon>, 1 April 1989
|
333 |
+
Ty Coon, President of Vice
|
334 |
+
|
335 |
+
This General Public License does not permit incorporating your program into
|
336 |
+
proprietary programs. If your program is a subroutine library, you may
|
337 |
+
consider it more useful to permit linking proprietary applications with the
|
338 |
+
library. If this is what you want to do, use the GNU Lesser General
|
339 |
+
Public License instead of this License.
|
README.txt
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== WP VR - 360 Panorama and virtual tour creator for WordPress ===
|
2 |
+
Contributors: rextheme, coderexco
|
3 |
+
Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
|
4 |
+
Tags: VR, virtual reality, panorama, virtual tour, 3d panorama, 360 panorama, real estate tour, interactive tour, panorama viewer
|
5 |
+
Requires at least: 4.0
|
6 |
+
Tested up to: 5.0
|
7 |
+
Stable tag: 1.0.0
|
8 |
+
Requires PHP: 5.6
|
9 |
+
License: GPLv2 or later
|
10 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
+
|
12 |
+
Let customers take a virtual tour and get them excited!! Let them experience the glimpse of a live tour of your place.
|
13 |
+
|
14 |
+
== Description ==
|
15 |
+
With the WPVR, set up a virtual tour for your customer where they can navigate a 360 view of your location, switch between several spots (or rooms), get information on items on the location, zoom in and out to get better view, and get an overall idea about how your place may look in reality.
|
16 |
+
|
17 |
+
|
18 |
+
> Get your customers hooked by giving them a tour that makes them realize how amazing your place is.
|
19 |
+
|
20 |
+
**Easy and simple interface**
|
21 |
+
Simple, easy and straight forward options to add your images and create a tour.
|
22 |
+
|
23 |
+
**Easy direction and navigation tools**
|
24 |
+
Create multiple hotspots for each scene at your own will. You can add hotspot type: info to get on-click or hover information or add URL. You can use hotspot type: scene and connect it to visit other scenes.
|
25 |
+
|
26 |
+
**Customize style easily**
|
27 |
+
You can implement your own custom style class and, alter the design and display of content from hotspot easily.
|
28 |
+
|
29 |
+
**Easy to embed your virtual tour:**
|
30 |
+
Creating every tour location generates a shortcode. You can simply apply this shorcode on your page along with proper width and height, and your website will include the virtual tour just the way you want.
|
31 |
+
|
32 |
+
|
33 |
+
= Features: =
|
34 |
+
= Free Version =
|
35 |
+
* Responsive default design
|
36 |
+
* Preview tour on back-end
|
37 |
+
* Default Zoom Control
|
38 |
+
* Option to set scene fade animation duration
|
39 |
+
* Customization freedom of hotspot contents
|
40 |
+
* Supports Equiretangular Panaromic Image type
|
41 |
+
* Extensive keyboard and move navigation: Use direction keys or click and drag to navigate
|
42 |
+
* Mouse scroll or keyboard buttons to zoom in and out
|
43 |
+
* Generates shortcodes to embed item on webpage
|
44 |
+
* Supports full screen
|
45 |
+
* Support from support forum
|
46 |
+
|
47 |
+
= Premium Version =
|
48 |
+
* Unlimited scenes
|
49 |
+
* Unlimited hotspots
|
50 |
+
* Personalized support on both support forum and our support e-mail.
|
51 |
+
|
52 |
+
|
53 |
+
**Upcoming Features**
|
54 |
+
- Panoramic image type support: Cubemap, Multiresolution
|
55 |
+
- Target scene angle of view.
|
56 |
+
- Target scene default zoom level.
|
57 |
+
- Horizontal and vertical grab control.
|
58 |
+
- Gutenberg block support.
|
59 |
+
- Auto rotation
|
60 |
+
- Rotational angle (in seconds)
|
61 |
+
- On screen control button.
|
62 |
+
|
63 |
+
|
64 |
+
== Frequently Asked Questions ==
|
65 |
+
= 1. Why should I use WPVR? =
|
66 |
+
You can easily create a Virtual Tour for your place using WPVR. You simply need to provide a 360 degree panoramic photo, and this plugin will create a virtual tour which customers can navigate easily. You can further add hotspots to include information or add more scenes to navigate to.
|
67 |
+
|
68 |
+
= 2. Installation =
|
69 |
+
You can download the plugin either from wordpress.org or from rextheme.com. Once you have downloaded the file, you can then go to your dashboard, under plugin, select Add New and upload the file. Then Install and activate the plugin. Once activated, on the left side under your dashboard, you will find the option WPVR at the bottom.
|
70 |
+
|
71 |
+
= 3. What kind of pictures should I take to use in WPVR? =
|
72 |
+
To make a perfect equirectangular image, you need to use a 360 degree panoramic photo of the area you want to preview.
|
73 |
+
|
74 |
+
= 4. Can I embed images and videos on hotspot? =
|
75 |
+
Yes, you can include image source or video embed link on the section On Click Content in a hotspot, which will view the image or video when clicked on.
|
76 |
+
|
77 |
+
= 5. Can I Customize the Content on the hotspot? =
|
78 |
+
Yes. You can create a custom class on your theme, stating whatever style you want. 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.
|
79 |
+
|
80 |
+
|
81 |
+
**[Documentation](https://rextheme.com/docs/wpvr-360-panorama-and-virtual-tour-creator-for-wordpress/)**
|
82 |
+
|
83 |
+
|
84 |
+
|
85 |
+
== Screenshots ==
|
86 |
+
1. General settings window.
|
87 |
+
2. Scene setup window.
|
88 |
+
3. Hotspot setup window.
|
89 |
+
4. Preview window.
|
90 |
+
5. Front-end view.
|
91 |
+
|
92 |
+
== Changelog ==
|
93 |
+
|
94 |
+
= 1.0 =
|
95 |
+
* Hotspot custom icon support.
|
96 |
+
* On screen control available.
|
97 |
+
|
98 |
+
== Upgrade Notice ==
|
99 |
+
Please do update the WP VR to the latest version. Each update makes it sure your plugin is supporting all tour features.
|
admin/class-wpvr-admin-pages.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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( 'Wpvr', 'Wpvr', 'manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'),plugins_url(). '/wpvr/images/icon.png' , 110);
|
21 |
+
|
22 |
+
add_submenu_page( 'wpvr', 'Wpvr', 'Get Started','manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'));
|
23 |
+
|
24 |
+
add_submenu_page( 'wpvr', 'Wpvr', 'Tours','manage_options', 'edit.php?post_type=wpvr_item', NULL);
|
25 |
+
|
26 |
+
add_submenu_page( 'wpvr', 'Wpvr', 'Add New Tour','manage_options', 'post-new.php?post_type=wpvr_item', NULL);
|
27 |
+
|
28 |
+
}
|
29 |
+
|
30 |
+
function wpvr_admin_doc() {
|
31 |
+
|
32 |
+
require_once plugin_dir_path(__FILE__) . '/partials/wpvr_documentation.php';
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
admin/class-wpvr-admin.php
ADDED
@@ -0,0 +1,1364 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
/**
|
14 |
+
* The admin-specific functionality of the plugin.
|
15 |
+
*
|
16 |
+
* Defines the plugin name, version, and two examples hooks for how to
|
17 |
+
* enqueue the admin-specific stylesheet and JavaScript.
|
18 |
+
*
|
19 |
+
* @package Wpvr
|
20 |
+
* @subpackage Wpvr/admin
|
21 |
+
* @author Rextheme <sakib@coderex.co>
|
22 |
+
*/
|
23 |
+
class Wpvr_Admin {
|
24 |
+
|
25 |
+
/**
|
26 |
+
* The ID of this plugin.
|
27 |
+
*
|
28 |
+
* @since 1.0.0
|
29 |
+
* @access private
|
30 |
+
* @var string $plugin_name The ID of this plugin.
|
31 |
+
*/
|
32 |
+
private $plugin_name;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* The version of this plugin.
|
36 |
+
*
|
37 |
+
* @since 1.0.0
|
38 |
+
* @access private
|
39 |
+
* @var string $version The current version of this plugin.
|
40 |
+
*/
|
41 |
+
private $version;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* The post type of this plugin.
|
45 |
+
*
|
46 |
+
* @since 1.0.0
|
47 |
+
*/
|
48 |
+
private $post_type;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Initialize the class and set its properties.
|
52 |
+
*
|
53 |
+
* @since 1.0.0
|
54 |
+
* @param string $plugin_name The name of this plugin.
|
55 |
+
* @param string $version The version of this plugin.
|
56 |
+
*/
|
57 |
+
public function __construct( $plugin_name, $version, $post_type ) {
|
58 |
+
|
59 |
+
$this->plugin_name = $plugin_name;
|
60 |
+
$this->version = $version;
|
61 |
+
$this->post_type = $post_type;
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Register the stylesheets for the admin area.
|
66 |
+
*
|
67 |
+
* @since 1.0.0
|
68 |
+
*/
|
69 |
+
public function enqueue_styles() {
|
70 |
+
|
71 |
+
/**
|
72 |
+
* This function is provided for demonstration purposes only.
|
73 |
+
*
|
74 |
+
* An instance of this class should be passed to the run() function
|
75 |
+
* defined in Wpvr_Loader as all of the hooks are defined
|
76 |
+
* in that particular class.
|
77 |
+
*
|
78 |
+
* The Wpvr_Loader will then create the relationship
|
79 |
+
* between the defined hooks and the functions defined in this
|
80 |
+
* class.
|
81 |
+
*/
|
82 |
+
wp_enqueue_style( $this->plugin_name . 'fontawesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css', array(), $this->version, 'all' );
|
83 |
+
wp_enqueue_style( 'materialize-icons', 'https://fonts.googleapis.com/icon?family=Material+Icons', array(), $this->version, 'all' );
|
84 |
+
// wp_enqueue_style( 'materialize-css', plugin_dir_url( __FILE__ ) . 'css/materialize.min.css', array(), $this->version, 'all' );
|
85 |
+
// wp_enqueue_style( 'materialize-icons', 'https://fonts.googleapis.com/icon?family=Material+Icons', array(), $this->version, 'all' );
|
86 |
+
|
87 |
+
$screen = get_current_screen();
|
88 |
+
|
89 |
+
if ($screen->id=="toplevel_page_wpvr") {
|
90 |
+
wp_enqueue_style( 'materialize-css', plugin_dir_url( __FILE__ ) . 'css/materialize.min.css', array(), $this->version, 'all' );
|
91 |
+
}
|
92 |
+
// wp_enqueue_style( 'materialize-css', plugin_dir_url( __FILE__ ) . 'css/materialize.min.css', array(), $this->version, 'all' );
|
93 |
+
wp_enqueue_style('panellium-css', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/css/pannellum.css', array(), true);
|
94 |
+
wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpvr-admin.css', array(), $this->version, 'all' );
|
95 |
+
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Register the JavaScript for the admin area.
|
100 |
+
*
|
101 |
+
* @since 1.0.0
|
102 |
+
*/
|
103 |
+
public function enqueue_scripts() {
|
104 |
+
|
105 |
+
/**
|
106 |
+
* This function is provided for demonstration purposes only.
|
107 |
+
*
|
108 |
+
* An instance of this class should be passed to the run() function
|
109 |
+
* defined in Wpvr_Loader as all of the hooks are defined
|
110 |
+
* in that particular class.
|
111 |
+
*
|
112 |
+
* The Wpvr_Loader will then create the relationship
|
113 |
+
* between the defined hooks and the functions defined in this
|
114 |
+
* class.
|
115 |
+
*/
|
116 |
+
wp_enqueue_media();
|
117 |
+
wp_enqueue_script('panellium-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/pannellum.js', array(), true);
|
118 |
+
wp_enqueue_script('panelliumlib-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
|
119 |
+
wp_enqueue_script( 'materialize-js', plugin_dir_url( __FILE__ ) . 'js/materialize.min.js', array( 'jquery' ), $this->version, false );
|
120 |
+
wp_enqueue_script( 'jquery-repeater', plugin_dir_url( __FILE__ ) .'js/jquery.repeater.min.js', array('jquery'), true);
|
121 |
+
wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/wpvr-admin.js', array( 'jquery' ), $this->version, false );
|
122 |
+
wp_localize_script( $this->plugin_name, 'wpvr_obj', array(
|
123 |
+
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
124 |
+
'ajax_nonce' => wp_create_nonce('wpvr'),
|
125 |
+
) );
|
126 |
+
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Init the edit screen of the plugin post type item
|
131 |
+
*
|
132 |
+
* @since 1.0.0
|
133 |
+
*/
|
134 |
+
public function wpvr_admin_init() {
|
135 |
+
/*
|
136 |
+
* Documentation : https://developer.wordpress.org/reference/functions/add_meta_box/
|
137 |
+
*/
|
138 |
+
|
139 |
+
add_meta_box(
|
140 |
+
$this->post_type . '_builder_box',
|
141 |
+
__('Preview', $this->plugin_name),
|
142 |
+
array($this, 'wpvr_display_meta_box_builder'),
|
143 |
+
$this->post_type,
|
144 |
+
'advanced',
|
145 |
+
'high'
|
146 |
+
);
|
147 |
+
|
148 |
+
add_meta_box(
|
149 |
+
$this->post_type . '_shortcode_box',
|
150 |
+
__('Using this VR', $this->plugin_name),
|
151 |
+
array($this, 'wpvr_display_meta_box_shortcode'),
|
152 |
+
$this->post_type,
|
153 |
+
'side'
|
154 |
+
);
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Register the custom post type
|
159 |
+
*
|
160 |
+
* @since 1.0.0
|
161 |
+
*/
|
162 |
+
public function wpvr_add_plugin_custom_post_type() {
|
163 |
+
$labels = array(
|
164 |
+
'name' => __( 'Tour', $this->plugin_name ),
|
165 |
+
'singular_name' => __( 'Tour', $this->plugin_name ),
|
166 |
+
'add_new' => __( 'Add New Tour', $this->plugin_name ),
|
167 |
+
'add_new_item' => __( 'Add New Tour', $this->plugin_name ),
|
168 |
+
'edit_item' => __( 'Edit Tour', $this->plugin_name ),
|
169 |
+
'new_item' => __( 'New Tour', $this->plugin_name ),
|
170 |
+
'view_item' => __( 'View Tour', $this->plugin_name ),
|
171 |
+
'search_items' => __( 'Search Wpvr Tour', $this->plugin_name ),
|
172 |
+
'not_found' => __( 'No Wpvr Tour found', $this->plugin_name ),
|
173 |
+
'not_found_in_trash'=> __( 'No Wpvr Tour found in Trash', $this->plugin_name ),
|
174 |
+
'parent_item_colon' => '',
|
175 |
+
'all_items' => __( 'All Tours', $this->plugin_name ),
|
176 |
+
'menu_name' => __( 'Wpvr', $this->plugin_name ),
|
177 |
+
);
|
178 |
+
|
179 |
+
$args = array(
|
180 |
+
'labels' => $labels,
|
181 |
+
'public' => false,
|
182 |
+
'show_ui' => true,
|
183 |
+
'show_in_menu' => false,
|
184 |
+
'menu_position' => 100,
|
185 |
+
'supports' => array( 'title' ),
|
186 |
+
);
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Documentation : https://codex.wordpress.org/Function_Reference/register_post_type
|
190 |
+
*/
|
191 |
+
register_post_type( $this->post_type, $args );
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Populates the data in the custom columns
|
196 |
+
*
|
197 |
+
* @since 1.0.0
|
198 |
+
*/
|
199 |
+
function wpvr_manage_posts_custom_column( $column_name ){
|
200 |
+
$post = get_post();
|
201 |
+
|
202 |
+
switch( $column_name ) {
|
203 |
+
case 'shortcode' :
|
204 |
+
echo '<code>[wpvr id="' . $post->ID . '"]</code>';
|
205 |
+
break;
|
206 |
+
default:
|
207 |
+
break;
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Adds the custom columns to the post type admin screen
|
213 |
+
*
|
214 |
+
* @since 1.0.0
|
215 |
+
*/
|
216 |
+
public function wpvr_manage_post_columns() {
|
217 |
+
$columns = array(
|
218 |
+
'cb' => '<input type="checkbox" />',
|
219 |
+
'title' => __( 'Title', $this->plugin_name),
|
220 |
+
'shortcode' => __( 'Shortcodes', $this->plugin_name),
|
221 |
+
'author' => __( 'Author', $this->plugin_name),
|
222 |
+
'date' => __( 'Date', $this->plugin_name)
|
223 |
+
);
|
224 |
+
return $columns;
|
225 |
+
}
|
226 |
+
|
227 |
+
/**
|
228 |
+
* Sets the messages for the custom post type
|
229 |
+
*
|
230 |
+
* @since 1.0.0
|
231 |
+
*/
|
232 |
+
public function wpvr_post_updated_messages( $messages ) {
|
233 |
+
$messages[$this->post_type][1] = __( 'Wpvr item updated.', $this->plugin_name);
|
234 |
+
$messages[$this->post_type][4] = __( 'Wpvr item updated.', $this->plugin_name);
|
235 |
+
|
236 |
+
return $messages;
|
237 |
+
}
|
238 |
+
|
239 |
+
/**
|
240 |
+
* Render the shortcode box for this plugin.
|
241 |
+
*
|
242 |
+
* @since 1.0.0
|
243 |
+
*/
|
244 |
+
public function wpvr_display_meta_box_shortcode() {
|
245 |
+
|
246 |
+
include_once( 'partials/wpvr-meta-box-shortcode-display.php' );
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* Render the builder box for this plugin.
|
251 |
+
*
|
252 |
+
* @since 1.0.0
|
253 |
+
*/
|
254 |
+
public function wpvr_display_meta_box_builder() {
|
255 |
+
include_once( 'partials/wpvr-meta-box-builder-display.php' );
|
256 |
+
}
|
257 |
+
|
258 |
+
/**
|
259 |
+
* Custom Metabox
|
260 |
+
*/
|
261 |
+
public function wpvr_add_setup_metabox(){
|
262 |
+
add_meta_box( 'setup', __( 'Setup' ), array($this, 'wpvr_setup'), 'wpvr_item', 'normal', 'low' );
|
263 |
+
}
|
264 |
+
public function wpvr_setup($post) {
|
265 |
+
$postdata = get_post_meta( $post->ID, 'panodata', true );
|
266 |
+
$autoload = false;
|
267 |
+
if (isset($postdata["autoLoad"])) {
|
268 |
+
$autoload = $postdata["autoLoad"];
|
269 |
+
}
|
270 |
+
|
271 |
+
$control = false;
|
272 |
+
if (isset($postdata["showControls"])) {
|
273 |
+
$control = $postdata["showControls"];
|
274 |
+
}
|
275 |
+
|
276 |
+
$default_scene = '';
|
277 |
+
if (isset($postdata["defaultscene"])) {
|
278 |
+
$default_scene = $postdata["defaultscene"];
|
279 |
+
}
|
280 |
+
|
281 |
+
$scene_fade_duration = '';
|
282 |
+
if (isset($postdata["scenefadeduration"])) {
|
283 |
+
$scene_fade_duration = $postdata["scenefadeduration"];
|
284 |
+
}
|
285 |
+
|
286 |
+
$pano_data = '';
|
287 |
+
if (isset($postdata["panodata"])) {
|
288 |
+
$pano_data = $postdata["panodata"];
|
289 |
+
}
|
290 |
+
|
291 |
+
$html = '';
|
292 |
+
|
293 |
+
$html .= '<div class="pano-setup">';
|
294 |
+
|
295 |
+
$html .= '<div class="pano-alert scene-alert">';
|
296 |
+
$html .= '<span class="destroy"><i class="fa fa-times"></i></span>';
|
297 |
+
$html .= '<p></p>';
|
298 |
+
$html .= '</div>';
|
299 |
+
|
300 |
+
$html .='<div class="rex-pano-tabs">';
|
301 |
+
$html .='<nav class="rex-pano-tab-nav rex-pano-nav-menu main-nav">';
|
302 |
+
$html .='<ul>';
|
303 |
+
$html .='<li class="general active"><span data-href="#general"><i class="fa fa-cogs"></i> general</span></li>';
|
304 |
+
$html .='<li class="scene"><span data-href="#scenes"><i class="fa fa-photo"></i> Scenes</span></li>';
|
305 |
+
$html .='<li class="hotspot"><span data-href="#scenes"><i class="fa fa-dot-circle-o"></i> hotspot</span></li>';
|
306 |
+
$html .='</ul>';
|
307 |
+
$html .='</nav>';
|
308 |
+
|
309 |
+
$html .='<div class="rex-pano-tab-content">';
|
310 |
+
$html .='<div class="rex-pano-tab general active" id="general">';
|
311 |
+
|
312 |
+
$html .= '<h6 class="title"> General Settings : </h6>';
|
313 |
+
//=Autoload setup=
|
314 |
+
if ($autoload == true) {
|
315 |
+
$html .= '<div class="single-settings autoload">';
|
316 |
+
$html .= '<span>Autoload: </span>';
|
317 |
+
$html .= '<ul>';
|
318 |
+
$html .= '<li class="radio-btn">';
|
319 |
+
$html .= '<input class="styled-radio" id="styled-radio-1" type="radio" name="autoload" value="off">';
|
320 |
+
$html .= '<label for="styled-radio-1">Off</label>';
|
321 |
+
$html .= '</li>';
|
322 |
+
|
323 |
+
$html .= '<li class="radio-btn">';
|
324 |
+
$html .= '<input class="styled-radio" id="styled-radio-2" type="radio" name="autoload" value="on" checked >';
|
325 |
+
$html .= '<label for="styled-radio-2">On</label>';
|
326 |
+
$html .= '</li>';
|
327 |
+
$html .= '</ul>';
|
328 |
+
$html .= '</div>';
|
329 |
+
}
|
330 |
+
else {
|
331 |
+
$html .= '<div class="single-settings autoload">';
|
332 |
+
$html .= '<span>Autoload: </span>';
|
333 |
+
$html .= '<ul>';
|
334 |
+
$html .= '<li class="radio-btn">';
|
335 |
+
$html .= '<input class="styled-radio" id="styled-radio-1" type="radio" name="autoload" value="off" checked >';
|
336 |
+
$html .= '<label for="styled-radio-1">Off</label>';
|
337 |
+
$html .= '</li>';
|
338 |
+
|
339 |
+
$html .= '<li class="radio-btn">';
|
340 |
+
$html .= '<input class="styled-radio" id="styled-radio-2" type="radio" name="autoload" value="on">';
|
341 |
+
$html .= '<label for="styled-radio-2">On</label>';
|
342 |
+
$html .= '</li>';
|
343 |
+
$html .= '</ul>';
|
344 |
+
$html .= '</div>';
|
345 |
+
}
|
346 |
+
//=Autoload setup End=
|
347 |
+
|
348 |
+
//=Control Setup=
|
349 |
+
if ($control == true) {
|
350 |
+
$html .= '<div class="single-settings controls">';
|
351 |
+
$html .= '<span>Show Controls: </span>';
|
352 |
+
$html .= '<ul>';
|
353 |
+
$html .= '<li class="radio-btn">';
|
354 |
+
$html .= '<input class="styled-radio" id="styled-radio-3" type="radio" name="controls" value="off">';
|
355 |
+
$html .= '<label for="styled-radio-3">Off</label>';
|
356 |
+
$html .= '</li>';
|
357 |
+
|
358 |
+
$html .= '<li class="radio-btn">';
|
359 |
+
$html .= '<input class="styled-radio" id="styled-radio-4" type="radio" name="controls" value="on" checked >';
|
360 |
+
$html .= '<label for="styled-radio-4">On</label>';
|
361 |
+
$html .= '</li>';
|
362 |
+
$html .= '</ul>';
|
363 |
+
$html .= '</div>';
|
364 |
+
}
|
365 |
+
else {
|
366 |
+
$html .= '<div class="single-settings controls">';
|
367 |
+
$html .= '<span>Show Controls: </span>';
|
368 |
+
$html .= '<ul>';
|
369 |
+
$html .= '<li class="radio-btn">';
|
370 |
+
$html .= '<input class="styled-radio" id="styled-radio-3" type="radio" name="controls" value="off" checked >';
|
371 |
+
$html .= '<label for="styled-radio-3">Off</label>';
|
372 |
+
$html .= '</li>';
|
373 |
+
|
374 |
+
$html .= '<li class="radio-btn">';
|
375 |
+
$html .= '<input class="styled-radio" id="styled-radio-4" type="radio" name="controls" value="on">';
|
376 |
+
$html .= '<label for="styled-radio-4">On</label>';
|
377 |
+
$html .= '</li>';
|
378 |
+
$html .= '</ul>';
|
379 |
+
$html .= '</div>';
|
380 |
+
}
|
381 |
+
//=Control setup End=
|
382 |
+
|
383 |
+
//=Default scene=
|
384 |
+
$html .= '<div class="single-settings default-scene">';
|
385 |
+
$html .= '<span>Default Scene ID: </span>';
|
386 |
+
$html .= '<input type="text" name="default-scene-id" value="'.$default_scene.'" />';
|
387 |
+
$html .= '</div>';
|
388 |
+
//=Default scene End=
|
389 |
+
|
390 |
+
//=scene fade duration=
|
391 |
+
$html .= '<div class="single-settings scene-fade-duration">';
|
392 |
+
$html .= '<span>Scene Fade Duration: </span>';
|
393 |
+
$html .= '<input type="number" name="scene-fade-duration" value="'.$scene_fade_duration.'" />';
|
394 |
+
$html .= '</div>';
|
395 |
+
//=scene fade duration End=
|
396 |
+
|
397 |
+
$html .='</div>';
|
398 |
+
//---end general tab----
|
399 |
+
|
400 |
+
$html .='<div class="rex-pano-tab" id="scenes">';
|
401 |
+
|
402 |
+
//=Scene and Hotspot repeater=//
|
403 |
+
if (empty($pano_data)) {
|
404 |
+
$html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="5">';
|
405 |
+
|
406 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
|
407 |
+
$html .= '<ul>';
|
408 |
+
$html .= '<li class="active"><span data-index="1" data-href="#scene-1">Scene 1</span></li>';
|
409 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
410 |
+
$html .= '</ul>';
|
411 |
+
$html .= '</nav>';
|
412 |
+
|
413 |
+
$html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
|
414 |
+
$html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-1">';
|
415 |
+
|
416 |
+
$html .= '<div class="scene-content">';
|
417 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene <span class="scene-num">1</span> Setting </h6>';
|
418 |
+
|
419 |
+
$html .= '<div class=scene-setting>';
|
420 |
+
$html .= '<label for="scene-id">Scene ID : </label>';
|
421 |
+
$html .= '<input type="text" name="scene-id"/>';
|
422 |
+
$html .= '</div>';
|
423 |
+
|
424 |
+
$html .= '<div class=scene-setting>';
|
425 |
+
$html .= '<label for="scene-type">Scene Type : </label>';
|
426 |
+
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
427 |
+
$html .= '</div>';
|
428 |
+
|
429 |
+
$html .= '<div class=scene-setting>';
|
430 |
+
$html .= '<label for="scene-upload">Scene Upload: </label>';
|
431 |
+
$html .= '<div class="form-group">';
|
432 |
+
$html .= '<img src="" style="display: none;"><br>';
|
433 |
+
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
434 |
+
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
|
435 |
+
$html .= '</div>';
|
436 |
+
$html .= '</div>';
|
437 |
+
$html .= '</div>';
|
438 |
+
|
439 |
+
//--hotspot setup--
|
440 |
+
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="5">';
|
441 |
+
|
442 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
443 |
+
$html .= '<ul>';
|
444 |
+
$html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1">Hotspot 1</span></li>';
|
445 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
446 |
+
$html .= '</ul>';
|
447 |
+
$html .= '</nav>';
|
448 |
+
|
449 |
+
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
450 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-1-hotspot-1">';
|
451 |
+
|
452 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">1</span> Setting for <span>Scene <span class="scene-num">1</span></span> </h6>';
|
453 |
+
|
454 |
+
$html .= '<div class="wrapper">';
|
455 |
+
$html .= '<div class="hotspot-setting">';
|
456 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
457 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
458 |
+
$html .= '</div>';
|
459 |
+
|
460 |
+
$html .= '<div class="hotspot-setting">';
|
461 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
462 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch"/>';
|
463 |
+
$html .= '</div>';
|
464 |
+
|
465 |
+
$html .= '<div class="hotspot-setting">';
|
466 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
467 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw"/>';
|
468 |
+
$html .= '</div>';
|
469 |
+
|
470 |
+
$html .= '<div class="hotspot-setting">';
|
471 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
472 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
473 |
+
$html .= '</div>';
|
474 |
+
$html .= '</div>';
|
475 |
+
|
476 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
477 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
478 |
+
$html .= '<select name="hotspot-type">';
|
479 |
+
$html .= '<option value="info" selected> Info</option>';
|
480 |
+
$html .= '<option value="scene"> Scene</option>';
|
481 |
+
$html .= '</select>';
|
482 |
+
|
483 |
+
$html .= '<div class="hotspot-url">';
|
484 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
485 |
+
$html .= '<input type="url" name="hotspot-url" value="" />';
|
486 |
+
$html .= '</div>';
|
487 |
+
|
488 |
+
$html .= '<div class="hotspot-content">';
|
489 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
490 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
491 |
+
$html .= '</div>';
|
492 |
+
|
493 |
+
$html .= '<div class="hotspot-hover">';
|
494 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
495 |
+
$html .= '<textarea name="hotspot-hover"></textarea>';
|
496 |
+
$html .= '</div>';
|
497 |
+
|
498 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
499 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
500 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
501 |
+
$html .= '</div>';
|
502 |
+
|
503 |
+
$html .= '</div>';
|
504 |
+
//=Hotspot type End=//
|
505 |
+
$html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
506 |
+
$html .= '</div>';
|
507 |
+
$html .= '</div>';
|
508 |
+
|
509 |
+
$html .= '</div>';
|
510 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
|
511 |
+
$html .= '</div>';
|
512 |
+
$html .= '</div>';
|
513 |
+
|
514 |
+
$html .= '</div>';
|
515 |
+
}
|
516 |
+
else {
|
517 |
+
$html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="5">';
|
518 |
+
|
519 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
|
520 |
+
$html .= '<ul>';
|
521 |
+
$html .= '<li><span data-index="0" data-href="#scene-0">Scene 0</span></li>';
|
522 |
+
// var_dump($pano_data['scene-list'][0]['scene-id']);
|
523 |
+
$i = 1;
|
524 |
+
foreach ($pano_data["scene-list"] as $pano_scenes) {
|
525 |
+
if ($pano_scenes['scene-id'] == $pano_data['scene-list'][0]['scene-id']) {
|
526 |
+
$html .= '<li class="active"><span data-index="'.$i.'" data-href="#scene-'.$i.'">Scene '.$i.'</span></li>';
|
527 |
+
}
|
528 |
+
else {
|
529 |
+
$html .= '<li><span data-index="'.$i.'" data-href="#scene-'.$i.'">Scene '.$i.'</span></li>';
|
530 |
+
}
|
531 |
+
$i++;
|
532 |
+
}
|
533 |
+
// $html .= '<li class="active"><span data-index="1" data-href="#scene-1">Scene 1</span></li>';
|
534 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
535 |
+
$html .= '</ul>';
|
536 |
+
$html .= '</nav>';
|
537 |
+
|
538 |
+
|
539 |
+
$html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
|
540 |
+
|
541 |
+
//test
|
542 |
+
$html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
|
543 |
+
|
544 |
+
$html .= '<div class="scene-content">';
|
545 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene <span class="scene-num">0</span> Setting </h6>';
|
546 |
+
|
547 |
+
$html .= '<div class=scene-setting>';
|
548 |
+
$html .= '<label for="scene-id">Scene ID : </label>';
|
549 |
+
$html .= '<input type="text" name="scene-id"/>';
|
550 |
+
$html .= '</div>';
|
551 |
+
|
552 |
+
$html .= '<div class=scene-setting>';
|
553 |
+
$html .= '<label for="scene-type">Scene Type : </label>';
|
554 |
+
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
555 |
+
$html .= '</div>';
|
556 |
+
|
557 |
+
$html .= '<div class=scene-setting>';
|
558 |
+
$html .= '<label for="scene-upload">Scene Upload: </label>';
|
559 |
+
$html .= '<div class="form-group">';
|
560 |
+
$html .= '<img src="" style="display: none;"><br>';
|
561 |
+
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
562 |
+
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
|
563 |
+
$html .= '</div>';
|
564 |
+
$html .= '</div>';
|
565 |
+
$html .= '</div>';
|
566 |
+
|
567 |
+
//--hotspot setup--
|
568 |
+
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="5">';
|
569 |
+
|
570 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
571 |
+
$html .= '<ul>';
|
572 |
+
$html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1">Hotspot 1</span></li>';
|
573 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
574 |
+
$html .= '</ul>';
|
575 |
+
$html .= '</nav>';
|
576 |
+
|
577 |
+
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
578 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
|
579 |
+
|
580 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">1</span> Setting for <span>Scene <span class="scene-num">0</span></span> </h6>';
|
581 |
+
|
582 |
+
$html .= '<div class="wrapper">';
|
583 |
+
$html .= '<div class="hotspot-setting">';
|
584 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
585 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
586 |
+
$html .= '</div>';
|
587 |
+
|
588 |
+
$html .= '<div class="hotspot-setting">';
|
589 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
590 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch"/>';
|
591 |
+
$html .= '</div>';
|
592 |
+
|
593 |
+
$html .= '<div class="hotspot-setting">';
|
594 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
595 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw"/>';
|
596 |
+
$html .= '</div>';
|
597 |
+
|
598 |
+
$html .= '<div class="hotspot-setting">';
|
599 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
600 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
601 |
+
$html .= '</div>';
|
602 |
+
$html .= '</div>';
|
603 |
+
|
604 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
605 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
606 |
+
$html .= '<select name="hotspot-type">';
|
607 |
+
$html .= '<option value="info" selected> Info</option>';
|
608 |
+
$html .= '<option value="scene"> Scene</option>';
|
609 |
+
$html .= '</select>';
|
610 |
+
|
611 |
+
$html .= '<div class="hotspot-url">';
|
612 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
613 |
+
$html .= '<input type="url" name="hotspot-url" value="" />';
|
614 |
+
$html .= '</div>';
|
615 |
+
|
616 |
+
$html .= '<div class="hotspot-content">';
|
617 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
618 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
619 |
+
$html .= '</div>';
|
620 |
+
|
621 |
+
$html .= '<div class="hotspot-hover">';
|
622 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
623 |
+
$html .= '<textarea name="hotspot-hover"></textarea>';
|
624 |
+
$html .= '</div>';
|
625 |
+
|
626 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
627 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
628 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
629 |
+
$html .= '</div>';
|
630 |
+
|
631 |
+
$html .= '</div>';
|
632 |
+
//=Hotspot type End=//
|
633 |
+
$html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
634 |
+
$html .= '</div>';
|
635 |
+
$html .= '</div>';
|
636 |
+
|
637 |
+
$html .= '</div>';
|
638 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
|
639 |
+
$html .= '</div>';
|
640 |
+
//test
|
641 |
+
|
642 |
+
$s = 1;
|
643 |
+
foreach ($pano_data["scene-list"] as $pano_scenes) {
|
644 |
+
$scene_id = '';
|
645 |
+
$scene_id = $pano_scenes["scene-id"];
|
646 |
+
$scene_type = 'equirectangular';
|
647 |
+
$scene_type = $pano_scenes["scene-type"];
|
648 |
+
$scene_photo = '';
|
649 |
+
$scene_photo = $pano_scenes["scene-attachment-url"];
|
650 |
+
$pano_hotspots = array();
|
651 |
+
$pano_hotspots = $pano_scenes["hotspot-list"];
|
652 |
+
|
653 |
+
if ($pano_scenes['scene-id'] == $pano_data['scene-list'][0]['scene-id']) {
|
654 |
+
$html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-'.$s.'">';
|
655 |
+
|
656 |
+
$html .= '<div class="scene-content">';
|
657 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene <span class="scene-num">'.$s.'</span> Setting </h6>';
|
658 |
+
|
659 |
+
$html .= '<div class=scene-setting>';
|
660 |
+
$html .= '<label for="scene-id">Scene ID : </label>';
|
661 |
+
$html .= '<input type="text" name="scene-id" value="'.$scene_id.'" />';
|
662 |
+
$html .= '</div>';
|
663 |
+
|
664 |
+
$html .= '<div class=scene-setting>';
|
665 |
+
$html .= '<label for="scene-type">Scene Type : </label>';
|
666 |
+
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
667 |
+
$html .= '</div>';
|
668 |
+
|
669 |
+
$html .= '<div class=scene-setting>';
|
670 |
+
$html .= '<label for="scene-upload">Scene Upload: </label>';
|
671 |
+
$html .= '<div class="form-group">';
|
672 |
+
$html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
|
673 |
+
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
674 |
+
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
|
675 |
+
$html .= '</div>';
|
676 |
+
$html .= '</div>';
|
677 |
+
$html .= '</div>';
|
678 |
+
|
679 |
+
if (!empty($pano_hotspots)) {
|
680 |
+
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="5">';
|
681 |
+
|
682 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
683 |
+
$html .= '<ul>';
|
684 |
+
$j = 1;
|
685 |
+
foreach ($pano_hotspots as $pano_hotspot) {
|
686 |
+
if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
|
687 |
+
$html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'">Hotspot '.$j.'</span></li>';
|
688 |
+
}
|
689 |
+
else {
|
690 |
+
$html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'">Hotspot '.$j.'</span></li>';
|
691 |
+
}
|
692 |
+
$j++;
|
693 |
+
}
|
694 |
+
//$html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1">Hotspot 1</span></li>';
|
695 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
696 |
+
$html .= '</ul>';
|
697 |
+
$html .= '</nav>';
|
698 |
+
|
699 |
+
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
700 |
+
|
701 |
+
$h = 1;
|
702 |
+
foreach ($pano_hotspots as $pano_hotspot) {
|
703 |
+
$hotspot_title = '';
|
704 |
+
$hotspot_title = $pano_hotspot['hotspot-title'];
|
705 |
+
$hotspot_pitch = '';
|
706 |
+
$hotspot_pitch = $pano_hotspot['hotspot-pitch'];
|
707 |
+
$hotspot_yaw = '';
|
708 |
+
$hotspot_yaw = $pano_hotspot['hotspot-yaw'];
|
709 |
+
$hotspot_type = '';
|
710 |
+
$hotspot_type = $pano_hotspot['hotspot-type'];
|
711 |
+
$hotspot_url = '';
|
712 |
+
$hotspot_url = $pano_hotspot['hotspot-url'];
|
713 |
+
$hotspot_content = '';
|
714 |
+
$hotspot_content = $pano_hotspot['hotspot-content'];
|
715 |
+
$hotspot_hover = '';
|
716 |
+
$hotspot_hover = $pano_hotspot['hotspot-hover'];
|
717 |
+
$hotspot_target_scene = '';
|
718 |
+
$hotspot_target_scene = $pano_hotspot['hotspot-scene'];
|
719 |
+
$hotspot_custom_class = '';
|
720 |
+
$hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
|
721 |
+
if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
|
722 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
|
723 |
+
|
724 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">'.$h.'</span> Setting for <span>Scene <span class="scene-num">'.$s.'</span></span> </h6>';
|
725 |
+
|
726 |
+
$html .= '<div class="wrapper">';
|
727 |
+
$html .= '<div class="hotspot-setting">';
|
728 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
729 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
|
730 |
+
$html .= '</div>';
|
731 |
+
|
732 |
+
$html .= '<div class="hotspot-setting">';
|
733 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
734 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
|
735 |
+
$html .= '</div>';
|
736 |
+
|
737 |
+
$html .= '<div class="hotspot-setting">';
|
738 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
739 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
|
740 |
+
$html .= '</div>';
|
741 |
+
|
742 |
+
$html .= '<div class="hotspot-setting">';
|
743 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
744 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
|
745 |
+
$html .= '</div>';
|
746 |
+
$html .= '</div>';
|
747 |
+
|
748 |
+
//=Hotspot type=//
|
749 |
+
if ($hotspot_type == "info") {
|
750 |
+
|
751 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
752 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
753 |
+
$html .= '<select name="hotspot-type">';
|
754 |
+
$html .= '<option value="info" selected> Info</option>';
|
755 |
+
$html .= '<option value="scene"> Scene</option>';
|
756 |
+
$html .= '</select>';
|
757 |
+
|
758 |
+
$html .= '<div class="hotspot-url">';
|
759 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
760 |
+
$html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
|
761 |
+
$html .= '</div>';
|
762 |
+
|
763 |
+
$html .= '<div class="hotspot-content">';
|
764 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
765 |
+
$html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
|
766 |
+
$html .= '</div>';
|
767 |
+
|
768 |
+
$html .= '<div class="hotspot-hover">';
|
769 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
770 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
771 |
+
$html .= '</div>';
|
772 |
+
|
773 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
774 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
775 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
776 |
+
$html .= '</div>';
|
777 |
+
|
778 |
+
$html .= '</div>';
|
779 |
+
|
780 |
+
}
|
781 |
+
else {
|
782 |
+
|
783 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
784 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
785 |
+
$html .= '<select name="hotspot-type">';
|
786 |
+
$html .= '<option value="info"> Info</option>';
|
787 |
+
$html .= '<option value="scene" selected> Scene</option>';
|
788 |
+
$html .= '</select>';
|
789 |
+
|
790 |
+
$html .= '<div class="hotspot-url" style="display:none;">';
|
791 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
792 |
+
$html .= '<input type="url" name="hotspot-url" />';
|
793 |
+
$html .= '</div>';
|
794 |
+
|
795 |
+
$html .= '<div class="hotspot-content" style="display:none;>';
|
796 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
797 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
798 |
+
$html .= '</div>';
|
799 |
+
|
800 |
+
$html .= '<div class="hotspot-hover">';
|
801 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
802 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
803 |
+
$html .= '</div>';
|
804 |
+
|
805 |
+
$html .= '<div class="hotspot-scene">';
|
806 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
807 |
+
$html .= '<input type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" />';
|
808 |
+
$html .= '</div>';
|
809 |
+
|
810 |
+
$html .= '</div>';
|
811 |
+
|
812 |
+
}
|
813 |
+
//=Hotspot type End=//
|
814 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
815 |
+
$html .= '</div>';
|
816 |
+
}
|
817 |
+
else {
|
818 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
|
819 |
+
|
820 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">'.$h.'</span> Setting for <span>Scene <span class="scene-num">'.$s.'</span></span> </h6>';
|
821 |
+
|
822 |
+
$html .= '<div class="wrapper">';
|
823 |
+
$html .= '<div class="hotspot-setting">';
|
824 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
825 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
|
826 |
+
$html .= '</div>';
|
827 |
+
|
828 |
+
$html .= '<div class="hotspot-setting">';
|
829 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
830 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
|
831 |
+
$html .= '</div>';
|
832 |
+
|
833 |
+
$html .= '<div class="hotspot-setting">';
|
834 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
835 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
|
836 |
+
$html .= '</div>';
|
837 |
+
|
838 |
+
$html .= '<div class="hotspot-setting">';
|
839 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
840 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
|
841 |
+
$html .= '</div>';
|
842 |
+
$html .= '</div>';
|
843 |
+
|
844 |
+
//=Hotspot type=//
|
845 |
+
if ($hotspot_type == "info") {
|
846 |
+
|
847 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
848 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
849 |
+
$html .= '<select name="hotspot-type">';
|
850 |
+
$html .= '<option value="info" selected> Info</option>';
|
851 |
+
$html .= '<option value="scene"> Scene</option>';
|
852 |
+
$html .= '</select>';
|
853 |
+
|
854 |
+
$html .= '<div class="hotspot-url">';
|
855 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
856 |
+
$html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
|
857 |
+
$html .= '</div>';
|
858 |
+
|
859 |
+
$html .= '<div class="hotspot-content">';
|
860 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
861 |
+
$html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
|
862 |
+
$html .= '</div>';
|
863 |
+
|
864 |
+
$html .= '<div class="hotspot-hover">';
|
865 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
866 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
867 |
+
$html .= '</div>';
|
868 |
+
|
869 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
870 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
871 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
872 |
+
$html .= '</div>';
|
873 |
+
|
874 |
+
$html .= '</div>';
|
875 |
+
|
876 |
+
}
|
877 |
+
else {
|
878 |
+
|
879 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
880 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
881 |
+
$html .= '<select name="hotspot-type">';
|
882 |
+
$html .= '<option value="info"> Info</option>';
|
883 |
+
$html .= '<option value="scene" selected> Scene</option>';
|
884 |
+
$html .= '</select>';
|
885 |
+
|
886 |
+
$html .= '<div class="hotspot-url" style="display:none;">';
|
887 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
888 |
+
$html .= '<input type="url" name="hotspot-url" />';
|
889 |
+
$html .= '</div>';
|
890 |
+
|
891 |
+
$html .= '<div class="hotspot-content" style="display:none;>';
|
892 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
893 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
894 |
+
$html .= '</div>';
|
895 |
+
|
896 |
+
$html .= '<div class="hotspot-hover">';
|
897 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
898 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
899 |
+
$html .= '</div>';
|
900 |
+
|
901 |
+
$html .= '<div class="hotspot-scene">';
|
902 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
903 |
+
$html .= '<input type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" />';
|
904 |
+
$html .= '</div>';
|
905 |
+
|
906 |
+
$html .= '</div>';
|
907 |
+
|
908 |
+
}
|
909 |
+
//=Hotspot type End=//
|
910 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
911 |
+
$html .= '</div>';
|
912 |
+
}
|
913 |
+
$h++;
|
914 |
+
}
|
915 |
+
$html .= '</div>';
|
916 |
+
//$html .= '<input data-repeater-create type="button" value="Add Hotspot"/>';
|
917 |
+
$html .= '</div>';
|
918 |
+
}
|
919 |
+
else {
|
920 |
+
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="5">';
|
921 |
+
|
922 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
923 |
+
$html .= '<ul>';
|
924 |
+
$html .= '<li class="active"><span data-index="0" data-href="#scene-'.$s.'-hotspot-1">Hotspot 1</span></li>';
|
925 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
926 |
+
$html .= '</ul>';
|
927 |
+
$html .= '</nav>';
|
928 |
+
|
929 |
+
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content>';
|
930 |
+
|
931 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
|
932 |
+
|
933 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">1</span> Setting for <span>Scene <span class="scene-num">'.$s.'</span></span> </h6>';
|
934 |
+
|
935 |
+
$html .= '<div class="wrapper">';
|
936 |
+
$html .= '<div class="hotspot-setting">';
|
937 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
938 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
939 |
+
$html .= '</div>';
|
940 |
+
|
941 |
+
$html .= '<div class="hotspot-setting">';
|
942 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
943 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch"/>';
|
944 |
+
$html .= '</div>';
|
945 |
+
|
946 |
+
$html .= '<div class="hotspot-setting">';
|
947 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
948 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw"/>';
|
949 |
+
$html .= '</div>';
|
950 |
+
|
951 |
+
$html .= '<div class="hotspot-setting">';
|
952 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
953 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
954 |
+
$html .= '</div>';
|
955 |
+
$html .= '</div>';
|
956 |
+
|
957 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
958 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
959 |
+
$html .= '<select name="hotspot-type">';
|
960 |
+
$html .= '<option value="info" selected> Info</option>';
|
961 |
+
$html .= '<option value="scene"> Scene</option>';
|
962 |
+
$html .= '</select>';
|
963 |
+
|
964 |
+
$html .= '<div class="hotspot-url">';
|
965 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
966 |
+
$html .= '<input type="url" name="hotspot-url" />';
|
967 |
+
$html .= '</div>';
|
968 |
+
|
969 |
+
$html .= '<div class="hotspot-content">';
|
970 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
971 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
972 |
+
$html .= '</div>';
|
973 |
+
|
974 |
+
$html .= '<div class="hotspot-hover">';
|
975 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
976 |
+
$html .= '<textarea name="hotspot-hover"></textarea>';
|
977 |
+
$html .= '</div>';
|
978 |
+
|
979 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
980 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
981 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
982 |
+
$html .= '</div>';
|
983 |
+
|
984 |
+
$html .= '</div>';
|
985 |
+
//=Hotspot type End=//
|
986 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
987 |
+
$html .= '</div>';
|
988 |
+
|
989 |
+
$html .= '</div>';
|
990 |
+
//$html .= '<input data-repeater-create type="button" value="Add Hotspot"/>';
|
991 |
+
$html .= '</div>';
|
992 |
+
}
|
993 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
|
994 |
+
$html .= '</div>';
|
995 |
+
}
|
996 |
+
else {
|
997 |
+
$html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="1" id="scene-'.$s.'">';
|
998 |
+
|
999 |
+
$html .= '<div class="scene-content">';
|
1000 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene <span class="scene-num">'.$s.'</span> Setting </h6>';
|
1001 |
+
|
1002 |
+
$html .= '<div class=scene-setting>';
|
1003 |
+
$html .= '<label for="scene-id">Scene ID : </label>';
|
1004 |
+
$html .= '<input type="text" name="scene-id" value="'.$scene_id.'" />';
|
1005 |
+
$html .= '</div>';
|
1006 |
+
|
1007 |
+
$html .= '<div class=scene-setting>';
|
1008 |
+
$html .= '<label for="scene-type">Scene Type : </label>';
|
1009 |
+
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
1010 |
+
$html .= '</div>';
|
1011 |
+
|
1012 |
+
$html .= '<div class=scene-setting>';
|
1013 |
+
$html .= '<label for="scene-upload">Scene Upload: </label>';
|
1014 |
+
$html .= '<div class="form-group">';
|
1015 |
+
$html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
|
1016 |
+
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
1017 |
+
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
|
1018 |
+
$html .= '</div>';
|
1019 |
+
$html .= '</div>';
|
1020 |
+
$html .= '</div>';
|
1021 |
+
|
1022 |
+
if (!empty($pano_hotspots)) {
|
1023 |
+
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="5">';
|
1024 |
+
|
1025 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
1026 |
+
$html .= '<ul>';
|
1027 |
+
$j = 1;
|
1028 |
+
foreach ($pano_hotspots as $pano_hotspot) {
|
1029 |
+
if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
|
1030 |
+
$html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'">Hotspot '.$j.'</span></li>';
|
1031 |
+
}
|
1032 |
+
else {
|
1033 |
+
$html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'">Hotspot '.$j.'</span></li>';
|
1034 |
+
}
|
1035 |
+
$j++;
|
1036 |
+
}
|
1037 |
+
//$html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1">Hotspot 1</span></li>';
|
1038 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
1039 |
+
$html .= '</ul>';
|
1040 |
+
$html .= '</nav>';
|
1041 |
+
|
1042 |
+
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
1043 |
+
|
1044 |
+
$h = 1;
|
1045 |
+
foreach ($pano_hotspots as $pano_hotspot) {
|
1046 |
+
$hotspot_title = '';
|
1047 |
+
$hotspot_title = $pano_hotspot['hotspot-title'];
|
1048 |
+
$hotspot_pitch = '';
|
1049 |
+
$hotspot_pitch = $pano_hotspot['hotspot-pitch'];
|
1050 |
+
$hotspot_yaw = '';
|
1051 |
+
$hotspot_yaw = $pano_hotspot['hotspot-yaw'];
|
1052 |
+
$hotspot_type = '';
|
1053 |
+
$hotspot_type = $pano_hotspot['hotspot-type'];
|
1054 |
+
$hotspot_url = '';
|
1055 |
+
$hotspot_url = $pano_hotspot['hotspot-url'];
|
1056 |
+
$hotspot_content = '';
|
1057 |
+
$hotspot_content = $pano_hotspot['hotspot-content'];
|
1058 |
+
$hotspot_hover = '';
|
1059 |
+
$hotspot_hover = $pano_hotspot['hotspot-hover'];
|
1060 |
+
$hotspot_target_scene = '';
|
1061 |
+
$hotspot_target_scene = $pano_hotspot['hotspot-scene'];
|
1062 |
+
$hotspot_custom_class = '';
|
1063 |
+
$hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
|
1064 |
+
if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
|
1065 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
|
1066 |
+
|
1067 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">'.$h.'</span> Setting for <span>Scene <span class="scene-num">'.$s.'</span></span> </h6>';
|
1068 |
+
|
1069 |
+
$html .= '<div class="wrapper">';
|
1070 |
+
$html .= '<div class="hotspot-setting">';
|
1071 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
1072 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
|
1073 |
+
$html .= '</div>';
|
1074 |
+
|
1075 |
+
$html .= '<div class="hotspot-setting">';
|
1076 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
1077 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
|
1078 |
+
$html .= '</div>';
|
1079 |
+
|
1080 |
+
$html .= '<div class="hotspot-setting">';
|
1081 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
1082 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
|
1083 |
+
$html .= '</div>';
|
1084 |
+
|
1085 |
+
$html .= '<div class="hotspot-setting">';
|
1086 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
1087 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
|
1088 |
+
$html .= '</div>';
|
1089 |
+
$html .= '</div>';
|
1090 |
+
|
1091 |
+
//=Hotspot type=//
|
1092 |
+
if ($hotspot_type == "info") {
|
1093 |
+
|
1094 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
1095 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
1096 |
+
$html .= '<select name="hotspot-type">';
|
1097 |
+
$html .= '<option value="info" selected> Info</option>';
|
1098 |
+
$html .= '<option value="scene"> Scene</option>';
|
1099 |
+
$html .= '</select>';
|
1100 |
+
|
1101 |
+
$html .= '<div class="hotspot-url">';
|
1102 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
1103 |
+
$html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
|
1104 |
+
$html .= '</div>';
|
1105 |
+
|
1106 |
+
$html .= '<div class="hotspot-content">';
|
1107 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
1108 |
+
$html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
|
1109 |
+
$html .= '</div>';
|
1110 |
+
|
1111 |
+
$html .= '<div class="hotspot-hover">';
|
1112 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
1113 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1114 |
+
$html .= '</div>';
|
1115 |
+
|
1116 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1117 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
1118 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
1119 |
+
$html .= '</div>';
|
1120 |
+
|
1121 |
+
$html .= '</div>';
|
1122 |
+
|
1123 |
+
}
|
1124 |
+
else {
|
1125 |
+
|
1126 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
1127 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
1128 |
+
$html .= '<select name="hotspot-type">';
|
1129 |
+
$html .= '<option value="info"> Info</option>';
|
1130 |
+
$html .= '<option value="scene" selected> Scene</option>';
|
1131 |
+
$html .= '</select>';
|
1132 |
+
|
1133 |
+
$html .= '<div class="hotspot-url" style="display:none;">';
|
1134 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
1135 |
+
$html .= '<input type="url" name="hotspot-url" />';
|
1136 |
+
$html .= '</div>';
|
1137 |
+
|
1138 |
+
$html .= '<div class="hotspot-content" style="display:none;>';
|
1139 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
1140 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
1141 |
+
$html .= '</div>';
|
1142 |
+
|
1143 |
+
$html .= '<div class="hotspot-hover">';
|
1144 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
1145 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1146 |
+
$html .= '</div>';
|
1147 |
+
|
1148 |
+
$html .= '<div class="hotspot-scene">';
|
1149 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
1150 |
+
$html .= '<input type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" />';
|
1151 |
+
$html .= '</div>';
|
1152 |
+
|
1153 |
+
$html .= '</div>';
|
1154 |
+
|
1155 |
+
}
|
1156 |
+
//=Hotspot type End=//
|
1157 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
1158 |
+
$html .= '</div>';
|
1159 |
+
}
|
1160 |
+
else {
|
1161 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
|
1162 |
+
|
1163 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">'.$h.'</span> Setting for <span>Scene <span class="scene-num">'.$s.'</span></span> </h6>';
|
1164 |
+
|
1165 |
+
$html .= '<div class="wrapper">';
|
1166 |
+
$html .= '<div class="hotspot-setting">';
|
1167 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
1168 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
|
1169 |
+
$html .= '</div>';
|
1170 |
+
|
1171 |
+
$html .= '<div class="hotspot-setting">';
|
1172 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
1173 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
|
1174 |
+
$html .= '</div>';
|
1175 |
+
|
1176 |
+
$html .= '<div class="hotspot-setting">';
|
1177 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
1178 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
|
1179 |
+
$html .= '</div>';
|
1180 |
+
|
1181 |
+
$html .= '<div class="hotspot-setting">';
|
1182 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
1183 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
|
1184 |
+
$html .= '</div>';
|
1185 |
+
$html .= '</div>';
|
1186 |
+
|
1187 |
+
//=Hotspot type=//
|
1188 |
+
if ($hotspot_type == "info") {
|
1189 |
+
|
1190 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
1191 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
1192 |
+
$html .= '<select name="hotspot-type">';
|
1193 |
+
$html .= '<option value="info" selected> Info</option>';
|
1194 |
+
$html .= '<option value="scene"> Scene</option>';
|
1195 |
+
$html .= '</select>';
|
1196 |
+
|
1197 |
+
$html .= '<div class="hotspot-url">';
|
1198 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
1199 |
+
$html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
|
1200 |
+
$html .= '</div>';
|
1201 |
+
|
1202 |
+
$html .= '<div class="hotspot-content">';
|
1203 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
1204 |
+
$html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
|
1205 |
+
$html .= '</div>';
|
1206 |
+
|
1207 |
+
$html .= '<div class="hotspot-hover">';
|
1208 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
1209 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1210 |
+
$html .= '</div>';
|
1211 |
+
|
1212 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1213 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
1214 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
1215 |
+
$html .= '</div>';
|
1216 |
+
|
1217 |
+
$html .= '</div>';
|
1218 |
+
|
1219 |
+
}
|
1220 |
+
else {
|
1221 |
+
|
1222 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
1223 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
1224 |
+
$html .= '<select name="hotspot-type">';
|
1225 |
+
$html .= '<option value="info"> Info</option>';
|
1226 |
+
$html .= '<option value="scene" selected> Scene</option>';
|
1227 |
+
$html .= '</select>';
|
1228 |
+
|
1229 |
+
$html .= '<div class="hotspot-url" style="display:none;">';
|
1230 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
1231 |
+
$html .= '<input type="url" name="hotspot-url" />';
|
1232 |
+
$html .= '</div>';
|
1233 |
+
|
1234 |
+
$html .= '<div class="hotspot-content" style="display:none;>';
|
1235 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
1236 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
1237 |
+
$html .= '</div>';
|
1238 |
+
|
1239 |
+
$html .= '<div class="hotspot-hover">';
|
1240 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
1241 |
+
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1242 |
+
$html .= '</div>';
|
1243 |
+
|
1244 |
+
$html .= '<div class="hotspot-scene">';
|
1245 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
1246 |
+
$html .= '<input type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" />';
|
1247 |
+
$html .= '</div>';
|
1248 |
+
|
1249 |
+
$html .= '</div>';
|
1250 |
+
|
1251 |
+
}
|
1252 |
+
//=Hotspot type End=//
|
1253 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
1254 |
+
$html .= '</div>';
|
1255 |
+
}
|
1256 |
+
$h++;
|
1257 |
+
}
|
1258 |
+
$html .= '</div>';
|
1259 |
+
//$html .= '<input data-repeater-create type="button" value="Add Hotspot"/>';
|
1260 |
+
$html .= '</div>';
|
1261 |
+
}
|
1262 |
+
else {
|
1263 |
+
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="5">';
|
1264 |
+
|
1265 |
+
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
1266 |
+
$html .= '<ul>';
|
1267 |
+
$html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1">Hotspot 1</span></li>';
|
1268 |
+
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> Add</span></li>';
|
1269 |
+
$html .= '</ul>';
|
1270 |
+
$html .= '</nav>';
|
1271 |
+
|
1272 |
+
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content>';
|
1273 |
+
|
1274 |
+
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
|
1275 |
+
|
1276 |
+
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot <span class="hotspot-num">1</span> Setting for <span>Scene <span class="scene-num">'.$s.'</span></span> </h6>';
|
1277 |
+
|
1278 |
+
$html .= '<div class="wrapper">';
|
1279 |
+
$html .= '<div class="hotspot-setting">';
|
1280 |
+
$html .= '<label for="hotspot-title">Hotspot ID : </label>';
|
1281 |
+
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
1282 |
+
$html .= '</div>';
|
1283 |
+
|
1284 |
+
$html .= '<div class="hotspot-setting">';
|
1285 |
+
$html .= '<label for="hotspot-pitch"> Pitch: </label>';
|
1286 |
+
$html .= '<input type="text" id="hotspot-pitch" name="hotspot-pitch"/>';
|
1287 |
+
$html .= '</div>';
|
1288 |
+
|
1289 |
+
$html .= '<div class="hotspot-setting">';
|
1290 |
+
$html .= '<label for="hotspot-yaw"> Yaw: </label>';
|
1291 |
+
$html .= '<input type="text" id="hotspot-yaw" name="hotspot-yaw"/>';
|
1292 |
+
$html .= '</div>';
|
1293 |
+
|
1294 |
+
$html .= '<div class="hotspot-setting">';
|
1295 |
+
$html .= '<label for="hotspot-customclass">Hotspot custom class: </label>';
|
1296 |
+
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
1297 |
+
$html .= '</div>';
|
1298 |
+
$html .= '</div>';
|
1299 |
+
|
1300 |
+
$html .= '<div class="hotspot-type hotspot-setting">';
|
1301 |
+
$html .= '<label for="hotspot-type">Hotspot-Type: </label>';
|
1302 |
+
$html .= '<select name="hotspot-type">';
|
1303 |
+
$html .= '<option value="info" selected> Info</option>';
|
1304 |
+
$html .= '<option value="scene"> Scene</option>';
|
1305 |
+
$html .= '</select>';
|
1306 |
+
|
1307 |
+
$html .= '<div class="hotspot-url">';
|
1308 |
+
$html .= '<label for="hotspot-url"> URL: </label>';
|
1309 |
+
$html .= '<input type="url" name="hotspot-url" />';
|
1310 |
+
$html .= '</div>';
|
1311 |
+
|
1312 |
+
$html .= '<div class="hotspot-content">';
|
1313 |
+
$html .= '<label for="hotspot-content"> On click Content: </label>';
|
1314 |
+
$html .= '<textarea name="hotspot-content"></textarea>';
|
1315 |
+
$html .= '</div>';
|
1316 |
+
|
1317 |
+
$html .= '<div class="hotspot-hover">';
|
1318 |
+
$html .= '<label for="hotspot-hover"> On hover Content: </label>';
|
1319 |
+
$html .= '<textarea name="hotspot-hover"></textarea>';
|
1320 |
+
$html .= '</div>';
|
1321 |
+
|
1322 |
+
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1323 |
+
$html .= '<label for="hotspot-scene"> Target Scene ID: </label>';
|
1324 |
+
$html .= '<input type="text" name="hotspot-scene"/>';
|
1325 |
+
$html .= '</div>';
|
1326 |
+
|
1327 |
+
$html .= '</div>';
|
1328 |
+
//=Hotspot type End=//
|
1329 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
|
1330 |
+
$html .= '</div>';
|
1331 |
+
|
1332 |
+
$html .= '</div>';
|
1333 |
+
//$html .= '<input data-repeater-create type="button" value="Add Hotspot"/>';
|
1334 |
+
$html .= '</div>';
|
1335 |
+
}
|
1336 |
+
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
|
1337 |
+
$html .= '</div>';
|
1338 |
+
}
|
1339 |
+
$s++;
|
1340 |
+
}
|
1341 |
+
$html .= '</div>';
|
1342 |
+
|
1343 |
+
$html .= '</div>';
|
1344 |
+
}
|
1345 |
+
|
1346 |
+
$html .= '<div class="preview-btn-wrapper">';
|
1347 |
+
$html .= '<div class="preview-btn-area clearfix">';
|
1348 |
+
$html .= '<div id="error_occured"></div>';
|
1349 |
+
$html .= '<button id="panolenspreview">Preview</button>';
|
1350 |
+
$html .= '</div>';
|
1351 |
+
$html .= '</div>';
|
1352 |
+
$html .='</div>';
|
1353 |
+
//---end scenes tab----
|
1354 |
+
|
1355 |
+
$html .='</div>';
|
1356 |
+
//---end rex-pano-tab-content----
|
1357 |
+
|
1358 |
+
$html .='</div>';
|
1359 |
+
//---end rex-pano-tabs---
|
1360 |
+
$html .= '</div>';
|
1361 |
+
echo $html;
|
1362 |
+
}
|
1363 |
+
|
1364 |
+
}
|
admin/class-wpvr-ajax.php
ADDED
@@ -0,0 +1,353 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* Preview show ajax function
|
17 |
+
*/
|
18 |
+
function wpvr_show_preview() {
|
19 |
+
$panoid ='';
|
20 |
+
$postid = sanitize_text_field($_POST['postid']);
|
21 |
+
$post_type = get_post_type( $postid );
|
22 |
+
|
23 |
+
$panoid = 'pano'.$postid;
|
24 |
+
|
25 |
+
$control = sanitize_text_field($_POST['control']);
|
26 |
+
if ($control == 'on') {
|
27 |
+
$control = true;
|
28 |
+
}
|
29 |
+
else {
|
30 |
+
$control = false;
|
31 |
+
}
|
32 |
+
|
33 |
+
$autoload = sanitize_text_field($_POST['autoload']);
|
34 |
+
if ($autoload == 'on') {
|
35 |
+
$autoload = true;
|
36 |
+
}
|
37 |
+
else {
|
38 |
+
$autoload = false;
|
39 |
+
}
|
40 |
+
|
41 |
+
$default_scene = '';
|
42 |
+
$default_scene = sanitize_text_field($_POST['defaultscene']);
|
43 |
+
if (empty($default_scene)) {
|
44 |
+
wp_send_json_error('<p><span>Warning:</span> Default scene id required. Go to general setting\'s tab & check.</p>');
|
45 |
+
die();
|
46 |
+
}
|
47 |
+
|
48 |
+
$scene_fade_duration = '';
|
49 |
+
$scene_fade_duration = sanitize_text_field($_POST['scenefadeduration']);
|
50 |
+
|
51 |
+
$panodata = $_POST['panodata'];
|
52 |
+
|
53 |
+
//===Error Control and Validation===//
|
54 |
+
if (!wpvr_in_array_r($default_scene, $panodata)) {
|
55 |
+
wp_send_json_error('<p><span>Warning:</span> Default scene id is invalid. Go to general setting\'s tab & check.</p>');
|
56 |
+
die();
|
57 |
+
}
|
58 |
+
|
59 |
+
if ($panodata["scene-list"] != "") {
|
60 |
+
foreach ($panodata["scene-list"] as $scenes_val) {
|
61 |
+
$scene_id_validate = $scenes_val["scene-id"];
|
62 |
+
if (!empty($scene_id_validate)) {
|
63 |
+
$scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/',"",$scene_id_validate);
|
64 |
+
if ($scene_id_validated != $scene_id_validate) {
|
65 |
+
wp_send_json_error('<p><span>Warning:</span> The scene id can only contain letters and numbers</p>');
|
66 |
+
die();
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
if (empty($scene_id_validate)) {
|
71 |
+
wp_send_json_error('<p><span>Warning:</span> Scene Id is required for every scene.</p>');
|
72 |
+
die();
|
73 |
+
}
|
74 |
+
|
75 |
+
if (empty($scenes_val["scene-attachment-url"])) {
|
76 |
+
wp_send_json_error('<p><span>Warning:</span> A scene image is required for every scene.</p>');
|
77 |
+
die();
|
78 |
+
}
|
79 |
+
|
80 |
+
if ($scenes_val["hotspot-list"] != "") {
|
81 |
+
foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
|
82 |
+
$hotspot_title_validate = $hotspot_val["hotspot-title"];
|
83 |
+
// if (empty($hotspot_title_validate)) {
|
84 |
+
// wp_send_json_error('<p><span>Warning:</span> Hotspot title is required for every hotspot.</p>');
|
85 |
+
// die();
|
86 |
+
// }
|
87 |
+
|
88 |
+
if (!empty($hotspot_title_validate)) {
|
89 |
+
$hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/',"",$hotspot_title_validate);
|
90 |
+
if ($hotspot_title_validated != $hotspot_title_validate) {
|
91 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot title can only contain letters and numbers</p>');
|
92 |
+
die();
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
$hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
|
97 |
+
// if (empty($hotspot_pitch_validate)) {
|
98 |
+
// wp_send_json_error('<p><span>Warning:</span> Hotspot pitch is required for every hotspot.</p>');
|
99 |
+
// die();
|
100 |
+
// }
|
101 |
+
if (!empty($hotspot_pitch_validate)) {
|
102 |
+
$hotspot_pitch_validated = preg_replace('/[^0-9.-]/','',$hotspot_pitch_validate);
|
103 |
+
if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
|
104 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot pitch can only contain float numbers</p>');
|
105 |
+
die();
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
$hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
|
110 |
+
// if (empty($hotspot_yaw_validate)) {
|
111 |
+
// wp_send_json_error('<p><span>Warning:</span> Hotspot yaw is required for every hotspot.</p>');
|
112 |
+
// die();
|
113 |
+
// }
|
114 |
+
if (!empty($hotspot_yaw_validate)) {
|
115 |
+
$hotspot_yaw_validated = preg_replace('/[^0-9.-]/','',$hotspot_yaw_validate);
|
116 |
+
if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
|
117 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot yaw can only contain float numbers</p>');
|
118 |
+
die();
|
119 |
+
}
|
120 |
+
}
|
121 |
+
$hotspot_type_validate = $hotspot_val["hotspot-type"];
|
122 |
+
$hotspot_url_validate = $hotspot_val["hotspot-url"];
|
123 |
+
if (!empty($hotspot_url_validate)) {
|
124 |
+
$hotspot_url_validated = esc_url($hotspot_url_validate);
|
125 |
+
if ($hotspot_url_validated != $hotspot_url_validate) {
|
126 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid</p>');
|
127 |
+
die();
|
128 |
+
}
|
129 |
+
}
|
130 |
+
$hotspot_content_validate = $hotspot_val["hotspot-content"];
|
131 |
+
|
132 |
+
$hotspot_scene_validate = $hotspot_val["hotspot-scene"];
|
133 |
+
|
134 |
+
if ($hotspot_type_validate == "info") {
|
135 |
+
if (!empty($hotspot_scene_validate)) {
|
136 |
+
wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot</p>');
|
137 |
+
die();
|
138 |
+
}
|
139 |
+
if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
|
140 |
+
wp_send_json_error('<p><span>Warning:</span> Don\'t add Url and On click content both on same hotspot.</p>');
|
141 |
+
die();
|
142 |
+
}
|
143 |
+
}
|
144 |
+
|
145 |
+
if ($hotspot_type_validate == "scene") {
|
146 |
+
if (empty($hotspot_scene_validate)) {
|
147 |
+
wp_send_json_error('<p><span>Warning:</span> Target scene id is required for scene type hotspot.</p>');
|
148 |
+
die();
|
149 |
+
}
|
150 |
+
if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
|
151 |
+
wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot.</p>');
|
152 |
+
die();
|
153 |
+
}
|
154 |
+
}
|
155 |
+
}
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
//===Error Control and Validation===//
|
160 |
+
|
161 |
+
$default_data = array();
|
162 |
+
$default_data = array(__( "firstScene" )=>$default_scene,__( "sceneFadeDuration" )=>$scene_fade_duration);
|
163 |
+
$scene_data = array();
|
164 |
+
|
165 |
+
foreach ($panodata["scene-list"] as $panoscenes) {
|
166 |
+
|
167 |
+
$hotspot_datas = $panoscenes["hotspot-list"];
|
168 |
+
$hotspots = array();
|
169 |
+
foreach ($hotspot_datas as $hotspot_data) {
|
170 |
+
|
171 |
+
$hotspot_info = array(
|
172 |
+
__( "text" )=>$hotspot_data["hotspot-title"],
|
173 |
+
__( "pitch" )=>$hotspot_data["hotspot-pitch"],
|
174 |
+
__( "yaw" )=>$hotspot_data["hotspot-yaw"],
|
175 |
+
__( "type" )=>$hotspot_data["hotspot-type"],
|
176 |
+
// __( "cssClass" )=>$hotspot_data["hotspot-customclass"],
|
177 |
+
__( "URL" )=>$hotspot_data["hotspot-url"],
|
178 |
+
__( "clickHandlerArgs" )=>$hotspot_data["hotspot-content"],
|
179 |
+
__( "createTooltipArgs" )=>$hotspot_data["hotspot-hover"],
|
180 |
+
__( "sceneId" )=>$hotspot_data["hotspot-scene"]);
|
181 |
+
array_push($hotspots, $hotspot_info);
|
182 |
+
}
|
183 |
+
|
184 |
+
$scene_info = array();
|
185 |
+
$scene_info = array(__( "type" )=>$panoscenes["scene-type"],__( "panorama" )=>$panoscenes["scene-attachment-url"],__( "hotSpots" )=>$hotspots);
|
186 |
+
$scene_array = array();
|
187 |
+
$scene_array = array(
|
188 |
+
__($panoscenes["scene-id"])=>$scene_info
|
189 |
+
);
|
190 |
+
$scene_data[$panoscenes["scene-id"]] = $scene_info;
|
191 |
+
}
|
192 |
+
|
193 |
+
$pano_id_array = array();
|
194 |
+
$pano_id_array = array(__( "panoid" )=>$panoid);
|
195 |
+
$pano_response = array();
|
196 |
+
$pano_response = array(__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "default" )=>$default_data,__( "scenes" )=>$scene_data);
|
197 |
+
$response = array();
|
198 |
+
$response = array($pano_id_array,$pano_response);
|
199 |
+
|
200 |
+
wp_send_json_success( $response );
|
201 |
+
}
|
202 |
+
|
203 |
+
function wpvr_save_data() {
|
204 |
+
$panoid ='';
|
205 |
+
$postid = sanitize_text_field($_POST['postid']);
|
206 |
+
$post_type = get_post_type( $postid );
|
207 |
+
if ($post_type != 'wpvr_item') {
|
208 |
+
die();
|
209 |
+
}
|
210 |
+
$panoid = 'pano'.$postid;
|
211 |
+
|
212 |
+
$control = sanitize_text_field($_POST['control']);
|
213 |
+
if ($control == 'on') {
|
214 |
+
$control = true;
|
215 |
+
}
|
216 |
+
else {
|
217 |
+
$control = false;
|
218 |
+
}
|
219 |
+
|
220 |
+
$autoload = sanitize_text_field($_POST['autoload']);
|
221 |
+
if ($autoload == 'on') {
|
222 |
+
$autoload = true;
|
223 |
+
}
|
224 |
+
else {
|
225 |
+
$autoload = false;
|
226 |
+
}
|
227 |
+
|
228 |
+
$default_scene = '';
|
229 |
+
$default_scene = sanitize_text_field($_POST['defaultscene']);
|
230 |
+
if (empty($default_scene)) {
|
231 |
+
wp_send_json_error('<p>Default scene id required. Go to general setting\'s tab & check. </p>');
|
232 |
+
die();
|
233 |
+
}
|
234 |
+
|
235 |
+
$scene_fade_duration = '';
|
236 |
+
$scene_fade_duration = $_POST['scenefadeduration'];
|
237 |
+
|
238 |
+
$panodata = $_POST['panodata'];
|
239 |
+
|
240 |
+
//===Error Control and Validation===//
|
241 |
+
if (!wpvr_in_array_r($default_scene, $panodata)) {
|
242 |
+
wp_send_json_error('<p><span>Warning:</span> Default scene id is invalid. Go to general setting\'s tab & check.</p>');
|
243 |
+
die();
|
244 |
+
}
|
245 |
+
|
246 |
+
if ($panodata["scene-list"] != "") {
|
247 |
+
foreach ($panodata["scene-list"] as $scenes_val) {
|
248 |
+
$scene_id_validate = $scenes_val["scene-id"];
|
249 |
+
if (!empty($scene_id_validate)) {
|
250 |
+
$scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/',"",$scene_id_validate);
|
251 |
+
if ($scene_id_validated != $scene_id_validate) {
|
252 |
+
wp_send_json_error('<p><span>Warning:</span> The scene id can only contain letters and numbers.</p>');
|
253 |
+
die();
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
+
if (empty($scene_id_validate)) {
|
258 |
+
wp_send_json_error('<p>Scene Id is required</p>');
|
259 |
+
die();
|
260 |
+
}
|
261 |
+
|
262 |
+
if (empty($scenes_val["scene-attachment-url"])) {
|
263 |
+
wp_send_json_error('<p><span>Warning:</span> A scene image is required for every scene.</p>');
|
264 |
+
die();
|
265 |
+
}
|
266 |
+
|
267 |
+
if ($scenes_val["hotspot-list"] != "") {
|
268 |
+
foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
|
269 |
+
$hotspot_title_validate = $hotspot_val["hotspot-title"];
|
270 |
+
if (empty($hotspot_title_validate)) {
|
271 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot title is required for every hotspot.</p>');
|
272 |
+
die();
|
273 |
+
}
|
274 |
+
|
275 |
+
if (!empty($hotspot_title_validate)) {
|
276 |
+
$hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/',"",$hotspot_title_validate);
|
277 |
+
if ($hotspot_title_validated != $hotspot_title_validate) {
|
278 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot title can only contain letters and numbers.</p>');
|
279 |
+
die();
|
280 |
+
}
|
281 |
+
}
|
282 |
+
|
283 |
+
$hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
|
284 |
+
if (empty($hotspot_pitch_validate)) {
|
285 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot pitch is required for every hotspot.</p>');
|
286 |
+
die();
|
287 |
+
}
|
288 |
+
if (!empty($hotspot_pitch_validate)) {
|
289 |
+
$hotspot_pitch_validated = preg_replace('/[^0-9.-]/','',$hotspot_pitch_validate);
|
290 |
+
if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
|
291 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot pitch can only contain float numbers.</p>');
|
292 |
+
die();
|
293 |
+
}
|
294 |
+
}
|
295 |
+
|
296 |
+
$hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
|
297 |
+
if (empty($hotspot_yaw_validate)) {
|
298 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot yaw is required for every hotspot.</p>');
|
299 |
+
die();
|
300 |
+
}
|
301 |
+
if (!empty($hotspot_yaw_validate)) {
|
302 |
+
$hotspot_yaw_validated = preg_replace('/[^0-9.-]/','',$hotspot_yaw_validate);
|
303 |
+
if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
|
304 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot yaw can only contain float numbers.</p>');
|
305 |
+
die();
|
306 |
+
}
|
307 |
+
}
|
308 |
+
$hotspot_type_validate = $hotspot_val["hotspot-type"];
|
309 |
+
$hotspot_url_validate = $hotspot_val["hotspot-url"];
|
310 |
+
if (!empty($hotspot_url_validate)) {
|
311 |
+
$hotspot_url_validated = esc_url($hotspot_url_validate);
|
312 |
+
if ($hotspot_url_validated != $hotspot_url_validate) {
|
313 |
+
wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid.</p>');
|
314 |
+
die();
|
315 |
+
}
|
316 |
+
}
|
317 |
+
$hotspot_content_validate = $hotspot_val["hotspot-content"];
|
318 |
+
|
319 |
+
$hotspot_scene_validate = $hotspot_val["hotspot-scene"];
|
320 |
+
|
321 |
+
if ($hotspot_type_validate == "info") {
|
322 |
+
if (!empty($hotspot_scene_validate)) {
|
323 |
+
wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot.</p>');
|
324 |
+
die();
|
325 |
+
}
|
326 |
+
if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
|
327 |
+
wp_send_json_error('<p><span>Warning:</span> Don\'t add Url and On click content both on same hotspot.</p>');
|
328 |
+
die();
|
329 |
+
}
|
330 |
+
}
|
331 |
+
|
332 |
+
if ($hotspot_type_validate == "scene") {
|
333 |
+
if (empty($hotspot_scene_validate)) {
|
334 |
+
wp_send_json_error('<p><span>Warning:</span> Targer scene id is required for scene type hotspot.</p>');
|
335 |
+
die();
|
336 |
+
}
|
337 |
+
if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
|
338 |
+
wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot.</p>');
|
339 |
+
die();
|
340 |
+
}
|
341 |
+
}
|
342 |
+
}
|
343 |
+
}
|
344 |
+
}
|
345 |
+
}
|
346 |
+
//===Error Control and Validation===//
|
347 |
+
|
348 |
+
$pano_array = array();
|
349 |
+
$pano_array = array(__( "panoid" )=>$panoid,__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "defaultscene" )=>$default_scene,__( "scenefadeduration" )=>$scene_fade_duration,__( "panodata" )=>$panodata);
|
350 |
+
update_post_meta( $postid, 'panodata', $pano_array );
|
351 |
+
die();
|
352 |
+
}
|
353 |
+
}
|
admin/css/font-awesome.min.css
ADDED
@@ -0,0 +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}
|
admin/css/materialize.css
ADDED
@@ -0,0 +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 |
+
}
|
admin/css/materialize.min.css
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:transparent !important}.transparent-text{color:transparent !important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default) li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.valign-wrapper .valign{display:block}.clearfix{clear:both}.z-depth-0{box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{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)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{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)}.z-depth-2{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)}.z-depth-3{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)}.z-depth-4,.modal{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)}.z-depth-5{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)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}footer.page-footer{padding-top:20px;background-color:#ee6e73}footer.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:10px 0px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-top:calc(1.5rem - 11px)}.side-nav span.badge{margin-top:calc(24px - 11px)}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.container .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .button-collapse i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}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{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}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{border:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}.navbar-fixed{height:64px}}@font-face{font-family:"Roboto";src:local(Roboto Thin),url("../fonts/roboto/Roboto-Thin.eot");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");font-weight:200}@font-face{font-family:"Roboto";src:local(Roboto Light),url("../fonts/roboto/Roboto-Light.eot");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");font-weight:300}@font-face{font-family:"Roboto";src:local(Roboto Regular),url("../fonts/roboto/Roboto-Regular.eot");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");font-weight:400}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Medium.eot");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");font-weight:500}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Bold.eot");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");font-weight:700} a{text-decoration:none} html{line-height:1.5;font-family:"Roboto", sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}} h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1} h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit} h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem 0} h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0} h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0} h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem 0} h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem 0} h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem 0} em{font-style:italic} strong{font-weight:500} small{font-size:75%} .light,footer.page-footer .footer-copyright{font-weight:300} .thin{font-weight:200} .flow-text{font-weight:300}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}} .scale-transition{transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;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} .scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);transition:-webkit-transform .2s !important;transition:transform .2s !important;transition:transform .2s, -webkit-transform .2s !important} .scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)} .card-panel{transition:box-shadow .25s;padding:24px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff} .card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;transition:box-shadow .25s;border-radius:2px} .card .card-title{font-size:24px;font-weight:300} .card .card-title.activator{cursor:pointer} .card.small,.card.medium,.card.large{position:relative} .card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden} .card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%} .card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden} .card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0} .card.small{height:300px} .card.medium{height:400px} .card.large{height:500px} .card.horizontal{display:-webkit-flex;display:-ms-flexbox;display:flex} .card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible} .card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%} .card.horizontal .card-image{max-width:50%} .card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto} .card.horizontal .card-stacked{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;position:relative} .card.horizontal .card-stacked .card-content{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1} .card.sticky-action .card-action{z-index:2} .card.sticky-action .card-reveal{z-index:1;padding-bottom:64px} .card .card-image{position:relative} .card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%} .card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px} .card .card-content{padding:24px;border-radius:0 0 2px 2px} .card .card-content p{margin:0;color:inherit} .card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px} .card .card-content .card-title i{line-height:32px} .card .card-action{position:relative;background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);padding:16px 24px} .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;transition:color .3s ease;text-transform:uppercase} .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6} .card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none} .card .card-reveal .card-title{cursor:pointer;display:block} #toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}} .toast{border-radius:2px;top:35px;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between} .toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem} .toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width: 601px) and (max-width: 992px){.toast{float:left}}@media only screen and (min-width: 993px){.toast{float:right}} .tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap} .tabs.tabs-transparent{background-color:transparent} .tabs.tabs-transparent .tab a,.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover{color:rgba(255,255,255,0.7)} .tabs.tabs-transparent .tab a:hover,.tabs.tabs-transparent .tab a.active{color:#fff} .tabs.tabs-transparent .indicator{background-color:#fff} .tabs.tabs-fixed-width{display:-webkit-flex;display:-ms-flexbox;display:flex} .tabs.tabs-fixed-width .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1} .tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase} .tabs .tab a{color:rgba(238,110,115,0.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease} .tabs .tab a:hover,.tabs .tab a.active{background-color:transparent;color:#ee6e73} .tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,0.7);cursor:default} .tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}@media only screen and (max-width: 992px){.tabs{display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}} .material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none;visibility:hidden} .backdrop{position:absolute;opacity:0;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;visibility:hidden} .btn,.btn-large,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent} .btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-flat:disabled,.btn[disabled],[disabled].btn-large,.btn-floating[disabled],.btn-large[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;box-shadow:none;color:#9F9F9F !important;cursor:default} .btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,[disabled].btn-large:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important} .btn,.btn-large,.btn-floating,.btn-large,.btn-flat{outline:0} .btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit} .btn:focus,.btn-large:focus,.btn-floating:focus{background-color:#1d7d74} .btn,.btn-large{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer} .btn:hover,.btn-large:hover{background-color:#2bbbad} .btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle} .btn-floating:hover{background-color:#26a69a} .btn-floating:before{border-radius:0} .btn-floating.btn-large{width:56px;height:56px} .btn-floating.btn-large i{line-height:56px} .btn-floating.halfway-fab{position:absolute;right:24px;bottom:0;-webkit-transform:translateY(50%);transform:translateY(50%)} .btn-floating.halfway-fab.left{right:auto;left:24px} .btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px} button.btn-floating{border:none} .fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998} .fixed-action-btn.active ul{visibility:visible} .fixed-action-btn.horizontal{padding:0 0 0 15px} .fixed-action-btn.horizontal ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px} .fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0} .fixed-action-btn.toolbar{padding:0;height:56px} .fixed-action-btn.toolbar.active>a i{opacity:0} .fixed-action-btn.toolbar ul{display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0} .fixed-action-btn.toolbar ul li{-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;transition:none} .fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;box-shadow:none;color:#fff;line-height:56px;z-index:1} .fixed-action-btn.toolbar ul li a i{line-height:inherit} .fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden} .fixed-action-btn ul li{margin-bottom:15px} .fixed-action-btn ul a.btn-floating{opacity:0} .fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)} .btn-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;transition:background-color .2s} .btn-flat:focus,.btn-flat:active{background-color:transparent} .btn-flat:focus,.btn-flat:hover{background-color:rgba(0,0,0,0.1);box-shadow:none} .btn-flat:active{background-color:rgba(0,0,0,0.2)} .btn-flat.disabled{background-color:transparent !important;color:#b3b3b3 !important;cursor:default} .btn-large{height:54px;line-height:54px} .btn-large i{font-size:1.6rem} .btn-block{display:block} .dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width, height} .dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left;text-transform:none} .dropdown-content li:hover,.dropdown-content li.active,.dropdown-content li.selected{background-color:#eee} .dropdown-content li.active.selected{background-color:#e1e1e1} .dropdown-content li.divider{min-height:0;height:1px} .dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px} .dropdown-content li>span>label{top:1px;left:0;height:18px} .dropdown-content li>a>i{height:inherit;line-height:inherit} .input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px}/*!
|
7 |
+
* Waves v0.6.0
|
8 |
+
* http://fian.my.id/Waves
|
9 |
+
*
|
10 |
+
* Copyright 2014 Alfiana E. Sibuea and other contributors
|
11 |
+
* Released under the MIT license
|
12 |
+
* https://github.com/fians/Waves/blob/master/LICENSE
|
13 |
+
*/.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);transition:all 0.7s ease-out;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, #fff 100%, #000 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-flat{float:right;margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-100px;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;box-sizing:border-box;padding:2rem}.side-nav .collapsible,.side-nav.fixed .collapsible{border:none;box-shadow:none}.side-nav .collapsible li,.side-nav.fixed .collapsible li{padding:0}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.side-nav .collapsible-header:hover,.side-nav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.side-nav .collapsible-header i,.side-nav.fixed .collapsible-header i{line-height:inherit}.side-nav .collapsible-body,.side-nav.fixed .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a,.side-nav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;box-shadow:none}.collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;box-shadow:none;margin:0 0 20px 0;min-height:45px;outline:none;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .chip.selected{background-color:#26a69a;color:#fff}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:1rem;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;box-shadow:none !important}.prefix ~ .chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty ~ label{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;left:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}:-moz-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;box-shadow:none;box-sizing:content-box;transition:all 0.3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:disabled,input[type=text][readonly="readonly"],input[type=password]:disabled,input[type=password][readonly="readonly"],input[type=email]:disabled,input[type=email][readonly="readonly"],input[type=url]:disabled,input[type=url][readonly="readonly"],input[type=time]:disabled,input[type=time][readonly="readonly"],input[type=date]:disabled,input[type=date][readonly="readonly"],input[type=datetime]:disabled,input[type=datetime][readonly="readonly"],input[type=datetime-local]:disabled,input[type=datetime-local][readonly="readonly"],input[type=tel]:disabled,input[type=tel][readonly="readonly"],input[type=number]:disabled,input[type=number][readonly="readonly"],input[type=search]:disabled,input[type=search][readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:disabled+label,input[type=text][readonly="readonly"]+label,input[type=password]:disabled+label,input[type=password][readonly="readonly"]+label,input[type=email]:disabled+label,input[type=email][readonly="readonly"]+label,input[type=url]:disabled+label,input[type=url][readonly="readonly"]+label,input[type=time]:disabled+label,input[type=time][readonly="readonly"]+label,input[type=date]:disabled+label,input[type=date][readonly="readonly"]+label,input[type=datetime]:disabled+label,input[type=datetime][readonly="readonly"]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly="readonly"]+label,input[type=tel]:disabled+label,input[type=tel][readonly="readonly"]+label,input[type=number]:disabled+label,input[type=number][readonly="readonly"]+label,input[type=search]:disabled+label,input[type=search][readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.26)}input:not([type]):focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=url]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=search]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]).valid,input:not([type]):focus.valid,input[type=text].valid,input[type=text]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime].valid,input[type=datetime]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input:not([type]).valid+label:after,input:not([type]):focus.valid+label:after,input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime].valid+label:after,input[type=datetime]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4CAF50;opacity:1}input:not([type]).invalid,input:not([type]):focus.invalid,input[type=text].invalid,input[type=text]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime].invalid,input[type=datetime]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).invalid+label:after,input:not([type]):focus.invalid+label:after,input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime].invalid+label:after,input[type=datetime]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#F44336;opacity:1}input:not([type]).validate+label,input[type=text].validate+label,input[type=password].validate+label,input[type=email].validate+label,input[type=url].validate+label,input[type=time].validate+label,input[type=date].validate+label,input[type=datetime].validate+label,input[type=datetime-local].validate+label,input[type=tel].validate+label,input[type=number].validate+label,input[type=search].validate+label,textarea.materialize-textarea.validate+label{width:100%;pointer-events:none}input:not([type])+label:after,input[type=text]+label:after,input[type=password]+label:after,input[type=email]+label:after,input[type=url]+label:after,input[type=time]+label:after,input[type=date]+label:after,input[type=datetime]+label:after,input[type=datetime-local]+label:after,input[type=tel]+label:after,input[type=number]+label:after,input[type=search]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:60px;opacity:0;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline input,.input-field.inline .select-dropdown{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field label{color:#9e9e9e;position:absolute;top:0.8rem;left:0;font-size:1rem;cursor:text;transition:.2s ease-out}.input-field label:not(.label-icon).active{font-size:.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus ~ .mdi-navigation-close,.input-field input[type=search]:focus ~ .material-icons{color:#444}.input-field input[type=search]+label{left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:.8rem 0 1.6rem 0;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}.autocomplete-content{margin-top:-15px;display:block;opacity:1;position:static}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;left:-9999px;opacity:0}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+label:before,[type="radio"]+label:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:.28s ease}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after,[type="radio"]:checked+label:before,[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border-radius:50%}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+label:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+label:before{border:2px solid transparent}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border:2px solid #26a69a}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:after{background-color:#26a69a}[type="radio"]:checked+label:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+label:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+label:before{box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,0.26)}[type="radio"].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before,[type="radio"]:disabled:checked+label:before{background-color:transparent;border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled+label{color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:checked+label:after{background-color:rgba(0,0,0,0.26);border-color:#BDBDBD}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px;opacity:0}[type="checkbox"]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type="checkbox"]+label:before,[type="checkbox"]:not(.filled-in)+label:after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:.2s}[type="checkbox"]:not(.filled-in)+label:after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,0.26)}[type="checkbox"].tabbed:focus+label:after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+label:before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);border-bottom:2px solid rgba(0,0,0,0.26)}[type="checkbox"]:indeterminate+label:before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);background-color:transparent}[type="checkbox"].filled-in+label:after{border-radius:2px}[type="checkbox"].filled-in+label:before,[type="checkbox"].filled-in+label:after{content:'';left:0;position:absolute;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+label:after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+label:after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}[type="checkbox"].filled-in:disabled:checked+label:before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a;left:24px}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,0.4);left:-5px;top:-3px;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(38,166,154,0.1)}input[type=checkbox]:not(:disabled) ~ .lever:active:after,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:0;bottom:0;height:10px;margin:auto 0;font-size:10px;line-height:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,0.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,0.3)}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;top:10px;margin-left:-6px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:14px;width:14px;border-radius:50%;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0;transition:.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:none}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ee6e73}.side-nav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.side-nav .collapsible{margin:0}.side-nav li{float:none;line-height:48px}.side-nav li.active{background-color:rgba(0,0,0,0.05)}.side-nav a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.side-nav a:hover{background-color:rgba(0,0,0,0.05)}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-flat,.side-nav a.btn-floating{margin:10px 15px}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-floating{color:#fff}.side-nav a.btn-flat{color:#343434}.side-nav a.btn:hover,.side-nav a.btn-large:hover,.side-nav a.btn-large:hover{background-color:#2bbbad}.side-nav a.btn-floating:hover{background-color:#26a69a}.side-nav li>a>i,.side-nav li>a>[class^="mdi-"],.side-nav li>a>[class*="mdi-"],.side-nav li>a>i.material-icons{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.side-nav .divider{margin:8px 0 0 0}.side-nav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.side-nav .subheader:hover{background-color:transparent}.side-nav .userView{position:relative;padding:32px 32px 0;margin-bottom:8px}.side-nav .userView>a{height:auto;padding:0}.side-nav .userView>a:hover{background-color:transparent}.side-nav .userView .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.side-nav .userView .circle,.side-nav .userView .name,.side-nav .userView .email{display:block}.side-nav .userView .circle{height:64px;width:64px}.side-nav .userView .name,.side-nav .userView .email{font-size:14px;line-height:24px}.side-nav .userView .name{margin-top:16px;font-weight:500}.side-nav .userView .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.side-nav.fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.side-nav a{padding:0 16px}.side-nav .userView{padding:16px 16px 0}}.side-nav .collapsible-body>ul:not(.collapsible)>li.active,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.side-nav .collapsible-body>ul:not(.collapsible)>li.active a,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-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;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}.active .spinner-layer.spinner-red{-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;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}.active .spinner-layer.spinner-yellow{-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;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}.active .spinner-layer.spinner-green{-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;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}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0;height:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{display:none;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*!
|
14 |
+
* Default mobile-first, responsive styling for pickadate.js
|
15 |
+
* Demo: http://amsul.github.io/pickadate.js
|
16 |
+
*/.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background 0.15s ease-out, top 0s 0.15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all 0.15s ease-out}@media (min-height: 28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height: 40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height: 28.875em){.picker__wrap{display:block}}.picker__box{background:#ffffff;display:table-cell;vertical-align:middle}@media (min-height: 28.875em){.picker__box{display:block;border:1px solid #777777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);transition:background 0.15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height: 35.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__input.picker__input--active{border-color:#E3F2FD}.picker__frame{margin:0 auto;max-width:325px}@media (min-height: 38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#FFFFFF;width:40%}.picker__select--year.browser-default{display:inline;background-color:#FFFFFF;width:26%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999999;font-weight:500}@media (min-height: 33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaaaaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#dddddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.75);transform:scale(0.75);background:#0089ec;color:#ffffff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbbbbb}.picker__footer{text-align:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #ffffff;background:#ffffff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:none}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:0.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #ee2200}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaaaaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.9);transform:scale(0.9);background-color:#26a69a;color:#ffffff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#26a69a}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:0.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:0.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:0.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;margin-bottom:-1px;position:relative;background:#ffffff;padding:.75em 1.25em}@media (min-height: 46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#ffffff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default;border-color:#dddddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000000;background:#b1dcfb;background:#ee2200;border-color:#ee2200;cursor:pointer;color:#ffffff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#ffffff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height: 40.125em){.picker--time .picker__box{margin-bottom:5em}}
|
admin/css/wpvr-admin.css
ADDED
@@ -0,0 +1,1222 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* All of the CSS for your admin-specific functionality should be
|
3 |
+
* included in this file.
|
4 |
+
*/
|
5 |
+
|
6 |
+
@import url('https://fonts.googleapis.com/css?family=Roboto:300,300i,400,500,700,900');
|
7 |
+
|
8 |
+
div.custom-tooltip span {
|
9 |
+
visibility: hidden;
|
10 |
+
position: absolute;
|
11 |
+
border-radius: 3px;
|
12 |
+
background-color: #fff;
|
13 |
+
color: #000;
|
14 |
+
text-align: center;
|
15 |
+
padding: 5px 10px;
|
16 |
+
cursor: default;
|
17 |
+
margin: 0 0px 0px 12px !important;
|
18 |
+
bottom: 40px;
|
19 |
+
transform: translateX(-50%);
|
20 |
+
}
|
21 |
+
div.custom-tooltip:hover span{
|
22 |
+
visibility: visible;
|
23 |
+
}
|
24 |
+
div.custom-tooltip:hover span:after {
|
25 |
+
content: '';
|
26 |
+
position: absolute;
|
27 |
+
width: 0;
|
28 |
+
height: 0;
|
29 |
+
border-width: 10px;
|
30 |
+
border-style: solid;
|
31 |
+
border-color: #fff transparent transparent transparent;
|
32 |
+
bottom: -20px;
|
33 |
+
left: -10px;
|
34 |
+
margin: 0 50%;
|
35 |
+
}
|
36 |
+
|
37 |
+
#custom-ifram {
|
38 |
+
position: absolute;
|
39 |
+
top: 12%;
|
40 |
+
left: 50%;
|
41 |
+
transform: translateX(-50%);
|
42 |
+
z-index: 99;
|
43 |
+
width: 90%;
|
44 |
+
}
|
45 |
+
|
46 |
+
.iframe-wrapper {
|
47 |
+
max-width: 600px;
|
48 |
+
position: relative;
|
49 |
+
margin: 0 auto;
|
50 |
+
width: 100%;
|
51 |
+
height: 400px;
|
52 |
+
}
|
53 |
+
.iframe-wrapper .pnlm-container{
|
54 |
+
height: 100%;
|
55 |
+
width: 100%;
|
56 |
+
}
|
57 |
+
.pano-wrap:before {
|
58 |
+
content: "";
|
59 |
+
position: absolute;
|
60 |
+
left: 0;
|
61 |
+
top: 0;
|
62 |
+
background: rgba(0,0,0,0.4);
|
63 |
+
width: 100%;
|
64 |
+
height: 100%;
|
65 |
+
z-index: 99;
|
66 |
+
opacity: 0;
|
67 |
+
visibility: hidden;
|
68 |
+
transition: all 0.4s linear;
|
69 |
+
}
|
70 |
+
.iframe-wrapper.show-modal .pano-wrap:before {
|
71 |
+
opacity: 1;
|
72 |
+
visibility: visible;
|
73 |
+
}
|
74 |
+
|
75 |
+
.iframe-wrapper #cross {
|
76 |
+
background: #fff;
|
77 |
+
width: 30px;
|
78 |
+
height: 30px;
|
79 |
+
color: red;
|
80 |
+
line-height: 30px;
|
81 |
+
position: absolute;
|
82 |
+
top: 6px;
|
83 |
+
z-index: 99;
|
84 |
+
text-align: center;
|
85 |
+
right: 6px;
|
86 |
+
border-radius: 100%;
|
87 |
+
cursor: pointer;
|
88 |
+
opacity: 0;
|
89 |
+
visibility: hidden;
|
90 |
+
transition: all 0.4s linear;
|
91 |
+
}
|
92 |
+
.iframe-wrapper.show-modal #cross {
|
93 |
+
opacity: 1;
|
94 |
+
visibility: visible;
|
95 |
+
}
|
96 |
+
|
97 |
+
#custom-ifram p {
|
98 |
+
background-color: #fff;
|
99 |
+
padding: 10px;
|
100 |
+
margin: auto;
|
101 |
+
border-radius: 5px;
|
102 |
+
}
|
103 |
+
|
104 |
+
.custom-tooltip p {
|
105 |
+
background-color: #fff;
|
106 |
+
padding: 10px 0;
|
107 |
+
margin: auto;
|
108 |
+
border-radius: 5px;
|
109 |
+
width: 500px;
|
110 |
+
font-size: 16px;
|
111 |
+
line-height: 26px;
|
112 |
+
}
|
113 |
+
|
114 |
+
#custom-ifram img {
|
115 |
+
max-width: 100%;
|
116 |
+
margin: 0 auto;
|
117 |
+
display: block;
|
118 |
+
}
|
119 |
+
|
120 |
+
#custom-ifram iframe {
|
121 |
+
max-width: 100%;
|
122 |
+
margin: 0 auto;
|
123 |
+
display: block;
|
124 |
+
}
|
125 |
+
|
126 |
+
.custom-tooltip span img {
|
127 |
+
height: 220px;
|
128 |
+
width: 400px;
|
129 |
+
}
|
130 |
+
|
131 |
+
@media (max-width: 1199px){
|
132 |
+
.pnlm-container {
|
133 |
+
width: 100%!important;
|
134 |
+
}
|
135 |
+
div.custom-tooltip span {
|
136 |
+
width: 420px!important;
|
137 |
+
}
|
138 |
+
.custom-tooltip p {
|
139 |
+
width: 420px;
|
140 |
+
}
|
141 |
+
|
142 |
+
.custom-tooltip span img {
|
143 |
+
height: 230px;
|
144 |
+
width: 420px;
|
145 |
+
}
|
146 |
+
|
147 |
+
}
|
148 |
+
@media (max-width: 991px){
|
149 |
+
div.custom-tooltip span {
|
150 |
+
width: 540px!important;
|
151 |
+
}
|
152 |
+
.custom-tooltip p {
|
153 |
+
width: 530px;
|
154 |
+
}
|
155 |
+
.custom-tooltip span img {
|
156 |
+
height: 310px;
|
157 |
+
width: 540px;
|
158 |
+
}
|
159 |
+
|
160 |
+
}
|
161 |
+
|
162 |
+
|
163 |
+
/*------------------------------panolens tab style-----------------------------*/
|
164 |
+
.pano-setup *{
|
165 |
+
box-sizing: border-box;
|
166 |
+
}
|
167 |
+
.pano-setup {
|
168 |
+
position: relative;
|
169 |
+
font-family: 'Roboto', sans-serif;
|
170 |
+
}
|
171 |
+
.rex-pano-tabs {
|
172 |
+
position: relative;
|
173 |
+
display: flex;
|
174 |
+
flex-flow: row;
|
175 |
+
align-items: flex-start;
|
176 |
+
justify-content: flex-start;
|
177 |
+
background: #f5f5f5;
|
178 |
+
}
|
179 |
+
.rex-pano-tabs .rex-pano-tab-nav {
|
180 |
+
text-align: left;
|
181 |
+
width: 22%;
|
182 |
+
padding: 50px 40px;
|
183 |
+
}
|
184 |
+
.rex-pano-tabs .rex-pano-tab-nav ul {
|
185 |
+
margin: 0;
|
186 |
+
}
|
187 |
+
.rex-pano-tabs .rex-pano-tab-nav li {
|
188 |
+
display: block;
|
189 |
+
margin: 0 auto;
|
190 |
+
width: 220px;
|
191 |
+
}
|
192 |
+
.rex-pano-tabs .rex-pano-tab-nav li span {
|
193 |
+
text-transform: uppercase;
|
194 |
+
color: #555555;
|
195 |
+
cursor: pointer;
|
196 |
+
font-weight: 500;
|
197 |
+
font-size: 16px;
|
198 |
+
-webkit-user-select: none;
|
199 |
+
-moz-user-select: none;
|
200 |
+
-ms-user-select: none;
|
201 |
+
user-select: none;
|
202 |
+
border: 1px solid #c3d3fc;
|
203 |
+
display: block;
|
204 |
+
height: 55px;
|
205 |
+
text-align: center;
|
206 |
+
line-height: 55px;
|
207 |
+
padding: 0 20px;
|
208 |
+
border-radius: 5px;
|
209 |
+
margin-bottom: 20px;
|
210 |
+
position: relative;
|
211 |
+
transition: all 0.25s ease-in-out;
|
212 |
+
}
|
213 |
+
.rex-pano-tabs .rex-pano-tab-nav li span:after {
|
214 |
+
content: "";
|
215 |
+
position: absolute;
|
216 |
+
right: -9px;
|
217 |
+
top: 50%;
|
218 |
+
width: 20px;
|
219 |
+
height: 20px;
|
220 |
+
background: #4775f6;
|
221 |
+
opacity: 0;
|
222 |
+
visibility: hidden;
|
223 |
+
border-radius: 2px;
|
224 |
+
transform-origin: center;
|
225 |
+
-webkit-transform: translateY(-50%) rotate(45deg);
|
226 |
+
-ms-transform: translateY(-50%) rotate(45deg);
|
227 |
+
-o-transform: translateY(-50%) rotate(45deg);
|
228 |
+
transform: translateY(-50%) rotate(45deg);
|
229 |
+
transition: all 0.2s ease-in-out;
|
230 |
+
|
231 |
+
}
|
232 |
+
|
233 |
+
.rex-pano-tabs .rex-pano-tab-nav li.active > span:after{
|
234 |
+
opacity: 1;
|
235 |
+
visibility: visible;
|
236 |
+
}
|
237 |
+
.rex-pano-tabs .rex-pano-tab-nav li span i {
|
238 |
+
font-size: 20px;
|
239 |
+
margin-right: 5px;
|
240 |
+
}
|
241 |
+
.rex-pano-tabs .rex-pano-tab-nav li.scene span i {
|
242 |
+
margin-right: 18px;
|
243 |
+
}
|
244 |
+
.rex-pano-tabs .rex-pano-tab-nav li:hover > span,
|
245 |
+
.rex-pano-tabs .rex-pano-tab-nav li.active > span {
|
246 |
+
color: #fff;
|
247 |
+
background: #4775f6;
|
248 |
+
box-shadow: 0px 7px 25px 0px rgba(56, 84, 163, 0.2);
|
249 |
+
}
|
250 |
+
.rex-pano-sub-tabs .rex-pano-tab,
|
251 |
+
.rex-pano-tabs .rex-pano-tab {
|
252 |
+
display: none;
|
253 |
+
}
|
254 |
+
.rex-pano-sub-tabs .rex-pano-tab.active,
|
255 |
+
.rex-pano-tabs .rex-pano-tab.active {
|
256 |
+
display: block !important;
|
257 |
+
}
|
258 |
+
|
259 |
+
.pano-alert {
|
260 |
+
position: absolute;
|
261 |
+
top: 50%;
|
262 |
+
left: 62%;
|
263 |
+
display: none;
|
264 |
+
-webkit-transform: translate(-50%, -50%);
|
265 |
+
-ms-transform: translate(-50%, -50%);
|
266 |
+
-o-transform: translate(-50%, -50%);
|
267 |
+
transform: translate(-50%, -50%);
|
268 |
+
z-index: 9;
|
269 |
+
padding: 30px 20px;
|
270 |
+
background-color: #f7e0e2;
|
271 |
+
border: 1px solid #f5c6cb;
|
272 |
+
width: 500px;
|
273 |
+
}
|
274 |
+
.pano-alert p {
|
275 |
+
color: #d85964;
|
276 |
+
font-size: 14px;
|
277 |
+
margin: 0;
|
278 |
+
font-weight: 500;
|
279 |
+
text-align: center;
|
280 |
+
border-radius: 3px;
|
281 |
+
}
|
282 |
+
.pano-alert span {
|
283 |
+
position: absolute;
|
284 |
+
right: -12px;
|
285 |
+
top: -15px;
|
286 |
+
color: #d85964;
|
287 |
+
height: 23px;
|
288 |
+
line-height: normal;
|
289 |
+
text-align: center;
|
290 |
+
font-size: 13px;
|
291 |
+
padding: 2px 6px;
|
292 |
+
cursor: pointer;
|
293 |
+
border: 1px solid #f5c6cb;
|
294 |
+
width: 23px;
|
295 |
+
border-radius: 100%;
|
296 |
+
background: #f7e0e2;
|
297 |
+
}
|
298 |
+
|
299 |
+
/*--------------tab content style----------------*/
|
300 |
+
.rex-pano-tab-content {
|
301 |
+
background: #fff;
|
302 |
+
width: 78%;
|
303 |
+
border-left: 1px solid #d5e0fd;
|
304 |
+
}
|
305 |
+
.rex-pano-tab-content .title {
|
306 |
+
font-size: 18px;
|
307 |
+
font-weight: 600;
|
308 |
+
color: #4775f6;
|
309 |
+
margin: 0 0 40px 0;
|
310 |
+
text-transform: capitalize;
|
311 |
+
background: #f9fbff;
|
312 |
+
border: 1px solid #ecf1fe;
|
313 |
+
padding: 15px 30px;
|
314 |
+
margin-bottom: x;
|
315 |
+
}
|
316 |
+
|
317 |
+
.rex-pano-tab-content .single-hotspot .title span {
|
318 |
+
color: #252525;
|
319 |
+
}
|
320 |
+
|
321 |
+
.rex-pano-tab-content .title .scene-num,
|
322 |
+
.rex-pano-tab-content .single-hotspot .title .hotspot-num {
|
323 |
+
color: #4775f6;
|
324 |
+
}
|
325 |
+
|
326 |
+
.rex-pano-tab-content .title i {
|
327 |
+
margin-right: 10px;
|
328 |
+
}
|
329 |
+
.rex-pano-tab-content .rex-pano-tab.general {
|
330 |
+
padding: 50px 40px;
|
331 |
+
}
|
332 |
+
|
333 |
+
/*----checkbox style----*/
|
334 |
+
.rex-pano-tab .radio-btn {
|
335 |
+
position: relative;
|
336 |
+
margin: 0;
|
337 |
+
}
|
338 |
+
.rex-pano-tab .styled-radio {
|
339 |
+
position: absolute;
|
340 |
+
opacity: 0;
|
341 |
+
visibility: hidden;
|
342 |
+
}
|
343 |
+
.rex-pano-tab .styled-radio + label {
|
344 |
+
position: relative;
|
345 |
+
cursor: pointer;
|
346 |
+
padding: 0;
|
347 |
+
color: #555555;
|
348 |
+
font-size: 15px;
|
349 |
+
margin-bottom: 3px;
|
350 |
+
letter-spacing: 0;
|
351 |
+
width: 30px;
|
352 |
+
margin: 0 auto;
|
353 |
+
}
|
354 |
+
.rex-pano-tab .styled-radio + label:before {
|
355 |
+
border: 1px solid #ddd;
|
356 |
+
border-radius: 100%;
|
357 |
+
content: "";
|
358 |
+
display: inline-block;
|
359 |
+
height: 18px;
|
360 |
+
margin-right: 6px;
|
361 |
+
vertical-align: text-top;
|
362 |
+
width: 18px;
|
363 |
+
|
364 |
+
-webkit-transition: all 0.3s ease;
|
365 |
+
-o-transition: all 0.3s ease;
|
366 |
+
transition: all 0.3s ease;
|
367 |
+
}
|
368 |
+
.rex-pano-tab .styled-radio:focus + label:before {
|
369 |
+
box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.12);
|
370 |
+
}
|
371 |
+
.rex-pano-tab .styled-radio:disabled + label {
|
372 |
+
color: #b8b8b8;
|
373 |
+
cursor: auto;
|
374 |
+
}
|
375 |
+
.rex-pano-tab .styled-radio:disabled + label:before {
|
376 |
+
box-shadow: none;
|
377 |
+
background: #ddd;
|
378 |
+
}
|
379 |
+
.rex-pano-tab .styled-radio:checked + label:before {
|
380 |
+
border-color:#4775f6;
|
381 |
+
}
|
382 |
+
.rex-pano-tab .styled-radio + label:after {
|
383 |
+
content: "";
|
384 |
+
color: #000;
|
385 |
+
left: 5px;
|
386 |
+
position: absolute;
|
387 |
+
top: 5px;
|
388 |
+
font-size: 18px;
|
389 |
+
opacity: 0;
|
390 |
+
visibility: hidden;
|
391 |
+
width: 10px;
|
392 |
+
height: 10px;
|
393 |
+
background: #4775f6;
|
394 |
+
border-radius: 100%;
|
395 |
+
|
396 |
+
-webkit-transition: all 0.3s ease;;
|
397 |
+
-o-transition: all 0.3s ease;;
|
398 |
+
transition: all 0.3s ease;;
|
399 |
+
}
|
400 |
+
.rex-pano-tab .styled-radio:checked + label:after {
|
401 |
+
opacity: 1;
|
402 |
+
visibility: visible;
|
403 |
+
}
|
404 |
+
/*--------end checkbox style-------*/
|
405 |
+
|
406 |
+
|
407 |
+
.rex-pano-tab .single-settings {
|
408 |
+
display: flex;
|
409 |
+
flex-flow: row;
|
410 |
+
align-items: center;
|
411 |
+
justify-content: flex-start;
|
412 |
+
margin-bottom: 30px;
|
413 |
+
}
|
414 |
+
.rex-pano-tab .single-settings:last-child {
|
415 |
+
margin-bottom: 0px;
|
416 |
+
}
|
417 |
+
.rex-pano-tab .single-settings span {
|
418 |
+
min-width: 170px;
|
419 |
+
font-size: 16px;
|
420 |
+
display: block;
|
421 |
+
color: #555555;
|
422 |
+
font-weight: 600;
|
423 |
+
}
|
424 |
+
.rex-pano-tab .single-settings ul{
|
425 |
+
margin: 0;
|
426 |
+
}
|
427 |
+
.rex-pano-tab .single-settings ul li {
|
428 |
+
display: inline-block;
|
429 |
+
margin-right: 20px;
|
430 |
+
}
|
431 |
+
|
432 |
+
.rex-pano-tab input[type="password"],
|
433 |
+
.rex-pano-tab input[type="email"],
|
434 |
+
.rex-pano-tab input[type="number"],
|
435 |
+
.rex-pano-tab input[type="text"] {
|
436 |
+
border: 1px solid #dae3fd;
|
437 |
+
box-shadow: none;
|
438 |
+
width: 100%;
|
439 |
+
max-width: 400px;
|
440 |
+
height: 46px;
|
441 |
+
padding: 10px 20px;
|
442 |
+
font-size: 16px;
|
443 |
+
color: #454545;
|
444 |
+
border-radius: 3px;
|
445 |
+
}
|
446 |
+
|
447 |
+
|
448 |
+
/*------------sub tab style----------*/
|
449 |
+
.rex-pano-sub-tabs {
|
450 |
+
|
451 |
+
}
|
452 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav {
|
453 |
+
width: auto;
|
454 |
+
padding: 50px 40px 30px;
|
455 |
+
border-bottom: 1px solid #c3d3fc;
|
456 |
+
}
|
457 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav ul li {
|
458 |
+
display: inline-block;
|
459 |
+
margin-right: 17px;
|
460 |
+
margin-bottom: 10px;
|
461 |
+
width: auto;
|
462 |
+
}
|
463 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav ul li:last-child {
|
464 |
+
margin-right: 0;
|
465 |
+
}
|
466 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li span {
|
467 |
+
text-transform: capitalize;
|
468 |
+
color: #494b51;
|
469 |
+
font-size: 16px;
|
470 |
+
border: 1px solid #c3d3fc;
|
471 |
+
height: 45px;
|
472 |
+
margin-bottom: 0;
|
473 |
+
line-height: 45px;
|
474 |
+
padding: 0 30px;
|
475 |
+
transition: all 0.25s ease-in-out;
|
476 |
+
}
|
477 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li span:after {
|
478 |
+
right: 50%;
|
479 |
+
top: inherit;
|
480 |
+
bottom: -6px;
|
481 |
+
width: 14px;
|
482 |
+
height: 14px;
|
483 |
+
-webkit-transform: translateX(50%) rotate(45deg);
|
484 |
+
-ms-transform: translateX(50%) rotate(45deg);
|
485 |
+
-o-transform: translateX(50%) rotate(45deg);
|
486 |
+
transform: translateX(50%) rotate(45deg);
|
487 |
+
transition: all 0.2s ease-in-out 0.1s;
|
488 |
+
}
|
489 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li.add > span,
|
490 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li:not(.active):hover > span {
|
491 |
+
border-color: #4775f6;
|
492 |
+
box-shadow: none;
|
493 |
+
color: #4775f6;
|
494 |
+
background: transparent;
|
495 |
+
}
|
496 |
+
|
497 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li span .delete {
|
498 |
+
color: #4775f6;
|
499 |
+
border: 1px solid #4775f6;
|
500 |
+
font-size: 12px;
|
501 |
+
display: block;
|
502 |
+
position: absolute;
|
503 |
+
top: -12px;
|
504 |
+
right: -8px;
|
505 |
+
background: #fff;
|
506 |
+
width: 26px;
|
507 |
+
height: 26px;
|
508 |
+
border-radius: 100%;
|
509 |
+
cursor: pointer;
|
510 |
+
opacity: 0;
|
511 |
+
visibility: hidden;
|
512 |
+
transition: all 0.25s ease-in-out;
|
513 |
+
}
|
514 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li span .delete:focus{
|
515 |
+
box-shadow: none;
|
516 |
+
outline: none;
|
517 |
+
}
|
518 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li span .delete i {
|
519 |
+
font-size: 14px;
|
520 |
+
margin: 0;
|
521 |
+
}
|
522 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li:hover span .delete,
|
523 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li.active span .delete {
|
524 |
+
visibility: visible;
|
525 |
+
opacity: 1;
|
526 |
+
}
|
527 |
+
|
528 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li.add span:after{
|
529 |
+
display: none;
|
530 |
+
}
|
531 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav li.add span > i {
|
532 |
+
font-size: 17px;
|
533 |
+
margin-right: 0;
|
534 |
+
}
|
535 |
+
|
536 |
+
|
537 |
+
/*-----------sub tab content style-----------*/
|
538 |
+
.rex-pano-sub-tabs .rex-pano-tab-content {
|
539 |
+
width: 100%;
|
540 |
+
padding: 30px 40px;
|
541 |
+
border-left: none;
|
542 |
+
position: relative;
|
543 |
+
}
|
544 |
+
.single-hotspot .hotspot-setting,
|
545 |
+
.single-scene .scene-setting {
|
546 |
+
margin-bottom: 21px;
|
547 |
+
}
|
548 |
+
.single-hotspot .hotspot-setting label,
|
549 |
+
.single-scene .scene-setting label {
|
550 |
+
color: #494b51;
|
551 |
+
font-size: 18px;
|
552 |
+
font-weight: 500;
|
553 |
+
display: block;
|
554 |
+
margin-bottom: 10px;
|
555 |
+
}
|
556 |
+
.single-hotspot .hotspot-setting select,
|
557 |
+
.single-hotspot .hotspot-setting textarea,
|
558 |
+
.single-hotspot .hotspot-setting input,
|
559 |
+
.single-scene .scene-setting input{
|
560 |
+
border: 1px solid #dae3fd;
|
561 |
+
box-shadow: none;
|
562 |
+
width: 100%;
|
563 |
+
max-width: 400px;
|
564 |
+
height: 46px;
|
565 |
+
padding: 10px 20px;
|
566 |
+
font-size: 16px;
|
567 |
+
color: #454545;
|
568 |
+
border-radius: 3px;
|
569 |
+
}
|
570 |
+
.single-scene .scene-setting .form-group img {
|
571 |
+
max-width: 400px;
|
572 |
+
width: 100%;
|
573 |
+
margin-bottom: 15px;
|
574 |
+
}
|
575 |
+
.single-scene .scene-setting input.scene-upload {
|
576 |
+
text-transform: uppercase;
|
577 |
+
font-weight: 500;
|
578 |
+
color: #fff;
|
579 |
+
background: #4775f6;
|
580 |
+
border: none;
|
581 |
+
cursor: pointer;
|
582 |
+
transition: all 0.3s ease;
|
583 |
+
}
|
584 |
+
.single-scene .scene-setting input.scene-upload:hover {
|
585 |
+
background: #3869f3;
|
586 |
+
}
|
587 |
+
.single-scene .scene-setting input.scene-upload:focus {
|
588 |
+
box-shadow: none;
|
589 |
+
outline: inherit;
|
590 |
+
}
|
591 |
+
|
592 |
+
|
593 |
+
|
594 |
+
|
595 |
+
|
596 |
+
/*--------------------hotspot style-------------------*/
|
597 |
+
.clearfix::before,
|
598 |
+
.clearfix::after {
|
599 |
+
content: " ";
|
600 |
+
display: table;
|
601 |
+
clear: both;
|
602 |
+
}
|
603 |
+
.hotspot-setup .rex-pano-tab-nav {
|
604 |
+
padding: 20px 0px 30px;
|
605 |
+
}
|
606 |
+
.hotspot-setup .rex-pano-tab-content {
|
607 |
+
padding: 30px 0px;
|
608 |
+
}
|
609 |
+
.hotspot-setup .single-hotspot > .wrapper,
|
610 |
+
.hotspot-setup .single-hotspot .hotspot-type {
|
611 |
+
float: left;
|
612 |
+
width: 50%;
|
613 |
+
}
|
614 |
+
.hotspot-setup .single-hotspot > .wrapper{
|
615 |
+
padding-right: 30px;
|
616 |
+
}
|
617 |
+
.single-hotspot .hotspot-setting textarea {
|
618 |
+
height: auto;
|
619 |
+
resize: none;
|
620 |
+
min-height: 110px;
|
621 |
+
}
|
622 |
+
.single-hotspot .hotspot-setting select,
|
623 |
+
.single-hotspot .hotspot-setting textarea,
|
624 |
+
.single-hotspot .hotspot-setting input{
|
625 |
+
max-width: 100%;
|
626 |
+
}
|
627 |
+
.single-hotspot .hotspot-type .hotspot-scene,
|
628 |
+
.single-hotspot .hotspot-type .hotspot-hover,
|
629 |
+
.single-hotspot .hotspot-type .hotspot-content,
|
630 |
+
.single-hotspot .hotspot-type .hotspot-url,
|
631 |
+
.single-hotspot .hotspot-type select {
|
632 |
+
margin-bottom: 21px;
|
633 |
+
}
|
634 |
+
|
635 |
+
button.delete-hotspot,
|
636 |
+
button.delete-scene {
|
637 |
+
position: absolute;
|
638 |
+
top: 36px;
|
639 |
+
right: 46px;
|
640 |
+
text-transform: capitalize;
|
641 |
+
color: #fff;
|
642 |
+
font-size: 20px;
|
643 |
+
border: 1px solid #c3d3fc;
|
644 |
+
height: 38px;
|
645 |
+
margin-bottom: 0;
|
646 |
+
line-height: 38px;
|
647 |
+
padding: 0 15px;
|
648 |
+
transition: all 0.25s ease-in-out;
|
649 |
+
background: #4775f6;
|
650 |
+
cursor: pointer;
|
651 |
+
border-radius: 5px;
|
652 |
+
}
|
653 |
+
button.delete-hotspot:hover,
|
654 |
+
button.delete-scene:hover {
|
655 |
+
background: #3869f3;
|
656 |
+
}
|
657 |
+
button#panolenspreview:focus,
|
658 |
+
button.delete-hotspot:focus,
|
659 |
+
button.delete-scene:focus {
|
660 |
+
outline: none;
|
661 |
+
}
|
662 |
+
button.delete-hotspot{
|
663 |
+
right: 5px;
|
664 |
+
}
|
665 |
+
|
666 |
+
|
667 |
+
/*--------preview-btn-area---------*/
|
668 |
+
.preview-btn-wrapper{
|
669 |
+
padding: 0px 40px;
|
670 |
+
}
|
671 |
+
.preview-btn-area {
|
672 |
+
padding: 55px 0px;
|
673 |
+
border-top: 1px solid #e4eafe;
|
674 |
+
}
|
675 |
+
.preview-btn-area #panolenspreview {
|
676 |
+
text-transform: capitalize;
|
677 |
+
color: #fff;
|
678 |
+
font-size: 16px;
|
679 |
+
border: 1px solid #c3d3fc;
|
680 |
+
height: 45px;
|
681 |
+
font-weight: 500;
|
682 |
+
margin-bottom: 0;
|
683 |
+
line-height: 45px;
|
684 |
+
padding: 0 30px;
|
685 |
+
transition: all 0.25s ease-in-out;
|
686 |
+
background: #4775f6;
|
687 |
+
cursor: pointer;
|
688 |
+
border-radius: 5px;
|
689 |
+
box-shadow: 0px 7px 25px 0px rgba(56, 84, 163, 0.2);
|
690 |
+
float: right;
|
691 |
+
}
|
692 |
+
.preview-btn-area #panolenspreview:hover {
|
693 |
+
background: #3869f3;
|
694 |
+
box-shadow: none;
|
695 |
+
}
|
696 |
+
|
697 |
+
.preview-btn-area #error_occured {
|
698 |
+
display: block;
|
699 |
+
min-width: 150px;
|
700 |
+
min-height: 15px;
|
701 |
+
float: left;
|
702 |
+
}
|
703 |
+
.preview-btn-area #error_occured p {
|
704 |
+
background: #fffbfb;
|
705 |
+
padding: 10px 25px;
|
706 |
+
margin: 0;
|
707 |
+
border: 1px solid #ffd9de;
|
708 |
+
color: #f93333;
|
709 |
+
border-radius: 5px;
|
710 |
+
font-size: 16px;
|
711 |
+
}
|
712 |
+
.preview-btn-area #error_occured p span{
|
713 |
+
font-weight: 500;
|
714 |
+
}
|
715 |
+
|
716 |
+
|
717 |
+
.hotspot-setup.rex-pano-sub-tabs {
|
718 |
+
display: none;
|
719 |
+
}
|
720 |
+
|
721 |
+
|
722 |
+
|
723 |
+
/*-----------------responsive style------------------*/
|
724 |
+
@media (max-width: 1700px){
|
725 |
+
.rex-pano-tabs .main-nav li {
|
726 |
+
width: 170px;
|
727 |
+
}
|
728 |
+
.rex-pano-tabs .main-nav li span {
|
729 |
+
font-size: 15px;
|
730 |
+
height: 50px;
|
731 |
+
line-height: 50px;
|
732 |
+
}
|
733 |
+
.rex-pano-tabs .main-nav li span i {
|
734 |
+
font-size: 18px;
|
735 |
+
}
|
736 |
+
.rex-pano-tabs .main-nav li span:after {
|
737 |
+
right: -7px;
|
738 |
+
width: 16px;
|
739 |
+
height: 16px;
|
740 |
+
}
|
741 |
+
|
742 |
+
}
|
743 |
+
|
744 |
+
@media (max-width: 1500px){
|
745 |
+
.rex-pano-tabs {
|
746 |
+
display: block;
|
747 |
+
}
|
748 |
+
.rex-pano-tabs .main-nav {
|
749 |
+
padding: 30px 30px;
|
750 |
+
width: 100%;
|
751 |
+
}
|
752 |
+
.rex-pano-tabs .main-nav li {
|
753 |
+
display: inline-block;
|
754 |
+
margin-right: 25px;
|
755 |
+
}
|
756 |
+
.rex-pano-tabs .main-nav li:last-child {
|
757 |
+
margin-right: 0px;
|
758 |
+
}
|
759 |
+
.rex-pano-tabs .main-nav li span {
|
760 |
+
margin-bottom: 0;
|
761 |
+
}
|
762 |
+
|
763 |
+
.rex-pano-tab-content {
|
764 |
+
width: 100%;
|
765 |
+
}
|
766 |
+
.rex-pano-tabs .main-nav li span:after {
|
767 |
+
right: 50%;
|
768 |
+
width: 16px;
|
769 |
+
height: 16px;
|
770 |
+
top: inherit;
|
771 |
+
-webkit-transform: translateX(-50%) rotate(45deg);
|
772 |
+
-ms-transform: translateX(-50%) rotate(45deg);
|
773 |
+
-o-transform: translateX(-50%) rotate(45deg);
|
774 |
+
transform: translateX(50%) rotate(45deg);
|
775 |
+
bottom: -8px;
|
776 |
+
}
|
777 |
+
|
778 |
+
}
|
779 |
+
|
780 |
+
@media (max-width: 1199px){
|
781 |
+
.rex-pano-tab-content {
|
782 |
+
border-left: none;
|
783 |
+
}
|
784 |
+
.rex-pano-tabs .main-nav {
|
785 |
+
padding: 20px 20px;
|
786 |
+
}
|
787 |
+
.rex-pano-tabs .main-nav li {
|
788 |
+
width: 144px;
|
789 |
+
margin-right: 12px;
|
790 |
+
margin-bottom: 12px;
|
791 |
+
}
|
792 |
+
.rex-pano-tabs .main-nav li span {
|
793 |
+
padding: 0 10px;
|
794 |
+
}
|
795 |
+
.rex-pano-tab-content .rex-pano-tab.general {
|
796 |
+
padding: 20px 20px;
|
797 |
+
}
|
798 |
+
.rex-pano-sub-tabs .rex-pano-tab-nav {
|
799 |
+
padding: 20px 20px 20px;
|
800 |
+
}
|
801 |
+
.rex-pano-sub-tabs .rex-pano-tab-content {
|
802 |
+
padding: 20px 20px;
|
803 |
+
}
|
804 |
+
.hotspot-setup .single-hotspot > .wrapper,
|
805 |
+
.hotspot-setup .single-hotspot .hotspot-type {
|
806 |
+
float: none;
|
807 |
+
width: 100%;
|
808 |
+
}
|
809 |
+
.hotspot-setup .single-hotspot > .wrapper {
|
810 |
+
padding-right: 0;
|
811 |
+
}
|
812 |
+
.hotspot-setup .rex-pano-tab-content {
|
813 |
+
padding: 30px 0px 0;
|
814 |
+
}
|
815 |
+
|
816 |
+
|
817 |
+
.preview-btn-area {
|
818 |
+
padding: 0 0 55px 0px;
|
819 |
+
border-top: none;
|
820 |
+
}
|
821 |
+
.preview-btn-wrapper {
|
822 |
+
padding: 0px 20px;
|
823 |
+
}
|
824 |
+
input.delete-hotspot,
|
825 |
+
input.delete-scene {
|
826 |
+
position: absolute;
|
827 |
+
top: 25px;
|
828 |
+
right: 25px;
|
829 |
+
}
|
830 |
+
input.delete-hotspot {
|
831 |
+
right: 5px;
|
832 |
+
top: 35px;
|
833 |
+
}
|
834 |
+
}
|
835 |
+
|
836 |
+
/**
|
837 |
+
* On Boarding Page
|
838 |
+
*/
|
839 |
+
|
840 |
+
|
841 |
+
.row {
|
842 |
+
width: 100%;
|
843 |
+
height: auto;
|
844 |
+
padding: 15px;
|
845 |
+
}
|
846 |
+
|
847 |
+
.rex-onboarding {
|
848 |
+
background: #fff;
|
849 |
+
padding: 15px 25px;
|
850 |
+
margin-top: -8px;
|
851 |
+
border: 1px solid rgba( 0,0,0,0.1 );
|
852 |
+
border-top: none;
|
853 |
+
position: relative;
|
854 |
+
display: flex;
|
855 |
+
min-height: 840px;
|
856 |
+
width: 100%;
|
857 |
+
flex-flow: row;
|
858 |
+
justify-content: flex-start;
|
859 |
+
}
|
860 |
+
|
861 |
+
.rex-onboarding .banner-block img {
|
862 |
+
width: 100%;
|
863 |
+
}
|
864 |
+
.rex-onboarding .left {
|
865 |
+
float: none!important;
|
866 |
+
width: 60%;
|
867 |
+
}
|
868 |
+
|
869 |
+
.rex-onboarding .right {
|
870 |
+
width: 40%;
|
871 |
+
float: none!important;
|
872 |
+
display: flex;
|
873 |
+
flex-flow: column;
|
874 |
+
align-items: center;
|
875 |
+
justify-content: center;
|
876 |
+
}
|
877 |
+
|
878 |
+
|
879 |
+
/*.rex-onboarding .wrapper {
|
880 |
+
display: flex;
|
881 |
+
flex-wrap: wrap;
|
882 |
+
flex-flow: row;
|
883 |
+
}*/
|
884 |
+
|
885 |
+
|
886 |
+
.onboarding-block {
|
887 |
+
background-color: #fff;
|
888 |
+
height: 210px;
|
889 |
+
box-shadow: 0 1px 4px rgba(0,0,0,0.1);
|
890 |
+
}
|
891 |
+
|
892 |
+
|
893 |
+
.onboarding-block .header {
|
894 |
+
position: relative;
|
895 |
+
padding-left: 65px!important;
|
896 |
+
}
|
897 |
+
.onboarding-block .header:before {
|
898 |
+
content: "";
|
899 |
+
position: absolute;
|
900 |
+
left: 63px;
|
901 |
+
top: 0;
|
902 |
+
height: 100%;
|
903 |
+
width: 1px;
|
904 |
+
background: #eee;
|
905 |
+
}
|
906 |
+
.onboarding-block .header .title-icon {
|
907 |
+
position: absolute;
|
908 |
+
left: 15px;
|
909 |
+
top: 50%;
|
910 |
+
transform: translateY(-50%);
|
911 |
+
}
|
912 |
+
|
913 |
+
.banner-block {
|
914 |
+
padding: 8px;
|
915 |
+
}
|
916 |
+
|
917 |
+
.onboarding-block .header {
|
918 |
+
overflow: hidden;
|
919 |
+
border-bottom: 1px solid rgba(0,0,0,0.1);
|
920 |
+
background-color: #fff;
|
921 |
+
box-shadow: 0 1px 4px rgba(0,0,0,0.065);
|
922 |
+
padding: 0 10px;
|
923 |
+
}
|
924 |
+
|
925 |
+
|
926 |
+
.onboarding-block p {
|
927 |
+
font-size: 14px;
|
928 |
+
}
|
929 |
+
|
930 |
+
.onboarding-block .body {
|
931 |
+
padding: 18px 15px;
|
932 |
+
}
|
933 |
+
|
934 |
+
|
935 |
+
|
936 |
+
|
937 |
+
|
938 |
+
.tabs-icon {
|
939 |
+
font-size: 10px;
|
940 |
+
overflow: hidden;
|
941 |
+
}
|
942 |
+
.tabs-icon i {
|
943 |
+
display: block;
|
944 |
+
margin-top: 5px;
|
945 |
+
margin-bottom: -15px;
|
946 |
+
font-size: 24px;
|
947 |
+
}
|
948 |
+
.tabs-icon a.active {
|
949 |
+
background-color: #F3F3F3;
|
950 |
+
}
|
951 |
+
.tabs-icon a:focus {
|
952 |
+
box-shadow: none;
|
953 |
+
outline: none;
|
954 |
+
}
|
955 |
+
/* OVERWRITE MATERIAL CSS MIN WIDTH FOR MOBILE */
|
956 |
+
.tabs .tab {
|
957 |
+
min-width: 50px !important
|
958 |
+
}
|
959 |
+
.tabs .tab-hide {
|
960 |
+
display: none;
|
961 |
+
}
|
962 |
+
.no-pd {
|
963 |
+
padding: 0 !important
|
964 |
+
}
|
965 |
+
|
966 |
+
|
967 |
+
|
968 |
+
|
969 |
+
|
970 |
+
.rex-onboarding .block-wrapper{
|
971 |
+
/*display: flex;
|
972 |
+
flex-flow: row;
|
973 |
+
justify-content: space-between;
|
974 |
+
align-items: flex-start;*/
|
975 |
+
}
|
976 |
+
|
977 |
+
.rex-onboarding .wrapper {
|
978 |
+
padding-right: 30px;
|
979 |
+
}
|
980 |
+
.rex-onboarding .block-wrapper{
|
981 |
+
clear: both;
|
982 |
+
padding-top: 30px;
|
983 |
+
}
|
984 |
+
.rex-onboarding .single-block {
|
985 |
+
width: 48.4%;
|
986 |
+
float: left;
|
987 |
+
margin-left: 30px;
|
988 |
+
margin-bottom: 30px;
|
989 |
+
}
|
990 |
+
.rex-onboarding .single-block:nth-child(odd){
|
991 |
+
margin-left: 0;
|
992 |
+
}
|
993 |
+
.rex-onboarding .single-block-full {
|
994 |
+
width: 100%;
|
995 |
+
clear: left;
|
996 |
+
float: none;
|
997 |
+
}
|
998 |
+
|
999 |
+
.rex-onboarding .onboarding-block .header h4 {
|
1000 |
+
margin: 1em 0;
|
1001 |
+
padding: 0 1.26582em;
|
1002 |
+
font-size: 1.185em;
|
1003 |
+
font-weight: 600;
|
1004 |
+
text-overflow: ellipsis;
|
1005 |
+
white-space: nowrap;
|
1006 |
+
}
|
1007 |
+
|
1008 |
+
.rex-onboarding .right .rex-banner {
|
1009 |
+
text-align: center;
|
1010 |
+
}
|
1011 |
+
.rex-onboarding .right .rex-banner img {
|
1012 |
+
max-width: 100%;
|
1013 |
+
height: auto;
|
1014 |
+
}
|
1015 |
+
.rex-onboarding .right .rex-banner img.banner-logo {
|
1016 |
+
width: auto;
|
1017 |
+
}
|
1018 |
+
.rex-onboarding .right .rex-banner .update-btn {
|
1019 |
+
font-size: 1em;
|
1020 |
+
color: #23282d;
|
1021 |
+
text-decoration: none;
|
1022 |
+
text-transform: uppercase;
|
1023 |
+
letter-spacing: .065em;
|
1024 |
+
text-align: center;
|
1025 |
+
margin: 20px auto 100px;
|
1026 |
+
display: block;
|
1027 |
+
border: 1px solid rgb(232, 232, 232);
|
1028 |
+
border-radius: 4px;
|
1029 |
+
padding: 15px;
|
1030 |
+
width: 200px;
|
1031 |
+
outline: none;
|
1032 |
+
box-shadow: none;
|
1033 |
+
transition: all .3s;
|
1034 |
+
}
|
1035 |
+
.rex-onboarding .right .rex-banner .update-btn:hover {
|
1036 |
+
border-color: rgb(232, 232, 232);
|
1037 |
+
box-shadow: 0 4px 7px 0 rgba(0, 0, 0, 0.10);
|
1038 |
+
}
|
1039 |
+
|
1040 |
+
|
1041 |
+
.rex-upgrade h4 {
|
1042 |
+
font-size: 22px;
|
1043 |
+
font-weight: 600;
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
|
1047 |
+
.rex-upgrade .parent {
|
1048 |
+
font-family: 'Roboto';
|
1049 |
+
counter-reset: my-counter;
|
1050 |
+
width: 400px;
|
1051 |
+
margin-bottom: 30px;
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
.rex-upgrade .item {
|
1055 |
+
position: relative;
|
1056 |
+
padding-left: 30px;
|
1057 |
+
font-size: 14px;
|
1058 |
+
line-height: 20px;
|
1059 |
+
margin-bottom: 5px;
|
1060 |
+
}
|
1061 |
+
.rex-upgrade .item:before {
|
1062 |
+
color: white;
|
1063 |
+
background-color: #1FB3FB;
|
1064 |
+
border-radius: 50%;
|
1065 |
+
counter-increment: my-counter;
|
1066 |
+
content: counter(my-counter);
|
1067 |
+
display: inline-block;
|
1068 |
+
height: 20px;
|
1069 |
+
line-height: 20px;
|
1070 |
+
left: 0;
|
1071 |
+
margin-right: 10px;
|
1072 |
+
position: absolute;
|
1073 |
+
text-align: center;
|
1074 |
+
width: 20px;
|
1075 |
+
}
|
1076 |
+
|
1077 |
+
|
1078 |
+
.rex-onboarding .tabs {
|
1079 |
+
height: 55px;
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
.bwf-btn {
|
1083 |
+
background: #1FB3FB;
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
.bwf-btn:hover {
|
1087 |
+
background-color: #47CCCF;
|
1088 |
+
}
|
1089 |
+
|
1090 |
+
.rex-onboarding .tabs .tab a{
|
1091 |
+
color: #47CCCF;
|
1092 |
+
}
|
1093 |
+
.rex-onboarding .tabs .tab a:hover, .rex-onboarding .tabs .tab a.active {
|
1094 |
+
color: #1FB3FB;
|
1095 |
+
}
|
1096 |
+
|
1097 |
+
|
1098 |
+
.rex-onboarding .tabs .indicator{
|
1099 |
+
|
1100 |
+
background-color: #1FB3FB;
|
1101 |
+
}
|
1102 |
+
|
1103 |
+
|
1104 |
+
|
1105 |
+
|
1106 |
+
/*------------responsive style------------*/
|
1107 |
+
@media (max-width: 1700px) {
|
1108 |
+
.rex-onboarding .single-block {
|
1109 |
+
width: 48%;
|
1110 |
+
}
|
1111 |
+
.onboarding-block {
|
1112 |
+
height: 195px;
|
1113 |
+
}
|
1114 |
+
.onboarding-block .body {
|
1115 |
+
padding: 12px 15px;
|
1116 |
+
}
|
1117 |
+
.rex-onboarding .left {
|
1118 |
+
width: 65%;
|
1119 |
+
}
|
1120 |
+
.rex-onboarding .right {
|
1121 |
+
width: 35%;
|
1122 |
+
}
|
1123 |
+
|
1124 |
+
} /*media 1501px-1700px*/
|
1125 |
+
|
1126 |
+
@media (max-width: 1500px) {
|
1127 |
+
.rex-onboarding {
|
1128 |
+
min-height: 730px;
|
1129 |
+
}
|
1130 |
+
.left {
|
1131 |
+
width: 70%;
|
1132 |
+
}
|
1133 |
+
.right {
|
1134 |
+
width: 30%;
|
1135 |
+
}
|
1136 |
+
.onboarding-block {
|
1137 |
+
height: 174px;
|
1138 |
+
}
|
1139 |
+
.onboarding-block p {
|
1140 |
+
font-size: 12px;
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
}
|
1144 |
+
@media (max-width: 1400px) {
|
1145 |
+
.rex-onboarding {
|
1146 |
+
display: block;
|
1147 |
+
padding-bottom: 40px;
|
1148 |
+
}
|
1149 |
+
.left {
|
1150 |
+
width: 100%;
|
1151 |
+
}
|
1152 |
+
.right {
|
1153 |
+
width: 100%;
|
1154 |
+
padding-top: 30px;
|
1155 |
+
}
|
1156 |
+
.rex-onboarding .wrapper {
|
1157 |
+
padding-right: 0;
|
1158 |
+
}
|
1159 |
+
.onboarding-block .body {
|
1160 |
+
padding: 20px 15px;
|
1161 |
+
}
|
1162 |
+
.onboarding-block {
|
1163 |
+
height: 222px;
|
1164 |
+
}
|
1165 |
+
.onboarding-block p {
|
1166 |
+
font-size: 14px;
|
1167 |
+
}
|
1168 |
+
.rex-onboarding .right .rex-banner .update-btn {
|
1169 |
+
margin: 20px auto 60px;
|
1170 |
+
}
|
1171 |
+
|
1172 |
+
} /*--media 1200px-1400px */
|
1173 |
+
|
1174 |
+
@media (min-width: 1300px) and (max-width: 1370px) {
|
1175 |
+
.onboarding-block {
|
1176 |
+
height: 239px;
|
1177 |
+
}
|
1178 |
+
.onboarding-block .body {
|
1179 |
+
padding: 26px 15px;
|
1180 |
+
}
|
1181 |
+
.onboarding-block p {
|
1182 |
+
font-size: 16px;
|
1183 |
+
}
|
1184 |
+
|
1185 |
+
} /*media 1300px to 1370px*/
|
1186 |
+
|
1187 |
+
@media (max-width: 1199px) {
|
1188 |
+
.rex-onboarding .single-block {
|
1189 |
+
width: 48.666%;
|
1190 |
+
margin-left: 20px;
|
1191 |
+
margin-bottom: 20px;
|
1192 |
+
}
|
1193 |
+
.onboarding-block .body {
|
1194 |
+
padding: 3px 15px;
|
1195 |
+
}
|
1196 |
+
.onboarding-block p {
|
1197 |
+
font-size: 12px;
|
1198 |
+
}
|
1199 |
+
.onboarding-block {
|
1200 |
+
height: 171px;
|
1201 |
+
}
|
1202 |
+
.onboarding-block .bwf-btn {
|
1203 |
+
font-size: 12px;
|
1204 |
+
height: 30px;
|
1205 |
+
line-height: 31px;
|
1206 |
+
padding: 0 14px;
|
1207 |
+
}
|
1208 |
+
|
1209 |
+
}
|
1210 |
+
|
1211 |
+
|
1212 |
+
|
1213 |
+
@media only screen and (max-width : 992px) {
|
1214 |
+
.rex-onboarding .single-block {
|
1215 |
+
width: 100%;
|
1216 |
+
margin-left: 0;
|
1217 |
+
}
|
1218 |
+
|
1219 |
+
.onboarding-block {
|
1220 |
+
height: 200px;
|
1221 |
+
}
|
1222 |
+
}
|
admin/icon/Document.png
ADDED
Binary file
|
admin/icon/Feedback.png
ADDED
Binary file
|
admin/icon/Heart.png
ADDED
Binary file
|
admin/icon/Rating.png
ADDED
Binary file
|
admin/icon/Social_Booster_Banner.png
ADDED
Binary file
|
admin/icon/Support.png
ADDED
Binary file
|
admin/icon/banner.png
ADDED
Binary file
|
admin/icon/icon-128x128.png
ADDED
Binary file
|
admin/icon/icon.png
ADDED
Binary file
|
admin/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php // Silence is golden
|
admin/js/jquery.repeater.min.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// jquery.repeater version 1.2.1
|
2 |
+
// https://github.com/DubFriend/jquery.repeater
|
3 |
+
// (MIT) 09-10-2016
|
4 |
+
// Brian Detering <BDeterin@gmail.com> (http://www.briandetering.net/)
|
5 |
+
!function(a){"use strict";var b=function(a){return a},c=function(b){return a.isArray(b)},d=function(a){return!c(a)&&a instanceof Object},e=function(b,c){return a.inArray(c,b)},f=function(a,b){return e(a,b)!==-1},g=function(a,b){for(var c in a)a.hasOwnProperty(c)&&b(a[c],c,a)},h=function(a){return a[a.length-1]},i=function(a){return Array.prototype.slice.call(a)},j=function(){var a={};return g(i(arguments),function(b){g(b,function(b,c){a[c]=b})}),a},k=function(a,b){var c=[];return g(a,function(a,d,e){c.push(b(a,d,e))}),c},l=function(a,b,c){var d={};return g(a,function(a,e,f){e=c?c(e,a):e,d[e]=b(a,e,f)}),d},m=function(a,b,d){return c(a)?k(a,b):l(a,b,d)},n=function(a,b){return m(a,function(a){return a[b]})},o=function(a,b){var d;return c(a)?(d=[],g(a,function(a,c,e){b(a,c,e)&&d.push(a)})):(d={},g(a,function(a,c,e){b(a,c,e)&&(d[c]=a)})),d},p=function(a,b,c){return m(a,function(a,d){return a[b].apply(a,c||[])})},q=function(a){a=a||{};var b={};return a.publish=function(a,c){g(b[a],function(a){a(c)})},a.subscribe=function(a,c){b[a]=b[a]||[],b[a].push(c)},a.unsubscribe=function(a){g(b,function(b){var c=e(b,a);c!==-1&&b.splice(c,1)})},a};!function(a){var b=function(a,b){var c=q(),d=a.$;return c.getType=function(){throw'implement me (return type. "text", "radio", etc.)'},c.$=function(a){return a?d.find(a):d},c.disable=function(){c.$().prop("disabled",!0),c.publish("isEnabled",!1)},c.enable=function(){c.$().prop("disabled",!1),c.publish("isEnabled",!0)},b.equalTo=function(a,b){return a===b},b.publishChange=function(){var a;return function(d,e){var f=c.get();b.equalTo(f,a)||c.publish("change",{e:d,domElement:e}),a=f}}(),c},i=function(a,c){var d=b(a,c);return d.get=function(){return d.$().val()},d.set=function(a){d.$().val(a)},d.clear=function(){d.set("")},c.buildSetter=function(a){return function(b){a.call(d,b)}},d},j=function(a,b){a=c(a)?a:[a],b=c(b)?b:[b];var d=!0;return a.length!==b.length?d=!1:g(a,function(a){f(b,a)||(d=!1)}),d},k=function(a){var b={},c=i(a,b);return c.getType=function(){return"button"},c.$().on("change",function(a){b.publishChange(a,this)}),c},l=function(b){var d={},e=i(b,d);return e.getType=function(){return"checkbox"},e.get=function(){var b=[];return e.$().filter(":checked").each(function(){b.push(a(this).val())}),b},e.set=function(b){b=c(b)?b:[b],e.$().each(function(){a(this).prop("checked",!1)}),g(b,function(a){e.$().filter('[value="'+a+'"]').prop("checked",!0)})},d.equalTo=j,e.$().change(function(a){d.publishChange(a,this)}),e},m=function(a){var b={},c=x(a,b);return c.getType=function(){return"email"},c},n=function(c){var d={},e=b(c,d);return e.getType=function(){return"file"},e.get=function(){return h(e.$().val().split("\\"))},e.clear=function(){this.$().each(function(){a(this).wrap("<form>").closest("form").get(0).reset(),a(this).unwrap()})},e.$().change(function(a){d.publishChange(a,this)}),e},o=function(a){var b={},c=i(a,b);return c.getType=function(){return"hidden"},c.$().change(function(a){b.publishChange(a,this)}),c},r=function(c){var d={},e=b(c,d);return e.getType=function(){return"file[multiple]"},e.get=function(){var a,b=e.$().get(0).files||[],c=[];for(a=0;a<(b.length||0);a+=1)c.push(b[a].name);return c},e.clear=function(){this.$().each(function(){a(this).wrap("<form>").closest("form").get(0).reset(),a(this).unwrap()})},e.$().change(function(a){d.publishChange(a,this)}),e},s=function(a){var b={},d=i(a,b);return d.getType=function(){return"select[multiple]"},d.get=function(){return d.$().val()||[]},d.set=function(a){d.$().val(""===a?[]:c(a)?a:[a])},b.equalTo=j,d.$().change(function(a){b.publishChange(a,this)}),d},t=function(a){var b={},c=x(a,b);return c.getType=function(){return"password"},c},u=function(b){var c={},d=i(b,c);return d.getType=function(){return"radio"},d.get=function(){return d.$().filter(":checked").val()||null},d.set=function(b){b?d.$().filter('[value="'+b+'"]').prop("checked",!0):d.$().each(function(){a(this).prop("checked",!1)})},d.$().change(function(a){c.publishChange(a,this)}),d},v=function(a){var b={},c=i(a,b);return c.getType=function(){return"range"},c.$().change(function(a){b.publishChange(a,this)}),c},w=function(a){var b={},c=i(a,b);return c.getType=function(){return"select"},c.$().change(function(a){b.publishChange(a,this)}),c},x=function(a){var b={},c=i(a,b);return c.getType=function(){return"text"},c.$().on("change keyup keydown",function(a){b.publishChange(a,this)}),c},y=function(a){var b={},c=i(a,b);return c.getType=function(){return"textarea"},c.$().on("change keyup keydown",function(a){b.publishChange(a,this)}),c},z=function(a){var b={},c=x(a,b);return c.getType=function(){return"url"},c},A=function(b){var c={},f=b.$,h=b.constructorOverride||{button:k,text:x,url:z,email:m,password:t,range:v,textarea:y,select:w,"select[multiple]":s,radio:u,checkbox:l,file:n,"file[multiple]":r,hidden:o},i=function(b,e){var g=d(e)?e:f.find(e);g.each(function(){var d=a(this).attr("name");c[d]=h[b]({$:a(this)})})},j=function(b,i){var j=[],k=d(i)?i:f.find(i);d(i)?c[k.attr("name")]=h[b]({$:k}):(k.each(function(){e(j,a(this).attr("name"))===-1&&j.push(a(this).attr("name"))}),g(j,function(a){c[a]=h[b]({$:f.find('input[name="'+a+'"]')})}))};return f.is("input, select, textarea")?f.is('input[type="button"], button, input[type="submit"]')?i("button",f):f.is("textarea")?i("textarea",f):f.is('input[type="text"]')||f.is("input")&&!f.attr("type")?i("text",f):f.is('input[type="password"]')?i("password",f):f.is('input[type="email"]')?i("email",f):f.is('input[type="url"]')?i("url",f):f.is('input[type="range"]')?i("range",f):f.is("select")?f.is("[multiple]")?i("select[multiple]",f):i("select",f):f.is('input[type="file"]')?f.is("[multiple]")?i("file[multiple]",f):i("file",f):f.is('input[type="hidden"]')?i("hidden",f):f.is('input[type="radio"]')?j("radio",f):f.is('input[type="checkbox"]')?j("checkbox",f):i("text",f):(i("button",'input[type="button"], button, input[type="submit"]'),i("text",'input[type="text"]'),i("password",'input[type="password"]'),i("email",'input[type="email"]'),i("url",'input[type="url"]'),i("range",'input[type="range"]'),i("textarea","textarea"),i("select","select:not([multiple])"),i("select[multiple]","select[multiple]"),i("file",'input[type="file"]:not([multiple])'),i("file[multiple]",'input[type="file"][multiple]'),i("hidden",'input[type="hidden"]'),j("radio",'input[type="radio"]'),j("checkbox",'input[type="checkbox"]')),c};a.fn.inputVal=function(b){var c=a(this),d=A({$:c});return c.is("input, textarea, select")?"undefined"==typeof b?d[c.attr("name")].get():(d[c.attr("name")].set(b),c):"undefined"==typeof b?p(d,"get"):(g(b,function(a,b){d[b].set(a)}),c)},a.fn.inputOnChange=function(b){var c=a(this),d=A({$:c});return g(d,function(a){a.subscribe("change",function(a){b.call(a.domElement,a.e)})}),c},a.fn.inputDisable=function(){var b=a(this);return p(A({$:b}),"disable"),b},a.fn.inputEnable=function(){var b=a(this);return p(A({$:b}),"enable"),b},a.fn.inputClear=function(){var b=a(this);return p(A({$:b}),"clear"),b}}(jQuery),a.fn.repeaterVal=function(){var b=function(a){var b=[];return g(a,function(a,c){var d=[];"undefined"!==c&&(d.push(c.match(/^[^\[]*/)[0]),d=d.concat(m(c.match(/\[[^\]]*\]/g),function(a){return a.replace(/[\[\]]/g,"")})),b.push({val:a,key:d}))}),b},c=function(a){if(1===a.length&&(0===a[0].key.length||1===a[0].key.length&&!a[0].key[0]))return a[0].val;g(a,function(a){a.head=a.key.shift()});var b,d=function(){var b={};return g(a,function(a){b[a.head]||(b[a.head]=[]),b[a.head].push(a)}),b}();return/^[0-9]+$/.test(a[0].head)?(b=[],g(d,function(a){b.push(c(a))})):(b={},g(d,function(a,d){b[d]=c(a)})),b};return c(b(a(this).inputVal()))},a.fn.repeater=function(c){c=c||{};var d;return a(this).each(function(){var e=a(this),f=c.show||function(){a(this).show()},i=c.hide||function(a){a()},k=e.find("[data-repeater-list]").first(),l=function(b,c){return b.filter(function(){return!c||0===a(this).closest(n(c,"selector").join(",")).length})},p=function(){return l(k.find("[data-repeater-item]"),c.repeaters)},q=k.find("[data-repeater-item]").first().clone().hide(),r=l(l(a(this).find("[data-repeater-item]"),c.repeaters).first().find("[data-repeater-delete]"),c.repeaters);c.isFirstItemUndeletable&&r&&r.remove();var s=function(){var a=k.data("repeater-list");return c.$parent?c.$parent.data("item-name")+"["+a+"]":a},t=function(b){c.repeaters&&b.each(function(){var b=a(this);g(c.repeaters,function(a){b.find(a.selector).repeater(j(a,{$parent:b}))})})},u=function(a,b,c){a&&g(a,function(a){c.call(b.find(a.selector)[0],a)})},v=function(b,c,d){b.each(function(b){var e=a(this);e.data("item-name",c+"["+b+"]"),l(e.find("[name]"),d).each(function(){var f=a(this),g=f.attr("name").match(/\[[^\]]+\]/g),i=g?h(g).replace(/\[|\]/g,""):f.attr("name"),j=c+"["+b+"]["+i+"]"+(f.is(":checkbox")||f.attr("multiple")?"[]":"");f.attr("name",j),u(d,e,function(d){var e=a(this);v(l(e.find("[data-repeater-item]"),d.repeaters||[]),c+"["+b+"]["+e.find("[data-repeater-list]").first().data("repeater-list")+"]",d.repeaters)})})}),k.find("input[name][checked]").removeAttr("checked").prop("checked",!0)};v(p(),s(),c.repeaters),t(p()),c.initEmpty&&p().remove(),c.ready&&c.ready(function(){v(p(),s(),c.repeaters)});var w=function(){var d=function(e,f,h){if(f||c.defaultValues){var i={};l(e.find("[name]"),h).each(function(){var b=a(this).attr("name").match(/\[([^\]]*)(\]|\]\[\])$/)[1];i[b]=a(this).attr("name")}),e.inputVal(m(o(f||c.defaultValues,function(a,b){return i[b]}),b,function(a){return i[a]}))}u(h,e,function(b){var c=a(this);l(c.find("[data-repeater-item]"),b.repeaters).each(function(){var e=c.find("[data-repeater-list]").data("repeater-list");if(f&&f[e]){var h=a(this).clone();c.find("[data-repeater-item]").remove(),g(f[e],function(a){var e=h.clone();d(e,a,b.repeaters||[]),c.find("[data-repeater-list]").append(e)})}else d(a(this),b.defaultValues,b.repeaters||[])})})};return function(b,e){k.append(b),v(p(),s(),c.repeaters),b.find("[name]").each(function(){a(this).inputClear()}),d(b,e||c.defaultValues,c.repeaters)}}(),x=function(a){var b=q.clone();w(b,a),c.repeaters&&t(b),f.call(b.get(0))};d=function(a){p().remove(),g(a,x)},l(e.find("[data-repeater-create]"),c.repeaters).click(function(){x()}),k.on("click","[data-repeater-delete]",function(){var b=a(this).closest("[data-repeater-item]").get(0);i.call(b,function(){a(b).remove(),v(p(),s(),c.repeaters)})})}),this.setList=d,this}}(jQuery);
|
admin/js/materialize.js
ADDED
@@ -0,0 +1,8031 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
// Check for jQuery.
|
7 |
+
if (typeof(jQuery) === 'undefined') {
|
8 |
+
var jQuery;
|
9 |
+
// Check if require is a defined function.
|
10 |
+
if (typeof(require) === 'function') {
|
11 |
+
jQuery = $ = require('jquery');
|
12 |
+
// Else use the dollar sign alias.
|
13 |
+
} else {
|
14 |
+
jQuery = $;
|
15 |
+
}
|
16 |
+
}
|
17 |
+
;/*
|
18 |
+
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
19 |
+
*
|
20 |
+
* Uses the built in easing capabilities added In jQuery 1.1
|
21 |
+
* to offer multiple easing options
|
22 |
+
*
|
23 |
+
* TERMS OF USE - jQuery Easing
|
24 |
+
*
|
25 |
+
* Open source under the BSD License.
|
26 |
+
*
|
27 |
+
* Copyright © 2008 George McGinley Smith
|
28 |
+
* All rights reserved.
|
29 |
+
*
|
30 |
+
* Redistribution and use in source and binary forms, with or without modification,
|
31 |
+
* are permitted provided that the following conditions are met:
|
32 |
+
*
|
33 |
+
* Redistributions of source code must retain the above copyright notice, this list of
|
34 |
+
* conditions and the following disclaimer.
|
35 |
+
* Redistributions in binary form must reproduce the above copyright notice, this list
|
36 |
+
* of conditions and the following disclaimer in the documentation and/or other materials
|
37 |
+
* provided with the distribution.
|
38 |
+
*
|
39 |
+
* Neither the name of the author nor the names of contributors may be used to endorse
|
40 |
+
* or promote products derived from this software without specific prior written permission.
|
41 |
+
*
|
42 |
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
43 |
+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
44 |
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
45 |
+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
46 |
+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
47 |
+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
48 |
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
49 |
+
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
50 |
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
51 |
+
*
|
52 |
+
*/
|
53 |
+
|
54 |
+
// t: current time, b: begInnIng value, c: change In value, d: duration
|
55 |
+
jQuery.easing['jswing'] = jQuery.easing['swing'];
|
56 |
+
|
57 |
+
jQuery.extend( jQuery.easing,
|
58 |
+
{
|
59 |
+
def: 'easeOutQuad',
|
60 |
+
swing: function (x, t, b, c, d) {
|
61 |
+
//alert(jQuery.easing.default);
|
62 |
+
return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
|
63 |
+
},
|
64 |
+
easeInQuad: function (x, t, b, c, d) {
|
65 |
+
return c*(t/=d)*t + b;
|
66 |
+
},
|
67 |
+
easeOutQuad: function (x, t, b, c, d) {
|
68 |
+
return -c *(t/=d)*(t-2) + b;
|
69 |
+
},
|
70 |
+
easeInOutQuad: function (x, t, b, c, d) {
|
71 |
+
if ((t/=d/2) < 1) return c/2*t*t + b;
|
72 |
+
return -c/2 * ((--t)*(t-2) - 1) + b;
|
73 |
+
},
|
74 |
+
easeInCubic: function (x, t, b, c, d) {
|
75 |
+
return c*(t/=d)*t*t + b;
|
76 |
+
},
|
77 |
+
easeOutCubic: function (x, t, b, c, d) {
|
78 |
+
return c*((t=t/d-1)*t*t + 1) + b;
|
79 |
+
},
|
80 |
+
easeInOutCubic: function (x, t, b, c, d) {
|
81 |
+
if ((t/=d/2) < 1) return c/2*t*t*t + b;
|
82 |
+
return c/2*((t-=2)*t*t + 2) + b;
|
83 |
+
},
|
84 |
+
easeInQuart: function (x, t, b, c, d) {
|
85 |
+
return c*(t/=d)*t*t*t + b;
|
86 |
+
},
|
87 |
+
easeOutQuart: function (x, t, b, c, d) {
|
88 |
+
return -c * ((t=t/d-1)*t*t*t - 1) + b;
|
89 |
+
},
|
90 |
+
easeInOutQuart: function (x, t, b, c, d) {
|
91 |
+
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
|
92 |
+
return -c/2 * ((t-=2)*t*t*t - 2) + b;
|
93 |
+
},
|
94 |
+
easeInQuint: function (x, t, b, c, d) {
|
95 |
+
return c*(t/=d)*t*t*t*t + b;
|
96 |
+
},
|
97 |
+
easeOutQuint: function (x, t, b, c, d) {
|
98 |
+
return c*((t=t/d-1)*t*t*t*t + 1) + b;
|
99 |
+
},
|
100 |
+
easeInOutQuint: function (x, t, b, c, d) {
|
101 |
+
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
|
102 |
+
return c/2*((t-=2)*t*t*t*t + 2) + b;
|
103 |
+
},
|
104 |
+
easeInSine: function (x, t, b, c, d) {
|
105 |
+
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
|
106 |
+
},
|
107 |
+
easeOutSine: function (x, t, b, c, d) {
|
108 |
+
return c * Math.sin(t/d * (Math.PI/2)) + b;
|
109 |
+
},
|
110 |
+
easeInOutSine: function (x, t, b, c, d) {
|
111 |
+
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
|
112 |
+
},
|
113 |
+
easeInExpo: function (x, t, b, c, d) {
|
114 |
+
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
|
115 |
+
},
|
116 |
+
easeOutExpo: function (x, t, b, c, d) {
|
117 |
+
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
|
118 |
+
},
|
119 |
+
easeInOutExpo: function (x, t, b, c, d) {
|
120 |
+
if (t==0) return b;
|
121 |
+
if (t==d) return b+c;
|
122 |
+
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
|
123 |
+
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
|
124 |
+
},
|
125 |
+
easeInCirc: function (x, t, b, c, d) {
|
126 |
+
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
|
127 |
+
},
|
128 |
+
easeOutCirc: function (x, t, b, c, d) {
|
129 |
+
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
|
130 |
+
},
|
131 |
+
easeInOutCirc: function (x, t, b, c, d) {
|
132 |
+
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
|
133 |
+
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
|
134 |
+
},
|
135 |
+
easeInElastic: function (x, t, b, c, d) {
|
136 |
+
var s=1.70158;var p=0;var a=c;
|
137 |
+
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
138 |
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
139 |
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
140 |
+
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
141 |
+
},
|
142 |
+
easeOutElastic: function (x, t, b, c, d) {
|
143 |
+
var s=1.70158;var p=0;var a=c;
|
144 |
+
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
145 |
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
146 |
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
147 |
+
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
|
148 |
+
},
|
149 |
+
easeInOutElastic: function (x, t, b, c, d) {
|
150 |
+
var s=1.70158;var p=0;var a=c;
|
151 |
+
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
|
152 |
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
153 |
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
154 |
+
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
155 |
+
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
|
156 |
+
},
|
157 |
+
easeInBack: function (x, t, b, c, d, s) {
|
158 |
+
if (s == undefined) s = 1.70158;
|
159 |
+
return c*(t/=d)*t*((s+1)*t - s) + b;
|
160 |
+
},
|
161 |
+
easeOutBack: function (x, t, b, c, d, s) {
|
162 |
+
if (s == undefined) s = 1.70158;
|
163 |
+
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
|
164 |
+
},
|
165 |
+
easeInOutBack: function (x, t, b, c, d, s) {
|
166 |
+
if (s == undefined) s = 1.70158;
|
167 |
+
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
|
168 |
+
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
|
169 |
+
},
|
170 |
+
easeInBounce: function (x, t, b, c, d) {
|
171 |
+
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
|
172 |
+
},
|
173 |
+
easeOutBounce: function (x, t, b, c, d) {
|
174 |
+
if ((t/=d) < (1/2.75)) {
|
175 |
+
return c*(7.5625*t*t) + b;
|
176 |
+
} else if (t < (2/2.75)) {
|
177 |
+
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
178 |
+
} else if (t < (2.5/2.75)) {
|
179 |
+
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
180 |
+
} else {
|
181 |
+
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
182 |
+
}
|
183 |
+
},
|
184 |
+
easeInOutBounce: function (x, t, b, c, d) {
|
185 |
+
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
|
186 |
+
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
|
187 |
+
}
|
188 |
+
});
|
189 |
+
|
190 |
+
/*
|
191 |
+
*
|
192 |
+
* TERMS OF USE - EASING EQUATIONS
|
193 |
+
*
|
194 |
+
* Open source under the BSD License.
|
195 |
+
*
|
196 |
+
* Copyright © 2001 Robert Penner
|
197 |
+
* All rights reserved.
|
198 |
+
*
|
199 |
+
* Redistribution and use in source and binary forms, with or without modification,
|
200 |
+
* are permitted provided that the following conditions are met:
|
201 |
+
*
|
202 |
+
* Redistributions of source code must retain the above copyright notice, this list of
|
203 |
+
* conditions and the following disclaimer.
|
204 |
+
* Redistributions in binary form must reproduce the above copyright notice, this list
|
205 |
+
* of conditions and the following disclaimer in the documentation and/or other materials
|
206 |
+
* provided with the distribution.
|
207 |
+
*
|
208 |
+
* Neither the name of the author nor the names of contributors may be used to endorse
|
209 |
+
* or promote products derived from this software without specific prior written permission.
|
210 |
+
*
|
211 |
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
212 |
+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
213 |
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
214 |
+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
215 |
+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
216 |
+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
217 |
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
218 |
+
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
219 |
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
220 |
+
*
|
221 |
+
*/;// Custom Easing
|
222 |
+
jQuery.extend( jQuery.easing,
|
223 |
+
{
|
224 |
+
easeInOutMaterial: function (x, t, b, c, d) {
|
225 |
+
if ((t/=d/2) < 1) return c/2*t*t + b;
|
226 |
+
return c/4*((t-=2)*t*t + 2) + b;
|
227 |
+
}
|
228 |
+
});;/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
|
229 |
+
/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */
|
230 |
+
/*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */
|
231 |
+
jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(e){function t(e){var t=e.length,a=r.type(e);return"function"===a||r.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===a||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var r=function(e,t){return new r.fn.init(e,t)};r.isWindow=function(e){return null!=e&&e==e.window},r.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!o.call(e,"constructor")&&!o.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}for(t in e);return void 0===t||o.call(e,t)},r.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},r.data=function(e,t,n){if(void 0===n){var o=e[r.expando],i=o&&a[o];if(void 0===t)return i;if(i&&t in i)return i[t]}else if(void 0!==t){var o=e[r.expando]||(e[r.expando]=++r.uuid);return a[o]=a[o]||{},a[o][t]=n,n}},r.removeData=function(e,t){var n=e[r.expando],o=n&&a[n];o&&r.each(t,function(e,t){delete o[t]})},r.extend=function(){var e,t,a,n,o,i,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==r.type(s)&&(s={}),l===u&&(s=this,l--);u>l;l++)if(null!=(o=arguments[l]))for(n in o)e=s[n],a=o[n],s!==a&&(c&&a&&(r.isPlainObject(a)||(t=r.isArray(a)))?(t?(t=!1,i=e&&r.isArray(e)?e:[]):i=e&&r.isPlainObject(e)?e:{},s[n]=r.extend(c,i,a)):void 0!==a&&(s[n]=a));return s},r.queue=function(e,a,n){function o(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){a=(a||"fx")+"queue";var i=r.data(e,a);return n?(!i||r.isArray(n)?i=r.data(e,a,o(n)):i.push(n),i):i||[]}},r.dequeue=function(e,t){r.each(e.nodeType?[e]:e,function(e,a){t=t||"fx";var n=r.queue(a,t),o=n.shift();"inprogress"===o&&(o=n.shift()),o&&("fx"===t&&n.unshift("inprogress"),o.call(a,function(){r.dequeue(a,t)}))})},r.fn=r.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),a=this.offset(),n=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:r(e).offset();return a.top-=parseFloat(t.style.marginTop)||0,a.left-=parseFloat(t.style.marginLeft)||0,e.style&&(n.top+=parseFloat(e.style.borderTopWidth)||0,n.left+=parseFloat(e.style.borderLeftWidth)||0),{top:a.top-n.top,left:a.left-n.left}}};var a={};r.expando="velocity"+(new Date).getTime(),r.uuid=0;for(var n={},o=n.hasOwnProperty,i=n.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;l<s.length;l++)n["[object "+s[l]+"]"]=s[l].toLowerCase();r.fn.init.prototype=r.fn,e.Velocity={Utilities:r}}}(window),function(e){"object"==typeof module&&"object"==typeof module.exports?module.exports=e():"function"==typeof define&&define.amd?define(e):e()}(function(){return function(e,t,r,a){function n(e){for(var t=-1,r=e?e.length:0,a=[];++t<r;){var n=e[t];n&&a.push(n)}return a}function o(e){return m.isWrapped(e)?e=[].slice.call(e):m.isNode(e)&&(e=[e]),e}function i(e){var t=f.data(e,"velocity");return null===t?a:t}function s(e){return function(t){return Math.round(t*e)*(1/e)}}function l(e,r,a,n){function o(e,t){return 1-3*t+3*e}function i(e,t){return 3*t-6*e}function s(e){return 3*e}function l(e,t,r){return((o(t,r)*e+i(t,r))*e+s(t))*e}function u(e,t,r){return 3*o(t,r)*e*e+2*i(t,r)*e+s(t)}function c(t,r){for(var n=0;m>n;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s<v);return i}function d(t){for(var r=0,n=1,o=b-1;n!=o&&w[n]<=t;++n)r+=x;--n;var i=(t-w[n])/(w[n+1]-w[n]),s=r+i*x,l=u(s,e,a);return l>=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return m.isString(e)?b.Easings[e]||(r=!1):r=m.isArray(e)&&1===e.length?s.apply(null,e):m.isArray(e)&&2===e.length?x.apply(null,e.concat([t])):m.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=b.Easings[b.defaults.easing]?b.defaults.easing:v),r}function c(e){if(e){var t=(new Date).getTime(),r=b.State.calls.length;r>1e4&&(b.State.calls=n(b.State.calls));for(var o=0;r>o;o++)if(b.State.calls[o]){var s=b.State.calls[o],l=s[0],u=s[2],d=s[3],g=!!d,y=null;d||(d=b.State.calls[o][3]=t-16);for(var h=Math.min((t-d)/u.duration,1),v=0,x=l.length;x>v;v++){var P=l[v],V=P.element;if(i(V)){var C=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var T=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];f.each(T,function(e,t){S.setPropertyValue(V,"display",t)})}S.setPropertyValue(V,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&S.setPropertyValue(V,"visibility",u.visibility);for(var k in P)if("element"!==k){var A,F=P[k],j=m.isString(F.easing)?b.Easings[F.easing]:F.easing;if(1===h)A=F.endValue;else{var E=F.endValue-F.startValue;if(A=F.startValue+E*j(h,u,E),!g&&A===F.currentValue)continue}if(F.currentValue=A,"tween"===k)y=A;else{if(S.Hooks.registered[k]){var H=S.Hooks.getRoot(k),N=i(V).rootPropertyValueCache[H];N&&(F.rootPropertyValue=N)}var L=S.setPropertyValue(V,k,F.currentValue+(0===parseFloat(A)?"":F.unitType),F.rootPropertyValue,F.scrollData);S.Hooks.registered[k]&&(i(V).rootPropertyValueCache[H]=S.Normalizations.registered[H]?S.Normalizations.registered[H]("extract",null,L[1]):L[1]),"transform"===L[0]&&(C=!0)}}u.mobileHA&&i(V).transformCache.translate3d===a&&(i(V).transformCache.translate3d="(0px, 0px, 0px)",C=!0),C&&S.flushTransformCache(V)}}u.display!==a&&"none"!==u.display&&(b.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(b.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],h,Math.max(0,d+u.duration-t),d,y),1===h&&p(o)}}b.State.isTicking&&w(c)}function p(e,t){if(!b.State.calls[e])return!1;for(var r=b.State.calls[e][0],n=b.State.calls[e][1],o=b.State.calls[e][2],s=b.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&S.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&S.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&(f.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test(f.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var d=!1;f.each(S.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(d=!0,delete i(p).transformCache[t])}),o.mobileHA&&(d=!0,delete i(p).transformCache.translate3d),d&&S.flushTransformCache(p),S.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(g){setTimeout(function(){throw g},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&(f.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),b(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&f.dequeue(p,o.queue)}b.State.calls[e]=!1;for(var m=0,y=b.State.calls.length;y>m;m++)if(b.State.calls[m]!==!1){l=!0;break}l===!1&&(b.State.isTicking=!1,delete b.State.calls,b.State.calls=[])}var f,d=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="<!--[if IE "+e+"]><span></span><![endif]-->",t.getElementsByTagName("span").length)return t=null,e}return a}(),g=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,a=(new Date).getTime();return r=Math.max(0,16-(a-e)),e=a+r,setTimeout(function(){t(a+r)},r)}}(),m={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},y=!1;if(e.fn&&e.fn.jquery?(f=e,y=!0):f=t.Velocity.Utilities,8>=d&&!y)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=d)return void(jQuery.fn.velocity=jQuery.fn.animate);var h=400,v="swing",b={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:f,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:h,easing:v,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){f.data(e,"velocity",{isSVG:m.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(b.State.scrollAnchor=t,b.State.scrollPropertyLeft="pageXOffset",b.State.scrollPropertyTop="pageYOffset"):(b.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,b.State.scrollPropertyLeft="scrollLeft",b.State.scrollPropertyTop="scrollTop");var x=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o,i,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,p=1e-4,f=.016;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,l.tension=e,l.friction=t,o=null!==n,o?(c=a(e,t),i=c/n*f):i=f;s=r(s||l,i),u.push(1+s.x),c+=16,Math.abs(s.x)>p&&Math.abs(s.v)>p;);return o?function(e){return u[e*(u.length-1)|0]}:c}}();b.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},f.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){b.Easings[t[0]]=l.apply(null,t[1])});var S=b.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e<S.Lists.colors.length;e++){var t="color"===S.Lists.colors[e]?"0 0 0 1":"255 255 255 1";S.Hooks.templates[S.Lists.colors[e]]=["Red Green Blue Alpha",t]}var r,a,n;if(d)for(r in S.Hooks.templates){a=S.Hooks.templates[r],n=a[0].split(" ");var o=a[1].match(S.RegEx.valueSplit);"Color"===n[0]&&(n.push(n.shift()),o.push(o.shift()),S.Hooks.templates[r]=[n.join(" "),o.join(" ")])}for(r in S.Hooks.templates){a=S.Hooks.templates[r],n=a[0].split(" ");for(var e in n){var i=r+n[e],s=e;S.Hooks.registered[i]=[r,s]}}},getRoot:function(e){var t=S.Hooks.registered[e];return t?t[0]:e},cleanRootPropertyValue:function(e,t){return S.RegEx.valueUnwrap.test(t)&&(t=t.match(S.RegEx.valueUnwrap)[1]),S.Values.isCSSNullValue(t)&&(t=S.Hooks.templates[e][1]),t},extractValue:function(e,t){var r=S.Hooks.registered[e];if(r){var a=r[0],n=r[1];return t=S.Hooks.cleanRootPropertyValue(a,t),t.toString().match(S.RegEx.valueSplit)[n]}return t},injectValue:function(e,t,r){var a=S.Hooks.registered[e];if(a){var n,o,i=a[0],s=a[1];return r=S.Hooks.cleanRootPropertyValue(i,r),n=r.toString().match(S.RegEx.valueSplit),n[s]=t,o=n.join(" ")}return r}},Normalizations:{registered:{clip:function(e,t,r){switch(e){case"name":return"clip";case"extract":var a;return S.RegEx.wrappedValueAlreadyExtracted.test(r)?a=r:(a=r.toString().match(S.RegEx.valueUnwrap),a=a?a[1].replace(/,(\s+)?/g," "):r),a;case"inject":return"rect("+r+")"}},blur:function(e,t,r){switch(e){case"name":return b.State.isFirefox?"filter":"-webkit-filter";case"extract":var a=parseFloat(r);if(!a&&0!==a){var n=r.toString().match(/blur\(([0-9]+[A-z]+)\)/i);a=n?n[1]:0}return a;case"inject":return parseFloat(r)?"blur("+r+")":"none"}},opacity:function(e,t,r){if(8>=d)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=d||b.State.isGingerbread||(S.Lists.transformsBase=S.Lists.transformsBase.concat(S.Lists.transforms3D));for(var e=0;e<S.Lists.transformsBase.length;e++)!function(){var t=S.Lists.transformsBase[e];S.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return"transform";case"extract":return i(r)===a||i(r).transformCache[t]===a?/^scale/i.test(t)?1:0:i(r).transformCache[t].replace(/[()]/g,"");case"inject":var o=!1;switch(t.substr(0,t.length-1)){case"translate":o=!/(%|px|em|rem|vw|vh|\d)$/i.test(n);break;case"scal":case"scale":b.State.isAndroid&&i(r).transformCache[t]===a&&1>n&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e<S.Lists.colors.length;e++)!function(){var t=S.Lists.colors[e];S.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return t;case"extract":var o;if(S.RegEx.wrappedValueAlreadyExtracted.test(n))o=n;else{var i,s={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(n)?i=s[n]!==a?s[n]:s.black:S.RegEx.isHex.test(n)?i="rgb("+S.Values.hexToRgb(n).join(" ")+")":/^rgba?\(/i.test(n)||(i=s.black),o=(i||n).toString().match(S.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return 8>=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=d?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=d?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||b.State.isAndroid&&!b.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(b.State.prefixMatches[e])return[b.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),m.isString(b.State.prefixElement.style[n]))return b.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t,r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e=e.replace(r,function(e,t,r,a){return t+t+r+r+a+a}),t=a.exec(e),t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&S.setPropertyValue(e,"display","none")}var l=0;if(8>=d)l=f.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===S.getPropertyValue(e,"display")&&(u=!0,S.setPropertyValue(e,"display",S.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(S.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(S.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(S.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(S.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var g;g=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===d&&"filter"===r?g.getPropertyValue(r):g[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var m=s(e,"position");("fixed"===m||"absolute"===m&&/top|left/i.test(r))&&(l=f(e).position()[r]+"px")}return l}var l;if(S.Hooks.registered[r]){var u=r,c=S.Hooks.getRoot(u);n===a&&(n=S.getPropertyValue(e,S.Names.prefixCheck(c)[0])),S.Normalizations.registered[c]&&(n=S.Normalizations.registered[c]("extract",e,n)),l=S.Hooks.extractValue(u,n)}else if(S.Normalizations.registered[r]){var p,g;p=S.Normalizations.registered[r]("name",e),"transform"!==p&&(g=s(e,S.Names.prefixCheck(p)[0]),S.Values.isCSSNullValue(g)&&S.Hooks.templates[r]&&(g=S.Hooks.templates[r][1])),l=S.Normalizations.registered[r]("extract",e,g)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(m){l=0}else l=e.getAttribute(r);else l=s(e,S.Names.prefixCheck(r)[0]);return S.Values.isCSSNullValue(l)&&(l=0),b.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(S.Normalizations.registered[r]&&"transform"===S.Normalizations.registered[r]("name",e))S.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(S.Hooks.registered[r]){var l=r,u=S.Hooks.getRoot(r);n=n||S.getPropertyValue(e,u),a=S.Hooks.injectValue(l,a,n),r=u}if(S.Normalizations.registered[r]&&(a=S.Normalizations.registered[r]("inject",e,a),r=S.Normalizations.registered[r]("name",e)),s=S.Names.prefixCheck(r)[0],8>=d)try{e.style[s]=a}catch(c){b.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;b.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(S.getPropertyValue(e,t))}var r="";if((d||b.State.isAndroid&&!b.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};f.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;f.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===d&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}S.setPropertyValue(e,"transform",r)}};S.Hooks.register(),S.Normalizations.register(),b.hook=function(e,t,r){var n=a;return e=o(e),f.each(e,function(e,o){if(i(o)===a&&b.init(o),r===a)n===a&&(n=b.CSS.getPropertyValue(o,t));else{var s=b.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&b.CSS.flushTransformCache(o),n=s}}),n};var P=function(){function e(){return s?k.promise||null:l}function n(){function e(e){function p(e,t){var r=a,n=a,i=a;return m.isArray(e)?(r=e[0],!m.isArray(e[1])&&/^[\d-]/.test(e[1])||m.isFunction(e[1])||S.RegEx.isHex.test(e[1])?i=e[1]:(m.isString(e[1])&&!S.RegEx.isHex.test(e[1])||m.isArray(e[1]))&&(n=t?e[1]:u(e[1],s.duration),e[2]!==a&&(i=e[2]))):r=e,t||(n=n||s.easing),m.isFunction(r)&&(r=r.call(o,V,w)),m.isFunction(i)&&(i=i.call(o,V,w)),[r||0,n,i]}function d(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=S.Values.getUnitType(e)),[a,r]}function h(){var e={myParent:o.parentNode||r.body,position:S.getPropertyValue(o,"position"),fontSize:S.getPropertyValue(o,"fontSize")},a=e.position===L.lastPosition&&e.myParent===L.lastParent,n=e.fontSize===L.lastFontSize;L.lastParent=e.myParent,L.lastPosition=e.position,L.lastFontSize=e.fontSize;var s=100,l={};if(n&&a)l.emToPx=L.lastEmToPx,l.percentToPxWidth=L.lastPercentToPxWidth,l.percentToPxHeight=L.lastPercentToPxHeight;else{var u=i(o).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");b.init(u),e.myParent.appendChild(u),f.each(["overflow","overflowX","overflowY"],function(e,t){b.CSS.setPropertyValue(u,t,"hidden")}),b.CSS.setPropertyValue(u,"position",e.position),b.CSS.setPropertyValue(u,"fontSize",e.fontSize),b.CSS.setPropertyValue(u,"boxSizing","content-box"),f.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){b.CSS.setPropertyValue(u,t,s+"%")}),b.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=L.lastPercentToPxWidth=(parseFloat(S.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=L.lastPercentToPxHeight=(parseFloat(S.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=L.lastEmToPx=(parseFloat(S.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===L.remToPx&&(L.remToPx=parseFloat(S.getPropertyValue(r.body,"fontSize"))||16),null===L.vwToPx&&(L.vwToPx=parseFloat(t.innerWidth)/100,L.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=L.remToPx,l.vwToPx=L.vwToPx,l.vhToPx=L.vhToPx,b.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),o),l}if(s.begin&&0===V)try{s.begin.call(g,g)}catch(x){setTimeout(function(){throw x},1)}if("scroll"===A){var P,C,T,F=/^x$/i.test(s.axis)?"Left":"Top",j=parseFloat(s.offset)||0;s.container?m.isWrapped(s.container)||m.isNode(s.container)?(s.container=s.container[0]||s.container,P=s.container["scroll"+F],T=P+f(o).position()[F.toLowerCase()]+j):s.container=null:(P=b.State.scrollAnchor[b.State["scrollProperty"+F]],C=b.State.scrollAnchor[b.State["scrollProperty"+("Left"===F?"Top":"Left")]],T=f(o).offset()[F.toLowerCase()]+j),l={scroll:{rootPropertyValue:!1,startValue:P,currentValue:P,endValue:T,unitType:"",easing:s.easing,scrollData:{container:s.container,direction:F,alternateValue:C}},element:o},b.debug&&console.log("tweensContainer (scroll): ",l.scroll,o)}else if("reverse"===A){if(!i(o).tweensContainer)return void f.dequeue(o,s.queue);"none"===i(o).opts.display&&(i(o).opts.display="auto"),"hidden"===i(o).opts.visibility&&(i(o).opts.visibility="visible"),i(o).opts.loop=!1,i(o).opts.begin=null,i(o).opts.complete=null,v.easing||delete s.easing,v.duration||delete s.duration,s=f.extend({},i(o).opts,s);var E=f.extend(!0,{},i(o).tweensContainer);for(var H in E)if("element"!==H){var N=E[H].startValue;E[H].startValue=E[H].currentValue=E[H].endValue,E[H].endValue=N,m.isEmptyObject(v)||(E[H].easing=s.easing),b.debug&&console.log("reverse tweensContainer ("+H+"): "+JSON.stringify(E[H]),o)}l=E}else if("start"===A){var E;i(o).tweensContainer&&i(o).isAnimating===!0&&(E=i(o).tweensContainer),f.each(y,function(e,t){if(RegExp("^"+S.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(S.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=S.Values.hexToRgb(n),u=i?S.Values.hexToRgb(i):a,c=0;c<s.length;c++){var f=[l[c]];o&&f.push(o),u!==a&&f.push(u[c]),y[e+s[c]]=f}delete y[e]}}});for(var z in y){var O=p(y[z]),q=O[0],$=O[1],M=O[2];z=S.Names.camelCase(z);var I=S.Hooks.getRoot(z),B=!1;if(i(o).isSVG||"tween"===I||S.Names.prefixCheck(I)[1]!==!1||S.Normalizations.registered[I]!==a){(s.display!==a&&null!==s.display&&"none"!==s.display||s.visibility!==a&&"hidden"!==s.visibility)&&/opacity|filter/.test(z)&&!M&&0!==q&&(M=0),s._cacheValues&&E&&E[z]?(M===a&&(M=E[z].endValue+E[z].unitType),B=i(o).rootPropertyValueCache[I]):S.Hooks.registered[z]?M===a?(B=S.getPropertyValue(o,I),M=S.getPropertyValue(o,z,B)):B=S.Hooks.templates[I][1]:M===a&&(M=S.getPropertyValue(o,z));var W,G,Y,D=!1;if(W=d(z,M),M=W[0],Y=W[1],W=d(z,q),q=W[0].replace(/^([+-\/*])=/,function(e,t){return D=t,""}),G=W[1],M=parseFloat(M)||0,q=parseFloat(q)||0,"%"===G&&(/^(fontSize|lineHeight)$/.test(z)?(q/=100,G="em"):/^scale/.test(z)?(q/=100,G=""):/(Red|Green|Blue)$/i.test(z)&&(q=q/100*255,G="")),/[\/*]/.test(D))G=Y;else if(Y!==G&&0!==M)if(0===q)G=Y;else{n=n||h();var Q=/margin|padding|left|right|width|text|word|letter/i.test(z)||/X$/.test(z)||"x"===z?"x":"y";switch(Y){case"%":M*="x"===Q?n.percentToPxWidth:n.percentToPxHeight;break;case"px":break;default:M*=n[Y+"ToPx"]}switch(G){case"%":M*=1/("x"===Q?n.percentToPxWidth:n.percentToPxHeight);break;case"px":break;default:M*=1/n[G+"ToPx"]}}switch(D){case"+":q=M+q;break;case"-":q=M-q;break;case"*":q=M*q;break;case"/":q=M/q}l[z]={rootPropertyValue:B,startValue:M,currentValue:M,endValue:q,unitType:G,easing:$},b.debug&&console.log("tweensContainer ("+z+"): "+JSON.stringify(l[z]),o)}else b.debug&&console.log("Skipping ["+I+"] due to a lack of browser support.")}l.element=o}l.element&&(S.Values.addClass(o,"velocity-animating"),R.push(l),""===s.queue&&(i(o).tweensContainer=l,i(o).opts=s),i(o).isAnimating=!0,V===w-1?(b.State.calls.push([R,g,s,null,k.resolver]),b.State.isTicking===!1&&(b.State.isTicking=!0,c())):V++)}var n,o=this,s=f.extend({},b.defaults,v),l={};switch(i(o)===a&&b.init(o),parseFloat(s.delay)&&s.queue!==!1&&f.queue(o,s.queue,function(e){b.velocityQueueEntryFlag=!0,i(o).delayTimer={setTimeout:setTimeout(e,parseFloat(s.delay)),next:e}}),s.duration.toString().toLowerCase()){case"fast":s.duration=200;break;case"normal":s.duration=h;break;case"slow":s.duration=600;break;default:s.duration=parseFloat(s.duration)||1}b.mock!==!1&&(b.mock===!0?s.duration=s.delay=1:(s.duration*=parseFloat(b.mock)||1,s.delay*=parseFloat(b.mock)||1)),s.easing=u(s.easing,s.duration),s.begin&&!m.isFunction(s.begin)&&(s.begin=null),s.progress&&!m.isFunction(s.progress)&&(s.progress=null),s.complete&&!m.isFunction(s.complete)&&(s.complete=null),s.display!==a&&null!==s.display&&(s.display=s.display.toString().toLowerCase(),"auto"===s.display&&(s.display=b.CSS.Values.getDisplayType(o))),s.visibility!==a&&null!==s.visibility&&(s.visibility=s.visibility.toString().toLowerCase()),s.mobileHA=s.mobileHA&&b.State.isMobile&&!b.State.isGingerbread,s.queue===!1?s.delay?setTimeout(e,s.delay):e():f.queue(o,s.queue,function(t,r){return r===!0?(k.promise&&k.resolver(g),!0):(b.velocityQueueEntryFlag=!0,void e(t))}),""!==s.queue&&"fx"!==s.queue||"inprogress"===f.queue(o)[0]||f.dequeue(o)}var s,l,d,g,y,v,x=arguments[0]&&(arguments[0].p||f.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||m.isString(arguments[0].properties));if(m.isWrapped(this)?(s=!1,d=0,g=this,l=this):(s=!0,d=1,g=x?arguments[0].elements||arguments[0].e:arguments[0]),g=o(g)){x?(y=arguments[0].properties||arguments[0].p,v=arguments[0].options||arguments[0].o):(y=arguments[d],v=arguments[d+1]);var w=g.length,V=0;if(!/^(stop|finish)$/i.test(y)&&!f.isPlainObject(v)){var C=d+1;v={};for(var T=C;T<arguments.length;T++)m.isArray(arguments[T])||!/^(fast|normal|slow)$/i.test(arguments[T])&&!/^\d/.test(arguments[T])?m.isString(arguments[T])||m.isArray(arguments[T])?v.easing=arguments[T]:m.isFunction(arguments[T])&&(v.complete=arguments[T]):v.duration=arguments[T]}var k={promise:null,resolver:null,rejecter:null};s&&b.Promise&&(k.promise=new b.Promise(function(e,t){k.resolver=e,k.rejecter=t}));var A;switch(y){case"scroll":A="scroll";break;case"reverse":A="reverse";break;case"finish":case"stop":f.each(g,function(e,t){i(t)&&i(t).delayTimer&&(clearTimeout(i(t).delayTimer.setTimeout),i(t).delayTimer.next&&i(t).delayTimer.next(),delete i(t).delayTimer)});var F=[];return f.each(b.State.calls,function(e,t){t&&f.each(t[1],function(r,n){var o=v===a?"":v;return o===!0||t[2].queue===o||v===a&&t[2].queue===!1?void f.each(g,function(r,a){a===n&&((v===!0||m.isString(v))&&(f.each(f.queue(a,m.isString(v)?v:""),function(e,t){
|
232 |
+
m.isFunction(t)&&t(null,!0)}),f.queue(a,m.isString(v)?v:"",[])),"stop"===y?(i(a)&&i(a).tweensContainer&&o!==!1&&f.each(i(a).tweensContainer,function(e,t){t.endValue=t.currentValue}),F.push(e)):"finish"===y&&(t[2].duration=1))}):!0})}),"stop"===y&&(f.each(F,function(e,t){p(t,!0)}),k.promise&&k.resolver(g)),e();default:if(!f.isPlainObject(y)||m.isEmptyObject(y)){if(m.isString(y)&&b.Redirects[y]){var j=f.extend({},v),E=j.duration,H=j.delay||0;return j.backwards===!0&&(g=f.extend(!0,[],g).reverse()),f.each(g,function(e,t){parseFloat(j.stagger)?j.delay=H+parseFloat(j.stagger)*e:m.isFunction(j.stagger)&&(j.delay=H+j.stagger.call(t,e,w)),j.drag&&(j.duration=parseFloat(E)||(/^(callout|transition)/.test(y)?1e3:h),j.duration=Math.max(j.duration*(j.backwards?1-e/w:(e+1)/w),.75*j.duration,200)),b.Redirects[y].call(t,t,j||{},e,w,g,k.promise?k:a)}),e()}var N="Velocity: First argument ("+y+") was not a property map, a known action, or a registered redirect. Aborting.";return k.promise?k.rejecter(new Error(N)):console.log(N),e()}A="start"}var L={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},R=[];f.each(g,function(e,t){m.isNode(t)&&n.call(t)});var z,j=f.extend({},b.defaults,v);if(j.loop=parseInt(j.loop),z=2*j.loop-1,j.loop)for(var O=0;z>O;O++){var q={delay:j.delay,progress:j.progress};O===z-1&&(q.display=j.display,q.visibility=j.visibility,q.complete=j.complete),P(g,"reverse",q)}return e()}};b=f.extend(P,b),b.animate=P;var w=t.requestAnimationFrame||g;return b.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(w=function(e){return setTimeout(function(){e(!0)},16)},c()):w=t.requestAnimationFrame||g}),e.Velocity=b,e!==t&&(e.fn.velocity=P,e.fn.velocity.defaults=b.defaults),f.each(["Down","Up"],function(e,t){b.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},d={};l.display===a&&(l.display="Down"===t?"inline"===b.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){d[r]=e.style[r];var a=b.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}d.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in d)e.style[t]=d[t];c&&c.call(i,i),s&&s.resolver(i)},b(e,p,l)}}),f.each(["In","Out"],function(e,t){b.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),b(this,u,l)}}),b}(window.jQuery||window.Zepto||window,window,document)}));
|
233 |
+
;!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function n(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function o(a,b){return n(a,b,!0)}function p(a,b,c){var e,d=b.prototype;e=a.prototype=Object.create(d),e.constructor=a,e._super=d,c&&n(e,c)}function q(a,b){return function(){return a.apply(b,arguments)}}function r(a,b){return typeof a==g?a.apply(b?b[0]||d:d,b):a}function s(a,b){return a===d?b:a}function t(a,b,c){m(x(b),function(b){a.addEventListener(b,c,!1)})}function u(a,b,c){m(x(b),function(b){a.removeEventListener(b,c,!1)})}function v(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function w(a,b){return a.indexOf(b)>-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function z(a){return Array.prototype.slice.call(a,0)}function A(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];y(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h<e.length;){if(c=e[h],f=c?c+g:b,f in a)return f;h++}return d}function D(){return C++}function E(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function ab(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){r(a.options.enable,[a])&&c.handler(b)},this.init()}function bb(a){var b,c=a.options.inputClass;return b=c?c:H?wb:I?Eb:G?Gb:rb,new b(a,cb)}function cb(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&O&&0===d-e,g=b&(Q|R)&&0===d-e;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,db(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function db(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=gb(b)),e>1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:h(a.pointers[c].clientX),clientY:h(a.pointers[c].clientY)},c++;return{timeStamp:j(),pointers:b,center:hb(b),deltaX:a.deltaX,deltaY:a.deltaY}}function hb(a){var b=a.length;if(1===b)return{x:h(a[0].clientX),y:h(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Q|R)&&delete d[g[e].identifier],e++;return h.length?[A(f.concat(h),"identifier",!0),h]:void 0}function Gb(){ab.apply(this,arguments);var a=q(this.handler,this);this.touch=new Eb(this.manager,a),this.mouse=new rb(this.manager,a)}function Pb(a,b){this.manager=a,this.set(b)}function Qb(a){if(w(a,Mb))return Mb;var b=w(a,Nb),c=w(a,Ob);return b&&c?Nb+" "+Ob:b||c?b?Nb:Ob:w(a,Lb)?Lb:Kb}function Yb(a){this.id=D(),this.manager=null,this.options=o(a||{},this.defaults),this.options.enable=s(this.options.enable,!0),this.state=Rb,this.simultaneous={},this.requireFail=[]}function Zb(a){return a&Wb?"cancel":a&Ub?"end":a&Tb?"move":a&Sb?"start":""}function $b(a){return a==W?"down":a==V?"up":a==T?"left":a==U?"right":""}function _b(a,b){var c=b.manager;return c?c.get(a):a}function ac(){Yb.apply(this,arguments)}function bc(){ac.apply(this,arguments),this.pX=null,this.pY=null}function cc(){ac.apply(this,arguments)}function dc(){Yb.apply(this,arguments),this._timer=null,this._input=null}function ec(){ac.apply(this,arguments)}function fc(){ac.apply(this,arguments)}function gc(){Yb.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function hc(a,b){return b=b||{},b.recognizers=s(b.recognizers,hc.defaults.preset),new kc(a,b)}function kc(a,b){b=b||{},this.options=o(b,hc.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=bb(this),this.touchAction=new Pb(this,this.options.touchAction),lc(this,!0),m(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function lc(a,b){var c=a.element;m(a.options.cssProps,function(a,d){c.style[B(c.style,d)]=b?a:""})}function mc(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var e=["","webkit","moz","MS","ms","o"],f=b.createElement("div"),g="function",h=Math.round,i=Math.abs,j=Date.now,C=1,F=/mobile|tablet|ip(ad|hone|od)|android/i,G="ontouchstart"in a,H=B(a,"PointerEvent")!==d,I=G&&F.test(navigator.userAgent),J="touch",K="pen",L="mouse",M="kinect",N=25,O=1,P=2,Q=4,R=8,S=1,T=2,U=4,V=8,W=16,X=T|U,Y=V|W,Z=X|Y,$=["x","y"],_=["clientX","clientY"];ab.prototype={handler:function(){},init:function(){this.evEl&&t(this.element,this.evEl,this.domHandler),this.evTarget&&t(this.target,this.evTarget,this.domHandler),this.evWin&&t(E(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&u(this.element,this.evEl,this.domHandler),this.evTarget&&u(this.target,this.evTarget,this.domHandler),this.evWin&&u(E(this.element),this.evWin,this.domHandler)}};var ob={mousedown:O,mousemove:P,mouseup:Q},pb="mousedown",qb="mousemove mouseup";p(rb,ab,{handler:function(a){var b=ob[a.type];b&O&&0===a.button&&(this.pressed=!0),b&P&&1!==a.which&&(b=Q),this.pressed&&this.allow&&(b&Q&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:L,srcEvent:a}))}});var sb={pointerdown:O,pointermove:P,pointerup:Q,pointercancel:R,pointerout:R},tb={2:J,3:K,4:L,5:M},ub="pointerdown",vb="pointermove pointerup pointercancel";a.MSPointerEvent&&(ub="MSPointerDown",vb="MSPointerMove MSPointerUp MSPointerCancel"),p(wb,ab,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=sb[d],f=tb[a.pointerType]||a.pointerType,g=f==J,h=y(b,a.pointerId,"pointerId");e&O&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(Xb|Rb)))return!1;a++}return!0},recognize:function(a){var b=n({},a);return r(this.options.enable,[this,b])?(this.state&(Vb|Wb|Xb)&&(this.state=Rb),this.state=this.process(b),this.state&(Sb|Tb|Ub|Wb)&&this.tryEmit(b),void 0):(this.reset(),this.state=Xb,void 0)},process:function(){},getTouchAction:function(){},reset:function(){}},p(ac,Yb,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(Sb|Tb),e=this.attrTest(a);return d&&(c&R||!e)?b|Wb:d||e?c&Q?b|Ub:b&Sb?b|Tb:Sb:Xb}}),p(bc,ac,{defaults:{event:"pan",threshold:10,pointers:1,direction:Z},getTouchAction:function(){var a=this.options.direction,b=[];return a&X&&b.push(Ob),a&Y&&b.push(Nb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&X?(e=0===f?S:0>f?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime<b.time;if(this.reset(),a.eventType&O&&0===this.count)return this.failTimeout();if(d&&e&&c){if(a.eventType!=Q)return this.failTimeout();var f=this.pTime?a.timeStamp-this.pTime<b.interval:!0,g=!this.pCenter||kb(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,g&&f?this.count+=1:this.count=1,this._input=a;var h=this.count%b.taps;if(0===h)return this.hasRequireFailures()?(this._timer=k(function(){this.state=Vb,this.tryEmit()},b.interval,this),Sb):Vb}return Xb},failTimeout:function(){return this._timer=k(function(){this.state=Xb},this.options.interval,this),Xb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Vb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),hc.VERSION="2.0.4",hc.defaults={domEvents:!1,touchAction:Jb,enable:!0,inputTarget:null,inputClass:null,preset:[[ec,{enable:!1}],[cc,{enable:!1},["rotate"]],[fc,{direction:X}],[bc,{direction:X},["swipe"]],[gc],[gc,{event:"doubletap",taps:2},["tap"]],[dc]],cssProps:{userSelect:"default",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ic=1,jc=2;kc.prototype={set:function(a){return n(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?jc:ic},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&Vb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===jc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(Sb|Tb|Ub)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Yb)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(l(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(l(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(y(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return m(x(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return m(x(a),function(a){b?c[a].splice(y(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&mc(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&lc(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},n(hc,{INPUT_START:O,INPUT_MOVE:P,INPUT_END:Q,INPUT_CANCEL:R,STATE_POSSIBLE:Rb,STATE_BEGAN:Sb,STATE_CHANGED:Tb,STATE_ENDED:Ub,STATE_RECOGNIZED:Vb,STATE_CANCELLED:Wb,STATE_FAILED:Xb,DIRECTION_NONE:S,DIRECTION_LEFT:T,DIRECTION_RIGHT:U,DIRECTION_UP:V,DIRECTION_DOWN:W,DIRECTION_HORIZONTAL:X,DIRECTION_VERTICAL:Y,DIRECTION_ALL:Z,Manager:kc,Input:ab,TouchAction:Pb,TouchInput:Eb,MouseInput:rb,PointerEventInput:wb,TouchMouseInput:Gb,SingleTouchInput:Ab,Recognizer:Yb,AttrRecognizer:ac,Tap:gc,Pan:bc,Swipe:fc,Pinch:cc,Rotate:ec,Press:dc,on:t,off:u,each:m,merge:o,extend:n,inherit:p,bindFn:q,prefixed:B}),typeof define==g&&define.amd?define(function(){return hc}):"undefined"!=typeof module&&module.exports?module.exports=hc:a[c]=hc}(window,document,"Hammer");;(function(factory) {
|
234 |
+
if (typeof define === 'function' && define.amd) {
|
235 |
+
define(['jquery', 'hammerjs'], factory);
|
236 |
+
} else if (typeof exports === 'object') {
|
237 |
+
factory(require('jquery'), require('hammerjs'));
|
238 |
+
} else {
|
239 |
+
factory(jQuery, Hammer);
|
240 |
+
}
|
241 |
+
}(function($, Hammer) {
|
242 |
+
function hammerify(el, options) {
|
243 |
+
var $el = $(el);
|
244 |
+
if(!$el.data("hammer")) {
|
245 |
+
$el.data("hammer", new Hammer($el[0], options));
|
246 |
+
}
|
247 |
+
}
|
248 |
+
|
249 |
+
$.fn.hammer = function(options) {
|
250 |
+
return this.each(function() {
|
251 |
+
hammerify(this, options);
|
252 |
+
});
|
253 |
+
};
|
254 |
+
|
255 |
+
// extend the emit method to also trigger jQuery events
|
256 |
+
Hammer.Manager.prototype.emit = (function(originalEmit) {
|
257 |
+
return function(type, data) {
|
258 |
+
originalEmit.call(this, type, data);
|
259 |
+
$(this.element).trigger({
|
260 |
+
type: type,
|
261 |
+
gesture: data
|
262 |
+
});
|
263 |
+
};
|
264 |
+
})(Hammer.Manager.prototype.emit);
|
265 |
+
}));
|
266 |
+
;// Required for Meteor package, the use of window prevents export by Meteor
|
267 |
+
(function(window){
|
268 |
+
if(window.Package){
|
269 |
+
Materialize = {};
|
270 |
+
} else {
|
271 |
+
window.Materialize = {};
|
272 |
+
}
|
273 |
+
})(window);
|
274 |
+
|
275 |
+
|
276 |
+
/*
|
277 |
+
* raf.js
|
278 |
+
* https://github.com/ngryman/raf.js
|
279 |
+
*
|
280 |
+
* original requestAnimationFrame polyfill by Erik Möller
|
281 |
+
* inspired from paul_irish gist and post
|
282 |
+
*
|
283 |
+
* Copyright (c) 2013 ngryman
|
284 |
+
* Licensed under the MIT license.
|
285 |
+
*/
|
286 |
+
(function(window) {
|
287 |
+
var lastTime = 0,
|
288 |
+
vendors = ['webkit', 'moz'],
|
289 |
+
requestAnimationFrame = window.requestAnimationFrame,
|
290 |
+
cancelAnimationFrame = window.cancelAnimationFrame,
|
291 |
+
i = vendors.length;
|
292 |
+
|
293 |
+
// try to un-prefix existing raf
|
294 |
+
while (--i >= 0 && !requestAnimationFrame) {
|
295 |
+
requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
|
296 |
+
cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame'];
|
297 |
+
}
|
298 |
+
|
299 |
+
// polyfill with setTimeout fallback
|
300 |
+
// heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945
|
301 |
+
if (!requestAnimationFrame || !cancelAnimationFrame) {
|
302 |
+
requestAnimationFrame = function(callback) {
|
303 |
+
var now = +Date.now(),
|
304 |
+
nextTime = Math.max(lastTime + 16, now);
|
305 |
+
return setTimeout(function() {
|
306 |
+
callback(lastTime = nextTime);
|
307 |
+
}, nextTime - now);
|
308 |
+
};
|
309 |
+
|
310 |
+
cancelAnimationFrame = clearTimeout;
|
311 |
+
}
|
312 |
+
|
313 |
+
// export to window
|
314 |
+
window.requestAnimationFrame = requestAnimationFrame;
|
315 |
+
window.cancelAnimationFrame = cancelAnimationFrame;
|
316 |
+
}(window));
|
317 |
+
|
318 |
+
|
319 |
+
// Unique ID
|
320 |
+
Materialize.guid = (function() {
|
321 |
+
function s4() {
|
322 |
+
return Math.floor((1 + Math.random()) * 0x10000)
|
323 |
+
.toString(16)
|
324 |
+
.substring(1);
|
325 |
+
}
|
326 |
+
return function() {
|
327 |
+
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
|
328 |
+
s4() + '-' + s4() + s4() + s4();
|
329 |
+
};
|
330 |
+
})();
|
331 |
+
|
332 |
+
/**
|
333 |
+
* Escapes hash from special characters
|
334 |
+
* @param {string} hash String returned from this.hash
|
335 |
+
* @returns {string}
|
336 |
+
*/
|
337 |
+
Materialize.escapeHash = function(hash) {
|
338 |
+
return hash.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
|
339 |
+
};
|
340 |
+
|
341 |
+
Materialize.elementOrParentIsFixed = function(element) {
|
342 |
+
var $element = $(element);
|
343 |
+
var $checkElements = $element.add($element.parents());
|
344 |
+
var isFixed = false;
|
345 |
+
$checkElements.each(function(){
|
346 |
+
if ($(this).css("position") === "fixed") {
|
347 |
+
isFixed = true;
|
348 |
+
return false;
|
349 |
+
}
|
350 |
+
});
|
351 |
+
return isFixed;
|
352 |
+
};
|
353 |
+
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Get time in ms
|
357 |
+
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
358 |
+
* @type {function}
|
359 |
+
* @return {number}
|
360 |
+
*/
|
361 |
+
var getTime = (Date.now || function () {
|
362 |
+
return new Date().getTime();
|
363 |
+
});
|
364 |
+
|
365 |
+
|
366 |
+
/**
|
367 |
+
* Returns a function, that, when invoked, will only be triggered at most once
|
368 |
+
* during a given window of time. Normally, the throttled function will run
|
369 |
+
* as much as it can, without ever going more than once per `wait` duration;
|
370 |
+
* but if you'd like to disable the execution on the leading edge, pass
|
371 |
+
* `{leading: false}`. To disable execution on the trailing edge, ditto.
|
372 |
+
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
373 |
+
* @param {function} func
|
374 |
+
* @param {number} wait
|
375 |
+
* @param {Object=} options
|
376 |
+
* @returns {Function}
|
377 |
+
*/
|
378 |
+
Materialize.throttle = function(func, wait, options) {
|
379 |
+
var context, args, result;
|
380 |
+
var timeout = null;
|
381 |
+
var previous = 0;
|
382 |
+
options || (options = {});
|
383 |
+
var later = function () {
|
384 |
+
previous = options.leading === false ? 0 : getTime();
|
385 |
+
timeout = null;
|
386 |
+
result = func.apply(context, args);
|
387 |
+
context = args = null;
|
388 |
+
};
|
389 |
+
return function () {
|
390 |
+
var now = getTime();
|
391 |
+
if (!previous && options.leading === false) previous = now;
|
392 |
+
var remaining = wait - (now - previous);
|
393 |
+
context = this;
|
394 |
+
args = arguments;
|
395 |
+
if (remaining <= 0) {
|
396 |
+
clearTimeout(timeout);
|
397 |
+
timeout = null;
|
398 |
+
previous = now;
|
399 |
+
result = func.apply(context, args);
|
400 |
+
context = args = null;
|
401 |
+
} else if (!timeout && options.trailing !== false) {
|
402 |
+
timeout = setTimeout(later, remaining);
|
403 |
+
}
|
404 |
+
return result;
|
405 |
+
};
|
406 |
+
};
|
407 |
+
|
408 |
+
|
409 |
+
// Velocity has conflicts when loaded with jQuery, this will check for it
|
410 |
+
// First, check if in noConflict mode
|
411 |
+
var Vel;
|
412 |
+
if (jQuery) {
|
413 |
+
Vel = jQuery.Velocity;
|
414 |
+
} else if ($) {
|
415 |
+
Vel = $.Velocity;
|
416 |
+
} else {
|
417 |
+
Vel = Velocity;
|
418 |
+
}
|
419 |
+
;(function ($) {
|
420 |
+
$.fn.collapsible = function(options) {
|
421 |
+
var defaults = {
|
422 |
+
accordion: undefined,
|
423 |
+
onOpen: undefined,
|
424 |
+
onClose: undefined
|
425 |
+
};
|
426 |
+
|
427 |
+
options = $.extend(defaults, options);
|
428 |
+
|
429 |
+
|
430 |
+
return this.each(function() {
|
431 |
+
|
432 |
+
var $this = $(this);
|
433 |
+
|
434 |
+
var $panel_headers = $(this).find('> li > .collapsible-header');
|
435 |
+
|
436 |
+
var collapsible_type = $this.data("collapsible");
|
437 |
+
|
438 |
+
// Turn off any existing event handlers
|
439 |
+
$this.off('click.collapse', '> li > .collapsible-header');
|
440 |
+
$panel_headers.off('click.collapse');
|
441 |
+
|
442 |
+
|
443 |
+
/****************
|
444 |
+
Helper Functions
|
445 |
+
****************/
|
446 |
+
|
447 |
+
// Accordion Open
|
448 |
+
function accordionOpen(object) {
|
449 |
+
$panel_headers = $this.find('> li > .collapsible-header');
|
450 |
+
if (object.hasClass('active')) {
|
451 |
+
object.parent().addClass('active');
|
452 |
+
}
|
453 |
+
else {
|
454 |
+
object.parent().removeClass('active');
|
455 |
+
}
|
456 |
+
if (object.parent().hasClass('active')){
|
457 |
+
object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
|
458 |
+
}
|
459 |
+
else{
|
460 |
+
object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
|
461 |
+
}
|
462 |
+
|
463 |
+
$panel_headers.not(object).removeClass('active').parent().removeClass('active');
|
464 |
+
|
465 |
+
// Close previously open accordion elements.
|
466 |
+
$panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).each(function() {
|
467 |
+
if ($(this).is(':visible')) {
|
468 |
+
$(this).slideUp({
|
469 |
+
duration: 350,
|
470 |
+
easing: "easeOutQuart",
|
471 |
+
queue: false,
|
472 |
+
complete:
|
473 |
+
function() {
|
474 |
+
$(this).css('height', '');
|
475 |
+
execCallbacks($(this).siblings('.collapsible-header'));
|
476 |
+
}
|
477 |
+
});
|
478 |
+
}
|
479 |
+
});
|
480 |
+
}
|
481 |
+
|
482 |
+
// Expandable Open
|
483 |
+
function expandableOpen(object) {
|
484 |
+
if (object.hasClass('active')) {
|
485 |
+
object.parent().addClass('active');
|
486 |
+
}
|
487 |
+
else {
|
488 |
+
object.parent().removeClass('active');
|
489 |
+
}
|
490 |
+
if (object.parent().hasClass('active')){
|
491 |
+
object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
|
492 |
+
}
|
493 |
+
else {
|
494 |
+
object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
|
495 |
+
}
|
496 |
+
}
|
497 |
+
|
498 |
+
// Open collapsible. object: .collapsible-header
|
499 |
+
function collapsibleOpen(object) {
|
500 |
+
if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
|
501 |
+
accordionOpen(object);
|
502 |
+
} else { // Handle Expandables
|
503 |
+
expandableOpen(object);
|
504 |
+
}
|
505 |
+
|
506 |
+
execCallbacks(object);
|
507 |
+
}
|
508 |
+
|
509 |
+
// Handle callbacks
|
510 |
+
function execCallbacks(object) {
|
511 |
+
if (object.hasClass('active')) {
|
512 |
+
if (typeof(options.onOpen) === "function") {
|
513 |
+
options.onOpen.call(this, object.parent());
|
514 |
+
}
|
515 |
+
} else {
|
516 |
+
if (typeof(options.onClose) === "function") {
|
517 |
+
options.onClose.call(this, object.parent());
|
518 |
+
}
|
519 |
+
}
|
520 |
+
}
|
521 |
+
|
522 |
+
/**
|
523 |
+
* Check if object is children of panel header
|
524 |
+
* @param {Object} object Jquery object
|
525 |
+
* @return {Boolean} true if it is children
|
526 |
+
*/
|
527 |
+
function isChildrenOfPanelHeader(object) {
|
528 |
+
|
529 |
+
var panelHeader = getPanelHeader(object);
|
530 |
+
|
531 |
+
return panelHeader.length > 0;
|
532 |
+
}
|
533 |
+
|
534 |
+
/**
|
535 |
+
* Get panel header from a children element
|
536 |
+
* @param {Object} object Jquery object
|
537 |
+
* @return {Object} panel header object
|
538 |
+
*/
|
539 |
+
function getPanelHeader(object) {
|
540 |
+
|
541 |
+
return object.closest('li > .collapsible-header');
|
542 |
+
}
|
543 |
+
|
544 |
+
/***** End Helper Functions *****/
|
545 |
+
|
546 |
+
|
547 |
+
|
548 |
+
// Add click handler to only direct collapsible header children
|
549 |
+
$this.on('click.collapse', '> li > .collapsible-header', function(e) {
|
550 |
+
var element = $(e.target);
|
551 |
+
|
552 |
+
if (isChildrenOfPanelHeader(element)) {
|
553 |
+
element = getPanelHeader(element);
|
554 |
+
}
|
555 |
+
|
556 |
+
element.toggleClass('active');
|
557 |
+
|
558 |
+
collapsibleOpen(element);
|
559 |
+
});
|
560 |
+
|
561 |
+
|
562 |
+
// Open first active
|
563 |
+
if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
|
564 |
+
collapsibleOpen($panel_headers.filter('.active').first());
|
565 |
+
|
566 |
+
} else { // Handle Expandables
|
567 |
+
$panel_headers.filter('.active').each(function() {
|
568 |
+
collapsibleOpen($(this));
|
569 |
+
});
|
570 |
+
}
|
571 |
+
|
572 |
+
});
|
573 |
+
};
|
574 |
+
|
575 |
+
$(document).ready(function(){
|
576 |
+
$('.collapsible').collapsible();
|
577 |
+
});
|
578 |
+
}( jQuery ));;(function ($) {
|
579 |
+
|
580 |
+
// Add posibility to scroll to selected option
|
581 |
+
// usefull for select for example
|
582 |
+
$.fn.scrollTo = function(elem) {
|
583 |
+
$(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top);
|
584 |
+
return this;
|
585 |
+
};
|
586 |
+
|
587 |
+
$.fn.dropdown = function (options) {
|
588 |
+
var defaults = {
|
589 |
+
inDuration: 300,
|
590 |
+
outDuration: 225,
|
591 |
+
constrainWidth: true, // Constrains width of dropdown to the activator
|
592 |
+
hover: false,
|
593 |
+
gutter: 0, // Spacing from edge
|
594 |
+
belowOrigin: false,
|
595 |
+
alignment: 'left',
|
596 |
+
stopPropagation: false
|
597 |
+
};
|
598 |
+
|
599 |
+
// Open dropdown.
|
600 |
+
if (options === "open") {
|
601 |
+
this.each(function() {
|
602 |
+
$(this).trigger('open');
|
603 |
+
});
|
604 |
+
return false;
|
605 |
+
}
|
606 |
+
|
607 |
+
// Close dropdown.
|
608 |
+
if (options === "close") {
|
609 |
+
this.each(function() {
|
610 |
+
$(this).trigger('close');
|
611 |
+
});
|
612 |
+
return false;
|
613 |
+
}
|
614 |
+
|
615 |
+
this.each(function(){
|
616 |
+
var origin = $(this);
|
617 |
+
var curr_options = $.extend({}, defaults, options);
|
618 |
+
var isFocused = false;
|
619 |
+
|
620 |
+
// Dropdown menu
|
621 |
+
var activates = $("#"+ origin.attr('data-activates'));
|
622 |
+
|
623 |
+
function updateOptions() {
|
624 |
+
if (origin.data('induration') !== undefined)
|
625 |
+
curr_options.inDuration = origin.data('induration');
|
626 |
+
if (origin.data('outduration') !== undefined)
|
627 |
+
curr_options.outDuration = origin.data('outduration');
|
628 |
+
if (origin.data('constrainwidth') !== undefined)
|
629 |
+
curr_options.constrainWidth = origin.data('constrainwidth');
|
630 |
+
if (origin.data('hover') !== undefined)
|
631 |
+
curr_options.hover = origin.data('hover');
|
632 |
+
if (origin.data('gutter') !== undefined)
|
633 |
+
curr_options.gutter = origin.data('gutter');
|
634 |
+
if (origin.data('beloworigin') !== undefined)
|
635 |
+
curr_options.belowOrigin = origin.data('beloworigin');
|
636 |
+
if (origin.data('alignment') !== undefined)
|
637 |
+
curr_options.alignment = origin.data('alignment');
|
638 |
+
if (origin.data('stoppropagation') !== undefined)
|
639 |
+
curr_options.stopPropagation = origin.data('stoppropagation');
|
640 |
+
}
|
641 |
+
|
642 |
+
updateOptions();
|
643 |
+
|
644 |
+
// Attach dropdown to its activator
|
645 |
+
origin.after(activates);
|
646 |
+
|
647 |
+
/*
|
648 |
+
Helper function to position and resize dropdown.
|
649 |
+
Used in hover and click handler.
|
650 |
+
*/
|
651 |
+
function placeDropdown(eventType) {
|
652 |
+
// Check for simultaneous focus and click events.
|
653 |
+
if (eventType === 'focus') {
|
654 |
+
isFocused = true;
|
655 |
+
}
|
656 |
+
|
657 |
+
// Check html data attributes
|
658 |
+
updateOptions();
|
659 |
+
|
660 |
+
// Set Dropdown state
|
661 |
+
activates.addClass('active');
|
662 |
+
origin.addClass('active');
|
663 |
+
|
664 |
+
// Constrain width
|
665 |
+
if (curr_options.constrainWidth === true) {
|
666 |
+
activates.css('width', origin.outerWidth());
|
667 |
+
|
668 |
+
} else {
|
669 |
+
activates.css('white-space', 'nowrap');
|
670 |
+
}
|
671 |
+
|
672 |
+
// Offscreen detection
|
673 |
+
var windowHeight = window.innerHeight;
|
674 |
+
var originHeight = origin.innerHeight();
|
675 |
+
var offsetLeft = origin.offset().left;
|
676 |
+
var offsetTop = origin.offset().top - $(window).scrollTop();
|
677 |
+
var currAlignment = curr_options.alignment;
|
678 |
+
var gutterSpacing = 0;
|
679 |
+
var leftPosition = 0;
|
680 |
+
|
681 |
+
// Below Origin
|
682 |
+
var verticalOffset = 0;
|
683 |
+
if (curr_options.belowOrigin === true) {
|
684 |
+
verticalOffset = originHeight;
|
685 |
+
}
|
686 |
+
|
687 |
+
// Check for scrolling positioned container.
|
688 |
+
var scrollYOffset = 0;
|
689 |
+
var scrollXOffset = 0;
|
690 |
+
var wrapper = origin.parent();
|
691 |
+
if (!wrapper.is('body')) {
|
692 |
+
if (wrapper[0].scrollHeight > wrapper[0].clientHeight) {
|
693 |
+
scrollYOffset = wrapper[0].scrollTop;
|
694 |
+
}
|
695 |
+
if (wrapper[0].scrollWidth > wrapper[0].clientWidth) {
|
696 |
+
scrollXOffset = wrapper[0].scrollLeft;
|
697 |
+
}
|
698 |
+
}
|
699 |
+
|
700 |
+
|
701 |
+
if (offsetLeft + activates.innerWidth() > $(window).width()) {
|
702 |
+
// Dropdown goes past screen on right, force right alignment
|
703 |
+
currAlignment = 'right';
|
704 |
+
|
705 |
+
} else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) {
|
706 |
+
// Dropdown goes past screen on left, force left alignment
|
707 |
+
currAlignment = 'left';
|
708 |
+
}
|
709 |
+
// Vertical bottom offscreen detection
|
710 |
+
if (offsetTop + activates.innerHeight() > windowHeight) {
|
711 |
+
// If going upwards still goes offscreen, just crop height of dropdown.
|
712 |
+
if (offsetTop + originHeight - activates.innerHeight() < 0) {
|
713 |
+
var adjustedHeight = windowHeight - offsetTop - verticalOffset;
|
714 |
+
activates.css('max-height', adjustedHeight);
|
715 |
+
} else {
|
716 |
+
// Flow upwards.
|
717 |
+
if (!verticalOffset) {
|
718 |
+
verticalOffset += originHeight;
|
719 |
+
}
|
720 |
+
verticalOffset -= activates.innerHeight();
|
721 |
+
}
|
722 |
+
}
|
723 |
+
|
724 |
+
// Handle edge alignment
|
725 |
+
if (currAlignment === 'left') {
|
726 |
+
gutterSpacing = curr_options.gutter;
|
727 |
+
leftPosition = origin.position().left + gutterSpacing;
|
728 |
+
}
|
729 |
+
else if (currAlignment === 'right') {
|
730 |
+
var offsetRight = origin.position().left + origin.outerWidth() - activates.outerWidth();
|
731 |
+
gutterSpacing = -curr_options.gutter;
|
732 |
+
leftPosition = offsetRight + gutterSpacing;
|
733 |
+
}
|
734 |
+
|
735 |
+
// Position dropdown
|
736 |
+
activates.css({
|
737 |
+
position: 'absolute',
|
738 |
+
top: origin.position().top + verticalOffset + scrollYOffset,
|
739 |
+
left: leftPosition + scrollXOffset
|
740 |
+
});
|
741 |
+
|
742 |
+
|
743 |
+
// Show dropdown
|
744 |
+
activates.stop(true, true).css('opacity', 0)
|
745 |
+
.slideDown({
|
746 |
+
queue: false,
|
747 |
+
duration: curr_options.inDuration,
|
748 |
+
easing: 'easeOutCubic',
|
749 |
+
complete: function() {
|
750 |
+
$(this).css('height', '');
|
751 |
+
}
|
752 |
+
})
|
753 |
+
.animate( {opacity: 1}, {queue: false, duration: curr_options.inDuration, easing: 'easeOutSine'});
|
754 |
+
|
755 |
+
// Add click close handler to document
|
756 |
+
$(document).bind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'), function (e) {
|
757 |
+
if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length) ) {
|
758 |
+
hideDropdown();
|
759 |
+
$(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
|
760 |
+
}
|
761 |
+
});
|
762 |
+
}
|
763 |
+
|
764 |
+
function hideDropdown() {
|
765 |
+
// Check for simultaneous focus and click events.
|
766 |
+
isFocused = false;
|
767 |
+
activates.fadeOut(curr_options.outDuration);
|
768 |
+
activates.removeClass('active');
|
769 |
+
origin.removeClass('active');
|
770 |
+
$(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
|
771 |
+
setTimeout(function() { activates.css('max-height', ''); }, curr_options.outDuration);
|
772 |
+
}
|
773 |
+
|
774 |
+
// Hover
|
775 |
+
if (curr_options.hover) {
|
776 |
+
var open = false;
|
777 |
+
origin.unbind('click.' + origin.attr('id'));
|
778 |
+
// Hover handler to show dropdown
|
779 |
+
origin.on('mouseenter', function(e){ // Mouse over
|
780 |
+
if (open === false) {
|
781 |
+
placeDropdown();
|
782 |
+
open = true;
|
783 |
+
}
|
784 |
+
});
|
785 |
+
origin.on('mouseleave', function(e){
|
786 |
+
// If hover on origin then to something other than dropdown content, then close
|
787 |
+
var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element
|
788 |
+
if(!$(toEl).closest('.dropdown-content').is(activates)) {
|
789 |
+
activates.stop(true, true);
|
790 |
+
hideDropdown();
|
791 |
+
open = false;
|
792 |
+
}
|
793 |
+
});
|
794 |
+
|
795 |
+
activates.on('mouseleave', function(e){ // Mouse out
|
796 |
+
var toEl = e.toElement || e.relatedTarget;
|
797 |
+
if(!$(toEl).closest('.dropdown-button').is(origin)) {
|
798 |
+
activates.stop(true, true);
|
799 |
+
hideDropdown();
|
800 |
+
open = false;
|
801 |
+
}
|
802 |
+
});
|
803 |
+
|
804 |
+
// Click
|
805 |
+
} else {
|
806 |
+
// Click handler to show dropdown
|
807 |
+
origin.unbind('click.' + origin.attr('id'));
|
808 |
+
origin.bind('click.'+origin.attr('id'), function(e){
|
809 |
+
if (!isFocused) {
|
810 |
+
if ( origin[0] == e.currentTarget &&
|
811 |
+
!origin.hasClass('active') &&
|
812 |
+
($(e.target).closest('.dropdown-content').length === 0)) {
|
813 |
+
e.preventDefault(); // Prevents button click from moving window
|
814 |
+
if (curr_options.stopPropagation) {
|
815 |
+
e.stopPropagation();
|
816 |
+
}
|
817 |
+
placeDropdown('click');
|
818 |
+
}
|
819 |
+
// If origin is clicked and menu is open, close menu
|
820 |
+
else if (origin.hasClass('active')) {
|
821 |
+
hideDropdown();
|
822 |
+
$(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
|
823 |
+
}
|
824 |
+
}
|
825 |
+
});
|
826 |
+
|
827 |
+
} // End else
|
828 |
+
|
829 |
+
// Listen to open and close event - useful for select component
|
830 |
+
origin.on('open', function(e, eventType) {
|
831 |
+
placeDropdown(eventType);
|
832 |
+
});
|
833 |
+
origin.on('close', hideDropdown);
|
834 |
+
|
835 |
+
|
836 |
+
});
|
837 |
+
}; // End dropdown plugin
|
838 |
+
|
839 |
+
$(document).ready(function(){
|
840 |
+
$('.dropdown-button').dropdown();
|
841 |
+
});
|
842 |
+
}( jQuery ));
|
843 |
+
;(function($) {
|
844 |
+
var _stack = 0,
|
845 |
+
_lastID = 0,
|
846 |
+
_generateID = function() {
|
847 |
+
_lastID++;
|
848 |
+
return 'materialize-modal-overlay-' + _lastID;
|
849 |
+
};
|
850 |
+
|
851 |
+
var methods = {
|
852 |
+
init : function(options) {
|
853 |
+
var defaults = {
|
854 |
+
opacity: 0.5,
|
855 |
+
inDuration: 350,
|
856 |
+
outDuration: 250,
|
857 |
+
ready: undefined,
|
858 |
+
complete: undefined,
|
859 |
+
dismissible: true,
|
860 |
+
startingTop: '4%',
|
861 |
+
endingTop: '10%'
|
862 |
+
};
|
863 |
+
|
864 |
+
// Override defaults
|
865 |
+
options = $.extend(defaults, options);
|
866 |
+
|
867 |
+
return this.each(function() {
|
868 |
+
var $modal = $(this);
|
869 |
+
var modal_id = $(this).attr("id") || '#' + $(this).data('target');
|
870 |
+
|
871 |
+
var closeModal = function() {
|
872 |
+
var overlayID = $modal.data('overlay-id');
|
873 |
+
var $overlay = $('#' + overlayID);
|
874 |
+
$modal.removeClass('open');
|
875 |
+
|
876 |
+
// Enable scrolling
|
877 |
+
$('body').css({
|
878 |
+
overflow: '',
|
879 |
+
width: ''
|
880 |
+
});
|
881 |
+
|
882 |
+
$modal.find('.modal-close').off('click.close');
|
883 |
+
$(document).off('keyup.modal' + overlayID);
|
884 |
+
|
885 |
+
$overlay.velocity( { opacity: 0}, {duration: options.outDuration, queue: false, ease: "easeOutQuart"});
|
886 |
+
|
887 |
+
|
888 |
+
// Define Bottom Sheet animation
|
889 |
+
var exitVelocityOptions = {
|
890 |
+
duration: options.outDuration,
|
891 |
+
queue: false,
|
892 |
+
ease: "easeOutCubic",
|
893 |
+
// Handle modal ready callback
|
894 |
+
complete: function() {
|
895 |
+
$(this).css({display:"none"});
|
896 |
+
|
897 |
+
// Call complete callback
|
898 |
+
if (typeof(options.complete) === "function") {
|
899 |
+
options.complete.call(this, $modal);
|
900 |
+
}
|
901 |
+
$overlay.remove();
|
902 |
+
_stack--;
|
903 |
+
}
|
904 |
+
};
|
905 |
+
if ($modal.hasClass('bottom-sheet')) {
|
906 |
+
$modal.velocity({bottom: "-100%", opacity: 0}, exitVelocityOptions);
|
907 |
+
}
|
908 |
+
else {
|
909 |
+
$modal.velocity(
|
910 |
+
{ top: options.startingTop, opacity: 0, scaleX: 0.7},
|
911 |
+
exitVelocityOptions
|
912 |
+
);
|
913 |
+
}
|
914 |
+
};
|
915 |
+
|
916 |
+
var openModal = function($trigger) {
|
917 |
+
var $body = $('body');
|
918 |
+
var oldWidth = $body.innerWidth();
|
919 |
+
$body.css('overflow', 'hidden');
|
920 |
+
$body.width(oldWidth);
|
921 |
+
|
922 |
+
if ($modal.hasClass('open')) {
|
923 |
+
return;
|
924 |
+
}
|
925 |
+
|
926 |
+
var overlayID = _generateID();
|
927 |
+
var $overlay = $('<div class="modal-overlay"></div>');
|
928 |
+
lStack = (++_stack);
|
929 |
+
|
930 |
+
// Store a reference of the overlay
|
931 |
+
$overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2);
|
932 |
+
$modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1);
|
933 |
+
$modal.addClass('open');
|
934 |
+
|
935 |
+
$("body").append($overlay);
|
936 |
+
|
937 |
+
if (options.dismissible) {
|
938 |
+
$overlay.click(function() {
|
939 |
+
closeModal();
|
940 |
+
});
|
941 |
+
// Return on ESC
|
942 |
+
$(document).on('keyup.modal' + overlayID, function(e) {
|
943 |
+
if (e.keyCode === 27) { // ESC key
|
944 |
+
closeModal();
|
945 |
+
}
|
946 |
+
});
|
947 |
+
}
|
948 |
+
|
949 |
+
$modal.find(".modal-close").on('click.close', function(e) {
|
950 |
+
closeModal();
|
951 |
+
});
|
952 |
+
|
953 |
+
$overlay.css({ display : "block", opacity : 0 });
|
954 |
+
|
955 |
+
$modal.css({
|
956 |
+
display : "block",
|
957 |
+
opacity: 0
|
958 |
+
});
|
959 |
+
|
960 |
+
$overlay.velocity({opacity: options.opacity}, {duration: options.inDuration, queue: false, ease: "easeOutCubic"});
|
961 |
+
$modal.data('associated-overlay', $overlay[0]);
|
962 |
+
|
963 |
+
// Define Bottom Sheet animation
|
964 |
+
var enterVelocityOptions = {
|
965 |
+
duration: options.inDuration,
|
966 |
+
queue: false,
|
967 |
+
ease: "easeOutCubic",
|
968 |
+
// Handle modal ready callback
|
969 |
+
complete: function() {
|
970 |
+
if (typeof(options.ready) === "function") {
|
971 |
+
options.ready.call(this, $modal, $trigger);
|
972 |
+
}
|
973 |
+
}
|
974 |
+
};
|
975 |
+
if ($modal.hasClass('bottom-sheet')) {
|
976 |
+
$modal.velocity({bottom: "0", opacity: 1}, enterVelocityOptions);
|
977 |
+
}
|
978 |
+
else {
|
979 |
+
$.Velocity.hook($modal, "scaleX", 0.7);
|
980 |
+
$modal.css({ top: options.startingTop });
|
981 |
+
$modal.velocity({top: options.endingTop, opacity: 1, scaleX: '1'}, enterVelocityOptions);
|
982 |
+
}
|
983 |
+
|
984 |
+
};
|
985 |
+
|
986 |
+
// Reset handlers
|
987 |
+
$(document).off('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]');
|
988 |
+
$(this).off('openModal');
|
989 |
+
$(this).off('closeModal');
|
990 |
+
|
991 |
+
// Close Handlers
|
992 |
+
$(document).on('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]', function(e) {
|
993 |
+
options.startingTop = ($(this).offset().top - $(window).scrollTop()) /1.15;
|
994 |
+
openModal($(this));
|
995 |
+
e.preventDefault();
|
996 |
+
}); // done set on click
|
997 |
+
|
998 |
+
$(this).on('openModal', function() {
|
999 |
+
var modal_id = $(this).attr("href") || '#' + $(this).data('target');
|
1000 |
+
openModal();
|
1001 |
+
});
|
1002 |
+
|
1003 |
+
$(this).on('closeModal', function() {
|
1004 |
+
closeModal();
|
1005 |
+
});
|
1006 |
+
}); // done return
|
1007 |
+
},
|
1008 |
+
open : function() {
|
1009 |
+
$(this).trigger('openModal');
|
1010 |
+
},
|
1011 |
+
close : function() {
|
1012 |
+
$(this).trigger('closeModal');
|
1013 |
+
}
|
1014 |
+
};
|
1015 |
+
|
1016 |
+
$.fn.modal = function(methodOrOptions) {
|
1017 |
+
if ( methods[methodOrOptions] ) {
|
1018 |
+
return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
1019 |
+
} else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
|
1020 |
+
// Default to "init"
|
1021 |
+
return methods.init.apply( this, arguments );
|
1022 |
+
} else {
|
1023 |
+
$.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.modal' );
|
1024 |
+
}
|
1025 |
+
};
|
1026 |
+
})(jQuery);
|
1027 |
+
;(function ($) {
|
1028 |
+
|
1029 |
+
$.fn.materialbox = function () {
|
1030 |
+
|
1031 |
+
return this.each(function() {
|
1032 |
+
|
1033 |
+
if ($(this).hasClass('initialized')) {
|
1034 |
+
return;
|
1035 |
+
}
|
1036 |
+
|
1037 |
+
$(this).addClass('initialized');
|
1038 |
+
|
1039 |
+
var overlayActive = false;
|
1040 |
+
var doneAnimating = true;
|
1041 |
+
var inDuration = 275;
|
1042 |
+
var outDuration = 200;
|
1043 |
+
var origin = $(this);
|
1044 |
+
var placeholder = $('<div></div>').addClass('material-placeholder');
|
1045 |
+
var originalWidth = 0;
|
1046 |
+
var originalHeight = 0;
|
1047 |
+
var ancestorsChanged;
|
1048 |
+
var ancestor;
|
1049 |
+
origin.wrap(placeholder);
|
1050 |
+
|
1051 |
+
|
1052 |
+
origin.on('click', function(){
|
1053 |
+
var placeholder = origin.parent('.material-placeholder');
|
1054 |
+
var windowWidth = window.innerWidth;
|
1055 |
+
var windowHeight = window.innerHeight;
|
1056 |
+
var originalWidth = origin.width();
|
1057 |
+
var originalHeight = origin.height();
|
1058 |
+
|
1059 |
+
|
1060 |
+
// If already modal, return to original
|
1061 |
+
if (doneAnimating === false) {
|
1062 |
+
returnToOriginal();
|
1063 |
+
return false;
|
1064 |
+
}
|
1065 |
+
else if (overlayActive && doneAnimating===true) {
|
1066 |
+
returnToOriginal();
|
1067 |
+
return false;
|
1068 |
+
}
|
1069 |
+
|
1070 |
+
|
1071 |
+
// Set states
|
1072 |
+
doneAnimating = false;
|
1073 |
+
origin.addClass('active');
|
1074 |
+
overlayActive = true;
|
1075 |
+
|
1076 |
+
// Set positioning for placeholder
|
1077 |
+
placeholder.css({
|
1078 |
+
width: placeholder[0].getBoundingClientRect().width,
|
1079 |
+
height: placeholder[0].getBoundingClientRect().height,
|
1080 |
+
position: 'relative',
|
1081 |
+
top: 0,
|
1082 |
+
left: 0
|
1083 |
+
});
|
1084 |
+
|
1085 |
+
// Find ancestor with overflow: hidden; and remove it
|
1086 |
+
ancestorsChanged = undefined;
|
1087 |
+
ancestor = placeholder[0].parentNode;
|
1088 |
+
var count = 0;
|
1089 |
+
while (ancestor !== null && !$(ancestor).is(document)) {
|
1090 |
+
var curr = $(ancestor);
|
1091 |
+
if (curr.css('overflow') !== 'visible') {
|
1092 |
+
curr.css('overflow', 'visible');
|
1093 |
+
if (ancestorsChanged === undefined) {
|
1094 |
+
ancestorsChanged = curr;
|
1095 |
+
}
|
1096 |
+
else {
|
1097 |
+
ancestorsChanged = ancestorsChanged.add(curr);
|
1098 |
+
}
|
1099 |
+
}
|
1100 |
+
ancestor = ancestor.parentNode;
|
1101 |
+
}
|
1102 |
+
|
1103 |
+
// Set css on origin
|
1104 |
+
origin.css({
|
1105 |
+
position: 'absolute',
|
1106 |
+
'z-index': 1000,
|
1107 |
+
'will-change': 'left, top, width, height'
|
1108 |
+
})
|
1109 |
+
.data('width', originalWidth)
|
1110 |
+
.data('height', originalHeight);
|
1111 |
+
|
1112 |
+
// Add overlay
|
1113 |
+
var overlay = $('<div id="materialbox-overlay"></div>')
|
1114 |
+
.css({
|
1115 |
+
opacity: 0
|
1116 |
+
})
|
1117 |
+
.click(function(){
|
1118 |
+
if (doneAnimating === true)
|
1119 |
+
returnToOriginal();
|
1120 |
+
});
|
1121 |
+
|
1122 |
+
// Put before in origin image to preserve z-index layering.
|
1123 |
+
origin.before(overlay);
|
1124 |
+
|
1125 |
+
// Set dimensions if needed
|
1126 |
+
var overlayOffset = overlay[0].getBoundingClientRect();
|
1127 |
+
overlay.css({
|
1128 |
+
width: windowWidth,
|
1129 |
+
height: windowHeight,
|
1130 |
+
left: -1 * overlayOffset.left,
|
1131 |
+
top: -1 * overlayOffset.top
|
1132 |
+
})
|
1133 |
+
|
1134 |
+
// Animate Overlay
|
1135 |
+
overlay.velocity({opacity: 1},
|
1136 |
+
{duration: inDuration, queue: false, easing: 'easeOutQuad'} );
|
1137 |
+
|
1138 |
+
// Add and animate caption if it exists
|
1139 |
+
if (origin.data('caption') !== "") {
|
1140 |
+
var $photo_caption = $('<div class="materialbox-caption"></div>');
|
1141 |
+
$photo_caption.text(origin.data('caption'));
|
1142 |
+
$('body').append($photo_caption);
|
1143 |
+
$photo_caption.css({ "display": "inline" });
|
1144 |
+
$photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'});
|
1145 |
+
}
|
1146 |
+
|
1147 |
+
// Resize Image
|
1148 |
+
var ratio = 0;
|
1149 |
+
var widthPercent = originalWidth / windowWidth;
|
1150 |
+
var heightPercent = originalHeight / windowHeight;
|
1151 |
+
var newWidth = 0;
|
1152 |
+
var newHeight = 0;
|
1153 |
+
|
1154 |
+
if (widthPercent > heightPercent) {
|
1155 |
+
ratio = originalHeight / originalWidth;
|
1156 |
+
newWidth = windowWidth * 0.9;
|
1157 |
+
newHeight = windowWidth * 0.9 * ratio;
|
1158 |
+
}
|
1159 |
+
else {
|
1160 |
+
ratio = originalWidth / originalHeight;
|
1161 |
+
newWidth = (windowHeight * 0.9) * ratio;
|
1162 |
+
newHeight = windowHeight * 0.9;
|
1163 |
+
}
|
1164 |
+
|
1165 |
+
// Animate image + set z-index
|
1166 |
+
if(origin.hasClass('responsive-img')) {
|
1167 |
+
origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false,
|
1168 |
+
complete: function(){
|
1169 |
+
origin.css({left: 0, top: 0})
|
1170 |
+
.velocity(
|
1171 |
+
{
|
1172 |
+
height: newHeight,
|
1173 |
+
width: newWidth,
|
1174 |
+
left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
|
1175 |
+
top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
|
1176 |
+
},
|
1177 |
+
{
|
1178 |
+
duration: inDuration,
|
1179 |
+
queue: false,
|
1180 |
+
easing: 'easeOutQuad',
|
1181 |
+
complete: function(){doneAnimating = true;}
|
1182 |
+
}
|
1183 |
+
);
|
1184 |
+
} // End Complete
|
1185 |
+
}); // End Velocity
|
1186 |
+
}
|
1187 |
+
else {
|
1188 |
+
origin.css('left', 0)
|
1189 |
+
.css('top', 0)
|
1190 |
+
.velocity(
|
1191 |
+
{
|
1192 |
+
height: newHeight,
|
1193 |
+
width: newWidth,
|
1194 |
+
left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
|
1195 |
+
top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
|
1196 |
+
},
|
1197 |
+
{
|
1198 |
+
duration: inDuration,
|
1199 |
+
queue: false,
|
1200 |
+
easing: 'easeOutQuad',
|
1201 |
+
complete: function(){doneAnimating = true;}
|
1202 |
+
}
|
1203 |
+
); // End Velocity
|
1204 |
+
}
|
1205 |
+
|
1206 |
+
}); // End origin on click
|
1207 |
+
|
1208 |
+
|
1209 |
+
// Return on scroll
|
1210 |
+
$(window).scroll(function() {
|
1211 |
+
if (overlayActive) {
|
1212 |
+
returnToOriginal();
|
1213 |
+
}
|
1214 |
+
});
|
1215 |
+
|
1216 |
+
// Return on ESC
|
1217 |
+
$(document).keyup(function(e) {
|
1218 |
+
|
1219 |
+
if (e.keyCode === 27 && doneAnimating === true) { // ESC key
|
1220 |
+
if (overlayActive) {
|
1221 |
+
returnToOriginal();
|
1222 |
+
}
|
1223 |
+
}
|
1224 |
+
});
|
1225 |
+
|
1226 |
+
|
1227 |
+
// This function returns the modaled image to the original spot
|
1228 |
+
function returnToOriginal() {
|
1229 |
+
|
1230 |
+
doneAnimating = false;
|
1231 |
+
|
1232 |
+
var placeholder = origin.parent('.material-placeholder');
|
1233 |
+
var windowWidth = window.innerWidth;
|
1234 |
+
var windowHeight = window.innerHeight;
|
1235 |
+
var originalWidth = origin.data('width');
|
1236 |
+
var originalHeight = origin.data('height');
|
1237 |
+
|
1238 |
+
origin.velocity("stop", true);
|
1239 |
+
$('#materialbox-overlay').velocity("stop", true);
|
1240 |
+
$('.materialbox-caption').velocity("stop", true);
|
1241 |
+
|
1242 |
+
|
1243 |
+
$('#materialbox-overlay').velocity({opacity: 0}, {
|
1244 |
+
duration: outDuration, // Delay prevents animation overlapping
|
1245 |
+
queue: false, easing: 'easeOutQuad',
|
1246 |
+
complete: function(){
|
1247 |
+
// Remove Overlay
|
1248 |
+
overlayActive = false;
|
1249 |
+
$(this).remove();
|
1250 |
+
}
|
1251 |
+
});
|
1252 |
+
|
1253 |
+
// Resize Image
|
1254 |
+
origin.velocity(
|
1255 |
+
{
|
1256 |
+
width: originalWidth,
|
1257 |
+
height: originalHeight,
|
1258 |
+
left: 0,
|
1259 |
+
top: 0
|
1260 |
+
},
|
1261 |
+
{
|
1262 |
+
duration: outDuration,
|
1263 |
+
queue: false, easing: 'easeOutQuad'
|
1264 |
+
}
|
1265 |
+
);
|
1266 |
+
|
1267 |
+
// Remove Caption + reset css settings on image
|
1268 |
+
$('.materialbox-caption').velocity({opacity: 0}, {
|
1269 |
+
duration: outDuration, // Delay prevents animation overlapping
|
1270 |
+
queue: false, easing: 'easeOutQuad',
|
1271 |
+
complete: function(){
|
1272 |
+
placeholder.css({
|
1273 |
+
height: '',
|
1274 |
+
width: '',
|
1275 |
+
position: '',
|
1276 |
+
top: '',
|
1277 |
+
left: ''
|
1278 |
+
});
|
1279 |
+
|
1280 |
+
origin.css({
|
1281 |
+
height: '',
|
1282 |
+
top: '',
|
1283 |
+
left: '',
|
1284 |
+
width: '',
|
1285 |
+
'max-width': '',
|
1286 |
+
position: '',
|
1287 |
+
'z-index': '',
|
1288 |
+
'will-change': ''
|
1289 |
+
});
|
1290 |
+
|
1291 |
+
// Remove class
|
1292 |
+
origin.removeClass('active');
|
1293 |
+
doneAnimating = true;
|
1294 |
+
$(this).remove();
|
1295 |
+
|
1296 |
+
// Remove overflow overrides on ancestors
|
1297 |
+
if (ancestorsChanged) {
|
1298 |
+
ancestorsChanged.css('overflow', '');
|
1299 |
+
}
|
1300 |
+
}
|
1301 |
+
});
|
1302 |
+
|
1303 |
+
}
|
1304 |
+
});
|
1305 |
+
};
|
1306 |
+
|
1307 |
+
$(document).ready(function(){
|
1308 |
+
$('.materialboxed').materialbox();
|
1309 |
+
});
|
1310 |
+
|
1311 |
+
}( jQuery ));
|
1312 |
+
;(function ($) {
|
1313 |
+
|
1314 |
+
$.fn.parallax = function () {
|
1315 |
+
var window_width = $(window).width();
|
1316 |
+
// Parallax Scripts
|
1317 |
+
return this.each(function(i) {
|
1318 |
+
var $this = $(this);
|
1319 |
+
$this.addClass('parallax');
|
1320 |
+
|
1321 |
+
function updateParallax(initial) {
|
1322 |
+
var container_height;
|
1323 |
+
if (window_width < 601) {
|
1324 |
+
container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height();
|
1325 |
+
}
|
1326 |
+
else {
|
1327 |
+
container_height = ($this.height() > 0) ? $this.height() : 500;
|
1328 |
+
}
|
1329 |
+
var $img = $this.children("img").first();
|
1330 |
+
var img_height = $img.height();
|
1331 |
+
var parallax_dist = img_height - container_height;
|
1332 |
+
var bottom = $this.offset().top + container_height;
|
1333 |
+
var top = $this.offset().top;
|
1334 |
+
var scrollTop = $(window).scrollTop();
|
1335 |
+
var windowHeight = window.innerHeight;
|
1336 |
+
var windowBottom = scrollTop + windowHeight;
|
1337 |
+
var percentScrolled = (windowBottom - top) / (container_height + windowHeight);
|
1338 |
+
var parallax = Math.round((parallax_dist * percentScrolled));
|
1339 |
+
|
1340 |
+
if (initial) {
|
1341 |
+
$img.css('display', 'block');
|
1342 |
+
}
|
1343 |
+
if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) {
|
1344 |
+
$img.css('transform', "translate3D(-50%," + parallax + "px, 0)");
|
1345 |
+
}
|
1346 |
+
|
1347 |
+
}
|
1348 |
+
|
1349 |
+
// Wait for image load
|
1350 |
+
$this.children("img").one("load", function() {
|
1351 |
+
updateParallax(true);
|
1352 |
+
}).each(function() {
|
1353 |
+
if (this.complete) $(this).trigger("load");
|
1354 |
+
});
|
1355 |
+
|
1356 |
+
$(window).scroll(function() {
|
1357 |
+
window_width = $(window).width();
|
1358 |
+
updateParallax(false);
|
1359 |
+
});
|
1360 |
+
|
1361 |
+
$(window).resize(function() {
|
1362 |
+
window_width = $(window).width();
|
1363 |
+
updateParallax(false);
|
1364 |
+
});
|
1365 |
+
|
1366 |
+
});
|
1367 |
+
|
1368 |
+
};
|
1369 |
+
}( jQuery ));
|
1370 |
+
;(function ($) {
|
1371 |
+
|
1372 |
+
var methods = {
|
1373 |
+
init : function(options) {
|
1374 |
+
var defaults = {
|
1375 |
+
onShow: null,
|
1376 |
+
swipeable: false,
|
1377 |
+
responsiveThreshold: Infinity, // breakpoint for swipeable
|
1378 |
+
};
|
1379 |
+
options = $.extend(defaults, options);
|
1380 |
+
|
1381 |
+
return this.each(function() {
|
1382 |
+
|
1383 |
+
// For each set of tabs, we want to keep track of
|
1384 |
+
// which tab is active and its associated content
|
1385 |
+
var $this = $(this),
|
1386 |
+
window_width = $(window).width();
|
1387 |
+
|
1388 |
+
var $active, $content, $links = $this.find('li.tab a'),
|
1389 |
+
$tabs_width = $this.width(),
|
1390 |
+
$tabs_content = $(),
|
1391 |
+
$tabs_wrapper,
|
1392 |
+
$tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length,
|
1393 |
+
$indicator,
|
1394 |
+
index = prev_index = 0,
|
1395 |
+
clicked = false,
|
1396 |
+
clickedTimeout,
|
1397 |
+
transition = 300;
|
1398 |
+
|
1399 |
+
|
1400 |
+
// Finds right attribute for indicator based on active tab.
|
1401 |
+
// el: jQuery Object
|
1402 |
+
var calcRightPos = function(el) {
|
1403 |
+
return $tabs_width - el.position().left - el.outerWidth() - $this.scrollLeft();
|
1404 |
+
};
|
1405 |
+
|
1406 |
+
// Finds left attribute for indicator based on active tab.
|
1407 |
+
// el: jQuery Object
|
1408 |
+
var calcLeftPos = function(el) {
|
1409 |
+
return el.position().left + $this.scrollLeft();
|
1410 |
+
};
|
1411 |
+
|
1412 |
+
// Animates Indicator to active tab.
|
1413 |
+
// prev_index: Number
|
1414 |
+
var animateIndicator = function(prev_index) {
|
1415 |
+
if ((index - prev_index) >= 0) {
|
1416 |
+
$indicator.velocity({"right": calcRightPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'});
|
1417 |
+
$indicator.velocity({"left": calcLeftPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90});
|
1418 |
+
|
1419 |
+
} else {
|
1420 |
+
$indicator.velocity({"left": calcLeftPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'});
|
1421 |
+
$indicator.velocity({"right": calcRightPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90});
|
1422 |
+
}
|
1423 |
+
};
|
1424 |
+
|
1425 |
+
// Change swipeable according to responsive threshold
|
1426 |
+
if (options.swipeable) {
|
1427 |
+
if (window_width > options.responsiveThreshold) {
|
1428 |
+
options.swipeable = false;
|
1429 |
+
}
|
1430 |
+
}
|
1431 |
+
|
1432 |
+
|
1433 |
+
// If the location.hash matches one of the links, use that as the active tab.
|
1434 |
+
$active = $($links.filter('[href="'+location.hash+'"]'));
|
1435 |
+
|
1436 |
+
// If no match is found, use the first link or any with class 'active' as the initial active tab.
|
1437 |
+
if ($active.length === 0) {
|
1438 |
+
$active = $(this).find('li.tab a.active').first();
|
1439 |
+
}
|
1440 |
+
if ($active.length === 0) {
|
1441 |
+
$active = $(this).find('li.tab a').first();
|
1442 |
+
}
|
1443 |
+
|
1444 |
+
$active.addClass('active');
|
1445 |
+
index = $links.index($active);
|
1446 |
+
if (index < 0) {
|
1447 |
+
index = 0;
|
1448 |
+
}
|
1449 |
+
|
1450 |
+
if ($active[0] !== undefined) {
|
1451 |
+
$content = $($active[0].hash);
|
1452 |
+
$content.addClass('active');
|
1453 |
+
}
|
1454 |
+
|
1455 |
+
// append indicator then set indicator width to tab width
|
1456 |
+
if (!$this.find('.indicator').length) {
|
1457 |
+
$this.append('<div class="indicator"></div>');
|
1458 |
+
}
|
1459 |
+
$indicator = $this.find('.indicator');
|
1460 |
+
|
1461 |
+
// we make sure that the indicator is at the end of the tabs
|
1462 |
+
$this.append($indicator);
|
1463 |
+
|
1464 |
+
if ($this.is(":visible")) {
|
1465 |
+
// $indicator.css({"right": $tabs_width - ((index + 1) * $tab_width)});
|
1466 |
+
// $indicator.css({"left": index * $tab_width});
|
1467 |
+
setTimeout(function() {
|
1468 |
+
$indicator.css({"right": calcRightPos($active) });
|
1469 |
+
$indicator.css({"left": calcLeftPos($active) });
|
1470 |
+
}, 0);
|
1471 |
+
}
|
1472 |
+
$(window).resize(function () {
|
1473 |
+
$tabs_width = $this.width();
|
1474 |
+
$tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length;
|
1475 |
+
if (index < 0) {
|
1476 |
+
index = 0;
|
1477 |
+
}
|
1478 |
+
if ($tab_width !== 0 && $tabs_width !== 0) {
|
1479 |
+
$indicator.css({"right": calcRightPos($active) });
|
1480 |
+
$indicator.css({"left": calcLeftPos($active) });
|
1481 |
+
}
|
1482 |
+
});
|
1483 |
+
|
1484 |
+
// Initialize Tabs Content.
|
1485 |
+
if (options.swipeable) {
|
1486 |
+
// TODO: Duplicate calls with swipeable? handle multiple div wrapping.
|
1487 |
+
$links.each(function () {
|
1488 |
+
var $curr_content = $(Materialize.escapeHash(this.hash));
|
1489 |
+
$curr_content.addClass('carousel-item');
|
1490 |
+
$tabs_content = $tabs_content.add($curr_content);
|
1491 |
+
});
|
1492 |
+
$tabs_wrapper = $tabs_content.wrapAll('<div class="tabs-content carousel"></div>');
|
1493 |
+
$tabs_content.css('display', '');
|
1494 |
+
$('.tabs-content.carousel').carousel({
|
1495 |
+
fullWidth: true,
|
1496 |
+
noWrap: true,
|
1497 |
+
onCycleTo: function(item) {
|
1498 |
+
if (!clicked) {
|
1499 |
+
var prev_index = index;
|
1500 |
+
index = $tabs_wrapper.index(item);
|
1501 |
+
$active = $links.eq(index);
|
1502 |
+
animateIndicator(prev_index);
|
1503 |
+
}
|
1504 |
+
},
|
1505 |
+
});
|
1506 |
+
} else {
|
1507 |
+
// Hide the remaining content
|
1508 |
+
$links.not($active).each(function () {
|
1509 |
+
$(Materialize.escapeHash(this.hash)).hide();
|
1510 |
+
});
|
1511 |
+
}
|
1512 |
+
|
1513 |
+
|
1514 |
+
// Bind the click event handler
|
1515 |
+
$this.on('click', 'a', function(e) {
|
1516 |
+
if ($(this).parent().hasClass('disabled')) {
|
1517 |
+
e.preventDefault();
|
1518 |
+
return;
|
1519 |
+
}
|
1520 |
+
|
1521 |
+
// Act as regular link if target attribute is specified.
|
1522 |
+
if (!!$(this).attr("target")) {
|
1523 |
+
return;
|
1524 |
+
}
|
1525 |
+
|
1526 |
+
clicked = true;
|
1527 |
+
$tabs_width = $this.width();
|
1528 |
+
$tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length;
|
1529 |
+
|
1530 |
+
// Make the old tab inactive.
|
1531 |
+
$active.removeClass('active');
|
1532 |
+
var $oldContent = $content
|
1533 |
+
|
1534 |
+
// Update the variables with the new link and content
|
1535 |
+
$active = $(this);
|
1536 |
+
$content = $(Materialize.escapeHash(this.hash));
|
1537 |
+
$links = $this.find('li.tab a');
|
1538 |
+
var activeRect = $active.position();
|
1539 |
+
|
1540 |
+
// Make the tab active.
|
1541 |
+
$active.addClass('active');
|
1542 |
+
prev_index = index;
|
1543 |
+
index = $links.index($(this));
|
1544 |
+
if (index < 0) {
|
1545 |
+
index = 0;
|
1546 |
+
}
|
1547 |
+
// Change url to current tab
|
1548 |
+
// window.location.hash = $active.attr('href');
|
1549 |
+
|
1550 |
+
// Swap content
|
1551 |
+
if (options.swipeable) {
|
1552 |
+
if ($tabs_content.length) {
|
1553 |
+
$tabs_content.carousel('set', index);
|
1554 |
+
}
|
1555 |
+
} else {
|
1556 |
+
if ($content !== undefined) {
|
1557 |
+
$content.show();
|
1558 |
+
$content.addClass('active');
|
1559 |
+
if (typeof(options.onShow) === "function") {
|
1560 |
+
options.onShow.call(this, $content);
|
1561 |
+
}
|
1562 |
+
}
|
1563 |
+
|
1564 |
+
if ($oldContent !== undefined &&
|
1565 |
+
!$oldContent.is($content)) {
|
1566 |
+
$oldContent.hide();
|
1567 |
+
$oldContent.removeClass('active');
|
1568 |
+
}
|
1569 |
+
}
|
1570 |
+
|
1571 |
+
// Reset clicked state
|
1572 |
+
clickedTimeout = setTimeout(function(){ clicked = false; }, transition);
|
1573 |
+
|
1574 |
+
// Update indicator
|
1575 |
+
animateIndicator(prev_index);
|
1576 |
+
|
1577 |
+
// Prevent the anchor's default click action
|
1578 |
+
e.preventDefault();
|
1579 |
+
});
|
1580 |
+
});
|
1581 |
+
|
1582 |
+
},
|
1583 |
+
select_tab : function( id ) {
|
1584 |
+
this.find('a[href="#' + id + '"]').trigger('click');
|
1585 |
+
}
|
1586 |
+
};
|
1587 |
+
|
1588 |
+
$.fn.tabs = function(methodOrOptions) {
|
1589 |
+
if ( methods[methodOrOptions] ) {
|
1590 |
+
return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
1591 |
+
} else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
|
1592 |
+
// Default to "init"
|
1593 |
+
return methods.init.apply( this, arguments );
|
1594 |
+
} else {
|
1595 |
+
$.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tabs' );
|
1596 |
+
}
|
1597 |
+
};
|
1598 |
+
|
1599 |
+
$(document).ready(function(){
|
1600 |
+
$('ul.tabs').tabs();
|
1601 |
+
});
|
1602 |
+
}( jQuery ));
|
1603 |
+
;(function ($) {
|
1604 |
+
$.fn.tooltip = function (options) {
|
1605 |
+
var timeout = null,
|
1606 |
+
margin = 5;
|
1607 |
+
|
1608 |
+
// Defaults
|
1609 |
+
var defaults = {
|
1610 |
+
delay: 350,
|
1611 |
+
tooltip: '',
|
1612 |
+
position: 'bottom',
|
1613 |
+
html: false
|
1614 |
+
};
|
1615 |
+
|
1616 |
+
// Remove tooltip from the activator
|
1617 |
+
if (options === "remove") {
|
1618 |
+
this.each(function() {
|
1619 |
+
$('#' + $(this).attr('data-tooltip-id')).remove();
|
1620 |
+
$(this).off('mouseenter.tooltip mouseleave.tooltip');
|
1621 |
+
});
|
1622 |
+
return false;
|
1623 |
+
}
|
1624 |
+
|
1625 |
+
options = $.extend(defaults, options);
|
1626 |
+
|
1627 |
+
return this.each(function() {
|
1628 |
+
var tooltipId = Materialize.guid();
|
1629 |
+
var origin = $(this);
|
1630 |
+
|
1631 |
+
// Destroy old tooltip
|
1632 |
+
if (origin.attr('data-tooltip-id')) {
|
1633 |
+
$('#' + origin.attr('data-tooltip-id')).remove();
|
1634 |
+
}
|
1635 |
+
|
1636 |
+
origin.attr('data-tooltip-id', tooltipId);
|
1637 |
+
|
1638 |
+
// Get attributes.
|
1639 |
+
var allowHtml,
|
1640 |
+
tooltipDelay,
|
1641 |
+
tooltipPosition,
|
1642 |
+
tooltipText,
|
1643 |
+
tooltipEl,
|
1644 |
+
backdrop;
|
1645 |
+
var setAttributes = function() {
|
1646 |
+
allowHtml = origin.attr('data-html') ? origin.attr('data-html') === 'true' : options.html;
|
1647 |
+
tooltipDelay = origin.attr('data-delay');
|
1648 |
+
tooltipDelay = (tooltipDelay === undefined || tooltipDelay === '') ?
|
1649 |
+
options.delay : tooltipDelay;
|
1650 |
+
tooltipPosition = origin.attr('data-position');
|
1651 |
+
tooltipPosition = (tooltipPosition === undefined || tooltipPosition === '') ?
|
1652 |
+
options.position : tooltipPosition;
|
1653 |
+
tooltipText = origin.attr('data-tooltip');
|
1654 |
+
tooltipText = (tooltipText === undefined || tooltipText === '') ?
|
1655 |
+
options.tooltip : tooltipText;
|
1656 |
+
};
|
1657 |
+
setAttributes();
|
1658 |
+
|
1659 |
+
var renderTooltipEl = function() {
|
1660 |
+
var tooltip = $('<div class="material-tooltip"></div>');
|
1661 |
+
|
1662 |
+
// Create Text span
|
1663 |
+
if (allowHtml) {
|
1664 |
+
tooltipText = $('<span></span>').html(tooltipText);
|
1665 |
+
} else{
|
1666 |
+
tooltipText = $('<span></span>').text(tooltipText);
|
1667 |
+
}
|
1668 |
+
|
1669 |
+
// Create tooltip
|
1670 |
+
tooltip.append(tooltipText)
|
1671 |
+
.appendTo($('body'))
|
1672 |
+
.attr('id', tooltipId);
|
1673 |
+
|
1674 |
+
// Create backdrop
|
1675 |
+
backdrop = $('<div class="backdrop"></div>');
|
1676 |
+
backdrop.appendTo(tooltip);
|
1677 |
+
return tooltip;
|
1678 |
+
};
|
1679 |
+
tooltipEl = renderTooltipEl();
|
1680 |
+
|
1681 |
+
// Destroy previously binded events
|
1682 |
+
origin.off('mouseenter.tooltip mouseleave.tooltip');
|
1683 |
+
// Mouse In
|
1684 |
+
var started = false, timeoutRef;
|
1685 |
+
origin.on({'mouseenter.tooltip': function(e) {
|
1686 |
+
var showTooltip = function() {
|
1687 |
+
setAttributes();
|
1688 |
+
started = true;
|
1689 |
+
tooltipEl.velocity('stop');
|
1690 |
+
backdrop.velocity('stop');
|
1691 |
+
tooltipEl.css({ visibility: 'visible', left: '0px', top: '0px' });
|
1692 |
+
|
1693 |
+
// Tooltip positioning
|
1694 |
+
var originWidth = origin.outerWidth();
|
1695 |
+
var originHeight = origin.outerHeight();
|
1696 |
+
var tooltipHeight = tooltipEl.outerHeight();
|
1697 |
+
var tooltipWidth = tooltipEl.outerWidth();
|
1698 |
+
var tooltipVerticalMovement = '0px';
|
1699 |
+
var tooltipHorizontalMovement = '0px';
|
1700 |
+
var backdropOffsetWidth = backdrop[0].offsetWidth;
|
1701 |
+
var backdropOffsetHeight = backdrop[0].offsetHeight;
|
1702 |
+
var scaleXFactor = 8;
|
1703 |
+
var scaleYFactor = 8;
|
1704 |
+
var scaleFactor = 0;
|
1705 |
+
var targetTop, targetLeft, newCoordinates;
|
1706 |
+
|
1707 |
+
if (tooltipPosition === "top") {
|
1708 |
+
// Top Position
|
1709 |
+
targetTop = origin.offset().top - tooltipHeight - margin;
|
1710 |
+
targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2;
|
1711 |
+
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
1712 |
+
tooltipVerticalMovement = '-10px';
|
1713 |
+
backdrop.css({
|
1714 |
+
bottom: 0,
|
1715 |
+
left: 0,
|
1716 |
+
borderRadius: '14px 14px 0 0',
|
1717 |
+
transformOrigin: '50% 100%',
|
1718 |
+
marginTop: tooltipHeight,
|
1719 |
+
marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2)
|
1720 |
+
});
|
1721 |
+
}
|
1722 |
+
// Left Position
|
1723 |
+
else if (tooltipPosition === "left") {
|
1724 |
+
targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2;
|
1725 |
+
targetLeft = origin.offset().left - tooltipWidth - margin;
|
1726 |
+
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
1727 |
+
|
1728 |
+
tooltipHorizontalMovement = '-10px';
|
1729 |
+
backdrop.css({
|
1730 |
+
top: '-7px',
|
1731 |
+
right: 0,
|
1732 |
+
width: '14px',
|
1733 |
+
height: '14px',
|
1734 |
+
borderRadius: '14px 0 0 14px',
|
1735 |
+
transformOrigin: '95% 50%',
|
1736 |
+
marginTop: tooltipHeight/2,
|
1737 |
+
marginLeft: tooltipWidth
|
1738 |
+
});
|
1739 |
+
}
|
1740 |
+
// Right Position
|
1741 |
+
else if (tooltipPosition === "right") {
|
1742 |
+
targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2;
|
1743 |
+
targetLeft = origin.offset().left + originWidth + margin;
|
1744 |
+
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
1745 |
+
|
1746 |
+
tooltipHorizontalMovement = '+10px';
|
1747 |
+
backdrop.css({
|
1748 |
+
top: '-7px',
|
1749 |
+
left: 0,
|
1750 |
+
width: '14px',
|
1751 |
+
height: '14px',
|
1752 |
+
borderRadius: '0 14px 14px 0',
|
1753 |
+
transformOrigin: '5% 50%',
|
1754 |
+
marginTop: tooltipHeight/2,
|
1755 |
+
marginLeft: '0px'
|
1756 |
+
});
|
1757 |
+
}
|
1758 |
+
else {
|
1759 |
+
// Bottom Position
|
1760 |
+
targetTop = origin.offset().top + origin.outerHeight() + margin;
|
1761 |
+
targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2;
|
1762 |
+
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
1763 |
+
tooltipVerticalMovement = '+10px';
|
1764 |
+
backdrop.css({
|
1765 |
+
top: 0,
|
1766 |
+
left: 0,
|
1767 |
+
marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2)
|
1768 |
+
});
|
1769 |
+
}
|
1770 |
+
|
1771 |
+
// Set tooptip css placement
|
1772 |
+
tooltipEl.css({
|
1773 |
+
top: newCoordinates.y,
|
1774 |
+
left: newCoordinates.x
|
1775 |
+
});
|
1776 |
+
|
1777 |
+
// Calculate Scale to fill
|
1778 |
+
scaleXFactor = Math.SQRT2 * tooltipWidth / parseInt(backdropOffsetWidth);
|
1779 |
+
scaleYFactor = Math.SQRT2 * tooltipHeight / parseInt(backdropOffsetHeight);
|
1780 |
+
scaleFactor = Math.max(scaleXFactor, scaleYFactor);
|
1781 |
+
|
1782 |
+
tooltipEl.velocity({ translateY: tooltipVerticalMovement, translateX: tooltipHorizontalMovement}, { duration: 350, queue: false })
|
1783 |
+
.velocity({opacity: 1}, {duration: 300, delay: 50, queue: false});
|
1784 |
+
backdrop.css({ visibility: 'visible' })
|
1785 |
+
.velocity({opacity:1},{duration: 55, delay: 0, queue: false})
|
1786 |
+
.velocity({scaleX: scaleFactor, scaleY: scaleFactor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'});
|
1787 |
+
};
|
1788 |
+
|
1789 |
+
timeoutRef = setTimeout(showTooltip, tooltipDelay); // End Interval
|
1790 |
+
|
1791 |
+
// Mouse Out
|
1792 |
+
},
|
1793 |
+
'mouseleave.tooltip': function(){
|
1794 |
+
// Reset State
|
1795 |
+
started = false;
|
1796 |
+
clearTimeout(timeoutRef);
|
1797 |
+
|
1798 |
+
// Animate back
|
1799 |
+
setTimeout(function() {
|
1800 |
+
if (started !== true) {
|
1801 |
+
tooltipEl.velocity({
|
1802 |
+
opacity: 0, translateY: 0, translateX: 0}, { duration: 225, queue: false});
|
1803 |
+
backdrop.velocity({opacity: 0, scaleX: 1, scaleY: 1}, {
|
1804 |
+
duration:225,
|
1805 |
+
queue: false,
|
1806 |
+
complete: function(){
|
1807 |
+
backdrop.css({ visibility: 'hidden' });
|
1808 |
+
tooltipEl.css({ visibility: 'hidden' });
|
1809 |
+
started = false;}
|
1810 |
+
});
|
1811 |
+
}
|
1812 |
+
},225);
|
1813 |
+
}
|
1814 |
+
});
|
1815 |
+
});
|
1816 |
+
};
|
1817 |
+
|
1818 |
+
var repositionWithinScreen = function(x, y, width, height) {
|
1819 |
+
var newX = x;
|
1820 |
+
var newY = y;
|
1821 |
+
|
1822 |
+
if (newX < 0) {
|
1823 |
+
newX = 4;
|
1824 |
+
} else if (newX + width > window.innerWidth) {
|
1825 |
+
newX -= newX + width - window.innerWidth;
|
1826 |
+
}
|
1827 |
+
|
1828 |
+
if (newY < 0) {
|
1829 |
+
newY = 4;
|
1830 |
+
} else if (newY + height > window.innerHeight + $(window).scrollTop) {
|
1831 |
+
newY -= newY + height - window.innerHeight;
|
1832 |
+
}
|
1833 |
+
|
1834 |
+
return {x: newX, y: newY};
|
1835 |
+
};
|
1836 |
+
|
1837 |
+
$(document).ready(function(){
|
1838 |
+
$('.tooltipped').tooltip();
|
1839 |
+
});
|
1840 |
+
}( jQuery ));
|
1841 |
+
;/*!
|
1842 |
+
* Waves v0.6.4
|
1843 |
+
* http://fian.my.id/Waves
|
1844 |
+
*
|
1845 |
+
* Copyright 2014 Alfiana E. Sibuea and other contributors
|
1846 |
+
* Released under the MIT license
|
1847 |
+
* https://github.com/fians/Waves/blob/master/LICENSE
|
1848 |
+
*/
|
1849 |
+
|
1850 |
+
;(function(window) {
|
1851 |
+
'use strict';
|
1852 |
+
|
1853 |
+
var Waves = Waves || {};
|
1854 |
+
var $$ = document.querySelectorAll.bind(document);
|
1855 |
+
|
1856 |
+
// Find exact position of element
|
1857 |
+
function isWindow(obj) {
|
1858 |
+
return obj !== null && obj === obj.window;
|
1859 |
+
}
|
1860 |
+
|
1861 |
+
function getWindow(elem) {
|
1862 |
+
return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;
|
1863 |
+
}
|
1864 |
+
|
1865 |
+
function offset(elem) {
|
1866 |
+
var docElem, win,
|
1867 |
+
box = {top: 0, left: 0},
|
1868 |
+
doc = elem && elem.ownerDocument;
|
1869 |
+
|
1870 |
+
docElem = doc.documentElement;
|
1871 |
+
|
1872 |
+
if (typeof elem.getBoundingClientRect !== typeof undefined) {
|
1873 |
+
box = elem.getBoundingClientRect();
|
1874 |
+
}
|
1875 |
+
win = getWindow(doc);
|
1876 |
+
return {
|
1877 |
+
top: box.top + win.pageYOffset - docElem.clientTop,
|
1878 |
+
left: box.left + win.pageXOffset - docElem.clientLeft
|
1879 |
+
};
|
1880 |
+
}
|
1881 |
+
|
1882 |
+
function convertStyle(obj) {
|
1883 |
+
var style = '';
|
1884 |
+
|
1885 |
+
for (var a in obj) {
|
1886 |
+
if (obj.hasOwnProperty(a)) {
|
1887 |
+
style += (a + ':' + obj[a] + ';');
|
1888 |
+
}
|
1889 |
+
}
|
1890 |
+
|
1891 |
+
return style;
|
1892 |
+
}
|
1893 |
+
|
1894 |
+
var Effect = {
|
1895 |
+
|
1896 |
+
// Effect delay
|
1897 |
+
duration: 750,
|
1898 |
+
|
1899 |
+
show: function(e, element) {
|
1900 |
+
|
1901 |
+
// Disable right click
|
1902 |
+
if (e.button === 2) {
|
1903 |
+
return false;
|
1904 |
+
}
|
1905 |
+
|
1906 |
+
var el = element || this;
|
1907 |
+
|
1908 |
+
// Create ripple
|
1909 |
+
var ripple = document.createElement('div');
|
1910 |
+
ripple.className = 'waves-ripple';
|
1911 |
+
el.appendChild(ripple);
|
1912 |
+
|
1913 |
+
// Get click coordinate and element witdh
|
1914 |
+
var pos = offset(el);
|
1915 |
+
var relativeY = (e.pageY - pos.top);
|
1916 |
+
var relativeX = (e.pageX - pos.left);
|
1917 |
+
var scale = 'scale('+((el.clientWidth / 100) * 10)+')';
|
1918 |
+
|
1919 |
+
// Support for touch devices
|
1920 |
+
if ('touches' in e) {
|
1921 |
+
relativeY = (e.touches[0].pageY - pos.top);
|
1922 |
+
relativeX = (e.touches[0].pageX - pos.left);
|
1923 |
+
}
|
1924 |
+
|
1925 |
+
// Attach data to element
|
1926 |
+
ripple.setAttribute('data-hold', Date.now());
|
1927 |
+
ripple.setAttribute('data-scale', scale);
|
1928 |
+
ripple.setAttribute('data-x', relativeX);
|
1929 |
+
ripple.setAttribute('data-y', relativeY);
|
1930 |
+
|
1931 |
+
// Set ripple position
|
1932 |
+
var rippleStyle = {
|
1933 |
+
'top': relativeY+'px',
|
1934 |
+
'left': relativeX+'px'
|
1935 |
+
};
|
1936 |
+
|
1937 |
+
ripple.className = ripple.className + ' waves-notransition';
|
1938 |
+
ripple.setAttribute('style', convertStyle(rippleStyle));
|
1939 |
+
ripple.className = ripple.className.replace('waves-notransition', '');
|
1940 |
+
|
1941 |
+
// Scale the ripple
|
1942 |
+
rippleStyle['-webkit-transform'] = scale;
|
1943 |
+
rippleStyle['-moz-transform'] = scale;
|
1944 |
+
rippleStyle['-ms-transform'] = scale;
|
1945 |
+
rippleStyle['-o-transform'] = scale;
|
1946 |
+
rippleStyle.transform = scale;
|
1947 |
+
rippleStyle.opacity = '1';
|
1948 |
+
|
1949 |
+
rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms';
|
1950 |
+
rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms';
|
1951 |
+
rippleStyle['-o-transition-duration'] = Effect.duration + 'ms';
|
1952 |
+
rippleStyle['transition-duration'] = Effect.duration + 'ms';
|
1953 |
+
|
1954 |
+
rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
1955 |
+
rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
1956 |
+
rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
1957 |
+
rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
1958 |
+
|
1959 |
+
ripple.setAttribute('style', convertStyle(rippleStyle));
|
1960 |
+
},
|
1961 |
+
|
1962 |
+
hide: function(e) {
|
1963 |
+
TouchHandler.touchup(e);
|
1964 |
+
|
1965 |
+
var el = this;
|
1966 |
+
var width = el.clientWidth * 1.4;
|
1967 |
+
|
1968 |
+
// Get first ripple
|
1969 |
+
var ripple = null;
|
1970 |
+
var ripples = el.getElementsByClassName('waves-ripple');
|
1971 |
+
if (ripples.length > 0) {
|
1972 |
+
ripple = ripples[ripples.length - 1];
|
1973 |
+
} else {
|
1974 |
+
return false;
|
1975 |
+
}
|
1976 |
+
|
1977 |
+
var relativeX = ripple.getAttribute('data-x');
|
1978 |
+
var relativeY = ripple.getAttribute('data-y');
|
1979 |
+
var scale = ripple.getAttribute('data-scale');
|
1980 |
+
|
1981 |
+
// Get delay beetween mousedown and mouse leave
|
1982 |
+
var diff = Date.now() - Number(ripple.getAttribute('data-hold'));
|
1983 |
+
var delay = 350 - diff;
|
1984 |
+
|
1985 |
+
if (delay < 0) {
|
1986 |
+
delay = 0;
|
1987 |
+
}
|
1988 |
+
|
1989 |
+
// Fade out ripple after delay
|
1990 |
+
setTimeout(function() {
|
1991 |
+
var style = {
|
1992 |
+
'top': relativeY+'px',
|
1993 |
+
'left': relativeX+'px',
|
1994 |
+
'opacity': '0',
|
1995 |
+
|
1996 |
+
// Duration
|
1997 |
+
'-webkit-transition-duration': Effect.duration + 'ms',
|
1998 |
+
'-moz-transition-duration': Effect.duration + 'ms',
|
1999 |
+
'-o-transition-duration': Effect.duration + 'ms',
|
2000 |
+
'transition-duration': Effect.duration + 'ms',
|
2001 |
+
'-webkit-transform': scale,
|
2002 |
+
'-moz-transform': scale,
|
2003 |
+
'-ms-transform': scale,
|
2004 |
+
'-o-transform': scale,
|
2005 |
+
'transform': scale,
|
2006 |
+
};
|
2007 |
+
|
2008 |
+
ripple.setAttribute('style', convertStyle(style));
|
2009 |
+
|
2010 |
+
setTimeout(function() {
|
2011 |
+
try {
|
2012 |
+
el.removeChild(ripple);
|
2013 |
+
} catch(e) {
|
2014 |
+
return false;
|
2015 |
+
}
|
2016 |
+
}, Effect.duration);
|
2017 |
+
}, delay);
|
2018 |
+
},
|
2019 |
+
|
2020 |
+
// Little hack to make <input> can perform waves effect
|
2021 |
+
wrapInput: function(elements) {
|
2022 |
+
for (var a = 0; a < elements.length; a++) {
|
2023 |
+
var el = elements[a];
|
2024 |
+
|
2025 |
+
if (el.tagName.toLowerCase() === 'input') {
|
2026 |
+
var parent = el.parentNode;
|
2027 |
+
|
2028 |
+
// If input already have parent just pass through
|
2029 |
+
if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) {
|
2030 |
+
continue;
|
2031 |
+
}
|
2032 |
+
|
2033 |
+
// Put element class and style to the specified parent
|
2034 |
+
var wrapper = document.createElement('i');
|
2035 |
+
wrapper.className = el.className + ' waves-input-wrapper';
|
2036 |
+
|
2037 |
+
var elementStyle = el.getAttribute('style');
|
2038 |
+
|
2039 |
+
if (!elementStyle) {
|
2040 |
+
elementStyle = '';
|
2041 |
+
}
|
2042 |
+
|
2043 |
+
wrapper.setAttribute('style', elementStyle);
|
2044 |
+
|
2045 |
+
el.className = 'waves-button-input';
|
2046 |
+
el.removeAttribute('style');
|
2047 |
+
|
2048 |
+
// Put element as child
|
2049 |
+
parent.replaceChild(wrapper, el);
|
2050 |
+
wrapper.appendChild(el);
|
2051 |
+
}
|
2052 |
+
}
|
2053 |
+
}
|
2054 |
+
};
|
2055 |
+
|
2056 |
+
|
2057 |
+
/**
|
2058 |
+
* Disable mousedown event for 500ms during and after touch
|
2059 |
+
*/
|
2060 |
+
var TouchHandler = {
|
2061 |
+
/* uses an integer rather than bool so there's no issues with
|
2062 |
+
* needing to clear timeouts if another touch event occurred
|
2063 |
+
* within the 500ms. Cannot mouseup between touchstart and
|
2064 |
+
* touchend, nor in the 500ms after touchend. */
|
2065 |
+
touches: 0,
|
2066 |
+
allowEvent: function(e) {
|
2067 |
+
var allow = true;
|
2068 |
+
|
2069 |
+
if (e.type === 'touchstart') {
|
2070 |
+
TouchHandler.touches += 1; //push
|
2071 |
+
} else if (e.type === 'touchend' || e.type === 'touchcancel') {
|
2072 |
+
setTimeout(function() {
|
2073 |
+
if (TouchHandler.touches > 0) {
|
2074 |
+
TouchHandler.touches -= 1; //pop after 500ms
|
2075 |
+
}
|
2076 |
+
}, 500);
|
2077 |
+
} else if (e.type === 'mousedown' && TouchHandler.touches > 0) {
|
2078 |
+
allow = false;
|
2079 |
+
}
|
2080 |
+
|
2081 |
+
return allow;
|
2082 |
+
},
|
2083 |
+
touchup: function(e) {
|
2084 |
+
TouchHandler.allowEvent(e);
|
2085 |
+
}
|
2086 |
+
};
|
2087 |
+
|
2088 |
+
|
2089 |
+
/**
|
2090 |
+
* Delegated click handler for .waves-effect element.
|
2091 |
+
* returns null when .waves-effect element not in "click tree"
|
2092 |
+
*/
|
2093 |
+
function getWavesEffectElement(e) {
|
2094 |
+
if (TouchHandler.allowEvent(e) === false) {
|
2095 |
+
return null;
|
2096 |
+
}
|
2097 |
+
|
2098 |
+
var element = null;
|
2099 |
+
var target = e.target || e.srcElement;
|
2100 |
+
|
2101 |
+
while (target.parentElement !== null) {
|
2102 |
+
if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) {
|
2103 |
+
element = target;
|
2104 |
+
break;
|
2105 |
+
} else if (target.classList.contains('waves-effect')) {
|
2106 |
+
element = target;
|
2107 |
+
break;
|
2108 |
+
}
|
2109 |
+
target = target.parentElement;
|
2110 |
+
}
|
2111 |
+
|
2112 |
+
return element;
|
2113 |
+
}
|
2114 |
+
|
2115 |
+
/**
|
2116 |
+
* Bubble the click and show effect if .waves-effect elem was found
|
2117 |
+
*/
|
2118 |
+
function showEffect(e) {
|
2119 |
+
var element = getWavesEffectElement(e);
|
2120 |
+
|
2121 |
+
if (element !== null) {
|
2122 |
+
Effect.show(e, element);
|
2123 |
+
|
2124 |
+
if ('ontouchstart' in window) {
|
2125 |
+
element.addEventListener('touchend', Effect.hide, false);
|
2126 |
+
element.addEventListener('touchcancel', Effect.hide, false);
|
2127 |
+
}
|
2128 |
+
|
2129 |
+
element.addEventListener('mouseup', Effect.hide, false);
|
2130 |
+
element.addEventListener('mouseleave', Effect.hide, false);
|
2131 |
+
}
|
2132 |
+
}
|
2133 |
+
|
2134 |
+
Waves.displayEffect = function(options) {
|
2135 |
+
options = options || {};
|
2136 |
+
|
2137 |
+
if ('duration' in options) {
|
2138 |
+
Effect.duration = options.duration;
|
2139 |
+
}
|
2140 |
+
|
2141 |
+
//Wrap input inside <i> tag
|
2142 |
+
Effect.wrapInput($$('.waves-effect'));
|
2143 |
+
|
2144 |
+
if ('ontouchstart' in window) {
|
2145 |
+
document.body.addEventListener('touchstart', showEffect, false);
|
2146 |
+
}
|
2147 |
+
|
2148 |
+
document.body.addEventListener('mousedown', showEffect, false);
|
2149 |
+
};
|
2150 |
+
|
2151 |
+
/**
|
2152 |
+
* Attach Waves to an input element (or any element which doesn't
|
2153 |
+
* bubble mouseup/mousedown events).
|
2154 |
+
* Intended to be used with dynamically loaded forms/inputs, or
|
2155 |
+
* where the user doesn't want a delegated click handler.
|
2156 |
+
*/
|
2157 |
+
Waves.attach = function(element) {
|
2158 |
+
//FUTURE: automatically add waves classes and allow users
|
2159 |
+
// to specify them with an options param? Eg. light/classic/button
|
2160 |
+
if (element.tagName.toLowerCase() === 'input') {
|
2161 |
+
Effect.wrapInput([element]);
|
2162 |
+
element = element.parentElement;
|
2163 |
+
}
|
2164 |
+
|
2165 |
+
if ('ontouchstart' in window) {
|
2166 |
+
element.addEventListener('touchstart', showEffect, false);
|
2167 |
+
}
|
2168 |
+
|
2169 |
+
element.addEventListener('mousedown', showEffect, false);
|
2170 |
+
};
|
2171 |
+
|
2172 |
+
window.Waves = Waves;
|
2173 |
+
|
2174 |
+
document.addEventListener('DOMContentLoaded', function() {
|
2175 |
+
Waves.displayEffect();
|
2176 |
+
}, false);
|
2177 |
+
|
2178 |
+
})(window);
|
2179 |
+
;Materialize.toast = function (message, displayLength, className, completeCallback) {
|
2180 |
+
className = className || "";
|
2181 |
+
|
2182 |
+
var container = document.getElementById('toast-container');
|
2183 |
+
|
2184 |
+
// Create toast container if it does not exist
|
2185 |
+
if (container === null) {
|
2186 |
+
// create notification container
|
2187 |
+
container = document.createElement('div');
|
2188 |
+
container.id = 'toast-container';
|
2189 |
+
document.body.appendChild(container);
|
2190 |
+
}
|
2191 |
+
|
2192 |
+
// Select and append toast
|
2193 |
+
var newToast = createToast(message);
|
2194 |
+
|
2195 |
+
// only append toast if message is not undefined
|
2196 |
+
if(message){
|
2197 |
+
container.appendChild(newToast);
|
2198 |
+
}
|
2199 |
+
|
2200 |
+
newToast.style.opacity = 0;
|
2201 |
+
|
2202 |
+
// Animate toast in
|
2203 |
+
Vel(newToast, {translateY: '-35px', opacity: 1 }, {duration: 300,
|
2204 |
+
easing: 'easeOutCubic',
|
2205 |
+
queue: false});
|
2206 |
+
|
2207 |
+
// Allows timer to be pause while being panned
|
2208 |
+
var timeLeft = displayLength;
|
2209 |
+
var counterInterval;
|
2210 |
+
if (timeLeft != null) {
|
2211 |
+
counterInterval = setInterval (function(){
|
2212 |
+
if (newToast.parentNode === null)
|
2213 |
+
window.clearInterval(counterInterval);
|
2214 |
+
|
2215 |
+
// If toast is not being dragged, decrease its time remaining
|
2216 |
+
if (!newToast.classList.contains('panning')) {
|
2217 |
+
timeLeft -= 20;
|
2218 |
+
}
|
2219 |
+
|
2220 |
+
if (timeLeft <= 0) {
|
2221 |
+
// Animate toast out
|
2222 |
+
Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375,
|
2223 |
+
easing: 'easeOutExpo',
|
2224 |
+
queue: false,
|
2225 |
+
complete: function(){
|
2226 |
+
// Call the optional callback
|
2227 |
+
if(typeof(completeCallback) === "function")
|
2228 |
+
completeCallback();
|
2229 |
+
// Remove toast after it times out
|
2230 |
+
this[0].parentNode.removeChild(this[0]);
|
2231 |
+
}
|
2232 |
+
});
|
2233 |
+
window.clearInterval(counterInterval);
|
2234 |
+
}
|
2235 |
+
}, 20);
|
2236 |
+
}
|
2237 |
+
|
2238 |
+
|
2239 |
+
|
2240 |
+
function createToast(html) {
|
2241 |
+
|
2242 |
+
// Create toast
|
2243 |
+
var toast = document.createElement('div');
|
2244 |
+
toast.classList.add('toast');
|
2245 |
+
if (className) {
|
2246 |
+
var classes = className.split(' ');
|
2247 |
+
|
2248 |
+
for (var i = 0, count = classes.length; i < count; i++) {
|
2249 |
+
toast.classList.add(classes[i]);
|
2250 |
+
}
|
2251 |
+
}
|
2252 |
+
// If type of parameter is HTML Element
|
2253 |
+
if ( typeof HTMLElement === "object" ? html instanceof HTMLElement : html && typeof html === "object" && html !== null && html.nodeType === 1 && typeof html.nodeName==="string"
|
2254 |
+
) {
|
2255 |
+
toast.appendChild(html);
|
2256 |
+
}
|
2257 |
+
else if (html instanceof jQuery) {
|
2258 |
+
// Check if it is jQuery object
|
2259 |
+
toast.appendChild(html[0]);
|
2260 |
+
}
|
2261 |
+
else {
|
2262 |
+
// Insert as text;
|
2263 |
+
toast.innerHTML = html;
|
2264 |
+
}
|
2265 |
+
// Bind hammer
|
2266 |
+
var hammerHandler = new Hammer(toast, {prevent_default: false});
|
2267 |
+
hammerHandler.on('pan', function(e) {
|
2268 |
+
var deltaX = e.deltaX;
|
2269 |
+
var activationDistance = 80;
|
2270 |
+
|
2271 |
+
// Change toast state
|
2272 |
+
if (!toast.classList.contains('panning')){
|
2273 |
+
toast.classList.add('panning');
|
2274 |
+
}
|
2275 |
+
|
2276 |
+
var opacityPercent = 1-Math.abs(deltaX / activationDistance);
|
2277 |
+
if (opacityPercent < 0)
|
2278 |
+
opacityPercent = 0;
|
2279 |
+
|
2280 |
+
Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'});
|
2281 |
+
|
2282 |
+
});
|
2283 |
+
|
2284 |
+
hammerHandler.on('panend', function(e) {
|
2285 |
+
var deltaX = e.deltaX;
|
2286 |
+
var activationDistance = 80;
|
2287 |
+
|
2288 |
+
// If toast dragged past activation point
|
2289 |
+
if (Math.abs(deltaX) > activationDistance) {
|
2290 |
+
Vel(toast, {marginTop: '-40px'}, { duration: 375,
|
2291 |
+
easing: 'easeOutExpo',
|
2292 |
+
queue: false,
|
2293 |
+
complete: function(){
|
2294 |
+
if(typeof(completeCallback) === "function") {
|
2295 |
+
completeCallback();
|
2296 |
+
}
|
2297 |
+
toast.parentNode.removeChild(toast);
|
2298 |
+
}
|
2299 |
+
});
|
2300 |
+
|
2301 |
+
} else {
|
2302 |
+
toast.classList.remove('panning');
|
2303 |
+
// Put toast back into original position
|
2304 |
+
Vel(toast, { left: 0, opacity: 1 }, { duration: 300,
|
2305 |
+
easing: 'easeOutExpo',
|
2306 |
+
queue: false
|
2307 |
+
});
|
2308 |
+
|
2309 |
+
}
|
2310 |
+
});
|
2311 |
+
|
2312 |
+
return toast;
|
2313 |
+
}
|
2314 |
+
};
|
2315 |
+
;(function ($) {
|
2316 |
+
|
2317 |
+
var methods = {
|
2318 |
+
init : function(options) {
|
2319 |
+
var defaults = {
|
2320 |
+
menuWidth: 300,
|
2321 |
+
edge: 'left',
|
2322 |
+
closeOnClick: false,
|
2323 |
+
draggable: true
|
2324 |
+
};
|
2325 |
+
options = $.extend(defaults, options);
|
2326 |
+
|
2327 |
+
$(this).each(function(){
|
2328 |
+
var $this = $(this);
|
2329 |
+
var menuId = $this.attr('data-activates');
|
2330 |
+
var menu = $("#"+ menuId);
|
2331 |
+
|
2332 |
+
// Set to width
|
2333 |
+
if (options.menuWidth != 300) {
|
2334 |
+
menu.css('width', options.menuWidth);
|
2335 |
+
}
|
2336 |
+
|
2337 |
+
// Add Touch Area
|
2338 |
+
var $dragTarget = $('.drag-target[data-sidenav="' + menuId + '"]');
|
2339 |
+
if (options.draggable) {
|
2340 |
+
// Regenerate dragTarget
|
2341 |
+
if ($dragTarget.length) {
|
2342 |
+
$dragTarget.remove();
|
2343 |
+
}
|
2344 |
+
|
2345 |
+
$dragTarget = $('<div class="drag-target"></div>').attr('data-sidenav', menuId);
|
2346 |
+
$('body').append($dragTarget);
|
2347 |
+
} else {
|
2348 |
+
$dragTarget = $();
|
2349 |
+
}
|
2350 |
+
|
2351 |
+
if (options.edge == 'left') {
|
2352 |
+
menu.css('transform', 'translateX(-100%)');
|
2353 |
+
$dragTarget.css({'left': 0}); // Add Touch Area
|
2354 |
+
}
|
2355 |
+
else {
|
2356 |
+
menu.addClass('right-aligned') // Change text-alignment to right
|
2357 |
+
.css('transform', 'translateX(100%)');
|
2358 |
+
$dragTarget.css({'right': 0}); // Add Touch Area
|
2359 |
+
}
|
2360 |
+
|
2361 |
+
// If fixed sidenav, bring menu out
|
2362 |
+
if (menu.hasClass('fixed')) {
|
2363 |
+
if (window.innerWidth > 992) {
|
2364 |
+
menu.css('transform', 'translateX(0)');
|
2365 |
+
}
|
2366 |
+
}
|
2367 |
+
|
2368 |
+
// Window resize to reset on large screens fixed
|
2369 |
+
if (menu.hasClass('fixed')) {
|
2370 |
+
$(window).resize( function() {
|
2371 |
+
if (window.innerWidth > 992) {
|
2372 |
+
// Close menu if window is resized bigger than 992 and user has fixed sidenav
|
2373 |
+
if ($('#sidenav-overlay').length !== 0 && menuOut) {
|
2374 |
+
removeMenu(true);
|
2375 |
+
}
|
2376 |
+
else {
|
2377 |
+
// menu.removeAttr('style');
|
2378 |
+
menu.css('transform', 'translateX(0%)');
|
2379 |
+
// menu.css('width', options.menuWidth);
|
2380 |
+
}
|
2381 |
+
}
|
2382 |
+
else if (menuOut === false){
|
2383 |
+
if (options.edge === 'left') {
|
2384 |
+
menu.css('transform', 'translateX(-100%)');
|
2385 |
+
} else {
|
2386 |
+
menu.css('transform', 'translateX(100%)');
|
2387 |
+
}
|
2388 |
+
|
2389 |
+
}
|
2390 |
+
|
2391 |
+
});
|
2392 |
+
}
|
2393 |
+
|
2394 |
+
// if closeOnClick, then add close event for all a tags in side sideNav
|
2395 |
+
if (options.closeOnClick === true) {
|
2396 |
+
menu.on("click.itemclick", "a:not(.collapsible-header)", function(){
|
2397 |
+
removeMenu();
|
2398 |
+
});
|
2399 |
+
}
|
2400 |
+
|
2401 |
+
var removeMenu = function(restoreNav) {
|
2402 |
+
panning = false;
|
2403 |
+
menuOut = false;
|
2404 |
+
// Reenable scrolling
|
2405 |
+
$('body').css({
|
2406 |
+
overflow: '',
|
2407 |
+
width: ''
|
2408 |
+
});
|
2409 |
+
|
2410 |
+
$('#sidenav-overlay').velocity({opacity: 0}, {duration: 200,
|
2411 |
+
queue: false, easing: 'easeOutQuad',
|
2412 |
+
complete: function() {
|
2413 |
+
$(this).remove();
|
2414 |
+
} });
|
2415 |
+
if (options.edge === 'left') {
|
2416 |
+
// Reset phantom div
|
2417 |
+
$dragTarget.css({width: '', right: '', left: '0'});
|
2418 |
+
menu.velocity(
|
2419 |
+
{'translateX': '-100%'},
|
2420 |
+
{ duration: 200,
|
2421 |
+
queue: false,
|
2422 |
+
easing: 'easeOutCubic',
|
2423 |
+
complete: function() {
|
2424 |
+
if (restoreNav === true) {
|
2425 |
+
// Restore Fixed sidenav
|
2426 |
+
menu.removeAttr('style');
|
2427 |
+
menu.css('width', options.menuWidth);
|
2428 |
+
}
|
2429 |
+
}
|
2430 |
+
|
2431 |
+
});
|
2432 |
+
}
|
2433 |
+
else {
|
2434 |
+
// Reset phantom div
|
2435 |
+
$dragTarget.css({width: '', right: '0', left: ''});
|
2436 |
+
menu.velocity(
|
2437 |
+
{'translateX': '100%'},
|
2438 |
+
{ duration: 200,
|
2439 |
+
queue: false,
|
2440 |
+
easing: 'easeOutCubic',
|
2441 |
+
complete: function() {
|
2442 |
+
if (restoreNav === true) {
|
2443 |
+
// Restore Fixed sidenav
|
2444 |
+
menu.removeAttr('style');
|
2445 |
+
menu.css('width', options.menuWidth);
|
2446 |
+
}
|
2447 |
+
}
|
2448 |
+
});
|
2449 |
+
}
|
2450 |
+
};
|
2451 |
+
|
2452 |
+
|
2453 |
+
|
2454 |
+
// Touch Event
|
2455 |
+
var panning = false;
|
2456 |
+
var menuOut = false;
|
2457 |
+
|
2458 |
+
if (options.draggable) {
|
2459 |
+
$dragTarget.on('click', function(){
|
2460 |
+
if (menuOut) {
|
2461 |
+
removeMenu();
|
2462 |
+
}
|
2463 |
+
});
|
2464 |
+
|
2465 |
+
$dragTarget.hammer({
|
2466 |
+
prevent_default: false
|
2467 |
+
}).bind('pan', function(e) {
|
2468 |
+
|
2469 |
+
if (e.gesture.pointerType == "touch") {
|
2470 |
+
|
2471 |
+
var direction = e.gesture.direction;
|
2472 |
+
var x = e.gesture.center.x;
|
2473 |
+
var y = e.gesture.center.y;
|
2474 |
+
var velocityX = e.gesture.velocityX;
|
2475 |
+
|
2476 |
+
// Disable Scrolling
|
2477 |
+
var $body = $('body');
|
2478 |
+
var $overlay = $('#sidenav-overlay');
|
2479 |
+
var oldWidth = $body.innerWidth();
|
2480 |
+
$body.css('overflow', 'hidden');
|
2481 |
+
$body.width(oldWidth);
|
2482 |
+
|
2483 |
+
// If overlay does not exist, create one and if it is clicked, close menu
|
2484 |
+
if ($overlay.length === 0) {
|
2485 |
+
$overlay = $('<div id="sidenav-overlay"></div>');
|
2486 |
+
$overlay.css('opacity', 0).click( function(){
|
2487 |
+
removeMenu();
|
2488 |
+
});
|
2489 |
+
$('body').append($overlay);
|
2490 |
+
}
|
2491 |
+
|
2492 |
+
// Keep within boundaries
|
2493 |
+
if (options.edge === 'left') {
|
2494 |
+
if (x > options.menuWidth) { x = options.menuWidth; }
|
2495 |
+
else if (x < 0) { x = 0; }
|
2496 |
+
}
|
2497 |
+
|
2498 |
+
if (options.edge === 'left') {
|
2499 |
+
// Left Direction
|
2500 |
+
if (x < (options.menuWidth / 2)) { menuOut = false; }
|
2501 |
+
// Right Direction
|
2502 |
+
else if (x >= (options.menuWidth / 2)) { menuOut = true; }
|
2503 |
+
menu.css('transform', 'translateX(' + (x - options.menuWidth) + 'px)');
|
2504 |
+
}
|
2505 |
+
else {
|
2506 |
+
// Left Direction
|
2507 |
+
if (x < (window.innerWidth - options.menuWidth / 2)) {
|
2508 |
+
menuOut = true;
|
2509 |
+
}
|
2510 |
+
// Right Direction
|
2511 |
+
else if (x >= (window.innerWidth - options.menuWidth / 2)) {
|
2512 |
+
menuOut = false;
|
2513 |
+
}
|
2514 |
+
var rightPos = (x - options.menuWidth / 2);
|
2515 |
+
if (rightPos < 0) {
|
2516 |
+
rightPos = 0;
|
2517 |
+
}
|
2518 |
+
|
2519 |
+
menu.css('transform', 'translateX(' + rightPos + 'px)');
|
2520 |
+
}
|
2521 |
+
|
2522 |
+
|
2523 |
+
// Percentage overlay
|
2524 |
+
var overlayPerc;
|
2525 |
+
if (options.edge === 'left') {
|
2526 |
+
overlayPerc = x / options.menuWidth;
|
2527 |
+
$overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'});
|
2528 |
+
}
|
2529 |
+
else {
|
2530 |
+
overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth);
|
2531 |
+
$overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'});
|
2532 |
+
}
|
2533 |
+
}
|
2534 |
+
|
2535 |
+
}).bind('panend', function(e) {
|
2536 |
+
|
2537 |
+
if (e.gesture.pointerType == "touch") {
|
2538 |
+
var $overlay = $('<div id="sidenav-overlay"></div>');
|
2539 |
+
var velocityX = e.gesture.velocityX;
|
2540 |
+
var x = e.gesture.center.x;
|
2541 |
+
var leftPos = x - options.menuWidth;
|
2542 |
+
var rightPos = x - options.menuWidth / 2;
|
2543 |
+
if (leftPos > 0 ) {
|
2544 |
+
leftPos = 0;
|
2545 |
+
}
|
2546 |
+
if (rightPos < 0) {
|
2547 |
+
rightPos = 0;
|
2548 |
+
}
|
2549 |
+
panning = false;
|
2550 |
+
|
2551 |
+
if (options.edge === 'left') {
|
2552 |
+
// If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut
|
2553 |
+
if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) {
|
2554 |
+
// Return menu to open
|
2555 |
+
if (leftPos !== 0) {
|
2556 |
+
menu.velocity({'translateX': [0, leftPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
|
2557 |
+
}
|
2558 |
+
|
2559 |
+
$overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'});
|
2560 |
+
$dragTarget.css({width: '50%', right: 0, left: ''});
|
2561 |
+
menuOut = true;
|
2562 |
+
}
|
2563 |
+
else if (!menuOut || velocityX > 0.3) {
|
2564 |
+
// Enable Scrolling
|
2565 |
+
$('body').css({
|
2566 |
+
overflow: '',
|
2567 |
+
width: ''
|
2568 |
+
});
|
2569 |
+
// Slide menu closed
|
2570 |
+
menu.velocity({'translateX': [-1 * options.menuWidth - 10, leftPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'});
|
2571 |
+
$overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad',
|
2572 |
+
complete: function () {
|
2573 |
+
$(this).remove();
|
2574 |
+
}});
|
2575 |
+
$dragTarget.css({width: '10px', right: '', left: 0});
|
2576 |
+
}
|
2577 |
+
}
|
2578 |
+
else {
|
2579 |
+
if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) {
|
2580 |
+
// Return menu to open
|
2581 |
+
if (rightPos !== 0) {
|
2582 |
+
menu.velocity({'translateX': [0, rightPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
|
2583 |
+
}
|
2584 |
+
|
2585 |
+
$overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'});
|
2586 |
+
$dragTarget.css({width: '50%', right: '', left: 0});
|
2587 |
+
menuOut = true;
|
2588 |
+
}
|
2589 |
+
else if (!menuOut || velocityX < -0.3) {
|
2590 |
+
// Enable Scrolling
|
2591 |
+
$('body').css({
|
2592 |
+
overflow: '',
|
2593 |
+
width: ''
|
2594 |
+
});
|
2595 |
+
|
2596 |
+
// Slide menu closed
|
2597 |
+
menu.velocity({'translateX': [options.menuWidth + 10, rightPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'});
|
2598 |
+
$overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad',
|
2599 |
+
complete: function () {
|
2600 |
+
$(this).remove();
|
2601 |
+
}});
|
2602 |
+
$dragTarget.css({width: '10px', right: 0, left: ''});
|
2603 |
+
}
|
2604 |
+
}
|
2605 |
+
|
2606 |
+
}
|
2607 |
+
});
|
2608 |
+
}
|
2609 |
+
|
2610 |
+
$this.off('click.sidenav').on('click.sidenav', function() {
|
2611 |
+
if (menuOut === true) {
|
2612 |
+
menuOut = false;
|
2613 |
+
panning = false;
|
2614 |
+
removeMenu();
|
2615 |
+
}
|
2616 |
+
else {
|
2617 |
+
|
2618 |
+
// Disable Scrolling
|
2619 |
+
var $body = $('body');
|
2620 |
+
var $overlay = $('<div id="sidenav-overlay"></div>');
|
2621 |
+
var oldWidth = $body.innerWidth();
|
2622 |
+
$body.css('overflow', 'hidden');
|
2623 |
+
$body.width(oldWidth);
|
2624 |
+
|
2625 |
+
// Push current drag target on top of DOM tree
|
2626 |
+
$('body').append($dragTarget);
|
2627 |
+
|
2628 |
+
if (options.edge === 'left') {
|
2629 |
+
$dragTarget.css({width: '50%', right: 0, left: ''});
|
2630 |
+
menu.velocity({'translateX': [0, -1 * options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
|
2631 |
+
}
|
2632 |
+
else {
|
2633 |
+
$dragTarget.css({width: '50%', right: '', left: 0});
|
2634 |
+
menu.velocity({'translateX': [0, options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
|
2635 |
+
}
|
2636 |
+
|
2637 |
+
$overlay.css('opacity', 0)
|
2638 |
+
.click(function(){
|
2639 |
+
menuOut = false;
|
2640 |
+
panning = false;
|
2641 |
+
removeMenu();
|
2642 |
+
$overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad',
|
2643 |
+
complete: function() {
|
2644 |
+
$(this).remove();
|
2645 |
+
} });
|
2646 |
+
|
2647 |
+
});
|
2648 |
+
$('body').append($overlay);
|
2649 |
+
$overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad',
|
2650 |
+
complete: function () {
|
2651 |
+
menuOut = true;
|
2652 |
+
panning = false;
|
2653 |
+
}
|
2654 |
+
});
|
2655 |
+
}
|
2656 |
+
|
2657 |
+
return false;
|
2658 |
+
});
|
2659 |
+
});
|
2660 |
+
|
2661 |
+
|
2662 |
+
},
|
2663 |
+
destroy: function () {
|
2664 |
+
var $overlay = $('#sidenav-overlay');
|
2665 |
+
var $dragTarget = $('.drag-target[data-sidenav="' + $(this).attr('data-activates') + '"]');
|
2666 |
+
$overlay.trigger('click');
|
2667 |
+
$dragTarget.remove();
|
2668 |
+
$(this).off('click');
|
2669 |
+
$overlay.remove();
|
2670 |
+
},
|
2671 |
+
show : function() {
|
2672 |
+
this.trigger('click');
|
2673 |
+
},
|
2674 |
+
hide : function() {
|
2675 |
+
$('#sidenav-overlay').trigger('click');
|
2676 |
+
}
|
2677 |
+
};
|
2678 |
+
|
2679 |
+
|
2680 |
+
$.fn.sideNav = function(methodOrOptions) {
|
2681 |
+
if ( methods[methodOrOptions] ) {
|
2682 |
+
return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
2683 |
+
} else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
|
2684 |
+
// Default to "init"
|
2685 |
+
return methods.init.apply( this, arguments );
|
2686 |
+
} else {
|
2687 |
+
$.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.sideNav' );
|
2688 |
+
}
|
2689 |
+
}; // Plugin end
|
2690 |
+
}( jQuery ));
|
2691 |
+
;/**
|
2692 |
+
* Extend jquery with a scrollspy plugin.
|
2693 |
+
* This watches the window scroll and fires events when elements are scrolled into viewport.
|
2694 |
+
*
|
2695 |
+
* throttle() and getTime() taken from Underscore.js
|
2696 |
+
* https://github.com/jashkenas/underscore
|
2697 |
+
*
|
2698 |
+
* @author Copyright 2013 John Smart
|
2699 |
+
* @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE
|
2700 |
+
* @see https://github.com/thesmart
|
2701 |
+
* @version 0.1.2
|
2702 |
+
*/
|
2703 |
+
(function($) {
|
2704 |
+
|
2705 |
+
var jWindow = $(window);
|
2706 |
+
var elements = [];
|
2707 |
+
var elementsInView = [];
|
2708 |
+
var isSpying = false;
|
2709 |
+
var ticks = 0;
|
2710 |
+
var unique_id = 1;
|
2711 |
+
var offset = {
|
2712 |
+
top : 0,
|
2713 |
+
right : 0,
|
2714 |
+
bottom : 0,
|
2715 |
+
left : 0,
|
2716 |
+
}
|
2717 |
+
|
2718 |
+
/**
|
2719 |
+
* Find elements that are within the boundary
|
2720 |
+
* @param {number} top
|
2721 |
+
* @param {number} right
|
2722 |
+
* @param {number} bottom
|
2723 |
+
* @param {number} left
|
2724 |
+
* @return {jQuery} A collection of elements
|
2725 |
+
*/
|
2726 |
+
function findElements(top, right, bottom, left) {
|
2727 |
+
var hits = $();
|
2728 |
+
$.each(elements, function(i, element) {
|
2729 |
+
if (element.height() > 0) {
|
2730 |
+
var elTop = element.offset().top,
|
2731 |
+
elLeft = element.offset().left,
|
2732 |
+
elRight = elLeft + element.width(),
|
2733 |
+
elBottom = elTop + element.height();
|
2734 |
+
|
2735 |
+
var isIntersect = !(elLeft > right ||
|
2736 |
+
elRight < left ||
|
2737 |
+
elTop > bottom ||
|
2738 |
+
elBottom < top);
|
2739 |
+
|
2740 |
+
if (isIntersect) {
|
2741 |
+
hits.push(element);
|
2742 |
+
}
|
2743 |
+
}
|
2744 |
+
});
|
2745 |
+
|
2746 |
+
return hits;
|
2747 |
+
}
|
2748 |
+
|
2749 |
+
|
2750 |
+
/**
|
2751 |
+
* Called when the user scrolls the window
|
2752 |
+
*/
|
2753 |
+
function onScroll(scrollOffset) {
|
2754 |
+
// unique tick id
|
2755 |
+
++ticks;
|
2756 |
+
|
2757 |
+
// viewport rectangle
|
2758 |
+
var top = jWindow.scrollTop(),
|
2759 |
+
left = jWindow.scrollLeft(),
|
2760 |
+
right = left + jWindow.width(),
|
2761 |
+
bottom = top + jWindow.height();
|
2762 |
+
|
2763 |
+
// determine which elements are in view
|
2764 |
+
var intersections = findElements(top+offset.top + scrollOffset || 200, right+offset.right, bottom+offset.bottom, left+offset.left);
|
2765 |
+
$.each(intersections, function(i, element) {
|
2766 |
+
|
2767 |
+
var lastTick = element.data('scrollSpy:ticks');
|
2768 |
+
if (typeof lastTick != 'number') {
|
2769 |
+
// entered into view
|
2770 |
+
element.triggerHandler('scrollSpy:enter');
|
2771 |
+
}
|
2772 |
+
|
2773 |
+
// update tick id
|
2774 |
+
element.data('scrollSpy:ticks', ticks);
|
2775 |
+
});
|
2776 |
+
|
2777 |
+
// determine which elements are no longer in view
|
2778 |
+
$.each(elementsInView, function(i, element) {
|
2779 |
+
var lastTick = element.data('scrollSpy:ticks');
|
2780 |
+
if (typeof lastTick == 'number' && lastTick !== ticks) {
|
2781 |
+
// exited from view
|
2782 |
+
element.triggerHandler('scrollSpy:exit');
|
2783 |
+
element.data('scrollSpy:ticks', null);
|
2784 |
+
}
|
2785 |
+
});
|
2786 |
+
|
2787 |
+
// remember elements in view for next tick
|
2788 |
+
elementsInView = intersections;
|
2789 |
+
}
|
2790 |
+
|
2791 |
+
/**
|
2792 |
+
* Called when window is resized
|
2793 |
+
*/
|
2794 |
+
function onWinSize() {
|
2795 |
+
jWindow.trigger('scrollSpy:winSize');
|
2796 |
+
}
|
2797 |
+
|
2798 |
+
|
2799 |
+
/**
|
2800 |
+
* Enables ScrollSpy using a selector
|
2801 |
+
* @param {jQuery|string} selector The elements collection, or a selector
|
2802 |
+
* @param {Object=} options Optional.
|
2803 |
+
throttle : number -> scrollspy throttling. Default: 100 ms
|
2804 |
+
offsetTop : number -> offset from top. Default: 0
|
2805 |
+
offsetRight : number -> offset from right. Default: 0
|
2806 |
+
offsetBottom : number -> offset from bottom. Default: 0
|
2807 |
+
offsetLeft : number -> offset from left. Default: 0
|
2808 |
+
* @returns {jQuery}
|
2809 |
+
*/
|
2810 |
+
$.scrollSpy = function(selector, options) {
|
2811 |
+
var defaults = {
|
2812 |
+
throttle: 100,
|
2813 |
+
scrollOffset: 200 // offset - 200 allows elements near bottom of page to scroll
|
2814 |
+
};
|
2815 |
+
options = $.extend(defaults, options);
|
2816 |
+
|
2817 |
+
var visible = [];
|
2818 |
+
selector = $(selector);
|
2819 |
+
selector.each(function(i, element) {
|
2820 |
+
elements.push($(element));
|
2821 |
+
$(element).data("scrollSpy:id", i);
|
2822 |
+
// Smooth scroll to section
|
2823 |
+
$('a[href="#' + $(element).attr('id') + '"]').click(function(e) {
|
2824 |
+
e.preventDefault();
|
2825 |
+
var offset = $(Materialize.escapeHash(this.hash)).offset().top + 1;
|
2826 |
+
$('html, body').animate({ scrollTop: offset - options.scrollOffset }, {duration: 400, queue: false, easing: 'easeOutCubic'});
|
2827 |
+
});
|
2828 |
+
});
|
2829 |
+
|
2830 |
+
offset.top = options.offsetTop || 0;
|
2831 |
+
offset.right = options.offsetRight || 0;
|
2832 |
+
offset.bottom = options.offsetBottom || 0;
|
2833 |
+
offset.left = options.offsetLeft || 0;
|
2834 |
+
|
2835 |
+
var throttledScroll = Materialize.throttle(function() {
|
2836 |
+
onScroll(options.scrollOffset);
|
2837 |
+
}, options.throttle || 100);
|
2838 |
+
var readyScroll = function(){
|
2839 |
+
$(document).ready(throttledScroll);
|
2840 |
+
};
|
2841 |
+
|
2842 |
+
if (!isSpying) {
|
2843 |
+
jWindow.on('scroll', readyScroll);
|
2844 |
+
jWindow.on('resize', readyScroll);
|
2845 |
+
isSpying = true;
|
2846 |
+
}
|
2847 |
+
|
2848 |
+
// perform a scan once, after current execution context, and after dom is ready
|
2849 |
+
setTimeout(readyScroll, 0);
|
2850 |
+
|
2851 |
+
|
2852 |
+
selector.on('scrollSpy:enter', function() {
|
2853 |
+
visible = $.grep(visible, function(value) {
|
2854 |
+
return value.height() != 0;
|
2855 |
+
});
|
2856 |
+
|
2857 |
+
var $this = $(this);
|
2858 |
+
|
2859 |
+
if (visible[0]) {
|
2860 |
+
$('a[href="#' + visible[0].attr('id') + '"]').removeClass('active');
|
2861 |
+
if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) {
|
2862 |
+
visible.unshift($(this));
|
2863 |
+
}
|
2864 |
+
else {
|
2865 |
+
visible.push($(this));
|
2866 |
+
}
|
2867 |
+
}
|
2868 |
+
else {
|
2869 |
+
visible.push($(this));
|
2870 |
+
}
|
2871 |
+
|
2872 |
+
|
2873 |
+
$('a[href="#' + visible[0].attr('id') + '"]').addClass('active');
|
2874 |
+
});
|
2875 |
+
selector.on('scrollSpy:exit', function() {
|
2876 |
+
visible = $.grep(visible, function(value) {
|
2877 |
+
return value.height() != 0;
|
2878 |
+
});
|
2879 |
+
|
2880 |
+
if (visible[0]) {
|
2881 |
+
$('a[href="#' + visible[0].attr('id') + '"]').removeClass('active');
|
2882 |
+
var $this = $(this);
|
2883 |
+
visible = $.grep(visible, function(value) {
|
2884 |
+
return value.attr('id') != $this.attr('id');
|
2885 |
+
});
|
2886 |
+
if (visible[0]) { // Check if empty
|
2887 |
+
$('a[href="#' + visible[0].attr('id') + '"]').addClass('active');
|
2888 |
+
}
|
2889 |
+
}
|
2890 |
+
});
|
2891 |
+
|
2892 |
+
return selector;
|
2893 |
+
};
|
2894 |
+
|
2895 |
+
/**
|
2896 |
+
* Listen for window resize events
|
2897 |
+
* @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms
|
2898 |
+
* @returns {jQuery} $(window)
|
2899 |
+
*/
|
2900 |
+
$.winSizeSpy = function(options) {
|
2901 |
+
$.winSizeSpy = function() { return jWindow; }; // lock from multiple calls
|
2902 |
+
options = options || {
|
2903 |
+
throttle: 100
|
2904 |
+
};
|
2905 |
+
return jWindow.on('resize', Materialize.throttle(onWinSize, options.throttle || 100));
|
2906 |
+
};
|
2907 |
+
|
2908 |
+
/**
|
2909 |
+
* Enables ScrollSpy on a collection of elements
|
2910 |
+
* e.g. $('.scrollSpy').scrollSpy()
|
2911 |
+
* @param {Object=} options Optional.
|
2912 |
+
throttle : number -> scrollspy throttling. Default: 100 ms
|
2913 |
+
offsetTop : number -> offset from top. Default: 0
|
2914 |
+
offsetRight : number -> offset from right. Default: 0
|
2915 |
+
offsetBottom : number -> offset from bottom. Default: 0
|
2916 |
+
offsetLeft : number -> offset from left. Default: 0
|
2917 |
+
* @returns {jQuery}
|
2918 |
+
*/
|
2919 |
+
$.fn.scrollSpy = function(options) {
|
2920 |
+
return $.scrollSpy($(this), options);
|
2921 |
+
};
|
2922 |
+
|
2923 |
+
})(jQuery);
|
2924 |
+
;(function ($) {
|
2925 |
+
$(document).ready(function() {
|
2926 |
+
|
2927 |
+
// Function to update labels of text fields
|
2928 |
+
Materialize.updateTextFields = function() {
|
2929 |
+
var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
|
2930 |
+
$(input_selector).each(function(index, element) {
|
2931 |
+
var $this = $(this);
|
2932 |
+
if ($(element).val().length > 0 || element.autofocus || $this.attr('placeholder') !== undefined) {
|
2933 |
+
$this.siblings('label').addClass('active');
|
2934 |
+
} else if ($(element)[0].validity) {
|
2935 |
+
$this.siblings('label').toggleClass('active', $(element)[0].validity.badInput === true);
|
2936 |
+
} else {
|
2937 |
+
$this.siblings('label').removeClass('active');
|
2938 |
+
}
|
2939 |
+
});
|
2940 |
+
};
|
2941 |
+
|
2942 |
+
// Text based inputs
|
2943 |
+
var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
|
2944 |
+
|
2945 |
+
// Add active if form auto complete
|
2946 |
+
$(document).on('change', input_selector, function () {
|
2947 |
+
if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) {
|
2948 |
+
$(this).siblings('label').addClass('active');
|
2949 |
+
}
|
2950 |
+
validate_field($(this));
|
2951 |
+
});
|
2952 |
+
|
2953 |
+
// Add active if input element has been pre-populated on document ready
|
2954 |
+
$(document).ready(function() {
|
2955 |
+
Materialize.updateTextFields();
|
2956 |
+
});
|
2957 |
+
|
2958 |
+
// HTML DOM FORM RESET handling
|
2959 |
+
$(document).on('reset', function(e) {
|
2960 |
+
var formReset = $(e.target);
|
2961 |
+
if (formReset.is('form')) {
|
2962 |
+
formReset.find(input_selector).removeClass('valid').removeClass('invalid');
|
2963 |
+
formReset.find(input_selector).each(function () {
|
2964 |
+
if ($(this).attr('value') === '') {
|
2965 |
+
$(this).siblings('label').removeClass('active');
|
2966 |
+
}
|
2967 |
+
});
|
2968 |
+
|
2969 |
+
// Reset select
|
2970 |
+
formReset.find('select.initialized').each(function () {
|
2971 |
+
var reset_text = formReset.find('option[selected]').text();
|
2972 |
+
formReset.siblings('input.select-dropdown').val(reset_text);
|
2973 |
+
});
|
2974 |
+
}
|
2975 |
+
});
|
2976 |
+
|
2977 |
+
// Add active when element has focus
|
2978 |
+
$(document).on('focus', input_selector, function () {
|
2979 |
+
$(this).siblings('label, .prefix').addClass('active');
|
2980 |
+
});
|
2981 |
+
|
2982 |
+
$(document).on('blur', input_selector, function () {
|
2983 |
+
var $inputElement = $(this);
|
2984 |
+
var selector = ".prefix";
|
2985 |
+
|
2986 |
+
if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) {
|
2987 |
+
selector += ", label";
|
2988 |
+
}
|
2989 |
+
|
2990 |
+
$inputElement.siblings(selector).removeClass('active');
|
2991 |
+
|
2992 |
+
validate_field($inputElement);
|
2993 |
+
});
|
2994 |
+
|
2995 |
+
window.validate_field = function(object) {
|
2996 |
+
var hasLength = object.attr('data-length') !== undefined;
|
2997 |
+
var lenAttr = parseInt(object.attr('data-length'));
|
2998 |
+
var len = object.val().length;
|
2999 |
+
|
3000 |
+
if (object.val().length === 0 && object[0].validity.badInput === false) {
|
3001 |
+
if (object.hasClass('validate')) {
|
3002 |
+
object.removeClass('valid');
|
3003 |
+
object.removeClass('invalid');
|
3004 |
+
}
|
3005 |
+
}
|
3006 |
+
else {
|
3007 |
+
if (object.hasClass('validate')) {
|
3008 |
+
// Check for character counter attributes
|
3009 |
+
if ((object.is(':valid') && hasLength && (len <= lenAttr)) || (object.is(':valid') && !hasLength)) {
|
3010 |
+
object.removeClass('invalid');
|
3011 |
+
object.addClass('valid');
|
3012 |
+
}
|
3013 |
+
else {
|
3014 |
+
object.removeClass('valid');
|
3015 |
+
object.addClass('invalid');
|
3016 |
+
}
|
3017 |
+
}
|
3018 |
+
}
|
3019 |
+
};
|
3020 |
+
|
3021 |
+
// Radio and Checkbox focus class
|
3022 |
+
var radio_checkbox = 'input[type=radio], input[type=checkbox]';
|
3023 |
+
$(document).on('keyup.radio', radio_checkbox, function(e) {
|
3024 |
+
// TAB, check if tabbing to radio or checkbox.
|
3025 |
+
if (e.which === 9) {
|
3026 |
+
$(this).addClass('tabbed');
|
3027 |
+
var $this = $(this);
|
3028 |
+
$this.one('blur', function(e) {
|
3029 |
+
|
3030 |
+
$(this).removeClass('tabbed');
|
3031 |
+
});
|
3032 |
+
return;
|
3033 |
+
}
|
3034 |
+
});
|
3035 |
+
|
3036 |
+
// Textarea Auto Resize
|
3037 |
+
var hiddenDiv = $('.hiddendiv').first();
|
3038 |
+
if (!hiddenDiv.length) {
|
3039 |
+
hiddenDiv = $('<div class="hiddendiv common"></div>');
|
3040 |
+
$('body').append(hiddenDiv);
|
3041 |
+
}
|
3042 |
+
var text_area_selector = '.materialize-textarea';
|
3043 |
+
|
3044 |
+
function textareaAutoResize($textarea) {
|
3045 |
+
// Set font properties of hiddenDiv
|
3046 |
+
|
3047 |
+
var fontFamily = $textarea.css('font-family');
|
3048 |
+
var fontSize = $textarea.css('font-size');
|
3049 |
+
var lineHeight = $textarea.css('line-height');
|
3050 |
+
|
3051 |
+
if (fontSize) { hiddenDiv.css('font-size', fontSize); }
|
3052 |
+
if (fontFamily) { hiddenDiv.css('font-family', fontFamily); }
|
3053 |
+
if (lineHeight) { hiddenDiv.css('line-height', lineHeight); }
|
3054 |
+
|
3055 |
+
if ($textarea.attr('wrap') === "off") {
|
3056 |
+
hiddenDiv.css('overflow-wrap', "normal")
|
3057 |
+
.css('white-space', "pre");
|
3058 |
+
}
|
3059 |
+
|
3060 |
+
hiddenDiv.text($textarea.val() + '\n');
|
3061 |
+
var content = hiddenDiv.html().replace(/\n/g, '<br>');
|
3062 |
+
hiddenDiv.html(content);
|
3063 |
+
|
3064 |
+
|
3065 |
+
// When textarea is hidden, width goes crazy.
|
3066 |
+
// Approximate with half of window size
|
3067 |
+
|
3068 |
+
if ($textarea.is(':visible')) {
|
3069 |
+
hiddenDiv.css('width', $textarea.width());
|
3070 |
+
}
|
3071 |
+
else {
|
3072 |
+
hiddenDiv.css('width', $(window).width()/2);
|
3073 |
+
}
|
3074 |
+
|
3075 |
+
$textarea.css('height', hiddenDiv.height());
|
3076 |
+
}
|
3077 |
+
|
3078 |
+
$(text_area_selector).each(function () {
|
3079 |
+
var $textarea = $(this);
|
3080 |
+
if ($textarea.val().length) {
|
3081 |
+
textareaAutoResize($textarea);
|
3082 |
+
}
|
3083 |
+
});
|
3084 |
+
|
3085 |
+
$('body').on('keyup keydown autoresize', text_area_selector, function () {
|
3086 |
+
textareaAutoResize($(this));
|
3087 |
+
});
|
3088 |
+
|
3089 |
+
// File Input Path
|
3090 |
+
$(document).on('change', '.file-field input[type="file"]', function () {
|
3091 |
+
var file_field = $(this).closest('.file-field');
|
3092 |
+
var path_input = file_field.find('input.file-path');
|
3093 |
+
var files = $(this)[0].files;
|
3094 |
+
var file_names = [];
|
3095 |
+
for (var i = 0; i < files.length; i++) {
|
3096 |
+
file_names.push(files[i].name);
|
3097 |
+
}
|
3098 |
+
path_input.val(file_names.join(", "));
|
3099 |
+
path_input.trigger('change');
|
3100 |
+
});
|
3101 |
+
|
3102 |
+
/****************
|
3103 |
+
* Range Input *
|
3104 |
+
****************/
|
3105 |
+
|
3106 |
+
var range_type = 'input[type=range]';
|
3107 |
+
var range_mousedown = false;
|
3108 |
+
var left;
|
3109 |
+
|
3110 |
+
$(range_type).each(function () {
|
3111 |
+
var thumb = $('<span class="thumb"><span class="value"></span></span>');
|
3112 |
+
$(this).after(thumb);
|
3113 |
+
});
|
3114 |
+
|
3115 |
+
var range_wrapper = '.range-field';
|
3116 |
+
$(document).on('change', range_type, function(e) {
|
3117 |
+
var thumb = $(this).siblings('.thumb');
|
3118 |
+
thumb.find('.value').html($(this).val());
|
3119 |
+
});
|
3120 |
+
|
3121 |
+
$(document).on('input mousedown touchstart', range_type, function(e) {
|
3122 |
+
var thumb = $(this).siblings('.thumb');
|
3123 |
+
var width = $(this).outerWidth();
|
3124 |
+
|
3125 |
+
// If thumb indicator does not exist yet, create it
|
3126 |
+
if (thumb.length <= 0) {
|
3127 |
+
thumb = $('<span class="thumb"><span class="value"></span></span>');
|
3128 |
+
$(this).after(thumb);
|
3129 |
+
}
|
3130 |
+
|
3131 |
+
// Set indicator value
|
3132 |
+
thumb.find('.value').html($(this).val());
|
3133 |
+
|
3134 |
+
range_mousedown = true;
|
3135 |
+
$(this).addClass('active');
|
3136 |
+
|
3137 |
+
if (!thumb.hasClass('active')) {
|
3138 |
+
thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' });
|
3139 |
+
}
|
3140 |
+
|
3141 |
+
if (e.type !== 'input') {
|
3142 |
+
if(e.pageX === undefined || e.pageX === null){//mobile
|
3143 |
+
left = e.originalEvent.touches[0].pageX - $(this).offset().left;
|
3144 |
+
}
|
3145 |
+
else{ // desktop
|
3146 |
+
left = e.pageX - $(this).offset().left;
|
3147 |
+
}
|
3148 |
+
if (left < 0) {
|
3149 |
+
left = 0;
|
3150 |
+
}
|
3151 |
+
else if (left > width) {
|
3152 |
+
left = width;
|
3153 |
+
}
|
3154 |
+
thumb.addClass('active').css('left', left);
|
3155 |
+
}
|
3156 |
+
|
3157 |
+
thumb.find('.value').html($(this).val());
|
3158 |
+
});
|
3159 |
+
|
3160 |
+
$(document).on('mouseup touchend', range_wrapper, function() {
|
3161 |
+
range_mousedown = false;
|
3162 |
+
$(this).removeClass('active');
|
3163 |
+
});
|
3164 |
+
|
3165 |
+
$(document).on('mousemove touchmove', range_wrapper, function(e) {
|
3166 |
+
var thumb = $(this).children('.thumb');
|
3167 |
+
var left;
|
3168 |
+
if (range_mousedown) {
|
3169 |
+
if (!thumb.hasClass('active')) {
|
3170 |
+
thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' });
|
3171 |
+
}
|
3172 |
+
if (e.pageX === undefined || e.pageX === null) { //mobile
|
3173 |
+
left = e.originalEvent.touches[0].pageX - $(this).offset().left;
|
3174 |
+
}
|
3175 |
+
else{ // desktop
|
3176 |
+
left = e.pageX - $(this).offset().left;
|
3177 |
+
}
|
3178 |
+
var width = $(this).outerWidth();
|
3179 |
+
|
3180 |
+
if (left < 0) {
|
3181 |
+
left = 0;
|
3182 |
+
}
|
3183 |
+
else if (left > width) {
|
3184 |
+
left = width;
|
3185 |
+
}
|
3186 |
+
thumb.addClass('active').css('left', left);
|
3187 |
+
thumb.find('.value').html(thumb.siblings(range_type).val());
|
3188 |
+
}
|
3189 |
+
});
|
3190 |
+
|
3191 |
+
$(document).on('mouseout touchleave', range_wrapper, function() {
|
3192 |
+
if (!range_mousedown) {
|
3193 |
+
|
3194 |
+
var thumb = $(this).children('.thumb');
|
3195 |
+
|
3196 |
+
if (thumb.hasClass('active')) {
|
3197 |
+
thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 });
|
3198 |
+
}
|
3199 |
+
thumb.removeClass('active');
|
3200 |
+
}
|
3201 |
+
});
|
3202 |
+
|
3203 |
+
/**************************
|
3204 |
+
* Auto complete plugin *
|
3205 |
+
*************************/
|
3206 |
+
$.fn.autocomplete = function (options) {
|
3207 |
+
// Defaults
|
3208 |
+
var defaults = {
|
3209 |
+
data: {},
|
3210 |
+
limit: Infinity,
|
3211 |
+
onAutocomplete: null
|
3212 |
+
};
|
3213 |
+
|
3214 |
+
options = $.extend(defaults, options);
|
3215 |
+
|
3216 |
+
return this.each(function() {
|
3217 |
+
var $input = $(this);
|
3218 |
+
var data = options.data,
|
3219 |
+
count = 0,
|
3220 |
+
activeIndex = 0,
|
3221 |
+
oldVal,
|
3222 |
+
$inputDiv = $input.closest('.input-field'); // Div to append on
|
3223 |
+
|
3224 |
+
// Check if data isn't empty
|
3225 |
+
if (!$.isEmptyObject(data)) {
|
3226 |
+
var $autocomplete = $('<ul class="autocomplete-content dropdown-content"></ul>');
|
3227 |
+
var $oldAutocomplete;
|
3228 |
+
|
3229 |
+
// Append autocomplete element.
|
3230 |
+
// Prevent double structure init.
|
3231 |
+
if ($inputDiv.length) {
|
3232 |
+
$oldAutocomplete = $inputDiv.children('.autocomplete-content.dropdown-content').first();
|
3233 |
+
if (!$oldAutocomplete.length) {
|
3234 |
+
$inputDiv.append($autocomplete); // Set ul in body
|
3235 |
+
}
|
3236 |
+
} else {
|
3237 |
+
$oldAutocomplete = $input.next('.autocomplete-content.dropdown-content');
|
3238 |
+
if (!$oldAutocomplete.length) {
|
3239 |
+
$input.after($autocomplete);
|
3240 |
+
}
|
3241 |
+
}
|
3242 |
+
if ($oldAutocomplete.length) {
|
3243 |
+
$autocomplete = $oldAutocomplete;
|
3244 |
+
}
|
3245 |
+
|
3246 |
+
// Highlight partial match.
|
3247 |
+
var highlight = function(string, $el) {
|
3248 |
+
var img = $el.find('img');
|
3249 |
+
var matchStart = $el.text().toLowerCase().indexOf("" + string.toLowerCase() + ""),
|
3250 |
+
matchEnd = matchStart + string.length - 1,
|
3251 |
+
beforeMatch = $el.text().slice(0, matchStart),
|
3252 |
+
matchText = $el.text().slice(matchStart, matchEnd + 1),
|
3253 |
+
afterMatch = $el.text().slice(matchEnd + 1);
|
3254 |
+
$el.html("<span>" + beforeMatch + "<span class='highlight'>" + matchText + "</span>" + afterMatch + "</span>");
|
3255 |
+
if (img.length) {
|
3256 |
+
$el.prepend(img);
|
3257 |
+
}
|
3258 |
+
};
|
3259 |
+
|
3260 |
+
// Reset current element position
|
3261 |
+
var resetCurrentElement = function() {
|
3262 |
+
activeIndex = 0;
|
3263 |
+
$autocomplete.find('.active').removeClass('active');
|
3264 |
+
}
|
3265 |
+
|
3266 |
+
// Perform search
|
3267 |
+
$input.off('keyup.autocomplete').on('keyup.autocomplete', function (e) {
|
3268 |
+
// Reset count.
|
3269 |
+
count = 0;
|
3270 |
+
|
3271 |
+
// Don't capture enter or arrow key usage.
|
3272 |
+
if (e.which === 13 ||
|
3273 |
+
e.which === 38 ||
|
3274 |
+
e.which === 40) {
|
3275 |
+
return;
|
3276 |
+
}
|
3277 |
+
|
3278 |
+
var val = $input.val().toLowerCase();
|
3279 |
+
|
3280 |
+
// Check if the input isn't empty
|
3281 |
+
if (oldVal !== val) {
|
3282 |
+
$autocomplete.empty();
|
3283 |
+
resetCurrentElement();
|
3284 |
+
|
3285 |
+
if (val !== '') {
|
3286 |
+
for(var key in data) {
|
3287 |
+
if (data.hasOwnProperty(key) &&
|
3288 |
+
key.toLowerCase().indexOf(val) !== -1 &&
|
3289 |
+
key.toLowerCase() !== val) {
|
3290 |
+
// Break if past limit
|
3291 |
+
if (count >= options.limit) {
|
3292 |
+
break;
|
3293 |
+
}
|
3294 |
+
|
3295 |
+
var autocompleteOption = $('<li></li>');
|
3296 |
+
if (!!data[key]) {
|
3297 |
+
autocompleteOption.append('<img src="'+ data[key] +'" class="right circle"><span>'+ key +'</span>');
|
3298 |
+
} else {
|
3299 |
+
autocompleteOption.append('<span>'+ key +'</span>');
|
3300 |
+
}
|
3301 |
+
|
3302 |
+
$autocomplete.append(autocompleteOption);
|
3303 |
+
highlight(val, autocompleteOption);
|
3304 |
+
count++;
|
3305 |
+
}
|
3306 |
+
}
|
3307 |
+
}
|
3308 |
+
}
|
3309 |
+
|
3310 |
+
// Update oldVal
|
3311 |
+
oldVal = val;
|
3312 |
+
});
|
3313 |
+
|
3314 |
+
$input.off('keydown.autocomplete').on('keydown.autocomplete', function (e) {
|
3315 |
+
// Arrow keys and enter key usage
|
3316 |
+
var keyCode = e.which,
|
3317 |
+
liElement,
|
3318 |
+
numItems = $autocomplete.children('li').length,
|
3319 |
+
$active = $autocomplete.children('.active').first();
|
3320 |
+
|
3321 |
+
// select element on Enter
|
3322 |
+
if (keyCode === 13) {
|
3323 |
+
liElement = $autocomplete.children('li').eq(activeIndex);
|
3324 |
+
if (liElement.length) {
|
3325 |
+
liElement.click();
|
3326 |
+
e.preventDefault();
|
3327 |
+
}
|
3328 |
+
return;
|
3329 |
+
}
|
3330 |
+
|
3331 |
+
// Capture up and down key
|
3332 |
+
if ( keyCode === 38 || keyCode === 40 ) {
|
3333 |
+
e.preventDefault();
|
3334 |
+
|
3335 |
+
if (keyCode === 38 &&
|
3336 |
+
activeIndex > 0) {
|
3337 |
+
activeIndex--;
|
3338 |
+
}
|
3339 |
+
|
3340 |
+
if (keyCode === 40 &&
|
3341 |
+
activeIndex < (numItems - 1) &&
|
3342 |
+
$active.length) {
|
3343 |
+
activeIndex++;
|
3344 |
+
}
|
3345 |
+
|
3346 |
+
$active.removeClass('active');
|
3347 |
+
$autocomplete.children('li').eq(activeIndex).addClass('active');
|
3348 |
+
}
|
3349 |
+
});
|
3350 |
+
|
3351 |
+
// Set input value
|
3352 |
+
$autocomplete.on('click', 'li', function () {
|
3353 |
+
var text = $(this).text().trim();
|
3354 |
+
$input.val(text);
|
3355 |
+
$input.trigger('change');
|
3356 |
+
$autocomplete.empty();
|
3357 |
+
resetCurrentElement();
|
3358 |
+
|
3359 |
+
// Handle onAutocomplete callback.
|
3360 |
+
if (typeof(options.onAutocomplete) === "function") {
|
3361 |
+
options.onAutocomplete.call(this, text);
|
3362 |
+
}
|
3363 |
+
});
|
3364 |
+
}
|
3365 |
+
});
|
3366 |
+
};
|
3367 |
+
|
3368 |
+
}); // End of $(document).ready
|
3369 |
+
|
3370 |
+
/*******************
|
3371 |
+
* Select Plugin *
|
3372 |
+
******************/
|
3373 |
+
$.fn.material_select = function (callback) {
|
3374 |
+
$(this).each(function(){
|
3375 |
+
var $select = $(this);
|
3376 |
+
|
3377 |
+
if ($select.hasClass('browser-default')) {
|
3378 |
+
return; // Continue to next (return false breaks out of entire loop)
|
3379 |
+
}
|
3380 |
+
|
3381 |
+
var multiple = $select.attr('multiple') ? true : false,
|
3382 |
+
lastID = $select.data('select-id'); // Tear down structure if Select needs to be rebuilt
|
3383 |
+
|
3384 |
+
if (lastID) {
|
3385 |
+
$select.parent().find('span.caret').remove();
|
3386 |
+
$select.parent().find('input').remove();
|
3387 |
+
|
3388 |
+
$select.unwrap();
|
3389 |
+
$('ul#select-options-'+lastID).remove();
|
3390 |
+
}
|
3391 |
+
|
3392 |
+
// If destroying the select, remove the selelct-id and reset it to it's uninitialized state.
|
3393 |
+
if(callback === 'destroy') {
|
3394 |
+
$select.data('select-id', null).removeClass('initialized');
|
3395 |
+
return;
|
3396 |
+
}
|
3397 |
+
|
3398 |
+
var uniqueID = Materialize.guid();
|
3399 |
+
$select.data('select-id', uniqueID);
|
3400 |
+
var wrapper = $('<div class="select-wrapper"></div>');
|
3401 |
+
wrapper.addClass($select.attr('class'));
|
3402 |
+
var options = $('<ul id="select-options-' + uniqueID +'" class="dropdown-content select-dropdown ' + (multiple ? 'multiple-select-dropdown' : '') + '"></ul>'),
|
3403 |
+
selectChildren = $select.children('option, optgroup'),
|
3404 |
+
valuesSelected = [],
|
3405 |
+
optionsHover = false;
|
3406 |
+
|
3407 |
+
var label = $select.find('option:selected').html() || $select.find('option:first').html() || "";
|
3408 |
+
|
3409 |
+
// Function that renders and appends the option taking into
|
3410 |
+
// account type and possible image icon.
|
3411 |
+
var appendOptionWithIcon = function(select, option, type) {
|
3412 |
+
// Add disabled attr if disabled
|
3413 |
+
var disabledClass = (option.is(':disabled')) ? 'disabled ' : '';
|
3414 |
+
var optgroupClass = (type === 'optgroup-option') ? 'optgroup-option ' : '';
|
3415 |
+
|
3416 |
+
// add icons
|
3417 |
+
var icon_url = option.data('icon');
|
3418 |
+
var classes = option.attr('class');
|
3419 |
+
if (!!icon_url) {
|
3420 |
+
var classString = '';
|
3421 |
+
if (!!classes) classString = ' class="' + classes + '"';
|
3422 |
+
|
3423 |
+
// Check for multiple type.
|
3424 |
+
if (type === 'multiple') {
|
3425 |
+
options.append($('<li class="' + disabledClass + '"><img alt="" src="' + icon_url + '"' + classString + '><span><input type="checkbox"' + disabledClass + '/><label></label>' + option.html() + '</span></li>'));
|
3426 |
+
} else {
|
3427 |
+
options.append($('<li class="' + disabledClass + optgroupClass + '"><img alt="" src="' + icon_url + '"' + classString + '><span>' + option.html() + '</span></li>'));
|
3428 |
+
}
|
3429 |
+
return true;
|
3430 |
+
}
|
3431 |
+
|
3432 |
+
// Check for multiple type.
|
3433 |
+
if (type === 'multiple') {
|
3434 |
+
options.append($('<li class="' + disabledClass + '"><span><input type="checkbox"' + disabledClass + '/><label></label>' + option.html() + '</span></li>'));
|
3435 |
+
} else {
|
3436 |
+
options.append($('<li class="' + disabledClass + optgroupClass + '"><span>' + option.html() + '</span></li>'));
|
3437 |
+
}
|
3438 |
+
};
|
3439 |
+
|
3440 |
+
/* Create dropdown structure. */
|
3441 |
+
if (selectChildren.length) {
|
3442 |
+
selectChildren.each(function() {
|
3443 |
+
if ($(this).is('option')) {
|
3444 |
+
// Direct descendant option.
|
3445 |
+
if (multiple) {
|
3446 |
+
appendOptionWithIcon($select, $(this), 'multiple');
|
3447 |
+
|
3448 |
+
} else {
|
3449 |
+
appendOptionWithIcon($select, $(this));
|
3450 |
+
}
|
3451 |
+
} else if ($(this).is('optgroup')) {
|
3452 |
+
// Optgroup.
|
3453 |
+
var selectOptions = $(this).children('option');
|
3454 |
+
options.append($('<li class="optgroup"><span>' + $(this).attr('label') + '</span></li>'));
|
3455 |
+
|
3456 |
+
selectOptions.each(function() {
|
3457 |
+
appendOptionWithIcon($select, $(this), 'optgroup-option');
|
3458 |
+
});
|
3459 |
+
}
|
3460 |
+
});
|
3461 |
+
}
|
3462 |
+
|
3463 |
+
options.find('li:not(.optgroup)').each(function (i) {
|
3464 |
+
$(this).click(function (e) {
|
3465 |
+
// Check if option element is disabled
|
3466 |
+
if (!$(this).hasClass('disabled') && !$(this).hasClass('optgroup')) {
|
3467 |
+
var selected = true;
|
3468 |
+
|
3469 |
+
if (multiple) {
|
3470 |
+
$('input[type="checkbox"]', this).prop('checked', function(i, v) { return !v; });
|
3471 |
+
selected = toggleEntryFromArray(valuesSelected, $(this).index(), $select);
|
3472 |
+
$newSelect.trigger('focus');
|
3473 |
+
} else {
|
3474 |
+
options.find('li').removeClass('active');
|
3475 |
+
$(this).toggleClass('active');
|
3476 |
+
$newSelect.val($(this).text());
|
3477 |
+
}
|
3478 |
+
|
3479 |
+
activateOption(options, $(this));
|
3480 |
+
$select.find('option').eq(i).prop('selected', selected);
|
3481 |
+
// Trigger onchange() event
|
3482 |
+
$select.trigger('change');
|
3483 |
+
if (typeof callback !== 'undefined') callback();
|
3484 |
+
}
|
3485 |
+
|
3486 |
+
e.stopPropagation();
|
3487 |
+
});
|
3488 |
+
});
|
3489 |
+
|
3490 |
+
// Wrap Elements
|
3491 |
+
$select.wrap(wrapper);
|
3492 |
+
// Add Select Display Element
|
3493 |
+
var dropdownIcon = $('<span class="caret">▼</span>');
|
3494 |
+
if ($select.is(':disabled'))
|
3495 |
+
dropdownIcon.addClass('disabled');
|
3496 |
+
|
3497 |
+
// escape double quotes
|
3498 |
+
var sanitizedLabelHtml = label.replace(/"/g, '"');
|
3499 |
+
|
3500 |
+
var $newSelect = $('<input type="text" class="select-dropdown" readonly="true" ' + (($select.is(':disabled')) ? 'disabled' : '') + ' data-activates="select-options-' + uniqueID +'" value="'+ sanitizedLabelHtml +'"/>');
|
3501 |
+
$select.before($newSelect);
|
3502 |
+
$newSelect.before(dropdownIcon);
|
3503 |
+
|
3504 |
+
$newSelect.after(options);
|
3505 |
+
// Check if section element is disabled
|
3506 |
+
if (!$select.is(':disabled')) {
|
3507 |
+
$newSelect.dropdown({'hover': false, 'closeOnClick': false});
|
3508 |
+
}
|
3509 |
+
|
3510 |
+
// Copy tabindex
|
3511 |
+
if ($select.attr('tabindex')) {
|
3512 |
+
$($newSelect[0]).attr('tabindex', $select.attr('tabindex'));
|
3513 |
+
}
|
3514 |
+
|
3515 |
+
$select.addClass('initialized');
|
3516 |
+
|
3517 |
+
$newSelect.on({
|
3518 |
+
'focus': function (){
|
3519 |
+
if ($('ul.select-dropdown').not(options[0]).is(':visible')) {
|
3520 |
+
$('input.select-dropdown').trigger('close');
|
3521 |
+
}
|
3522 |
+
if (!options.is(':visible')) {
|
3523 |
+
$(this).trigger('open', ['focus']);
|
3524 |
+
var label = $(this).val();
|
3525 |
+
if (multiple && label.indexOf(',') >= 0) {
|
3526 |
+
label = label.split(',')[0];
|
3527 |
+
}
|
3528 |
+
|
3529 |
+
var selectedOption = options.find('li').filter(function() {
|
3530 |
+
return $(this).text().toLowerCase() === label.toLowerCase();
|
3531 |
+
})[0];
|
3532 |
+
activateOption(options, selectedOption, true);
|
3533 |
+
}
|
3534 |
+
},
|
3535 |
+
'click': function (e){
|
3536 |
+
e.stopPropagation();
|
3537 |
+
}
|
3538 |
+
});
|
3539 |
+
|
3540 |
+
$newSelect.on('blur', function() {
|
3541 |
+
if (!multiple) {
|
3542 |
+
$(this).trigger('close');
|
3543 |
+
}
|
3544 |
+
options.find('li.selected').removeClass('selected');
|
3545 |
+
});
|
3546 |
+
|
3547 |
+
options.hover(function() {
|
3548 |
+
optionsHover = true;
|
3549 |
+
}, function () {
|
3550 |
+
optionsHover = false;
|
3551 |
+
});
|
3552 |
+
|
3553 |
+
$(window).on({
|
3554 |
+
'click': function () {
|
3555 |
+
multiple && (optionsHover || $newSelect.trigger('close'));
|
3556 |
+
}
|
3557 |
+
});
|
3558 |
+
|
3559 |
+
// Add initial multiple selections.
|
3560 |
+
if (multiple) {
|
3561 |
+
$select.find("option:selected:not(:disabled)").each(function () {
|
3562 |
+
var index = $(this).index();
|
3563 |
+
|
3564 |
+
toggleEntryFromArray(valuesSelected, index, $select);
|
3565 |
+
options.find("li").eq(index).find(":checkbox").prop("checked", true);
|
3566 |
+
});
|
3567 |
+
}
|
3568 |
+
|
3569 |
+
/**
|
3570 |
+
* Make option as selected and scroll to selected position
|
3571 |
+
* @param {jQuery} collection Select options jQuery element
|
3572 |
+
* @param {Element} newOption element of the new option
|
3573 |
+
* @param {Boolean} firstActivation If on first activation of select
|
3574 |
+
*/
|
3575 |
+
var activateOption = function(collection, newOption, firstActivation) {
|
3576 |
+
if (newOption) {
|
3577 |
+
collection.find('li.selected').removeClass('selected');
|
3578 |
+
var option = $(newOption);
|
3579 |
+
option.addClass('selected');
|
3580 |
+
if (!multiple || !!firstActivation) {
|
3581 |
+
options.scrollTo(option);
|
3582 |
+
}
|
3583 |
+
}
|
3584 |
+
};
|
3585 |
+
|
3586 |
+
// Allow user to search by typing
|
3587 |
+
// this array is cleared after 1 second
|
3588 |
+
var filterQuery = [],
|
3589 |
+
onKeyDown = function(e){
|
3590 |
+
// TAB - switch to another input
|
3591 |
+
if(e.which == 9){
|
3592 |
+
$newSelect.trigger('close');
|
3593 |
+
return;
|
3594 |
+
}
|
3595 |
+
|
3596 |
+
// ARROW DOWN WHEN SELECT IS CLOSED - open select options
|
3597 |
+
if(e.which == 40 && !options.is(':visible')){
|
3598 |
+
$newSelect.trigger('open');
|
3599 |
+
return;
|
3600 |
+
}
|
3601 |
+
|
3602 |
+
// ENTER WHEN SELECT IS CLOSED - submit form
|
3603 |
+
if(e.which == 13 && !options.is(':visible')){
|
3604 |
+
return;
|
3605 |
+
}
|
3606 |
+
|
3607 |
+
e.preventDefault();
|
3608 |
+
|
3609 |
+
// CASE WHEN USER TYPE LETTERS
|
3610 |
+
var letter = String.fromCharCode(e.which).toLowerCase(),
|
3611 |
+
nonLetters = [9,13,27,38,40];
|
3612 |
+
if (letter && (nonLetters.indexOf(e.which) === -1)) {
|
3613 |
+
filterQuery.push(letter);
|
3614 |
+
|
3615 |
+
var string = filterQuery.join(''),
|
3616 |
+
newOption = options.find('li').filter(function() {
|
3617 |
+
return $(this).text().toLowerCase().indexOf(string) === 0;
|
3618 |
+
})[0];
|
3619 |
+
|
3620 |
+
if (newOption) {
|
3621 |
+
activateOption(options, newOption);
|
3622 |
+
}
|
3623 |
+
}
|
3624 |
+
|
3625 |
+
// ENTER - select option and close when select options are opened
|
3626 |
+
if (e.which == 13) {
|
3627 |
+
var activeOption = options.find('li.selected:not(.disabled)')[0];
|
3628 |
+
if(activeOption){
|
3629 |
+
$(activeOption).trigger('click');
|
3630 |
+
if (!multiple) {
|
3631 |
+
$newSelect.trigger('close');
|
3632 |
+
}
|
3633 |
+
}
|
3634 |
+
}
|
3635 |
+
|
3636 |
+
// ARROW DOWN - move to next not disabled option
|
3637 |
+
if (e.which == 40) {
|
3638 |
+
if (options.find('li.selected').length) {
|
3639 |
+
newOption = options.find('li.selected').next('li:not(.disabled)')[0];
|
3640 |
+
} else {
|
3641 |
+
newOption = options.find('li:not(.disabled)')[0];
|
3642 |
+
}
|
3643 |
+
activateOption(options, newOption);
|
3644 |
+
}
|
3645 |
+
|
3646 |
+
// ESC - close options
|
3647 |
+
if (e.which == 27) {
|
3648 |
+
$newSelect.trigger('close');
|
3649 |
+
}
|
3650 |
+
|
3651 |
+
// ARROW UP - move to previous not disabled option
|
3652 |
+
if (e.which == 38) {
|
3653 |
+
newOption = options.find('li.selected').prev('li:not(.disabled)')[0];
|
3654 |
+
if(newOption)
|
3655 |
+
activateOption(options, newOption);
|
3656 |
+
}
|
3657 |
+
|
3658 |
+
// Automaticaly clean filter query so user can search again by starting letters
|
3659 |
+
setTimeout(function(){ filterQuery = []; }, 1000);
|
3660 |
+
};
|
3661 |
+
|
3662 |
+
$newSelect.on('keydown', onKeyDown);
|
3663 |
+
});
|
3664 |
+
|
3665 |
+
function toggleEntryFromArray(entriesArray, entryIndex, select) {
|
3666 |
+
var index = entriesArray.indexOf(entryIndex),
|
3667 |
+
notAdded = index === -1;
|
3668 |
+
|
3669 |
+
if (notAdded) {
|
3670 |
+
entriesArray.push(entryIndex);
|
3671 |
+
} else {
|
3672 |
+
entriesArray.splice(index, 1);
|
3673 |
+
}
|
3674 |
+
|
3675 |
+
select.siblings('ul.dropdown-content').find('li').eq(entryIndex).toggleClass('active');
|
3676 |
+
|
3677 |
+
// use notAdded instead of true (to detect if the option is selected or not)
|
3678 |
+
select.find('option').eq(entryIndex).prop('selected', notAdded);
|
3679 |
+
setValueToInput(entriesArray, select);
|
3680 |
+
|
3681 |
+
return notAdded;
|
3682 |
+
}
|
3683 |
+
|
3684 |
+
function setValueToInput(entriesArray, select) {
|
3685 |
+
var value = '';
|
3686 |
+
|
3687 |
+
for (var i = 0, count = entriesArray.length; i < count; i++) {
|
3688 |
+
var text = select.find('option').eq(entriesArray[i]).text();
|
3689 |
+
|
3690 |
+
i === 0 ? value += text : value += ', ' + text;
|
3691 |
+
}
|
3692 |
+
|
3693 |
+
if (value === '') {
|
3694 |
+
value = select.find('option:disabled').eq(0).text();
|
3695 |
+
}
|
3696 |
+
|
3697 |
+
select.siblings('input.select-dropdown').val(value);
|
3698 |
+
}
|
3699 |
+
};
|
3700 |
+
|
3701 |
+
}( jQuery ));
|
3702 |
+
;(function ($) {
|
3703 |
+
|
3704 |
+
var methods = {
|
3705 |
+
|
3706 |
+
init : function(options) {
|
3707 |
+
var defaults = {
|
3708 |
+
indicators: true,
|
3709 |
+
height: 400,
|
3710 |
+
transition: 500,
|
3711 |
+
interval: 6000
|
3712 |
+
};
|
3713 |
+
options = $.extend(defaults, options);
|
3714 |
+
|
3715 |
+
return this.each(function() {
|
3716 |
+
|
3717 |
+
// For each slider, we want to keep track of
|
3718 |
+
// which slide is active and its associated content
|
3719 |
+
var $this = $(this);
|
3720 |
+
var $slider = $this.find('ul.slides').first();
|
3721 |
+
var $slides = $slider.find('> li');
|
3722 |
+
var $active_index = $slider.find('.active').index();
|
3723 |
+
var $active, $indicators, $interval;
|
3724 |
+
if ($active_index != -1) { $active = $slides.eq($active_index); }
|
3725 |
+
|
3726 |
+
// Transitions the caption depending on alignment
|
3727 |
+
function captionTransition(caption, duration) {
|
3728 |
+
if (caption.hasClass("center-align")) {
|
3729 |
+
caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false});
|
3730 |
+
}
|
3731 |
+
else if (caption.hasClass("right-align")) {
|
3732 |
+
caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false});
|
3733 |
+
}
|
3734 |
+
else if (caption.hasClass("left-align")) {
|
3735 |
+
caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false});
|
3736 |
+
}
|
3737 |
+
}
|
3738 |
+
|
3739 |
+
// This function will transition the slide to any index of the next slide
|
3740 |
+
function moveToSlide(index) {
|
3741 |
+
// Wrap around indices.
|
3742 |
+
if (index >= $slides.length) index = 0;
|
3743 |
+
else if (index < 0) index = $slides.length -1;
|
3744 |
+
|
3745 |
+
$active_index = $slider.find('.active').index();
|
3746 |
+
|
3747 |
+
// Only do if index changes
|
3748 |
+
if ($active_index != index) {
|
3749 |
+
$active = $slides.eq($active_index);
|
3750 |
+
$caption = $active.find('.caption');
|
3751 |
+
|
3752 |
+
$active.removeClass('active');
|
3753 |
+
$active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad',
|
3754 |
+
complete: function() {
|
3755 |
+
$slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false});
|
3756 |
+
} });
|
3757 |
+
captionTransition($caption, options.transition);
|
3758 |
+
|
3759 |
+
|
3760 |
+
// Update indicators
|
3761 |
+
if (options.indicators) {
|
3762 |
+
$indicators.eq($active_index).removeClass('active');
|
3763 |
+
}
|
3764 |
+
|
3765 |
+
$slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
|
3766 |
+
$slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'});
|
3767 |
+
$slides.eq(index).addClass('active');
|
3768 |
+
|
3769 |
+
|
3770 |
+
// Update indicators
|
3771 |
+
if (options.indicators) {
|
3772 |
+
$indicators.eq(index).addClass('active');
|
3773 |
+
}
|
3774 |
+
}
|
3775 |
+
}
|
3776 |
+
|
3777 |
+
// Set height of slider
|
3778 |
+
// If fullscreen, do nothing
|
3779 |
+
if (!$this.hasClass('fullscreen')) {
|
3780 |
+
if (options.indicators) {
|
3781 |
+
// Add height if indicators are present
|
3782 |
+
$this.height(options.height + 40);
|
3783 |
+
}
|
3784 |
+
else {
|
3785 |
+
$this.height(options.height);
|
3786 |
+
}
|
3787 |
+
$slider.height(options.height);
|
3788 |
+
}
|
3789 |
+
|
3790 |
+
|
3791 |
+
// Set initial positions of captions
|
3792 |
+
$slides.find('.caption').each(function () {
|
3793 |
+
captionTransition($(this), 0);
|
3794 |
+
});
|
3795 |
+
|
3796 |
+
// Move img src into background-image
|
3797 |
+
$slides.find('img').each(function () {
|
3798 |
+
var placeholderBase64 = 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
3799 |
+
if ($(this).attr('src') !== placeholderBase64) {
|
3800 |
+
$(this).css('background-image', 'url(' + $(this).attr('src') + ')' );
|
3801 |
+
$(this).attr('src', placeholderBase64);
|
3802 |
+
}
|
3803 |
+
});
|
3804 |
+
|
3805 |
+
// dynamically add indicators
|
3806 |
+
if (options.indicators) {
|
3807 |
+
$indicators = $('<ul class="indicators"></ul>');
|
3808 |
+
$slides.each(function( index ) {
|
3809 |
+
var $indicator = $('<li class="indicator-item"></li>');
|
3810 |
+
|
3811 |
+
// Handle clicks on indicators
|
3812 |
+
$indicator.click(function () {
|
3813 |
+
var $parent = $slider.parent();
|
3814 |
+
var curr_index = $parent.find($(this)).index();
|
3815 |
+
moveToSlide(curr_index);
|
3816 |
+
|
3817 |
+
// reset interval
|
3818 |
+
clearInterval($interval);
|
3819 |
+
$interval = setInterval(
|
3820 |
+
function(){
|
3821 |
+
$active_index = $slider.find('.active').index();
|
3822 |
+
if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
|
3823 |
+
else $active_index += 1;
|
3824 |
+
|
3825 |
+
moveToSlide($active_index);
|
3826 |
+
|
3827 |
+
}, options.transition + options.interval
|
3828 |
+
);
|
3829 |
+
});
|
3830 |
+
$indicators.append($indicator);
|
3831 |
+
});
|
3832 |
+
$this.append($indicators);
|
3833 |
+
$indicators = $this.find('ul.indicators').find('li.indicator-item');
|
3834 |
+
}
|
3835 |
+
|
3836 |
+
if ($active) {
|
3837 |
+
$active.show();
|
3838 |
+
}
|
3839 |
+
else {
|
3840 |
+
$slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
|
3841 |
+
|
3842 |
+
$active_index = 0;
|
3843 |
+
$active = $slides.eq($active_index);
|
3844 |
+
|
3845 |
+
// Update indicators
|
3846 |
+
if (options.indicators) {
|
3847 |
+
$indicators.eq($active_index).addClass('active');
|
3848 |
+
}
|
3849 |
+
}
|
3850 |
+
|
3851 |
+
// Adjust height to current slide
|
3852 |
+
$active.find('img').each(function() {
|
3853 |
+
$active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
|
3854 |
+
});
|
3855 |
+
|
3856 |
+
// auto scroll
|
3857 |
+
$interval = setInterval(
|
3858 |
+
function(){
|
3859 |
+
$active_index = $slider.find('.active').index();
|
3860 |
+
moveToSlide($active_index + 1);
|
3861 |
+
|
3862 |
+
}, options.transition + options.interval
|
3863 |
+
);
|
3864 |
+
|
3865 |
+
|
3866 |
+
// HammerJS, Swipe navigation
|
3867 |
+
|
3868 |
+
// Touch Event
|
3869 |
+
var panning = false;
|
3870 |
+
var swipeLeft = false;
|
3871 |
+
var swipeRight = false;
|
3872 |
+
|
3873 |
+
$this.hammer({
|
3874 |
+
prevent_default: false
|
3875 |
+
}).bind('pan', function(e) {
|
3876 |
+
if (e.gesture.pointerType === "touch") {
|
3877 |
+
|
3878 |
+
// reset interval
|
3879 |
+
clearInterval($interval);
|
3880 |
+
|
3881 |
+
var direction = e.gesture.direction;
|
3882 |
+
var x = e.gesture.deltaX;
|
3883 |
+
var velocityX = e.gesture.velocityX;
|
3884 |
+
var velocityY = e.gesture.velocityY;
|
3885 |
+
|
3886 |
+
$curr_slide = $slider.find('.active');
|
3887 |
+
if (Math.abs(velocityX) > Math.abs(velocityY)) {
|
3888 |
+
$curr_slide.velocity({ translateX: x
|
3889 |
+
}, {duration: 50, queue: false, easing: 'easeOutQuad'});
|
3890 |
+
}
|
3891 |
+
|
3892 |
+
// Swipe Left
|
3893 |
+
if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) {
|
3894 |
+
swipeRight = true;
|
3895 |
+
}
|
3896 |
+
// Swipe Right
|
3897 |
+
else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) {
|
3898 |
+
swipeLeft = true;
|
3899 |
+
}
|
3900 |
+
|
3901 |
+
// Make Slide Behind active slide visible
|
3902 |
+
var next_slide;
|
3903 |
+
if (swipeLeft) {
|
3904 |
+
next_slide = $curr_slide.next();
|
3905 |
+
if (next_slide.length === 0) {
|
3906 |
+
next_slide = $slides.first();
|
3907 |
+
}
|
3908 |
+
next_slide.velocity({ opacity: 1
|
3909 |
+
}, {duration: 300, queue: false, easing: 'easeOutQuad'});
|
3910 |
+
}
|
3911 |
+
if (swipeRight) {
|
3912 |
+
next_slide = $curr_slide.prev();
|
3913 |
+
if (next_slide.length === 0) {
|
3914 |
+
next_slide = $slides.last();
|
3915 |
+
}
|
3916 |
+
next_slide.velocity({ opacity: 1
|
3917 |
+
}, {duration: 300, queue: false, easing: 'easeOutQuad'});
|
3918 |
+
}
|
3919 |
+
|
3920 |
+
|
3921 |
+
}
|
3922 |
+
|
3923 |
+
}).bind('panend', function(e) {
|
3924 |
+
if (e.gesture.pointerType === "touch") {
|
3925 |
+
|
3926 |
+
$curr_slide = $slider.find('.active');
|
3927 |
+
panning = false;
|
3928 |
+
curr_index = $slider.find('.active').index();
|
3929 |
+
|
3930 |
+
if (!swipeRight && !swipeLeft || $slides.length <=1) {
|
3931 |
+
// Return to original spot
|
3932 |
+
$curr_slide.velocity({ translateX: 0
|
3933 |
+
}, {duration: 300, queue: false, easing: 'easeOutQuad'});
|
3934 |
+
}
|
3935 |
+
else if (swipeLeft) {
|
3936 |
+
moveToSlide(curr_index + 1);
|
3937 |
+
$curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad',
|
3938 |
+
complete: function() {
|
3939 |
+
$curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false});
|
3940 |
+
} });
|
3941 |
+
}
|
3942 |
+
else if (swipeRight) {
|
3943 |
+
moveToSlide(curr_index - 1);
|
3944 |
+
$curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad',
|
3945 |
+
complete: function() {
|
3946 |
+
$curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false});
|
3947 |
+
} });
|
3948 |
+
}
|
3949 |
+
swipeLeft = false;
|
3950 |
+
swipeRight = false;
|
3951 |
+
|
3952 |
+
// Restart interval
|
3953 |
+
clearInterval($interval);
|
3954 |
+
$interval = setInterval(
|
3955 |
+
function(){
|
3956 |
+
$active_index = $slider.find('.active').index();
|
3957 |
+
if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
|
3958 |
+
else $active_index += 1;
|
3959 |
+
|
3960 |
+
moveToSlide($active_index);
|
3961 |
+
|
3962 |
+
}, options.transition + options.interval
|
3963 |
+
);
|
3964 |
+
}
|
3965 |
+
});
|
3966 |
+
|
3967 |
+
$this.on('sliderPause', function() {
|
3968 |
+
clearInterval($interval);
|
3969 |
+
});
|
3970 |
+
|
3971 |
+
$this.on('sliderStart', function() {
|
3972 |
+
clearInterval($interval);
|
3973 |
+
$interval = setInterval(
|
3974 |
+
function(){
|
3975 |
+
$active_index = $slider.find('.active').index();
|
3976 |
+
if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
|
3977 |
+
else $active_index += 1;
|
3978 |
+
|
3979 |
+
moveToSlide($active_index);
|
3980 |
+
|
3981 |
+
}, options.transition + options.interval
|
3982 |
+
);
|
3983 |
+
});
|
3984 |
+
|
3985 |
+
$this.on('sliderNext', function() {
|
3986 |
+
$active_index = $slider.find('.active').index();
|
3987 |
+
moveToSlide($active_index + 1);
|
3988 |
+
});
|
3989 |
+
|
3990 |
+
$this.on('sliderPrev', function() {
|
3991 |
+
$active_index = $slider.find('.active').index();
|
3992 |
+
moveToSlide($active_index - 1);
|
3993 |
+
});
|
3994 |
+
|
3995 |
+
});
|
3996 |
+
|
3997 |
+
|
3998 |
+
|
3999 |
+
},
|
4000 |
+
pause : function() {
|
4001 |
+
$(this).trigger('sliderPause');
|
4002 |
+
},
|
4003 |
+
start : function() {
|
4004 |
+
$(this).trigger('sliderStart');
|
4005 |
+
},
|
4006 |
+
next : function() {
|
4007 |
+
$(this).trigger('sliderNext');
|
4008 |
+
},
|
4009 |
+
prev : function() {
|
4010 |
+
$(this).trigger('sliderPrev');
|
4011 |
+
}
|
4012 |
+
};
|
4013 |
+
|
4014 |
+
|
4015 |
+
$.fn.slider = function(methodOrOptions) {
|
4016 |
+
if ( methods[methodOrOptions] ) {
|
4017 |
+
return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
4018 |
+
} else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
|
4019 |
+
// Default to "init"
|
4020 |
+
return methods.init.apply( this, arguments );
|
4021 |
+
} else {
|
4022 |
+
$.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' );
|
4023 |
+
}
|
4024 |
+
}; // Plugin end
|
4025 |
+
}( jQuery ));
|
4026 |
+
;(function ($) {
|
4027 |
+
$(document).ready(function() {
|
4028 |
+
|
4029 |
+
$(document).on('click.card', '.card', function (e) {
|
4030 |
+
if ($(this).find('> .card-reveal').length) {
|
4031 |
+
if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) {
|
4032 |
+
// Make Reveal animate down and display none
|
4033 |
+
$(this).find('.card-reveal').velocity(
|
4034 |
+
{translateY: 0}, {
|
4035 |
+
duration: 225,
|
4036 |
+
queue: false,
|
4037 |
+
easing: 'easeInOutQuad',
|
4038 |
+
complete: function() { $(this).css({ display: 'none'}); }
|
4039 |
+
}
|
4040 |
+
);
|
4041 |
+
}
|
4042 |
+
else if ($(e.target).is($('.card .activator')) ||
|
4043 |
+
$(e.target).is($('.card .activator i')) ) {
|
4044 |
+
$(e.target).closest('.card').css('overflow', 'hidden');
|
4045 |
+
$(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'});
|
4046 |
+
}
|
4047 |
+
}
|
4048 |
+
});
|
4049 |
+
|
4050 |
+
});
|
4051 |
+
}( jQuery ));;(function ($) {
|
4052 |
+
var materialChipsDefaults = {
|
4053 |
+
data: [],
|
4054 |
+
placeholder: '',
|
4055 |
+
secondaryPlaceholder: '',
|
4056 |
+
autocompleteData: {},
|
4057 |
+
autocompleteLimit: Infinity,
|
4058 |
+
};
|
4059 |
+
|
4060 |
+
$(document).ready(function() {
|
4061 |
+
// Handle removal of static chips.
|
4062 |
+
$(document).on('click', '.chip .close', function(e){
|
4063 |
+
var $chips = $(this).closest('.chips');
|
4064 |
+
if ($chips.attr('data-initialized')) {
|
4065 |
+
return;
|
4066 |
+
}
|
4067 |
+
$(this).closest('.chip').remove();
|
4068 |
+
});
|
4069 |
+
});
|
4070 |
+
|
4071 |
+
$.fn.material_chip = function (options) {
|
4072 |
+
var self = this;
|
4073 |
+
this.$el = $(this);
|
4074 |
+
this.$document = $(document);
|
4075 |
+
this.SELS = {
|
4076 |
+
CHIPS: '.chips',
|
4077 |
+
CHIP: '.chip',
|
4078 |
+
INPUT: 'input',
|
4079 |
+
DELETE: '.material-icons',
|
4080 |
+
SELECTED_CHIP: '.selected',
|
4081 |
+
};
|
4082 |
+
|
4083 |
+
if ('data' === options) {
|
4084 |
+
return this.$el.data('chips');
|
4085 |
+
}
|
4086 |
+
|
4087 |
+
var curr_options = $.extend({}, materialChipsDefaults, options);
|
4088 |
+
self.hasAutocomplete = !$.isEmptyObject(curr_options.autocompleteData);
|
4089 |
+
|
4090 |
+
// Initialize
|
4091 |
+
this.init = function() {
|
4092 |
+
var i = 0;
|
4093 |
+
var chips;
|
4094 |
+
self.$el.each(function(){
|
4095 |
+
var $chips = $(this);
|
4096 |
+
var chipId = Materialize.guid();
|
4097 |
+
self.chipId = chipId;
|
4098 |
+
|
4099 |
+
if (!curr_options.data || !(curr_options.data instanceof Array)) {
|
4100 |
+
curr_options.data = [];
|
4101 |
+
}
|
4102 |
+
$chips.data('chips', curr_options.data);
|
4103 |
+
$chips.attr('data-index', i);
|
4104 |
+
$chips.attr('data-initialized', true);
|
4105 |
+
|
4106 |
+
if (!$chips.hasClass(self.SELS.CHIPS)) {
|
4107 |
+
$chips.addClass('chips');
|
4108 |
+
}
|
4109 |
+
|
4110 |
+
self.chips($chips, chipId);
|
4111 |
+
i++;
|
4112 |
+
});
|
4113 |
+
};
|
4114 |
+
|
4115 |
+
this.handleEvents = function() {
|
4116 |
+
var SELS = self.SELS;
|
4117 |
+
|
4118 |
+
self.$document.off('click.chips-focus', SELS.CHIPS).on('click.chips-focus', SELS.CHIPS, function(e){
|
4119 |
+
$(e.target).find(SELS.INPUT).focus();
|
4120 |
+
});
|
4121 |
+
|
4122 |
+
self.$document.off('click.chips-select', SELS.CHIP).on('click.chips-select', SELS.CHIP, function(e){
|
4123 |
+
var $chip = $(e.target);
|
4124 |
+
if ($chip.length) {
|
4125 |
+
var wasSelected = $chip.hasClass('selected');
|
4126 |
+
var $chips = $chip.closest(SELS.CHIPS);
|
4127 |
+
$(SELS.CHIP).removeClass('selected');
|
4128 |
+
|
4129 |
+
if (!wasSelected) {
|
4130 |
+
self.selectChip($chip.index(), $chips);
|
4131 |
+
}
|
4132 |
+
}
|
4133 |
+
});
|
4134 |
+
|
4135 |
+
self.$document.off('keydown.chips').on('keydown.chips', function(e){
|
4136 |
+
if ($(e.target).is('input, textarea')) {
|
4137 |
+
return;
|
4138 |
+
}
|
4139 |
+
|
4140 |
+
// delete
|
4141 |
+
var $chip = self.$document.find(SELS.CHIP + SELS.SELECTED_CHIP);
|
4142 |
+
var $chips = $chip.closest(SELS.CHIPS);
|
4143 |
+
var length = $chip.siblings(SELS.CHIP).length;
|
4144 |
+
var index;
|
4145 |
+
|
4146 |
+
if (!$chip.length) {
|
4147 |
+
return;
|
4148 |
+
}
|
4149 |
+
|
4150 |
+
if (e.which === 8 || e.which === 46) {
|
4151 |
+
e.preventDefault();
|
4152 |
+
|
4153 |
+
index = $chip.index();
|
4154 |
+
self.deleteChip(index, $chips);
|
4155 |
+
|
4156 |
+
var selectIndex = null;
|
4157 |
+
if ((index + 1) < length) {
|
4158 |
+
selectIndex = index;
|
4159 |
+
} else if (index === length || (index + 1) === length) {
|
4160 |
+
selectIndex = length - 1;
|
4161 |
+
}
|
4162 |
+
|
4163 |
+
if (selectIndex < 0) selectIndex = null;
|
4164 |
+
|
4165 |
+
if (null !== selectIndex) {
|
4166 |
+
self.selectChip(selectIndex, $chips);
|
4167 |
+
}
|
4168 |
+
if (!length) $chips.find('input').focus();
|
4169 |
+
|
4170 |
+
// left
|
4171 |
+
} else if (e.which === 37) {
|
4172 |
+
index = $chip.index() - 1;
|
4173 |
+
if (index < 0) {
|
4174 |
+
return;
|
4175 |
+
}
|
4176 |
+
$(SELS.CHIP).removeClass('selected');
|
4177 |
+
self.selectChip(index, $chips);
|
4178 |
+
|
4179 |
+
// right
|
4180 |
+
} else if (e.which === 39) {
|
4181 |
+
index = $chip.index() + 1;
|
4182 |
+
$(SELS.CHIP).removeClass('selected');
|
4183 |
+
if (index > length) {
|
4184 |
+
$chips.find('input').focus();
|
4185 |
+
return;
|
4186 |
+
}
|
4187 |
+
self.selectChip(index, $chips);
|
4188 |
+
}
|
4189 |
+
});
|
4190 |
+
|
4191 |
+
self.$document.off('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){
|
4192 |
+
var $currChips = $(e.target).closest(SELS.CHIPS);
|
4193 |
+
$currChips.addClass('focus');
|
4194 |
+
$currChips.siblings('label, .prefix').addClass('active');
|
4195 |
+
$(SELS.CHIP).removeClass('selected');
|
4196 |
+
});
|
4197 |
+
|
4198 |
+
self.$document.off('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){
|
4199 |
+
var $currChips = $(e.target).closest(SELS.CHIPS);
|
4200 |
+
$currChips.removeClass('focus');
|
4201 |
+
|
4202 |
+
// Remove active if empty
|
4203 |
+
if (!$currChips.data('chips').length) {
|
4204 |
+
$currChips.siblings('label').removeClass('active');
|
4205 |
+
}
|
4206 |
+
$currChips.siblings('.prefix').removeClass('active');
|
4207 |
+
});
|
4208 |
+
|
4209 |
+
self.$document.off('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT).on('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT, function(e){
|
4210 |
+
var $target = $(e.target);
|
4211 |
+
var $chips = $target.closest(SELS.CHIPS);
|
4212 |
+
var chipsLength = $chips.children(SELS.CHIP).length;
|
4213 |
+
|
4214 |
+
// enter
|
4215 |
+
if (13 === e.which) {
|
4216 |
+
// Override enter if autocompleting.
|
4217 |
+
if (self.hasAutocomplete &&
|
4218 |
+
$chips.find('.autocomplete-content.dropdown-content').length &&
|
4219 |
+
$chips.find('.autocomplete-content.dropdown-content').children().length) {
|
4220 |
+
return;
|
4221 |
+
}
|
4222 |
+
|
4223 |
+
e.preventDefault();
|
4224 |
+
self.addChip({tag: $target.val()}, $chips);
|
4225 |
+
$target.val('');
|
4226 |
+
return;
|
4227 |
+
}
|
4228 |
+
|
4229 |
+
// delete or left
|
4230 |
+
if ((8 === e.keyCode || 37 === e.keyCode) && '' === $target.val() && chipsLength) {
|
4231 |
+
e.preventDefault();
|
4232 |
+
self.selectChip(chipsLength - 1, $chips);
|
4233 |
+
$target.blur();
|
4234 |
+
return;
|
4235 |
+
}
|
4236 |
+
});
|
4237 |
+
|
4238 |
+
// Click on delete icon in chip.
|
4239 |
+
self.$document.off('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE).on('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE, function(e) {
|
4240 |
+
var $target = $(e.target);
|
4241 |
+
var $chips = $target.closest(SELS.CHIPS);
|
4242 |
+
var $chip = $target.closest(SELS.CHIP);
|
4243 |
+
e.stopPropagation();
|
4244 |
+
self.deleteChip($chip.index(), $chips);
|
4245 |
+
$chips.find('input').focus();
|
4246 |
+
});
|
4247 |
+
};
|
4248 |
+
|
4249 |
+
this.chips = function($chips, chipId) {
|
4250 |
+
var html = '';
|
4251 |
+
$chips.data('chips').forEach(function(elem){
|
4252 |
+
html += self.renderChip(elem);
|
4253 |
+
});
|
4254 |
+
html += '<input id="' + chipId +'" class="input" placeholder="">';
|
4255 |
+
$chips.html(html);
|
4256 |
+
self.setPlaceholder($chips);
|
4257 |
+
|
4258 |
+
// Set for attribute for label
|
4259 |
+
var label = $chips.next('label');
|
4260 |
+
if (label.length) {
|
4261 |
+
label.attr('for', chipId);
|
4262 |
+
|
4263 |
+
if ($chips.data('chips').length) {
|
4264 |
+
label.addClass('active');
|
4265 |
+
}
|
4266 |
+
}
|
4267 |
+
|
4268 |
+
// Setup autocomplete if needed.
|
4269 |
+
var input = $('#' + chipId);
|
4270 |
+
if (self.hasAutocomplete) {
|
4271 |
+
input.autocomplete({
|
4272 |
+
data: curr_options.autocompleteData,
|
4273 |
+
limit: curr_options.autocompleteLimit,
|
4274 |
+
onAutocomplete: function(val) {
|
4275 |
+
self.addChip({tag: val}, $chips);
|
4276 |
+
input.val('');
|
4277 |
+
input.focus();
|
4278 |
+
},
|
4279 |
+
})
|
4280 |
+
}
|
4281 |
+
};
|
4282 |
+
|
4283 |
+
this.renderChip = function(elem) {
|
4284 |
+
if (!elem.tag) return;
|
4285 |
+
|
4286 |
+
var html = '<div class="chip">' + elem.tag;
|
4287 |
+
if (elem.image) {
|
4288 |
+
html += ' <img src="' + elem.image + '"> ';
|
4289 |
+
}
|
4290 |
+
html += '<i class="material-icons close">close</i>';
|
4291 |
+
html += '</div>';
|
4292 |
+
return html;
|
4293 |
+
};
|
4294 |
+
|
4295 |
+
this.setPlaceholder = function($chips) {
|
4296 |
+
if ($chips.data('chips').length && curr_options.placeholder) {
|
4297 |
+
$chips.find('input').prop('placeholder', curr_options.placeholder);
|
4298 |
+
|
4299 |
+
} else if (!$chips.data('chips').length && curr_options.secondaryPlaceholder) {
|
4300 |
+
$chips.find('input').prop('placeholder', curr_options.secondaryPlaceholder);
|
4301 |
+
}
|
4302 |
+
};
|
4303 |
+
|
4304 |
+
this.isValid = function($chips, elem) {
|
4305 |
+
var chips = $chips.data('chips');
|
4306 |
+
var exists = false;
|
4307 |
+
for (var i=0; i < chips.length; i++) {
|
4308 |
+
if (chips[i].tag === elem.tag) {
|
4309 |
+
exists = true;
|
4310 |
+
return;
|
4311 |
+
}
|
4312 |
+
}
|
4313 |
+
return '' !== elem.tag && !exists;
|
4314 |
+
};
|
4315 |
+
|
4316 |
+
this.addChip = function(elem, $chips) {
|
4317 |
+
if (!self.isValid($chips, elem)) {
|
4318 |
+
return;
|
4319 |
+
}
|
4320 |
+
var chipHtml = self.renderChip(elem);
|
4321 |
+
var newData = [];
|
4322 |
+
var oldData = $chips.data('chips');
|
4323 |
+
for (var i = 0; i < oldData.length; i++) {
|
4324 |
+
newData.push(oldData[i]);
|
4325 |
+
}
|
4326 |
+
newData.push(elem);
|
4327 |
+
|
4328 |
+
$chips.data('chips', newData);
|
4329 |
+
$(chipHtml).insertBefore($chips.find('input'));
|
4330 |
+
$chips.trigger('chip.add', elem);
|
4331 |
+
self.setPlaceholder($chips);
|
4332 |
+
};
|
4333 |
+
|
4334 |
+
this.deleteChip = function(chipIndex, $chips) {
|
4335 |
+
var chip = $chips.data('chips')[chipIndex];
|
4336 |
+
$chips.find('.chip').eq(chipIndex).remove();
|
4337 |
+
|
4338 |
+
var newData = [];
|
4339 |
+
var oldData = $chips.data('chips');
|
4340 |
+
for (var i = 0; i < oldData.length; i++) {
|
4341 |
+
if (i !== chipIndex) {
|
4342 |
+
newData.push(oldData[i]);
|
4343 |
+
}
|
4344 |
+
}
|
4345 |
+
|
4346 |
+
$chips.data('chips', newData);
|
4347 |
+
$chips.trigger('chip.delete', chip);
|
4348 |
+
self.setPlaceholder($chips);
|
4349 |
+
};
|
4350 |
+
|
4351 |
+
this.selectChip = function(chipIndex, $chips) {
|
4352 |
+
var $chip = $chips.find('.chip').eq(chipIndex);
|
4353 |
+
if ($chip && false === $chip.hasClass('selected')) {
|
4354 |
+
$chip.addClass('selected');
|
4355 |
+
$chips.trigger('chip.select', $chips.data('chips')[chipIndex]);
|
4356 |
+
}
|
4357 |
+
};
|
4358 |
+
|
4359 |
+
this.getChipsElement = function(index, $chips) {
|
4360 |
+
return $chips.eq(index);
|
4361 |
+
};
|
4362 |
+
|
4363 |
+
// init
|
4364 |
+
this.init();
|
4365 |
+
|
4366 |
+
this.handleEvents();
|
4367 |
+
};
|
4368 |
+
}( jQuery ));
|
4369 |
+
;(function ($) {
|
4370 |
+
$.fn.pushpin = function (options) {
|
4371 |
+
// Defaults
|
4372 |
+
var defaults = {
|
4373 |
+
top: 0,
|
4374 |
+
bottom: Infinity,
|
4375 |
+
offset: 0
|
4376 |
+
};
|
4377 |
+
|
4378 |
+
// Remove pushpin event and classes
|
4379 |
+
if (options === "remove") {
|
4380 |
+
this.each(function () {
|
4381 |
+
if (id = $(this).data('pushpin-id')) {
|
4382 |
+
$(window).off('scroll.' + id);
|
4383 |
+
$(this).removeData('pushpin-id').removeClass('pin-top pinned pin-bottom').removeAttr('style');
|
4384 |
+
}
|
4385 |
+
});
|
4386 |
+
return false;
|
4387 |
+
}
|
4388 |
+
|
4389 |
+
options = $.extend(defaults, options);
|
4390 |
+
|
4391 |
+
|
4392 |
+
$index = 0;
|
4393 |
+
return this.each(function() {
|
4394 |
+
var $uniqueId = Materialize.guid(),
|
4395 |
+
$this = $(this),
|
4396 |
+
$original_offset = $(this).offset().top;
|
4397 |
+
|
4398 |
+
function removePinClasses(object) {
|
4399 |
+
object.removeClass('pin-top');
|
4400 |
+
object.removeClass('pinned');
|
4401 |
+
object.removeClass('pin-bottom');
|
4402 |
+
}
|
4403 |
+
|
4404 |
+
function updateElements(objects, scrolled) {
|
4405 |
+
objects.each(function () {
|
4406 |
+
// Add position fixed (because its between top and bottom)
|
4407 |
+
if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) {
|
4408 |
+
removePinClasses($(this));
|
4409 |
+
$(this).css('top', options.offset);
|
4410 |
+
$(this).addClass('pinned');
|
4411 |
+
}
|
4412 |
+
|
4413 |
+
// Add pin-top (when scrolled position is above top)
|
4414 |
+
if (scrolled < options.top && !$(this).hasClass('pin-top')) {
|
4415 |
+
removePinClasses($(this));
|
4416 |
+
$(this).css('top', 0);
|
4417 |
+
$(this).addClass('pin-top');
|
4418 |
+
}
|
4419 |
+
|
4420 |
+
// Add pin-bottom (when scrolled position is below bottom)
|
4421 |
+
if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) {
|
4422 |
+
removePinClasses($(this));
|
4423 |
+
$(this).addClass('pin-bottom');
|
4424 |
+
$(this).css('top', options.bottom - $original_offset);
|
4425 |
+
}
|
4426 |
+
});
|
4427 |
+
}
|
4428 |
+
|
4429 |
+
$(this).data('pushpin-id', $uniqueId);
|
4430 |
+
updateElements($this, $(window).scrollTop());
|
4431 |
+
$(window).on('scroll.' + $uniqueId, function () {
|
4432 |
+
var $scrolled = $(window).scrollTop() + options.offset;
|
4433 |
+
updateElements($this, $scrolled);
|
4434 |
+
});
|
4435 |
+
|
4436 |
+
});
|
4437 |
+
|
4438 |
+
};
|
4439 |
+
}( jQuery ));;(function ($) {
|
4440 |
+
$(document).ready(function() {
|
4441 |
+
|
4442 |
+
// jQuery reverse
|
4443 |
+
$.fn.reverse = [].reverse;
|
4444 |
+
|
4445 |
+
// Hover behaviour: make sure this doesn't work on .click-to-toggle FABs!
|
4446 |
+
$(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) {
|
4447 |
+
var $this = $(this);
|
4448 |
+
openFABMenu($this);
|
4449 |
+
});
|
4450 |
+
$(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) {
|
4451 |
+
var $this = $(this);
|
4452 |
+
closeFABMenu($this);
|
4453 |
+
});
|
4454 |
+
|
4455 |
+
// Toggle-on-click behaviour.
|
4456 |
+
$(document).on('click.fabClickToggle', '.fixed-action-btn.click-to-toggle > a', function(e) {
|
4457 |
+
var $this = $(this);
|
4458 |
+
var $menu = $this.parent();
|
4459 |
+
if ($menu.hasClass('active')) {
|
4460 |
+
closeFABMenu($menu);
|
4461 |
+
} else {
|
4462 |
+
openFABMenu($menu);
|
4463 |
+
}
|
4464 |
+
});
|
4465 |
+
|
4466 |
+
// Toolbar transition behaviour.
|
4467 |
+
$(document).on('click.fabToolbar', '.fixed-action-btn.toolbar > a', function(e) {
|
4468 |
+
var $this = $(this);
|
4469 |
+
var $menu = $this.parent();
|
4470 |
+
FABtoToolbar($menu);
|
4471 |
+
});
|
4472 |
+
|
4473 |
+
});
|
4474 |
+
|
4475 |
+
$.fn.extend({
|
4476 |
+
openFAB: function() {
|
4477 |
+
openFABMenu($(this));
|
4478 |
+
},
|
4479 |
+
closeFAB: function() {
|
4480 |
+
closeFABMenu($(this));
|
4481 |
+
},
|
4482 |
+
openToolbar: function() {
|
4483 |
+
FABtoToolbar($(this));
|
4484 |
+
},
|
4485 |
+
closeToolbar: function() {
|
4486 |
+
toolbarToFAB($(this));
|
4487 |
+
}
|
4488 |
+
});
|
4489 |
+
|
4490 |
+
|
4491 |
+
var openFABMenu = function (btn) {
|
4492 |
+
var $this = btn;
|
4493 |
+
if ($this.hasClass('active') === false) {
|
4494 |
+
|
4495 |
+
// Get direction option
|
4496 |
+
var horizontal = $this.hasClass('horizontal');
|
4497 |
+
var offsetY, offsetX;
|
4498 |
+
|
4499 |
+
if (horizontal === true) {
|
4500 |
+
offsetX = 40;
|
4501 |
+
} else {
|
4502 |
+
offsetY = 40;
|
4503 |
+
}
|
4504 |
+
|
4505 |
+
$this.addClass('active');
|
4506 |
+
$this.find('ul .btn-floating').velocity(
|
4507 |
+
{ scaleY: ".4", scaleX: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'},
|
4508 |
+
{ duration: 0 });
|
4509 |
+
|
4510 |
+
var time = 0;
|
4511 |
+
$this.find('ul .btn-floating').reverse().each( function () {
|
4512 |
+
$(this).velocity(
|
4513 |
+
{ opacity: "1", scaleX: "1", scaleY: "1", translateY: "0", translateX: '0'},
|
4514 |
+
{ duration: 80, delay: time });
|
4515 |
+
time += 40;
|
4516 |
+
});
|
4517 |
+
}
|
4518 |
+
};
|
4519 |
+
|
4520 |
+
var closeFABMenu = function (btn) {
|
4521 |
+
var $this = btn;
|
4522 |
+
// Get direction option
|
4523 |
+
var horizontal = $this.hasClass('horizontal');
|
4524 |
+
var offsetY, offsetX;
|
4525 |
+
|
4526 |
+
if (horizontal === true) {
|
4527 |
+
offsetX = 40;
|
4528 |
+
} else {
|
4529 |
+
offsetY = 40;
|
4530 |
+
}
|
4531 |
+
|
4532 |
+
$this.removeClass('active');
|
4533 |
+
var time = 0;
|
4534 |
+
$this.find('ul .btn-floating').velocity("stop", true);
|
4535 |
+
$this.find('ul .btn-floating').velocity(
|
4536 |
+
{ opacity: "0", scaleX: ".4", scaleY: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'},
|
4537 |
+
{ duration: 80 }
|
4538 |
+
);
|
4539 |
+
};
|
4540 |
+
|
4541 |
+
|
4542 |
+
/**
|
4543 |
+
* Transform FAB into toolbar
|
4544 |
+
* @param {Object} object jQuery object
|
4545 |
+
*/
|
4546 |
+
var FABtoToolbar = function(btn) {
|
4547 |
+
if (btn.attr('data-open') === "true") {
|
4548 |
+
return;
|
4549 |
+
}
|
4550 |
+
|
4551 |
+
var offsetX, offsetY, scaleFactor;
|
4552 |
+
var windowWidth = window.innerWidth;
|
4553 |
+
var windowHeight = window.innerHeight;
|
4554 |
+
var btnRect = btn[0].getBoundingClientRect();
|
4555 |
+
var anchor = btn.find('> a').first();
|
4556 |
+
var menu = btn.find('> ul').first();
|
4557 |
+
var backdrop = $('<div class="fab-backdrop"></div>');
|
4558 |
+
var fabColor = anchor.css('background-color');
|
4559 |
+
anchor.append(backdrop);
|
4560 |
+
|
4561 |
+
offsetX = btnRect.left - (windowWidth / 2) + (btnRect.width / 2);
|
4562 |
+
offsetY = windowHeight - btnRect.bottom;
|
4563 |
+
scaleFactor = windowWidth / backdrop.width();
|
4564 |
+
btn.attr('data-origin-bottom', btnRect.bottom);
|
4565 |
+
btn.attr('data-origin-left', btnRect.left);
|
4566 |
+
btn.attr('data-origin-width', btnRect.width);
|
4567 |
+
|
4568 |
+
// Set initial state
|
4569 |
+
btn.addClass('active');
|
4570 |
+
btn.attr('data-open', true);
|
4571 |
+
btn.css({
|
4572 |
+
'text-align': 'center',
|
4573 |
+
width: '100%',
|
4574 |
+
bottom: 0,
|
4575 |
+
left: 0,
|
4576 |
+
transform: 'translateX(' + offsetX + 'px)',
|
4577 |
+
transition: 'none'
|
4578 |
+
});
|
4579 |
+
anchor.css({
|
4580 |
+
transform: 'translateY(' + -offsetY + 'px)',
|
4581 |
+
transition: 'none'
|
4582 |
+
});
|
4583 |
+
backdrop.css({
|
4584 |
+
'background-color': fabColor
|
4585 |
+
});
|
4586 |
+
|
4587 |
+
|
4588 |
+
setTimeout(function() {
|
4589 |
+
btn.css({
|
4590 |
+
transform: '',
|
4591 |
+
transition: 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s'
|
4592 |
+
});
|
4593 |
+
anchor.css({
|
4594 |
+
overflow: 'visible',
|
4595 |
+
transform: '',
|
4596 |
+
transition: 'transform .2s'
|
4597 |
+
});
|
4598 |
+
|
4599 |
+
setTimeout(function() {
|
4600 |
+
btn.css({
|
4601 |
+
overflow: 'hidden',
|
4602 |
+
'background-color': fabColor
|
4603 |
+
});
|
4604 |
+
backdrop.css({
|
4605 |
+
transform: 'scale(' + scaleFactor + ')',
|
4606 |
+
transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)'
|
4607 |
+
});
|
4608 |
+
menu.find('> li > a').css({
|
4609 |
+
opacity: 1
|
4610 |
+
});
|
4611 |
+
|
4612 |
+
// Scroll to close.
|
4613 |
+
$(window).on('scroll.fabToolbarClose', function() {
|
4614 |
+
toolbarToFAB(btn);
|
4615 |
+
$(window).off('scroll.fabToolbarClose');
|
4616 |
+
$(document).off('click.fabToolbarClose');
|
4617 |
+
});
|
4618 |
+
|
4619 |
+
$(document).on('click.fabToolbarClose', function(e) {
|
4620 |
+
if (!$(e.target).closest(menu).length) {
|
4621 |
+
toolbarToFAB(btn);
|
4622 |
+
$(window).off('scroll.fabToolbarClose');
|
4623 |
+
$(document).off('click.fabToolbarClose');
|
4624 |
+
}
|
4625 |
+
});
|
4626 |
+
}, 100);
|
4627 |
+
}, 0);
|
4628 |
+
};
|
4629 |
+
|
4630 |
+
/**
|
4631 |
+
* Transform toolbar back into FAB
|
4632 |
+
* @param {Object} object jQuery object
|
4633 |
+
*/
|
4634 |
+
var toolbarToFAB = function(btn) {
|
4635 |
+
if (btn.attr('data-open') !== "true") {
|
4636 |
+
return;
|
4637 |
+
}
|
4638 |
+
|
4639 |
+
var offsetX, offsetY, scaleFactor;
|
4640 |
+
var windowWidth = window.innerWidth;
|
4641 |
+
var windowHeight = window.innerHeight;
|
4642 |
+
var btnWidth = btn.attr('data-origin-width');
|
4643 |
+
var btnBottom = btn.attr('data-origin-bottom');
|
4644 |
+
var btnLeft = btn.attr('data-origin-left');
|
4645 |
+
var anchor = btn.find('> .btn-floating').first();
|
4646 |
+
var menu = btn.find('> ul').first();
|
4647 |
+
var backdrop = btn.find('.fab-backdrop');
|
4648 |
+
var fabColor = anchor.css('background-color');
|
4649 |
+
|
4650 |
+
offsetX = btnLeft - (windowWidth / 2) + (btnWidth / 2);
|
4651 |
+
offsetY = windowHeight - btnBottom;
|
4652 |
+
scaleFactor = windowWidth / backdrop.width();
|
4653 |
+
|
4654 |
+
|
4655 |
+
// Hide backdrop
|
4656 |
+
btn.removeClass('active');
|
4657 |
+
btn.attr('data-open', false);
|
4658 |
+
btn.css({
|
4659 |
+
'background-color': 'transparent',
|
4660 |
+
transition: 'none'
|
4661 |
+
});
|
4662 |
+
anchor.css({
|
4663 |
+
transition: 'none'
|
4664 |
+
});
|
4665 |
+
backdrop.css({
|
4666 |
+
transform: 'scale(0)',
|
4667 |
+
'background-color': fabColor
|
4668 |
+
});
|
4669 |
+
menu.find('> li > a').css({
|
4670 |
+
opacity: ''
|
4671 |
+
});
|
4672 |
+
|
4673 |
+
setTimeout(function() {
|
4674 |
+
backdrop.remove();
|
4675 |
+
|
4676 |
+
// Set initial state.
|
4677 |
+
btn.css({
|
4678 |
+
'text-align': '',
|
4679 |
+
width: '',
|
4680 |
+
bottom: '',
|
4681 |
+
left: '',
|
4682 |
+
overflow: '',
|
4683 |
+
'background-color': '',
|
4684 |
+
transform: 'translate3d(' + -offsetX + 'px,0,0)'
|
4685 |
+
});
|
4686 |
+
anchor.css({
|
4687 |
+
overflow: '',
|
4688 |
+
transform: 'translate3d(0,' + offsetY + 'px,0)'
|
4689 |
+
});
|
4690 |
+
|
4691 |
+
setTimeout(function() {
|
4692 |
+
btn.css({
|
4693 |
+
transform: 'translate3d(0,0,0)',
|
4694 |
+
transition: 'transform .2s'
|
4695 |
+
});
|
4696 |
+
anchor.css({
|
4697 |
+
transform: 'translate3d(0,0,0)',
|
4698 |
+
transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)'
|
4699 |
+
});
|
4700 |
+
}, 20);
|
4701 |
+
}, 200);
|
4702 |
+
};
|
4703 |
+
|
4704 |
+
|
4705 |
+
}( jQuery ));
|
4706 |
+
;(function ($) {
|
4707 |
+
// Image transition function
|
4708 |
+
Materialize.fadeInImage = function(selectorOrEl) {
|
4709 |
+
var element;
|
4710 |
+
if (typeof(selectorOrEl) === 'string') {
|
4711 |
+
element = $(selectorOrEl);
|
4712 |
+
} else if (typeof(selectorOrEl) === 'object') {
|
4713 |
+
element = selectorOrEl;
|
4714 |
+
} else {
|
4715 |
+
return;
|
4716 |
+
}
|
4717 |
+
element.css({opacity: 0});
|
4718 |
+
$(element).velocity({opacity: 1}, {
|
4719 |
+
duration: 650,
|
4720 |
+
queue: false,
|
4721 |
+
easing: 'easeOutSine'
|
4722 |
+
});
|
4723 |
+
$(element).velocity({opacity: 1}, {
|
4724 |
+
duration: 1300,
|
4725 |
+
queue: false,
|
4726 |
+
easing: 'swing',
|
4727 |
+
step: function(now, fx) {
|
4728 |
+
fx.start = 100;
|
4729 |
+
var grayscale_setting = now/100;
|
4730 |
+
var brightness_setting = 150 - (100 - now)/1.75;
|
4731 |
+
|
4732 |
+
if (brightness_setting < 100) {
|
4733 |
+
brightness_setting = 100;
|
4734 |
+
}
|
4735 |
+
if (now >= 0) {
|
4736 |
+
$(this).css({
|
4737 |
+
"-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)",
|
4738 |
+
"filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)"
|
4739 |
+
});
|
4740 |
+
}
|
4741 |
+
}
|
4742 |
+
});
|
4743 |
+
};
|
4744 |
+
|
4745 |
+
// Horizontal staggered list
|
4746 |
+
Materialize.showStaggeredList = function(selectorOrEl) {
|
4747 |
+
var element;
|
4748 |
+
if (typeof(selectorOrEl) === 'string') {
|
4749 |
+
element = $(selectorOrEl);
|
4750 |
+
} else if (typeof(selectorOrEl) === 'object') {
|
4751 |
+
element = selectorOrEl;
|
4752 |
+
} else {
|
4753 |
+
return;
|
4754 |
+
}
|
4755 |
+
var time = 0;
|
4756 |
+
element.find('li').velocity(
|
4757 |
+
{ translateX: "-100px"},
|
4758 |
+
{ duration: 0 });
|
4759 |
+
|
4760 |
+
element.find('li').each(function() {
|
4761 |
+
$(this).velocity(
|
4762 |
+
{ opacity: "1", translateX: "0"},
|
4763 |
+
{ duration: 800, delay: time, easing: [60, 10] });
|
4764 |
+
time += 120;
|
4765 |
+
});
|
4766 |
+
};
|
4767 |
+
|
4768 |
+
|
4769 |
+
$(document).ready(function() {
|
4770 |
+
// Hardcoded .staggered-list scrollFire
|
4771 |
+
// var staggeredListOptions = [];
|
4772 |
+
// $('ul.staggered-list').each(function (i) {
|
4773 |
+
|
4774 |
+
// var label = 'scrollFire-' + i;
|
4775 |
+
// $(this).addClass(label);
|
4776 |
+
// staggeredListOptions.push(
|
4777 |
+
// {selector: 'ul.staggered-list.' + label,
|
4778 |
+
// offset: 200,
|
4779 |
+
// callback: 'showStaggeredList("ul.staggered-list.' + label + '")'});
|
4780 |
+
// });
|
4781 |
+
// scrollFire(staggeredListOptions);
|
4782 |
+
|
4783 |
+
// HammerJS, Swipe navigation
|
4784 |
+
|
4785 |
+
// Touch Event
|
4786 |
+
var swipeLeft = false;
|
4787 |
+
var swipeRight = false;
|
4788 |
+
|
4789 |
+
|
4790 |
+
// Dismissible Collections
|
4791 |
+
$('.dismissable').each(function() {
|
4792 |
+
$(this).hammer({
|
4793 |
+
prevent_default: false
|
4794 |
+
}).bind('pan', function(e) {
|
4795 |
+
if (e.gesture.pointerType === "touch") {
|
4796 |
+
var $this = $(this);
|
4797 |
+
var direction = e.gesture.direction;
|
4798 |
+
var x = e.gesture.deltaX;
|
4799 |
+
var velocityX = e.gesture.velocityX;
|
4800 |
+
|
4801 |
+
$this.velocity({ translateX: x
|
4802 |
+
}, {duration: 50, queue: false, easing: 'easeOutQuad'});
|
4803 |
+
|
4804 |
+
// Swipe Left
|
4805 |
+
if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) {
|
4806 |
+
swipeLeft = true;
|
4807 |
+
}
|
4808 |
+
|
4809 |
+
// Swipe Right
|
4810 |
+
if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) {
|
4811 |
+
swipeRight = true;
|
4812 |
+
}
|
4813 |
+
}
|
4814 |
+
}).bind('panend', function(e) {
|
4815 |
+
// Reset if collection is moved back into original position
|
4816 |
+
if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) {
|
4817 |
+
swipeRight = false;
|
4818 |
+
swipeLeft = false;
|
4819 |
+
}
|
4820 |
+
|
4821 |
+
if (e.gesture.pointerType === "touch") {
|
4822 |
+
var $this = $(this);
|
4823 |
+
if (swipeLeft || swipeRight) {
|
4824 |
+
var fullWidth;
|
4825 |
+
if (swipeLeft) { fullWidth = $this.innerWidth(); }
|
4826 |
+
else { fullWidth = -1 * $this.innerWidth(); }
|
4827 |
+
|
4828 |
+
$this.velocity({ translateX: fullWidth,
|
4829 |
+
}, {duration: 100, queue: false, easing: 'easeOutQuad', complete:
|
4830 |
+
function() {
|
4831 |
+
$this.css('border', 'none');
|
4832 |
+
$this.velocity({ height: 0, padding: 0,
|
4833 |
+
}, {duration: 200, queue: false, easing: 'easeOutQuad', complete:
|
4834 |
+
function() { $this.remove(); }
|
4835 |
+
});
|
4836 |
+
}
|
4837 |
+
});
|
4838 |
+
}
|
4839 |
+
else {
|
4840 |
+
$this.velocity({ translateX: 0,
|
4841 |
+
}, {duration: 100, queue: false, easing: 'easeOutQuad'});
|
4842 |
+
}
|
4843 |
+
swipeLeft = false;
|
4844 |
+
swipeRight = false;
|
4845 |
+
}
|
4846 |
+
});
|
4847 |
+
|
4848 |
+
});
|
4849 |
+
|
4850 |
+
|
4851 |
+
// time = 0
|
4852 |
+
// // Vertical Staggered list
|
4853 |
+
// $('ul.staggered-list.vertical li').velocity(
|
4854 |
+
// { translateY: "100px"},
|
4855 |
+
// { duration: 0 });
|
4856 |
+
|
4857 |
+
// $('ul.staggered-list.vertical li').each(function() {
|
4858 |
+
// $(this).velocity(
|
4859 |
+
// { opacity: "1", translateY: "0"},
|
4860 |
+
// { duration: 800, delay: time, easing: [60, 25] });
|
4861 |
+
// time += 120;
|
4862 |
+
// });
|
4863 |
+
|
4864 |
+
// // Fade in and Scale
|
4865 |
+
// $('.fade-in.scale').velocity(
|
4866 |
+
// { scaleX: .4, scaleY: .4, translateX: -600},
|
4867 |
+
// { duration: 0});
|
4868 |
+
// $('.fade-in').each(function() {
|
4869 |
+
// $(this).velocity(
|
4870 |
+
// { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0},
|
4871 |
+
// { duration: 800, easing: [60, 10] });
|
4872 |
+
// });
|
4873 |
+
});
|
4874 |
+
}( jQuery ));
|
4875 |
+
;(function($) {
|
4876 |
+
|
4877 |
+
var scrollFireEventsHandled = false;
|
4878 |
+
|
4879 |
+
// Input: Array of JSON objects {selector, offset, callback}
|
4880 |
+
Materialize.scrollFire = function(options) {
|
4881 |
+
var onScroll = function() {
|
4882 |
+
var windowScroll = window.pageYOffset + window.innerHeight;
|
4883 |
+
|
4884 |
+
for (var i = 0 ; i < options.length; i++) {
|
4885 |
+
// Get options from each line
|
4886 |
+
var value = options[i];
|
4887 |
+
var selector = value.selector,
|
4888 |
+
offset = value.offset,
|
4889 |
+
callback = value.callback;
|
4890 |
+
|
4891 |
+
var currentElement = document.querySelector(selector);
|
4892 |
+
if ( currentElement !== null) {
|
4893 |
+
var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset;
|
4894 |
+
|
4895 |
+
if (windowScroll > (elementOffset + offset)) {
|
4896 |
+
if (value.done !== true) {
|
4897 |
+
if (typeof(callback) === 'function') {
|
4898 |
+
callback.call(this, currentElement);
|
4899 |
+
} else if (typeof(callback) === 'string') {
|
4900 |
+
var callbackFunc = new Function(callback);
|
4901 |
+
callbackFunc(currentElement);
|
4902 |
+
}
|
4903 |
+
value.done = true;
|
4904 |
+
}
|
4905 |
+
}
|
4906 |
+
}
|
4907 |
+
}
|
4908 |
+
};
|
4909 |
+
|
4910 |
+
|
4911 |
+
var throttledScroll = Materialize.throttle(function() {
|
4912 |
+
onScroll();
|
4913 |
+
}, options.throttle || 100);
|
4914 |
+
|
4915 |
+
if (!scrollFireEventsHandled) {
|
4916 |
+
window.addEventListener("scroll", throttledScroll);
|
4917 |
+
window.addEventListener("resize", throttledScroll);
|
4918 |
+
scrollFireEventsHandled = true;
|
4919 |
+
}
|
4920 |
+
|
4921 |
+
// perform a scan once, after current execution context, and after dom is ready
|
4922 |
+
setTimeout(throttledScroll, 0);
|
4923 |
+
};
|
4924 |
+
|
4925 |
+
})(jQuery);
|
4926 |
+
;/*!
|
4927 |
+
* pickadate.js v3.5.0, 2014/04/13
|
4928 |
+
* By Amsul, http://amsul.ca
|
4929 |
+
* Hosted on http://amsul.github.io/pickadate.js
|
4930 |
+
* Licensed under MIT
|
4931 |
+
*/
|
4932 |
+
|
4933 |
+
(function ( factory ) {
|
4934 |
+
|
4935 |
+
// AMD.
|
4936 |
+
if ( typeof define == 'function' && define.amd )
|
4937 |
+
define( 'picker', ['jquery'], factory )
|
4938 |
+
|
4939 |
+
// Node.js/browserify.
|
4940 |
+
else if ( typeof exports == 'object' )
|
4941 |
+
module.exports = factory( require('jquery') )
|
4942 |
+
|
4943 |
+
// Browser globals.
|
4944 |
+
else this.Picker = factory( jQuery )
|
4945 |
+
|
4946 |
+
}(function( $ ) {
|
4947 |
+
|
4948 |
+
var $window = $( window )
|
4949 |
+
var $document = $( document )
|
4950 |
+
var $html = $( document.documentElement )
|
4951 |
+
|
4952 |
+
|
4953 |
+
/**
|
4954 |
+
* The picker constructor that creates a blank picker.
|
4955 |
+
*/
|
4956 |
+
function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) {
|
4957 |
+
|
4958 |
+
// If there’s no element, return the picker constructor.
|
4959 |
+
if ( !ELEMENT ) return PickerConstructor
|
4960 |
+
|
4961 |
+
|
4962 |
+
var
|
4963 |
+
IS_DEFAULT_THEME = false,
|
4964 |
+
|
4965 |
+
|
4966 |
+
// The state of the picker.
|
4967 |
+
STATE = {
|
4968 |
+
id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) )
|
4969 |
+
},
|
4970 |
+
|
4971 |
+
|
4972 |
+
// Merge the defaults and options passed.
|
4973 |
+
SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {},
|
4974 |
+
|
4975 |
+
|
4976 |
+
// Merge the default classes with the settings classes.
|
4977 |
+
CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ),
|
4978 |
+
|
4979 |
+
|
4980 |
+
// The element node wrapper into a jQuery object.
|
4981 |
+
$ELEMENT = $( ELEMENT ),
|
4982 |
+
|
4983 |
+
|
4984 |
+
// Pseudo picker constructor.
|
4985 |
+
PickerInstance = function() {
|
4986 |
+
return this.start()
|
4987 |
+
},
|
4988 |
+
|
4989 |
+
|
4990 |
+
// The picker prototype.
|
4991 |
+
P = PickerInstance.prototype = {
|
4992 |
+
|
4993 |
+
constructor: PickerInstance,
|
4994 |
+
|
4995 |
+
$node: $ELEMENT,
|
4996 |
+
|
4997 |
+
|
4998 |
+
/**
|
4999 |
+
* Initialize everything
|
5000 |
+
*/
|
5001 |
+
start: function() {
|
5002 |
+
|
5003 |
+
// If it’s already started, do nothing.
|
5004 |
+
if ( STATE && STATE.start ) return P
|
5005 |
+
|
5006 |
+
|
5007 |
+
// Update the picker states.
|
5008 |
+
STATE.methods = {}
|
5009 |
+
STATE.start = true
|
5010 |
+
STATE.open = false
|
5011 |
+
STATE.type = ELEMENT.type
|
5012 |
+
|
5013 |
+
|
5014 |
+
// Confirm focus state, convert into text input to remove UA stylings,
|
5015 |
+
// and set as readonly to prevent keyboard popup.
|
5016 |
+
ELEMENT.autofocus = ELEMENT == getActiveElement()
|
5017 |
+
ELEMENT.readOnly = !SETTINGS.editable
|
5018 |
+
ELEMENT.id = ELEMENT.id || STATE.id
|
5019 |
+
if ( ELEMENT.type != 'text' ) {
|
5020 |
+
ELEMENT.type = 'text'
|
5021 |
+
}
|
5022 |
+
|
5023 |
+
|
5024 |
+
// Create a new picker component with the settings.
|
5025 |
+
P.component = new COMPONENT(P, SETTINGS)
|
5026 |
+
|
5027 |
+
|
5028 |
+
// Create the picker root with a holder and then prepare it.
|
5029 |
+
P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') )
|
5030 |
+
prepareElementRoot()
|
5031 |
+
|
5032 |
+
|
5033 |
+
// If there’s a format for the hidden input element, create the element.
|
5034 |
+
if ( SETTINGS.formatSubmit ) {
|
5035 |
+
prepareElementHidden()
|
5036 |
+
}
|
5037 |
+
|
5038 |
+
|
5039 |
+
// Prepare the input element.
|
5040 |
+
prepareElement()
|
5041 |
+
|
5042 |
+
|
5043 |
+
// Insert the root as specified in the settings.
|
5044 |
+
if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root )
|
5045 |
+
else $ELEMENT.after( P.$root )
|
5046 |
+
|
5047 |
+
|
5048 |
+
// Bind the default component and settings events.
|
5049 |
+
P.on({
|
5050 |
+
start: P.component.onStart,
|
5051 |
+
render: P.component.onRender,
|
5052 |
+
stop: P.component.onStop,
|
5053 |
+
open: P.component.onOpen,
|
5054 |
+
close: P.component.onClose,
|
5055 |
+
set: P.component.onSet
|
5056 |
+
}).on({
|
5057 |
+
start: SETTINGS.onStart,
|
5058 |
+
render: SETTINGS.onRender,
|
5059 |
+
stop: SETTINGS.onStop,
|
5060 |
+
open: SETTINGS.onOpen,
|
5061 |
+
close: SETTINGS.onClose,
|
5062 |
+
set: SETTINGS.onSet
|
5063 |
+
})
|
5064 |
+
|
5065 |
+
|
5066 |
+
// Once we’re all set, check the theme in use.
|
5067 |
+
IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] )
|
5068 |
+
|
5069 |
+
|
5070 |
+
// If the element has autofocus, open the picker.
|
5071 |
+
if ( ELEMENT.autofocus ) {
|
5072 |
+
P.open()
|
5073 |
+
}
|
5074 |
+
|
5075 |
+
|
5076 |
+
// Trigger queued the “start” and “render” events.
|
5077 |
+
return P.trigger( 'start' ).trigger( 'render' )
|
5078 |
+
}, //start
|
5079 |
+
|
5080 |
+
|
5081 |
+
/**
|
5082 |
+
* Render a new picker
|
5083 |
+
*/
|
5084 |
+
render: function( entireComponent ) {
|
5085 |
+
|
5086 |
+
// Insert a new component holder in the root or box.
|
5087 |
+
if ( entireComponent ) P.$root.html( createWrappedComponent() )
|
5088 |
+
else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) )
|
5089 |
+
|
5090 |
+
// Trigger the queued “render” events.
|
5091 |
+
return P.trigger( 'render' )
|
5092 |
+
}, //render
|
5093 |
+
|
5094 |
+
|
5095 |
+
/**
|
5096 |
+
* Destroy everything
|
5097 |
+
*/
|
5098 |
+
stop: function() {
|
5099 |
+
|
5100 |
+
// If it’s already stopped, do nothing.
|
5101 |
+
if ( !STATE.start ) return P
|
5102 |
+
|
5103 |
+
// Then close the picker.
|
5104 |
+
P.close()
|
5105 |
+
|
5106 |
+
// Remove the hidden field.
|
5107 |
+
if ( P._hidden ) {
|
5108 |
+
P._hidden.parentNode.removeChild( P._hidden )
|
5109 |
+
}
|
5110 |
+
|
5111 |
+
// Remove the root.
|
5112 |
+
P.$root.remove()
|
5113 |
+
|
5114 |
+
// Remove the input class, remove the stored data, and unbind
|
5115 |
+
// the events (after a tick for IE - see `P.close`).
|
5116 |
+
$ELEMENT.removeClass( CLASSES.input ).removeData( NAME )
|
5117 |
+
setTimeout( function() {
|
5118 |
+
$ELEMENT.off( '.' + STATE.id )
|
5119 |
+
}, 0)
|
5120 |
+
|
5121 |
+
// Restore the element state
|
5122 |
+
ELEMENT.type = STATE.type
|
5123 |
+
ELEMENT.readOnly = false
|
5124 |
+
|
5125 |
+
// Trigger the queued “stop” events.
|
5126 |
+
P.trigger( 'stop' )
|
5127 |
+
|
5128 |
+
// Reset the picker states.
|
5129 |
+
STATE.methods = {}
|
5130 |
+
STATE.start = false
|
5131 |
+
|
5132 |
+
return P
|
5133 |
+
}, //stop
|
5134 |
+
|
5135 |
+
|
5136 |
+
/**
|
5137 |
+
* Open up the picker
|
5138 |
+
*/
|
5139 |
+
open: function( dontGiveFocus ) {
|
5140 |
+
|
5141 |
+
// If it’s already open, do nothing.
|
5142 |
+
if ( STATE.open ) return P
|
5143 |
+
|
5144 |
+
// Add the “active” class.
|
5145 |
+
$ELEMENT.addClass( CLASSES.active )
|
5146 |
+
aria( ELEMENT, 'expanded', true )
|
5147 |
+
|
5148 |
+
// * A Firefox bug, when `html` has `overflow:hidden`, results in
|
5149 |
+
// killing transitions :(. So add the “opened” state on the next tick.
|
5150 |
+
// Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289
|
5151 |
+
setTimeout( function() {
|
5152 |
+
|
5153 |
+
// Add the “opened” class to the picker root.
|
5154 |
+
P.$root.addClass( CLASSES.opened )
|
5155 |
+
aria( P.$root[0], 'hidden', false )
|
5156 |
+
|
5157 |
+
}, 0 )
|
5158 |
+
|
5159 |
+
// If we have to give focus, bind the element and doc events.
|
5160 |
+
if ( dontGiveFocus !== false ) {
|
5161 |
+
|
5162 |
+
// Set it as open.
|
5163 |
+
STATE.open = true
|
5164 |
+
|
5165 |
+
// Prevent the page from scrolling.
|
5166 |
+
if ( IS_DEFAULT_THEME ) {
|
5167 |
+
$html.
|
5168 |
+
css( 'overflow', 'hidden' ).
|
5169 |
+
css( 'padding-right', '+=' + getScrollbarWidth() )
|
5170 |
+
}
|
5171 |
+
|
5172 |
+
// Pass focus to the root element’s jQuery object.
|
5173 |
+
// * Workaround for iOS8 to bring the picker’s root into view.
|
5174 |
+
P.$root.eq(0).focus()
|
5175 |
+
|
5176 |
+
// Bind the document events.
|
5177 |
+
$document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) {
|
5178 |
+
|
5179 |
+
var target = event.target
|
5180 |
+
|
5181 |
+
// If the target of the event is not the element, close the picker picker.
|
5182 |
+
// * Don’t worry about clicks or focusins on the root because those don’t bubble up.
|
5183 |
+
// Also, for Firefox, a click on an `option` element bubbles up directly
|
5184 |
+
// to the doc. So make sure the target wasn't the doc.
|
5185 |
+
// * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling,
|
5186 |
+
// which causes the picker to unexpectedly close when right-clicking it. So make
|
5187 |
+
// sure the event wasn’t a right-click.
|
5188 |
+
if ( target != ELEMENT && target != document && event.which != 3 ) {
|
5189 |
+
|
5190 |
+
// If the target was the holder that covers the screen,
|
5191 |
+
// keep the element focused to maintain tabindex.
|
5192 |
+
P.close( target === P.$root.children()[0] )
|
5193 |
+
}
|
5194 |
+
|
5195 |
+
}).on( 'keydown.' + STATE.id, function( event ) {
|
5196 |
+
|
5197 |
+
var
|
5198 |
+
// Get the keycode.
|
5199 |
+
keycode = event.keyCode,
|
5200 |
+
|
5201 |
+
// Translate that to a selection change.
|
5202 |
+
keycodeToMove = P.component.key[ keycode ],
|
5203 |
+
|
5204 |
+
// Grab the target.
|
5205 |
+
target = event.target
|
5206 |
+
|
5207 |
+
|
5208 |
+
// On escape, close the picker and give focus.
|
5209 |
+
if ( keycode == 27 ) {
|
5210 |
+
P.close( true )
|
5211 |
+
}
|
5212 |
+
|
5213 |
+
|
5214 |
+
// Check if there is a key movement or “enter” keypress on the element.
|
5215 |
+
else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) {
|
5216 |
+
|
5217 |
+
// Prevent the default action to stop page movement.
|
5218 |
+
event.preventDefault()
|
5219 |
+
|
5220 |
+
// Trigger the key movement action.
|
5221 |
+
if ( keycodeToMove ) {
|
5222 |
+
PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] )
|
5223 |
+
}
|
5224 |
+
|
5225 |
+
// On “enter”, if the highlighted item isn’t disabled, set the value and close.
|
5226 |
+
else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) {
|
5227 |
+
P.set( 'select', P.component.item.highlight ).close()
|
5228 |
+
}
|
5229 |
+
}
|
5230 |
+
|
5231 |
+
|
5232 |
+
// If the target is within the root and “enter” is pressed,
|
5233 |
+
// prevent the default action and trigger a click on the target instead.
|
5234 |
+
else if ( $.contains( P.$root[0], target ) && keycode == 13 ) {
|
5235 |
+
event.preventDefault()
|
5236 |
+
target.click()
|
5237 |
+
}
|
5238 |
+
})
|
5239 |
+
}
|
5240 |
+
|
5241 |
+
// Trigger the queued “open” events.
|
5242 |
+
return P.trigger( 'open' )
|
5243 |
+
}, //open
|
5244 |
+
|
5245 |
+
|
5246 |
+
/**
|
5247 |
+
* Close the picker
|
5248 |
+
*/
|
5249 |
+
close: function( giveFocus ) {
|
5250 |
+
|
5251 |
+
// If we need to give focus, do it before changing states.
|
5252 |
+
if ( giveFocus ) {
|
5253 |
+
// ....ah yes! It would’ve been incomplete without a crazy workaround for IE :|
|
5254 |
+
// The focus is triggered *after* the close has completed - causing it
|
5255 |
+
// to open again. So unbind and rebind the event at the next tick.
|
5256 |
+
P.$root.off( 'focus.toOpen' ).eq(0).focus()
|
5257 |
+
setTimeout( function() {
|
5258 |
+
P.$root.on( 'focus.toOpen', handleFocusToOpenEvent )
|
5259 |
+
}, 0 )
|
5260 |
+
}
|
5261 |
+
|
5262 |
+
// Remove the “active” class.
|
5263 |
+
$ELEMENT.removeClass( CLASSES.active )
|
5264 |
+
aria( ELEMENT, 'expanded', false )
|
5265 |
+
|
5266 |
+
// * A Firefox bug, when `html` has `overflow:hidden`, results in
|
5267 |
+
// killing transitions :(. So remove the “opened” state on the next tick.
|
5268 |
+
// Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289
|
5269 |
+
setTimeout( function() {
|
5270 |
+
|
5271 |
+
// Remove the “opened” and “focused” class from the picker root.
|
5272 |
+
P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused )
|
5273 |
+
aria( P.$root[0], 'hidden', true )
|
5274 |
+
|
5275 |
+
}, 0 )
|
5276 |
+
|
5277 |
+
// If it’s already closed, do nothing more.
|
5278 |
+
if ( !STATE.open ) return P
|
5279 |
+
|
5280 |
+
// Set it as closed.
|
5281 |
+
STATE.open = false
|
5282 |
+
|
5283 |
+
// Allow the page to scroll.
|
5284 |
+
if ( IS_DEFAULT_THEME ) {
|
5285 |
+
$html.
|
5286 |
+
css( 'overflow', '' ).
|
5287 |
+
css( 'padding-right', '-=' + getScrollbarWidth() )
|
5288 |
+
}
|
5289 |
+
|
5290 |
+
// Unbind the document events.
|
5291 |
+
$document.off( '.' + STATE.id )
|
5292 |
+
|
5293 |
+
// Trigger the queued “close” events.
|
5294 |
+
return P.trigger( 'close' )
|
5295 |
+
}, //close
|
5296 |
+
|
5297 |
+
|
5298 |
+
/**
|
5299 |
+
* Clear the values
|
5300 |
+
*/
|
5301 |
+
clear: function( options ) {
|
5302 |
+
return P.set( 'clear', null, options )
|
5303 |
+
}, //clear
|
5304 |
+
|
5305 |
+
|
5306 |
+
/**
|
5307 |
+
* Set something
|
5308 |
+
*/
|
5309 |
+
set: function( thing, value, options ) {
|
5310 |
+
|
5311 |
+
var thingItem, thingValue,
|
5312 |
+
thingIsObject = $.isPlainObject( thing ),
|
5313 |
+
thingObject = thingIsObject ? thing : {}
|
5314 |
+
|
5315 |
+
// Make sure we have usable options.
|
5316 |
+
options = thingIsObject && $.isPlainObject( value ) ? value : options || {}
|
5317 |
+
|
5318 |
+
if ( thing ) {
|
5319 |
+
|
5320 |
+
// If the thing isn’t an object, make it one.
|
5321 |
+
if ( !thingIsObject ) {
|
5322 |
+
thingObject[ thing ] = value
|
5323 |
+
}
|
5324 |
+
|
5325 |
+
// Go through the things of items to set.
|
5326 |
+
for ( thingItem in thingObject ) {
|
5327 |
+
|
5328 |
+
// Grab the value of the thing.
|
5329 |
+
thingValue = thingObject[ thingItem ]
|
5330 |
+
|
5331 |
+
// First, if the item exists and there’s a value, set it.
|
5332 |
+
if ( thingItem in P.component.item ) {
|
5333 |
+
if ( thingValue === undefined ) thingValue = null
|
5334 |
+
P.component.set( thingItem, thingValue, options )
|
5335 |
+
}
|
5336 |
+
|
5337 |
+
// Then, check to update the element value and broadcast a change.
|
5338 |
+
if ( thingItem == 'select' || thingItem == 'clear' ) {
|
5339 |
+
$ELEMENT.
|
5340 |
+
val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ).
|
5341 |
+
trigger( 'change' )
|
5342 |
+
}
|
5343 |
+
}
|
5344 |
+
|
5345 |
+
// Render a new picker.
|
5346 |
+
P.render()
|
5347 |
+
}
|
5348 |
+
|
5349 |
+
// When the method isn’t muted, trigger queued “set” events and pass the `thingObject`.
|
5350 |
+
return options.muted ? P : P.trigger( 'set', thingObject )
|
5351 |
+
}, //set
|
5352 |
+
|
5353 |
+
|
5354 |
+
/**
|
5355 |
+
* Get something
|
5356 |
+
*/
|
5357 |
+
get: function( thing, format ) {
|
5358 |
+
|
5359 |
+
// Make sure there’s something to get.
|
5360 |
+
thing = thing || 'value'
|
5361 |
+
|
5362 |
+
// If a picker state exists, return that.
|
5363 |
+
if ( STATE[ thing ] != null ) {
|
5364 |
+
return STATE[ thing ]
|
5365 |
+
}
|
5366 |
+
|
5367 |
+
// Return the submission value, if that.
|
5368 |
+
if ( thing == 'valueSubmit' ) {
|
5369 |
+
if ( P._hidden ) {
|
5370 |
+
return P._hidden.value
|
5371 |
+
}
|
5372 |
+
thing = 'value'
|
5373 |
+
}
|
5374 |
+
|
5375 |
+
// Return the value, if that.
|
5376 |
+
if ( thing == 'value' ) {
|
5377 |
+
return ELEMENT.value
|
5378 |
+
}
|
5379 |
+
|
5380 |
+
// Check if a component item exists, return that.
|
5381 |
+
if ( thing in P.component.item ) {
|
5382 |
+
if ( typeof format == 'string' ) {
|
5383 |
+
var thingValue = P.component.get( thing )
|
5384 |
+
return thingValue ?
|
5385 |
+
PickerConstructor._.trigger(
|
5386 |
+
P.component.formats.toString,
|
5387 |
+
P.component,
|
5388 |
+
[ format, thingValue ]
|
5389 |
+
) : ''
|
5390 |
+
}
|
5391 |
+
return P.component.get( thing )
|
5392 |
+
}
|
5393 |
+
}, //get
|
5394 |
+
|
5395 |
+
|
5396 |
+
|
5397 |
+
/**
|
5398 |
+
* Bind events on the things.
|
5399 |
+
*/
|
5400 |
+
on: function( thing, method, internal ) {
|
5401 |
+
|
5402 |
+
var thingName, thingMethod,
|
5403 |
+
thingIsObject = $.isPlainObject( thing ),
|
5404 |
+
thingObject = thingIsObject ? thing : {}
|
5405 |
+
|
5406 |
+
if ( thing ) {
|
5407 |
+
|
5408 |
+
// If the thing isn’t an object, make it one.
|
5409 |
+
if ( !thingIsObject ) {
|
5410 |
+
thingObject[ thing ] = method
|
5411 |
+
}
|
5412 |
+
|
5413 |
+
// Go through the things to bind to.
|
5414 |
+
for ( thingName in thingObject ) {
|
5415 |
+
|
5416 |
+
// Grab the method of the thing.
|
5417 |
+
thingMethod = thingObject[ thingName ]
|
5418 |
+
|
5419 |
+
// If it was an internal binding, prefix it.
|
5420 |
+
if ( internal ) {
|
5421 |
+
thingName = '_' + thingName
|
5422 |
+
}
|
5423 |
+
|
5424 |
+
// Make sure the thing methods collection exists.
|
5425 |
+
STATE.methods[ thingName ] = STATE.methods[ thingName ] || []
|
5426 |
+
|
5427 |
+
// Add the method to the relative method collection.
|
5428 |
+
STATE.methods[ thingName ].push( thingMethod )
|
5429 |
+
}
|
5430 |
+
}
|
5431 |
+
|
5432 |
+
return P
|
5433 |
+
}, //on
|
5434 |
+
|
5435 |
+
|
5436 |
+
|
5437 |
+
/**
|
5438 |
+
* Unbind events on the things.
|
5439 |
+
*/
|
5440 |
+
off: function() {
|
5441 |
+
var i, thingName,
|
5442 |
+
names = arguments;
|
5443 |
+
for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) {
|
5444 |
+
thingName = names[i]
|
5445 |
+
if ( thingName in STATE.methods ) {
|
5446 |
+
delete STATE.methods[thingName]
|
5447 |
+
}
|
5448 |
+
}
|
5449 |
+
return P
|
5450 |
+
},
|
5451 |
+
|
5452 |
+
|
5453 |
+
/**
|
5454 |
+
* Fire off method events.
|
5455 |
+
*/
|
5456 |
+
trigger: function( name, data ) {
|
5457 |
+
var _trigger = function( name ) {
|
5458 |
+
var methodList = STATE.methods[ name ]
|
5459 |
+
if ( methodList ) {
|
5460 |
+
methodList.map( function( method ) {
|
5461 |
+
PickerConstructor._.trigger( method, P, [ data ] )
|
5462 |
+
})
|
5463 |
+
}
|
5464 |
+
}
|
5465 |
+
_trigger( '_' + name )
|
5466 |
+
_trigger( name )
|
5467 |
+
return P
|
5468 |
+
} //trigger
|
5469 |
+
} //PickerInstance.prototype
|
5470 |
+
|
5471 |
+
|
5472 |
+
/**
|
5473 |
+
* Wrap the picker holder components together.
|
5474 |
+
*/
|
5475 |
+
function createWrappedComponent() {
|
5476 |
+
|
5477 |
+
// Create a picker wrapper holder
|
5478 |
+
return PickerConstructor._.node( 'div',
|
5479 |
+
|
5480 |
+
// Create a picker wrapper node
|
5481 |
+
PickerConstructor._.node( 'div',
|
5482 |
+
|
5483 |
+
// Create a picker frame
|
5484 |
+
PickerConstructor._.node( 'div',
|
5485 |
+
|
5486 |
+
// Create a picker box node
|
5487 |
+
PickerConstructor._.node( 'div',
|
5488 |
+
|
5489 |
+
// Create the components nodes.
|
5490 |
+
P.component.nodes( STATE.open ),
|
5491 |
+
|
5492 |
+
// The picker box class
|
5493 |
+
CLASSES.box
|
5494 |
+
),
|
5495 |
+
|
5496 |
+
// Picker wrap class
|
5497 |
+
CLASSES.wrap
|
5498 |
+
),
|
5499 |
+
|
5500 |
+
// Picker frame class
|
5501 |
+
CLASSES.frame
|
5502 |
+
),
|
5503 |
+
|
5504 |
+
// Picker holder class
|
5505 |
+
CLASSES.holder
|
5506 |
+
) //endreturn
|
5507 |
+
} //createWrappedComponent
|
5508 |
+
|
5509 |
+
|
5510 |
+
|
5511 |
+
/**
|
5512 |
+
* Prepare the input element with all bindings.
|
5513 |
+
*/
|
5514 |
+
function prepareElement() {
|
5515 |
+
|
5516 |
+
$ELEMENT.
|
5517 |
+
|
5518 |
+
// Store the picker data by component name.
|
5519 |
+
data(NAME, P).
|
5520 |
+
|
5521 |
+
// Add the “input” class name.
|
5522 |
+
addClass(CLASSES.input).
|
5523 |
+
|
5524 |
+
// Remove the tabindex.
|
5525 |
+
attr('tabindex', -1).
|
5526 |
+
|
5527 |
+
// If there’s a `data-value`, update the value of the element.
|
5528 |
+
val( $ELEMENT.data('value') ?
|
5529 |
+
P.get('select', SETTINGS.format) :
|
5530 |
+
ELEMENT.value
|
5531 |
+
)
|
5532 |
+
|
5533 |
+
|
5534 |
+
// Only bind keydown events if the element isn’t editable.
|
5535 |
+
if ( !SETTINGS.editable ) {
|
5536 |
+
|
5537 |
+
$ELEMENT.
|
5538 |
+
|
5539 |
+
// On focus/click, focus onto the root to open it up.
|
5540 |
+
on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) {
|
5541 |
+
event.preventDefault()
|
5542 |
+
P.$root.eq(0).focus()
|
5543 |
+
}).
|
5544 |
+
|
5545 |
+
// Handle keyboard event based on the picker being opened or not.
|
5546 |
+
on( 'keydown.' + STATE.id, handleKeydownEvent )
|
5547 |
+
}
|
5548 |
+
|
5549 |
+
|
5550 |
+
// Update the aria attributes.
|
5551 |
+
aria(ELEMENT, {
|
5552 |
+
haspopup: true,
|
5553 |
+
expanded: false,
|
5554 |
+
readonly: false,
|
5555 |
+
owns: ELEMENT.id + '_root'
|
5556 |
+
})
|
5557 |
+
}
|
5558 |
+
|
5559 |
+
|
5560 |
+
/**
|
5561 |
+
* Prepare the root picker element with all bindings.
|
5562 |
+
*/
|
5563 |
+
function prepareElementRoot() {
|
5564 |
+
|
5565 |
+
P.$root.
|
5566 |
+
|
5567 |
+
on({
|
5568 |
+
|
5569 |
+
// For iOS8.
|
5570 |
+
keydown: handleKeydownEvent,
|
5571 |
+
|
5572 |
+
// When something within the root is focused, stop from bubbling
|
5573 |
+
// to the doc and remove the “focused” state from the root.
|
5574 |
+
focusin: function( event ) {
|
5575 |
+
P.$root.removeClass( CLASSES.focused )
|
5576 |
+
event.stopPropagation()
|
5577 |
+
},
|
5578 |
+
|
5579 |
+
// When something within the root holder is clicked, stop it
|
5580 |
+
// from bubbling to the doc.
|
5581 |
+
'mousedown click': function( event ) {
|
5582 |
+
|
5583 |
+
var target = event.target
|
5584 |
+
|
5585 |
+
// Make sure the target isn’t the root holder so it can bubble up.
|
5586 |
+
if ( target != P.$root.children()[ 0 ] ) {
|
5587 |
+
|
5588 |
+
event.stopPropagation()
|
5589 |
+
|
5590 |
+
// * For mousedown events, cancel the default action in order to
|
5591 |
+
// prevent cases where focus is shifted onto external elements
|
5592 |
+
// when using things like jQuery mobile or MagnificPopup (ref: #249 & #120).
|
5593 |
+
// Also, for Firefox, don’t prevent action on the `option` element.
|
5594 |
+
if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) {
|
5595 |
+
|
5596 |
+
event.preventDefault()
|
5597 |
+
|
5598 |
+
// Re-focus onto the root so that users can click away
|
5599 |
+
// from elements focused within the picker.
|
5600 |
+
P.$root.eq(0).focus()
|
5601 |
+
}
|
5602 |
+
}
|
5603 |
+
}
|
5604 |
+
}).
|
5605 |
+
|
5606 |
+
// Add/remove the “target” class on focus and blur.
|
5607 |
+
on({
|
5608 |
+
focus: function() {
|
5609 |
+
$ELEMENT.addClass( CLASSES.target )
|
5610 |
+
},
|
5611 |
+
blur: function() {
|
5612 |
+
$ELEMENT.removeClass( CLASSES.target )
|
5613 |
+
}
|
5614 |
+
}).
|
5615 |
+
|
5616 |
+
// Open the picker and adjust the root “focused” state
|
5617 |
+
on( 'focus.toOpen', handleFocusToOpenEvent ).
|
5618 |
+
|
5619 |
+
// If there’s a click on an actionable element, carry out the actions.
|
5620 |
+
on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() {
|
5621 |
+
|
5622 |
+
var $target = $( this ),
|
5623 |
+
targetData = $target.data(),
|
5624 |
+
targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ),
|
5625 |
+
|
5626 |
+
// * For IE, non-focusable elements can be active elements as well
|
5627 |
+
// (http://stackoverflow.com/a/2684561).
|
5628 |
+
activeElement = getActiveElement()
|
5629 |
+
activeElement = activeElement && ( activeElement.type || activeElement.href )
|
5630 |
+
|
5631 |
+
// If it’s disabled or nothing inside is actively focused, re-focus the element.
|
5632 |
+
if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) {
|
5633 |
+
P.$root.eq(0).focus()
|
5634 |
+
}
|
5635 |
+
|
5636 |
+
// If something is superficially changed, update the `highlight` based on the `nav`.
|
5637 |
+
if ( !targetDisabled && targetData.nav ) {
|
5638 |
+
P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } )
|
5639 |
+
}
|
5640 |
+
|
5641 |
+
// If something is picked, set `select` then close with focus.
|
5642 |
+
else if ( !targetDisabled && 'pick' in targetData ) {
|
5643 |
+
P.set( 'select', targetData.pick )
|
5644 |
+
}
|
5645 |
+
|
5646 |
+
// If a “clear” button is pressed, empty the values and close with focus.
|
5647 |
+
else if ( targetData.clear ) {
|
5648 |
+
P.clear().close( true )
|
5649 |
+
}
|
5650 |
+
|
5651 |
+
else if ( targetData.close ) {
|
5652 |
+
P.close( true )
|
5653 |
+
}
|
5654 |
+
|
5655 |
+
}) //P.$root
|
5656 |
+
|
5657 |
+
aria( P.$root[0], 'hidden', true )
|
5658 |
+
}
|
5659 |
+
|
5660 |
+
|
5661 |
+
/**
|
5662 |
+
* Prepare the hidden input element along with all bindings.
|
5663 |
+
*/
|
5664 |
+
function prepareElementHidden() {
|
5665 |
+
|
5666 |
+
var name
|
5667 |
+
|
5668 |
+
if ( SETTINGS.hiddenName === true ) {
|
5669 |
+
name = ELEMENT.name
|
5670 |
+
ELEMENT.name = ''
|
5671 |
+
}
|
5672 |
+
else {
|
5673 |
+
name = [
|
5674 |
+
typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '',
|
5675 |
+
typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit'
|
5676 |
+
]
|
5677 |
+
name = name[0] + ELEMENT.name + name[1]
|
5678 |
+
}
|
5679 |
+
|
5680 |
+
P._hidden = $(
|
5681 |
+
'<input ' +
|
5682 |
+
'type=hidden ' +
|
5683 |
+
|
5684 |
+
// Create the name using the original input’s with a prefix and suffix.
|
5685 |
+
'name="' + name + '"' +
|
5686 |
+
|
5687 |
+
// If the element has a value, set the hidden value as well.
|
5688 |
+
(
|
5689 |
+
$ELEMENT.data('value') || ELEMENT.value ?
|
5690 |
+
' value="' + P.get('select', SETTINGS.formatSubmit) + '"' :
|
5691 |
+
''
|
5692 |
+
) +
|
5693 |
+
'>'
|
5694 |
+
)[0]
|
5695 |
+
|
5696 |
+
$ELEMENT.
|
5697 |
+
|
5698 |
+
// If the value changes, update the hidden input with the correct format.
|
5699 |
+
on('change.' + STATE.id, function() {
|
5700 |
+
P._hidden.value = ELEMENT.value ?
|
5701 |
+
P.get('select', SETTINGS.formatSubmit) :
|
5702 |
+
''
|
5703 |
+
})
|
5704 |
+
|
5705 |
+
|
5706 |
+
// Insert the hidden input as specified in the settings.
|
5707 |
+
if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden )
|
5708 |
+
else $ELEMENT.after( P._hidden )
|
5709 |
+
}
|
5710 |
+
|
5711 |
+
|
5712 |
+
// For iOS8.
|
5713 |
+
function handleKeydownEvent( event ) {
|
5714 |
+
|
5715 |
+
var keycode = event.keyCode,
|
5716 |
+
|
5717 |
+
// Check if one of the delete keys was pressed.
|
5718 |
+
isKeycodeDelete = /^(8|46)$/.test(keycode)
|
5719 |
+
|
5720 |
+
// For some reason IE clears the input value on “escape”.
|
5721 |
+
if ( keycode == 27 ) {
|
5722 |
+
P.close()
|
5723 |
+
return false
|
5724 |
+
}
|
5725 |
+
|
5726 |
+
// Check if `space` or `delete` was pressed or the picker is closed with a key movement.
|
5727 |
+
if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) {
|
5728 |
+
|
5729 |
+
// Prevent it from moving the page and bubbling to doc.
|
5730 |
+
event.preventDefault()
|
5731 |
+
event.stopPropagation()
|
5732 |
+
|
5733 |
+
// If `delete` was pressed, clear the values and close the picker.
|
5734 |
+
// Otherwise open the picker.
|
5735 |
+
if ( isKeycodeDelete ) { P.clear().close() }
|
5736 |
+
else { P.open() }
|
5737 |
+
}
|
5738 |
+
}
|
5739 |
+
|
5740 |
+
|
5741 |
+
// Separated for IE
|
5742 |
+
function handleFocusToOpenEvent( event ) {
|
5743 |
+
|
5744 |
+
// Stop the event from propagating to the doc.
|
5745 |
+
event.stopPropagation()
|
5746 |
+
|
5747 |
+
// If it’s a focus event, add the “focused” class to the root.
|
5748 |
+
if ( event.type == 'focus' ) {
|
5749 |
+
P.$root.addClass( CLASSES.focused )
|
5750 |
+
}
|
5751 |
+
|
5752 |
+
// And then finally open the picker.
|
5753 |
+
P.open()
|
5754 |
+
}
|
5755 |
+
|
5756 |
+
|
5757 |
+
// Return a new picker instance.
|
5758 |
+
return new PickerInstance()
|
5759 |
+
} //PickerConstructor
|
5760 |
+
|
5761 |
+
|
5762 |
+
|
5763 |
+
/**
|
5764 |
+
* The default classes and prefix to use for the HTML classes.
|
5765 |
+
*/
|
5766 |
+
PickerConstructor.klasses = function( prefix ) {
|
5767 |
+
prefix = prefix || 'picker'
|
5768 |
+
return {
|
5769 |
+
|
5770 |
+
picker: prefix,
|
5771 |
+
opened: prefix + '--opened',
|
5772 |
+
focused: prefix + '--focused',
|
5773 |
+
|
5774 |
+
input: prefix + '__input',
|
5775 |
+
active: prefix + '__input--active',
|
5776 |
+
target: prefix + '__input--target',
|
5777 |
+
|
5778 |
+
holder: prefix + '__holder',
|
5779 |
+
|
5780 |
+
frame: prefix + '__frame',
|
5781 |
+
wrap: prefix + '__wrap',
|
5782 |
+
|
5783 |
+
box: prefix + '__box'
|
5784 |
+
}
|
5785 |
+
} //PickerConstructor.klasses
|
5786 |
+
|
5787 |
+
|
5788 |
+
|
5789 |
+
/**
|
5790 |
+
* Check if the default theme is being used.
|
5791 |
+
*/
|
5792 |
+
function isUsingDefaultTheme( element ) {
|
5793 |
+
|
5794 |
+
var theme,
|
5795 |
+
prop = 'position'
|
5796 |
+
|
5797 |
+
// For IE.
|
5798 |
+
if ( element.currentStyle ) {
|
5799 |
+
theme = element.currentStyle[prop]
|
5800 |
+
}
|
5801 |
+
|
5802 |
+
// For normal browsers.
|
5803 |
+
else if ( window.getComputedStyle ) {
|
5804 |
+
theme = getComputedStyle( element )[prop]
|
5805 |
+
}
|
5806 |
+
|
5807 |
+
return theme == 'fixed'
|
5808 |
+
}
|
5809 |
+
|
5810 |
+
|
5811 |
+
|
5812 |
+
/**
|
5813 |
+
* Get the width of the browser’s scrollbar.
|
5814 |
+
* Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js
|
5815 |
+
*/
|
5816 |
+
function getScrollbarWidth() {
|
5817 |
+
|
5818 |
+
if ( $html.height() <= $window.height() ) {
|
5819 |
+
return 0
|
5820 |
+
}
|
5821 |
+
|
5822 |
+
var $outer = $( '<div style="visibility:hidden;width:100px" />' ).
|
5823 |
+
appendTo( 'body' )
|
5824 |
+
|
5825 |
+
// Get the width without scrollbars.
|
5826 |
+
var widthWithoutScroll = $outer[0].offsetWidth
|
5827 |
+
|
5828 |
+
// Force adding scrollbars.
|
5829 |
+
$outer.css( 'overflow', 'scroll' )
|
5830 |
+
|
5831 |
+
// Add the inner div.
|
5832 |
+
var $inner = $( '<div style="width:100%" />' ).appendTo( $outer )
|
5833 |
+
|
5834 |
+
// Get the width with scrollbars.
|
5835 |
+
var widthWithScroll = $inner[0].offsetWidth
|
5836 |
+
|
5837 |
+
// Remove the divs.
|
5838 |
+
$outer.remove()
|
5839 |
+
|
5840 |
+
// Return the difference between the widths.
|
5841 |
+
return widthWithoutScroll - widthWithScroll
|
5842 |
+
}
|
5843 |
+
|
5844 |
+
|
5845 |
+
|
5846 |
+
/**
|
5847 |
+
* PickerConstructor helper methods.
|
5848 |
+
*/
|
5849 |
+
PickerConstructor._ = {
|
5850 |
+
|
5851 |
+
/**
|
5852 |
+
* Create a group of nodes. Expects:
|
5853 |
+
* `
|
5854 |
+
{
|
5855 |
+
min: {Integer},
|
5856 |
+
max: {Integer},
|
5857 |
+
i: {Integer},
|
5858 |
+
node: {String},
|
5859 |
+
item: {Function}
|
5860 |
+
}
|
5861 |
+
* `
|
5862 |
+
*/
|
5863 |
+
group: function( groupObject ) {
|
5864 |
+
|
5865 |
+
var
|
5866 |
+
// Scope for the looped object
|
5867 |
+
loopObjectScope,
|
5868 |
+
|
5869 |
+
// Create the nodes list
|
5870 |
+
nodesList = '',
|
5871 |
+
|
5872 |
+
// The counter starts from the `min`
|
5873 |
+
counter = PickerConstructor._.trigger( groupObject.min, groupObject )
|
5874 |
+
|
5875 |
+
|
5876 |
+
// Loop from the `min` to `max`, incrementing by `i`
|
5877 |
+
for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) {
|
5878 |
+
|
5879 |
+
// Trigger the `item` function within scope of the object
|
5880 |
+
loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] )
|
5881 |
+
|
5882 |
+
// Splice the subgroup and create nodes out of the sub nodes
|
5883 |
+
nodesList += PickerConstructor._.node(
|
5884 |
+
groupObject.node,
|
5885 |
+
loopObjectScope[ 0 ], // the node
|
5886 |
+
loopObjectScope[ 1 ], // the classes
|
5887 |
+
loopObjectScope[ 2 ] // the attributes
|
5888 |
+
)
|
5889 |
+
}
|
5890 |
+
|
5891 |
+
// Return the list of nodes
|
5892 |
+
return nodesList
|
5893 |
+
}, //group
|
5894 |
+
|
5895 |
+
|
5896 |
+
/**
|
5897 |
+
* Create a dom node string
|
5898 |
+
*/
|
5899 |
+
node: function( wrapper, item, klass, attribute ) {
|
5900 |
+
|
5901 |
+
// If the item is false-y, just return an empty string
|
5902 |
+
if ( !item ) return ''
|
5903 |
+
|
5904 |
+
// If the item is an array, do a join
|
5905 |
+
item = $.isArray( item ) ? item.join( '' ) : item
|
5906 |
+
|
5907 |
+
// Check for the class
|
5908 |
+
klass = klass ? ' class="' + klass + '"' : ''
|
5909 |
+
|
5910 |
+
// Check for any attributes
|
5911 |
+
attribute = attribute ? ' ' + attribute : ''
|
5912 |
+
|
5913 |
+
// Return the wrapped item
|
5914 |
+
return '<' + wrapper + klass + attribute + '>' + item + '</' + wrapper + '>'
|
5915 |
+
}, //node
|
5916 |
+
|
5917 |
+
|
5918 |
+
/**
|
5919 |
+
* Lead numbers below 10 with a zero.
|
5920 |
+
*/
|
5921 |
+
lead: function( number ) {
|
5922 |
+
return ( number < 10 ? '0': '' ) + number
|
5923 |
+
},
|
5924 |
+
|
5925 |
+
|
5926 |
+
/**
|
5927 |
+
* Trigger a function otherwise return the value.
|
5928 |
+
*/
|
5929 |
+
trigger: function( callback, scope, args ) {
|
5930 |
+
return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback
|
5931 |
+
},
|
5932 |
+
|
5933 |
+
|
5934 |
+
/**
|
5935 |
+
* If the second character is a digit, length is 2 otherwise 1.
|
5936 |
+
*/
|
5937 |
+
digits: function( string ) {
|
5938 |
+
return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1
|
5939 |
+
},
|
5940 |
+
|
5941 |
+
|
5942 |
+
/**
|
5943 |
+
* Tell if something is a date object.
|
5944 |
+
*/
|
5945 |
+
isDate: function( value ) {
|
5946 |
+
return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() )
|
5947 |
+
},
|
5948 |
+
|
5949 |
+
|
5950 |
+
/**
|
5951 |
+
* Tell if something is an integer.
|
5952 |
+
*/
|
5953 |
+
isInteger: function( value ) {
|
5954 |
+
return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0
|
5955 |
+
},
|
5956 |
+
|
5957 |
+
|
5958 |
+
/**
|
5959 |
+
* Create ARIA attribute strings.
|
5960 |
+
*/
|
5961 |
+
ariaAttr: ariaAttr
|
5962 |
+
} //PickerConstructor._
|
5963 |
+
|
5964 |
+
|
5965 |
+
|
5966 |
+
/**
|
5967 |
+
* Extend the picker with a component and defaults.
|
5968 |
+
*/
|
5969 |
+
PickerConstructor.extend = function( name, Component ) {
|
5970 |
+
|
5971 |
+
// Extend jQuery.
|
5972 |
+
$.fn[ name ] = function( options, action ) {
|
5973 |
+
|
5974 |
+
// Grab the component data.
|
5975 |
+
var componentData = this.data( name )
|
5976 |
+
|
5977 |
+
// If the picker is requested, return the data object.
|
5978 |
+
if ( options == 'picker' ) {
|
5979 |
+
return componentData
|
5980 |
+
}
|
5981 |
+
|
5982 |
+
// If the component data exists and `options` is a string, carry out the action.
|
5983 |
+
if ( componentData && typeof options == 'string' ) {
|
5984 |
+
return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] )
|
5985 |
+
}
|
5986 |
+
|
5987 |
+
// Otherwise go through each matched element and if the component
|
5988 |
+
// doesn’t exist, create a new picker using `this` element
|
5989 |
+
// and merging the defaults and options with a deep copy.
|
5990 |
+
return this.each( function() {
|
5991 |
+
var $this = $( this )
|
5992 |
+
if ( !$this.data( name ) ) {
|
5993 |
+
new PickerConstructor( this, name, Component, options )
|
5994 |
+
}
|
5995 |
+
})
|
5996 |
+
}
|
5997 |
+
|
5998 |
+
// Set the defaults.
|
5999 |
+
$.fn[ name ].defaults = Component.defaults
|
6000 |
+
} //PickerConstructor.extend
|
6001 |
+
|
6002 |
+
|
6003 |
+
|
6004 |
+
function aria(element, attribute, value) {
|
6005 |
+
if ( $.isPlainObject(attribute) ) {
|
6006 |
+
for ( var key in attribute ) {
|
6007 |
+
ariaSet(element, key, attribute[key])
|
6008 |
+
}
|
6009 |
+
}
|
6010 |
+
else {
|
6011 |
+
ariaSet(element, attribute, value)
|
6012 |
+
}
|
6013 |
+
}
|
6014 |
+
function ariaSet(element, attribute, value) {
|
6015 |
+
element.setAttribute(
|
6016 |
+
(attribute == 'role' ? '' : 'aria-') + attribute,
|
6017 |
+
value
|
6018 |
+
)
|
6019 |
+
}
|
6020 |
+
function ariaAttr(attribute, data) {
|
6021 |
+
if ( !$.isPlainObject(attribute) ) {
|
6022 |
+
attribute = { attribute: data }
|
6023 |
+
}
|
6024 |
+
data = ''
|
6025 |
+
for ( var key in attribute ) {
|
6026 |
+
var attr = (key == 'role' ? '' : 'aria-') + key,
|
6027 |
+
attrVal = attribute[key]
|
6028 |
+
data += attrVal == null ? '' : attr + '="' + attribute[key] + '"'
|
6029 |
+
}
|
6030 |
+
return data
|
6031 |
+
}
|
6032 |
+
|
6033 |
+
// IE8 bug throws an error for activeElements within iframes.
|
6034 |
+
function getActiveElement() {
|
6035 |
+
try {
|
6036 |
+
return document.activeElement
|
6037 |
+
} catch ( err ) { }
|
6038 |
+
}
|
6039 |
+
|
6040 |
+
|
6041 |
+
|
6042 |
+
// Expose the picker constructor.
|
6043 |
+
return PickerConstructor
|
6044 |
+
|
6045 |
+
|
6046 |
+
}));
|
6047 |
+
|
6048 |
+
|
6049 |
+
;/*!
|
6050 |
+
* Date picker for pickadate.js v3.5.0
|
6051 |
+
* http://amsul.github.io/pickadate.js/date.htm
|
6052 |
+
*/
|
6053 |
+
|
6054 |
+
(function ( factory ) {
|
6055 |
+
|
6056 |
+
// AMD.
|
6057 |
+
if ( typeof define == 'function' && define.amd )
|
6058 |
+
define( ['picker', 'jquery'], factory )
|
6059 |
+
|
6060 |
+
// Node.js/browserify.
|
6061 |
+
else if ( typeof exports == 'object' )
|
6062 |
+
module.exports = factory( require('./picker.js'), require('jquery') )
|
6063 |
+
|
6064 |
+
// Browser globals.
|
6065 |
+
else factory( Picker, jQuery )
|
6066 |
+
|
6067 |
+
}(function( Picker, $ ) {
|
6068 |
+
|
6069 |
+
|
6070 |
+
/**
|
6071 |
+
* Globals and constants
|
6072 |
+
*/
|
6073 |
+
var DAYS_IN_WEEK = 7,
|
6074 |
+
WEEKS_IN_CALENDAR = 6,
|
6075 |
+
_ = Picker._
|
6076 |
+
|
6077 |
+
|
6078 |
+
|
6079 |
+
/**
|
6080 |
+
* The date picker constructor
|
6081 |
+
*/
|
6082 |
+
function DatePicker( picker, settings ) {
|
6083 |
+
|
6084 |
+
var calendar = this,
|
6085 |
+
element = picker.$node[ 0 ],
|
6086 |
+
elementValue = element.value,
|
6087 |
+
elementDataValue = picker.$node.data( 'value' ),
|
6088 |
+
valueString = elementDataValue || elementValue,
|
6089 |
+
formatString = elementDataValue ? settings.formatSubmit : settings.format,
|
6090 |
+
isRTL = function() {
|
6091 |
+
|
6092 |
+
return element.currentStyle ?
|
6093 |
+
|
6094 |
+
// For IE.
|
6095 |
+
element.currentStyle.direction == 'rtl' :
|
6096 |
+
|
6097 |
+
// For normal browsers.
|
6098 |
+
getComputedStyle( picker.$root[0] ).direction == 'rtl'
|
6099 |
+
}
|
6100 |
+
|
6101 |
+
calendar.settings = settings
|
6102 |
+
calendar.$node = picker.$node
|
6103 |
+
|
6104 |
+
// The queue of methods that will be used to build item objects.
|
6105 |
+
calendar.queue = {
|
6106 |
+
min: 'measure create',
|
6107 |
+
max: 'measure create',
|
6108 |
+
now: 'now create',
|
6109 |
+
select: 'parse create validate',
|
6110 |
+
highlight: 'parse navigate create validate',
|
6111 |
+
view: 'parse create validate viewset',
|
6112 |
+
disable: 'deactivate',
|
6113 |
+
enable: 'activate'
|
6114 |
+
}
|
6115 |
+
|
6116 |
+
// The component's item object.
|
6117 |
+
calendar.item = {}
|
6118 |
+
|
6119 |
+
calendar.item.clear = null
|
6120 |
+
calendar.item.disable = ( settings.disable || [] ).slice( 0 )
|
6121 |
+
calendar.item.enable = -(function( collectionDisabled ) {
|
6122 |
+
return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1
|
6123 |
+
})( calendar.item.disable )
|
6124 |
+
|
6125 |
+
calendar.
|
6126 |
+
set( 'min', settings.min ).
|
6127 |
+
set( 'max', settings.max ).
|
6128 |
+
set( 'now' )
|
6129 |
+
|
6130 |
+
// When there’s a value, set the `select`, which in turn
|
6131 |
+
// also sets the `highlight` and `view`.
|
6132 |
+
if ( valueString ) {
|
6133 |
+
calendar.set( 'select', valueString, { format: formatString })
|
6134 |
+
}
|
6135 |
+
|
6136 |
+
// If there’s no value, default to highlighting “today”.
|
6137 |
+
else {
|
6138 |
+
calendar.
|
6139 |
+
set( 'select', null ).
|
6140 |
+
set( 'highlight', calendar.item.now )
|
6141 |
+
}
|
6142 |
+
|
6143 |
+
|
6144 |
+
// The keycode to movement mapping.
|
6145 |
+
calendar.key = {
|
6146 |
+
40: 7, // Down
|
6147 |
+
38: -7, // Up
|
6148 |
+
39: function() { return isRTL() ? -1 : 1 }, // Right
|
6149 |
+
37: function() { return isRTL() ? 1 : -1 }, // Left
|
6150 |
+
go: function( timeChange ) {
|
6151 |
+
var highlightedObject = calendar.item.highlight,
|
6152 |
+
targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange )
|
6153 |
+
calendar.set(
|
6154 |
+
'highlight',
|
6155 |
+
targetDate,
|
6156 |
+
{ interval: timeChange }
|
6157 |
+
)
|
6158 |
+
this.render()
|
6159 |
+
}
|
6160 |
+
}
|
6161 |
+
|
6162 |
+
|
6163 |
+
// Bind some picker events.
|
6164 |
+
picker.
|
6165 |
+
on( 'render', function() {
|
6166 |
+
picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() {
|
6167 |
+
var value = this.value
|
6168 |
+
if ( value ) {
|
6169 |
+
picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] )
|
6170 |
+
picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' )
|
6171 |
+
}
|
6172 |
+
})
|
6173 |
+
picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() {
|
6174 |
+
var value = this.value
|
6175 |
+
if ( value ) {
|
6176 |
+
picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] )
|
6177 |
+
picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' )
|
6178 |
+
}
|
6179 |
+
})
|
6180 |
+
}, 1 ).
|
6181 |
+
on( 'open', function() {
|
6182 |
+
var includeToday = ''
|
6183 |
+
if ( calendar.disabled( calendar.get('now') ) ) {
|
6184 |
+
includeToday = ':not(.' + settings.klass.buttonToday + ')'
|
6185 |
+
}
|
6186 |
+
picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false )
|
6187 |
+
}, 1 ).
|
6188 |
+
on( 'close', function() {
|
6189 |
+
picker.$root.find( 'button, select' ).attr( 'disabled', true )
|
6190 |
+
}, 1 )
|
6191 |
+
|
6192 |
+
} //DatePicker
|
6193 |
+
|
6194 |
+
|
6195 |
+
/**
|
6196 |
+
* Set a datepicker item object.
|
6197 |
+
*/
|
6198 |
+
DatePicker.prototype.set = function( type, value, options ) {
|
6199 |
+
|
6200 |
+
var calendar = this,
|
6201 |
+
calendarItem = calendar.item
|
6202 |
+
|
6203 |
+
// If the value is `null` just set it immediately.
|
6204 |
+
if ( value === null ) {
|
6205 |
+
if ( type == 'clear' ) type = 'select'
|
6206 |
+
calendarItem[ type ] = value
|
6207 |
+
return calendar
|
6208 |
+
}
|
6209 |
+
|
6210 |
+
// Otherwise go through the queue of methods, and invoke the functions.
|
6211 |
+
// Update this as the time unit, and set the final value as this item.
|
6212 |
+
// * In the case of `enable`, keep the queue but set `disable` instead.
|
6213 |
+
// And in the case of `flip`, keep the queue but set `enable` instead.
|
6214 |
+
calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) {
|
6215 |
+
value = calendar[ method ]( type, value, options )
|
6216 |
+
return value
|
6217 |
+
}).pop()
|
6218 |
+
|
6219 |
+
// Check if we need to cascade through more updates.
|
6220 |
+
if ( type == 'select' ) {
|
6221 |
+
calendar.set( 'highlight', calendarItem.select, options )
|
6222 |
+
}
|
6223 |
+
else if ( type == 'highlight' ) {
|
6224 |
+
calendar.set( 'view', calendarItem.highlight, options )
|
6225 |
+
}
|
6226 |
+
else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) {
|
6227 |
+
if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) {
|
6228 |
+
calendar.set( 'select', calendarItem.select, options )
|
6229 |
+
}
|
6230 |
+
if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) {
|
6231 |
+
calendar.set( 'highlight', calendarItem.highlight, options )
|
6232 |
+
}
|
6233 |
+
}
|
6234 |
+
|
6235 |
+
return calendar
|
6236 |
+
} //DatePicker.prototype.set
|
6237 |
+
|
6238 |
+
|
6239 |
+
/**
|
6240 |
+
* Get a datepicker item object.
|
6241 |
+
*/
|
6242 |
+
DatePicker.prototype.get = function( type ) {
|
6243 |
+
return this.item[ type ]
|
6244 |
+
} //DatePicker.prototype.get
|
6245 |
+
|
6246 |
+
|
6247 |
+
/**
|
6248 |
+
* Create a picker date object.
|
6249 |
+
*/
|
6250 |
+
DatePicker.prototype.create = function( type, value, options ) {
|
6251 |
+
|
6252 |
+
var isInfiniteValue,
|
6253 |
+
calendar = this
|
6254 |
+
|
6255 |
+
// If there’s no value, use the type as the value.
|
6256 |
+
value = value === undefined ? type : value
|
6257 |
+
|
6258 |
+
|
6259 |
+
// If it’s infinity, update the value.
|
6260 |
+
if ( value == -Infinity || value == Infinity ) {
|
6261 |
+
isInfiniteValue = value
|
6262 |
+
}
|
6263 |
+
|
6264 |
+
// If it’s an object, use the native date object.
|
6265 |
+
else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) {
|
6266 |
+
value = value.obj
|
6267 |
+
}
|
6268 |
+
|
6269 |
+
// If it’s an array, convert it into a date and make sure
|
6270 |
+
// that it’s a valid date – otherwise default to today.
|
6271 |
+
else if ( $.isArray( value ) ) {
|
6272 |
+
value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] )
|
6273 |
+
value = _.isDate( value ) ? value : calendar.create().obj
|
6274 |
+
}
|
6275 |
+
|
6276 |
+
// If it’s a number or date object, make a normalized date.
|
6277 |
+
else if ( _.isInteger( value ) || _.isDate( value ) ) {
|
6278 |
+
value = calendar.normalize( new Date( value ), options )
|
6279 |
+
}
|
6280 |
+
|
6281 |
+
// If it’s a literal true or any other case, set it to now.
|
6282 |
+
else /*if ( value === true )*/ {
|
6283 |
+
value = calendar.now( type, value, options )
|
6284 |
+
}
|
6285 |
+
|
6286 |
+
// Return the compiled object.
|
6287 |
+
return {
|
6288 |
+
year: isInfiniteValue || value.getFullYear(),
|
6289 |
+
month: isInfiniteValue || value.getMonth(),
|
6290 |
+
date: isInfiniteValue || value.getDate(),
|
6291 |
+
day: isInfiniteValue || value.getDay(),
|
6292 |
+
obj: isInfiniteValue || value,
|
6293 |
+
pick: isInfiniteValue || value.getTime()
|
6294 |
+
}
|
6295 |
+
} //DatePicker.prototype.create
|
6296 |
+
|
6297 |
+
|
6298 |
+
/**
|
6299 |
+
* Create a range limit object using an array, date object,
|
6300 |
+
* literal “true”, or integer relative to another time.
|
6301 |
+
*/
|
6302 |
+
DatePicker.prototype.createRange = function( from, to ) {
|
6303 |
+
|
6304 |
+
var calendar = this,
|
6305 |
+
createDate = function( date ) {
|
6306 |
+
if ( date === true || $.isArray( date ) || _.isDate( date ) ) {
|
6307 |
+
return calendar.create( date )
|
6308 |
+
}
|
6309 |
+
return date
|
6310 |
+
}
|
6311 |
+
|
6312 |
+
// Create objects if possible.
|
6313 |
+
if ( !_.isInteger( from ) ) {
|
6314 |
+
from = createDate( from )
|
6315 |
+
}
|
6316 |
+
if ( !_.isInteger( to ) ) {
|
6317 |
+
to = createDate( to )
|
6318 |
+
}
|
6319 |
+
|
6320 |
+
// Create relative dates.
|
6321 |
+
if ( _.isInteger( from ) && $.isPlainObject( to ) ) {
|
6322 |
+
from = [ to.year, to.month, to.date + from ];
|
6323 |
+
}
|
6324 |
+
else if ( _.isInteger( to ) && $.isPlainObject( from ) ) {
|
6325 |
+
to = [ from.year, from.month, from.date + to ];
|
6326 |
+
}
|
6327 |
+
|
6328 |
+
return {
|
6329 |
+
from: createDate( from ),
|
6330 |
+
to: createDate( to )
|
6331 |
+
}
|
6332 |
+
} //DatePicker.prototype.createRange
|
6333 |
+
|
6334 |
+
|
6335 |
+
/**
|
6336 |
+
* Check if a date unit falls within a date range object.
|
6337 |
+
*/
|
6338 |
+
DatePicker.prototype.withinRange = function( range, dateUnit ) {
|
6339 |
+
range = this.createRange(range.from, range.to)
|
6340 |
+
return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick
|
6341 |
+
}
|
6342 |
+
|
6343 |
+
|
6344 |
+
/**
|
6345 |
+
* Check if two date range objects overlap.
|
6346 |
+
*/
|
6347 |
+
DatePicker.prototype.overlapRanges = function( one, two ) {
|
6348 |
+
|
6349 |
+
var calendar = this
|
6350 |
+
|
6351 |
+
// Convert the ranges into comparable dates.
|
6352 |
+
one = calendar.createRange( one.from, one.to )
|
6353 |
+
two = calendar.createRange( two.from, two.to )
|
6354 |
+
|
6355 |
+
return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) ||
|
6356 |
+
calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to )
|
6357 |
+
}
|
6358 |
+
|
6359 |
+
|
6360 |
+
/**
|
6361 |
+
* Get the date today.
|
6362 |
+
*/
|
6363 |
+
DatePicker.prototype.now = function( type, value, options ) {
|
6364 |
+
value = new Date()
|
6365 |
+
if ( options && options.rel ) {
|
6366 |
+
value.setDate( value.getDate() + options.rel )
|
6367 |
+
}
|
6368 |
+
return this.normalize( value, options )
|
6369 |
+
}
|
6370 |
+
|
6371 |
+
|
6372 |
+
/**
|
6373 |
+
* Navigate to next/prev month.
|
6374 |
+
*/
|
6375 |
+
DatePicker.prototype.navigate = function( type, value, options ) {
|
6376 |
+
|
6377 |
+
var targetDateObject,
|
6378 |
+
targetYear,
|
6379 |
+
targetMonth,
|
6380 |
+
targetDate,
|
6381 |
+
isTargetArray = $.isArray( value ),
|
6382 |
+
isTargetObject = $.isPlainObject( value ),
|
6383 |
+
viewsetObject = this.item.view/*,
|
6384 |
+
safety = 100*/
|
6385 |
+
|
6386 |
+
|
6387 |
+
if ( isTargetArray || isTargetObject ) {
|
6388 |
+
|
6389 |
+
if ( isTargetObject ) {
|
6390 |
+
targetYear = value.year
|
6391 |
+
targetMonth = value.month
|
6392 |
+
targetDate = value.date
|
6393 |
+
}
|
6394 |
+
else {
|
6395 |
+
targetYear = +value[0]
|
6396 |
+
targetMonth = +value[1]
|
6397 |
+
targetDate = +value[2]
|
6398 |
+
}
|
6399 |
+
|
6400 |
+
// If we’re navigating months but the view is in a different
|
6401 |
+
// month, navigate to the view’s year and month.
|
6402 |
+
if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) {
|
6403 |
+
targetYear = viewsetObject.year
|
6404 |
+
targetMonth = viewsetObject.month
|
6405 |
+
}
|
6406 |
+
|
6407 |
+
// Figure out the expected target year and month.
|
6408 |
+
targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 )
|
6409 |
+
targetYear = targetDateObject.getFullYear()
|
6410 |
+
targetMonth = targetDateObject.getMonth()
|
6411 |
+
|
6412 |
+
// If the month we’re going to doesn’t have enough days,
|
6413 |
+
// keep decreasing the date until we reach the month’s last date.
|
6414 |
+
while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) {
|
6415 |
+
targetDate -= 1
|
6416 |
+
/*safety -= 1
|
6417 |
+
if ( !safety ) {
|
6418 |
+
throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.'
|
6419 |
+
}*/
|
6420 |
+
}
|
6421 |
+
|
6422 |
+
value = [ targetYear, targetMonth, targetDate ]
|
6423 |
+
}
|
6424 |
+
|
6425 |
+
return value
|
6426 |
+
} //DatePicker.prototype.navigate
|
6427 |
+
|
6428 |
+
|
6429 |
+
/**
|
6430 |
+
* Normalize a date by setting the hours to midnight.
|
6431 |
+
*/
|
6432 |
+
DatePicker.prototype.normalize = function( value/*, options*/ ) {
|
6433 |
+
value.setHours( 0, 0, 0, 0 )
|
6434 |
+
return value
|
6435 |
+
}
|
6436 |
+
|
6437 |
+
|
6438 |
+
/**
|
6439 |
+
* Measure the range of dates.
|
6440 |
+
*/
|
6441 |
+
DatePicker.prototype.measure = function( type, value/*, options*/ ) {
|
6442 |
+
|
6443 |
+
var calendar = this
|
6444 |
+
|
6445 |
+
// If it’s anything false-y, remove the limits.
|
6446 |
+
if ( !value ) {
|
6447 |
+
value = type == 'min' ? -Infinity : Infinity
|
6448 |
+
}
|
6449 |
+
|
6450 |
+
// If it’s a string, parse it.
|
6451 |
+
else if ( typeof value == 'string' ) {
|
6452 |
+
value = calendar.parse( type, value )
|
6453 |
+
}
|
6454 |
+
|
6455 |
+
// If it's an integer, get a date relative to today.
|
6456 |
+
else if ( _.isInteger( value ) ) {
|
6457 |
+
value = calendar.now( type, value, { rel: value } )
|
6458 |
+
}
|
6459 |
+
|
6460 |
+
return value
|
6461 |
+
} ///DatePicker.prototype.measure
|
6462 |
+
|
6463 |
+
|
6464 |
+
/**
|
6465 |
+
* Create a viewset object based on navigation.
|
6466 |
+
*/
|
6467 |
+
DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) {
|
6468 |
+
return this.create([ dateObject.year, dateObject.month, 1 ])
|
6469 |
+
}
|
6470 |
+
|
6471 |
+
|
6472 |
+
/**
|
6473 |
+
* Validate a date as enabled and shift if needed.
|
6474 |
+
*/
|
6475 |
+
DatePicker.prototype.validate = function( type, dateObject, options ) {
|
6476 |
+
|
6477 |
+
var calendar = this,
|
6478 |
+
|
6479 |
+
// Keep a reference to the original date.
|
6480 |
+
originalDateObject = dateObject,
|
6481 |
+
|
6482 |
+
// Make sure we have an interval.
|
6483 |
+
interval = options && options.interval ? options.interval : 1,
|
6484 |
+
|
6485 |
+
// Check if the calendar enabled dates are inverted.
|
6486 |
+
isFlippedBase = calendar.item.enable === -1,
|
6487 |
+
|
6488 |
+
// Check if we have any enabled dates after/before now.
|
6489 |
+
hasEnabledBeforeTarget, hasEnabledAfterTarget,
|
6490 |
+
|
6491 |
+
// The min & max limits.
|
6492 |
+
minLimitObject = calendar.item.min,
|
6493 |
+
maxLimitObject = calendar.item.max,
|
6494 |
+
|
6495 |
+
// Check if we’ve reached the limit during shifting.
|
6496 |
+
reachedMin, reachedMax,
|
6497 |
+
|
6498 |
+
// Check if the calendar is inverted and at least one weekday is enabled.
|
6499 |
+
hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) {
|
6500 |
+
|
6501 |
+
// If there’s a date, check where it is relative to the target.
|
6502 |
+
if ( $.isArray( value ) ) {
|
6503 |
+
var dateTime = calendar.create( value ).pick
|
6504 |
+
if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true
|
6505 |
+
else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true
|
6506 |
+
}
|
6507 |
+
|
6508 |
+
// Return only integers for enabled weekdays.
|
6509 |
+
return _.isInteger( value )
|
6510 |
+
}).length/*,
|
6511 |
+
|
6512 |
+
safety = 100*/
|
6513 |
+
|
6514 |
+
|
6515 |
+
|
6516 |
+
// Cases to validate for:
|
6517 |
+
// [1] Not inverted and date disabled.
|
6518 |
+
// [2] Inverted and some dates enabled.
|
6519 |
+
// [3] Not inverted and out of range.
|
6520 |
+
//
|
6521 |
+
// Cases to **not** validate for:
|
6522 |
+
// • Navigating months.
|
6523 |
+
// • Not inverted and date enabled.
|
6524 |
+
// • Inverted and all dates disabled.
|
6525 |
+
// • ..and anything else.
|
6526 |
+
if ( !options || !options.nav ) if (
|
6527 |
+
/* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) ||
|
6528 |
+
/* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) ||
|
6529 |
+
/* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) )
|
6530 |
+
) {
|
6531 |
+
|
6532 |
+
|
6533 |
+
// When inverted, flip the direction if there aren’t any enabled weekdays
|
6534 |
+
// and there are no enabled dates in the direction of the interval.
|
6535 |
+
if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) {
|
6536 |
+
interval *= -1
|
6537 |
+
}
|
6538 |
+
|
6539 |
+
|
6540 |
+
// Keep looping until we reach an enabled date.
|
6541 |
+
while ( /*safety &&*/ calendar.disabled( dateObject ) ) {
|
6542 |
+
|
6543 |
+
/*safety -= 1
|
6544 |
+
if ( !safety ) {
|
6545 |
+
throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.'
|
6546 |
+
}*/
|
6547 |
+
|
6548 |
+
|
6549 |
+
// If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval.
|
6550 |
+
if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) {
|
6551 |
+
dateObject = originalDateObject
|
6552 |
+
interval = interval > 0 ? 1 : -1
|
6553 |
+
}
|
6554 |
+
|
6555 |
+
|
6556 |
+
// If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit.
|
6557 |
+
if ( dateObject.pick <= minLimitObject.pick ) {
|
6558 |
+
reachedMin = true
|
6559 |
+
interval = 1
|
6560 |
+
dateObject = calendar.create([
|
6561 |
+
minLimitObject.year,
|
6562 |
+
minLimitObject.month,
|
6563 |
+
minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1)
|
6564 |
+
])
|
6565 |
+
}
|
6566 |
+
else if ( dateObject.pick >= maxLimitObject.pick ) {
|
6567 |
+
reachedMax = true
|
6568 |
+
interval = -1
|
6569 |
+
dateObject = calendar.create([
|
6570 |
+
maxLimitObject.year,
|
6571 |
+
maxLimitObject.month,
|
6572 |
+
maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1)
|
6573 |
+
])
|
6574 |
+
}
|
6575 |
+
|
6576 |
+
|
6577 |
+
// If we’ve reached both limits, just break out of the loop.
|
6578 |
+
if ( reachedMin && reachedMax ) {
|
6579 |
+
break
|
6580 |
+
}
|
6581 |
+
|
6582 |
+
|
6583 |
+
// Finally, create the shifted date using the interval and keep looping.
|
6584 |
+
dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ])
|
6585 |
+
}
|
6586 |
+
|
6587 |
+
} //endif
|
6588 |
+
|
6589 |
+
|
6590 |
+
// Return the date object settled on.
|
6591 |
+
return dateObject
|
6592 |
+
} //DatePicker.prototype.validate
|
6593 |
+
|
6594 |
+
|
6595 |
+
/**
|
6596 |
+
* Check if a date is disabled.
|
6597 |
+
*/
|
6598 |
+
DatePicker.prototype.disabled = function( dateToVerify ) {
|
6599 |
+
|
6600 |
+
var
|
6601 |
+
calendar = this,
|
6602 |
+
|
6603 |
+
// Filter through the disabled dates to check if this is one.
|
6604 |
+
isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) {
|
6605 |
+
|
6606 |
+
// If the date is a number, match the weekday with 0index and `firstDay` check.
|
6607 |
+
if ( _.isInteger( dateToDisable ) ) {
|
6608 |
+
return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7
|
6609 |
+
}
|
6610 |
+
|
6611 |
+
// If it’s an array or a native JS date, create and match the exact date.
|
6612 |
+
if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) {
|
6613 |
+
return dateToVerify.pick === calendar.create( dateToDisable ).pick
|
6614 |
+
}
|
6615 |
+
|
6616 |
+
// If it’s an object, match a date within the “from” and “to” range.
|
6617 |
+
if ( $.isPlainObject( dateToDisable ) ) {
|
6618 |
+
return calendar.withinRange( dateToDisable, dateToVerify )
|
6619 |
+
}
|
6620 |
+
})
|
6621 |
+
|
6622 |
+
// If this date matches a disabled date, confirm it’s not inverted.
|
6623 |
+
isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) {
|
6624 |
+
return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' ||
|
6625 |
+
$.isPlainObject( dateToDisable ) && dateToDisable.inverted
|
6626 |
+
}).length
|
6627 |
+
|
6628 |
+
// Check the calendar “enabled” flag and respectively flip the
|
6629 |
+
// disabled state. Then also check if it’s beyond the min/max limits.
|
6630 |
+
return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch ||
|
6631 |
+
dateToVerify.pick < calendar.item.min.pick ||
|
6632 |
+
dateToVerify.pick > calendar.item.max.pick
|
6633 |
+
|
6634 |
+
} //DatePicker.prototype.disabled
|
6635 |
+
|
6636 |
+
|
6637 |
+
/**
|
6638 |
+
* Parse a string into a usable type.
|
6639 |
+
*/
|
6640 |
+
DatePicker.prototype.parse = function( type, value, options ) {
|
6641 |
+
|
6642 |
+
var calendar = this,
|
6643 |
+
parsingObject = {}
|
6644 |
+
|
6645 |
+
// If it’s already parsed, we’re good.
|
6646 |
+
if ( !value || typeof value != 'string' ) {
|
6647 |
+
return value
|
6648 |
+
}
|
6649 |
+
|
6650 |
+
// We need a `.format` to parse the value with.
|
6651 |
+
if ( !( options && options.format ) ) {
|
6652 |
+
options = options || {}
|
6653 |
+
options.format = calendar.settings.format
|
6654 |
+
}
|
6655 |
+
|
6656 |
+
// Convert the format into an array and then map through it.
|
6657 |
+
calendar.formats.toArray( options.format ).map( function( label ) {
|
6658 |
+
|
6659 |
+
var
|
6660 |
+
// Grab the formatting label.
|
6661 |
+
formattingLabel = calendar.formats[ label ],
|
6662 |
+
|
6663 |
+
// The format length is from the formatting label function or the
|
6664 |
+
// label length without the escaping exclamation (!) mark.
|
6665 |
+
formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length
|
6666 |
+
|
6667 |
+
// If there's a format label, split the value up to the format length.
|
6668 |
+
// Then add it to the parsing object with appropriate label.
|
6669 |
+
if ( formattingLabel ) {
|
6670 |
+
parsingObject[ label ] = value.substr( 0, formatLength )
|
6671 |
+
}
|
6672 |
+
|
6673 |
+
// Update the value as the substring from format length to end.
|
6674 |
+
value = value.substr( formatLength )
|
6675 |
+
})
|
6676 |
+
|
6677 |
+
// Compensate for month 0index.
|
6678 |
+
return [
|
6679 |
+
parsingObject.yyyy || parsingObject.yy,
|
6680 |
+
+( parsingObject.mm || parsingObject.m ) - 1,
|
6681 |
+
parsingObject.dd || parsingObject.d
|
6682 |
+
]
|
6683 |
+
} //DatePicker.prototype.parse
|
6684 |
+
|
6685 |
+
|
6686 |
+
/**
|
6687 |
+
* Various formats to display the object in.
|
6688 |
+
*/
|
6689 |
+
DatePicker.prototype.formats = (function() {
|
6690 |
+
|
6691 |
+
// Return the length of the first word in a collection.
|
6692 |
+
function getWordLengthFromCollection( string, collection, dateObject ) {
|
6693 |
+
|
6694 |
+
// Grab the first word from the string.
|
6695 |
+
var word = string.match( /\w+/ )[ 0 ]
|
6696 |
+
|
6697 |
+
// If there's no month index, add it to the date object
|
6698 |
+
if ( !dateObject.mm && !dateObject.m ) {
|
6699 |
+
dateObject.m = collection.indexOf( word ) + 1
|
6700 |
+
}
|
6701 |
+
|
6702 |
+
// Return the length of the word.
|
6703 |
+
return word.length
|
6704 |
+
}
|
6705 |
+
|
6706 |
+
// Get the length of the first word in a string.
|
6707 |
+
function getFirstWordLength( string ) {
|
6708 |
+
return string.match( /\w+/ )[ 0 ].length
|
6709 |
+
}
|
6710 |
+
|
6711 |
+
return {
|
6712 |
+
|
6713 |
+
d: function( string, dateObject ) {
|
6714 |
+
|
6715 |
+
// If there's string, then get the digits length.
|
6716 |
+
// Otherwise return the selected date.
|
6717 |
+
return string ? _.digits( string ) : dateObject.date
|
6718 |
+
},
|
6719 |
+
dd: function( string, dateObject ) {
|
6720 |
+
|
6721 |
+
// If there's a string, then the length is always 2.
|
6722 |
+
// Otherwise return the selected date with a leading zero.
|
6723 |
+
return string ? 2 : _.lead( dateObject.date )
|
6724 |
+
},
|
6725 |
+
ddd: function( string, dateObject ) {
|
6726 |
+
|
6727 |
+
// If there's a string, then get the length of the first word.
|
6728 |
+
// Otherwise return the short selected weekday.
|
6729 |
+
return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ]
|
6730 |
+
},
|
6731 |
+
dddd: function( string, dateObject ) {
|
6732 |
+
|
6733 |
+
// If there's a string, then get the length of the first word.
|
6734 |
+
// Otherwise return the full selected weekday.
|
6735 |
+
return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ]
|
6736 |
+
},
|
6737 |
+
m: function( string, dateObject ) {
|
6738 |
+
|
6739 |
+
// If there's a string, then get the length of the digits
|
6740 |
+
// Otherwise return the selected month with 0index compensation.
|
6741 |
+
return string ? _.digits( string ) : dateObject.month + 1
|
6742 |
+
},
|
6743 |
+
mm: function( string, dateObject ) {
|
6744 |
+
|
6745 |
+
// If there's a string, then the length is always 2.
|
6746 |
+
// Otherwise return the selected month with 0index and leading zero.
|
6747 |
+
return string ? 2 : _.lead( dateObject.month + 1 )
|
6748 |
+
},
|
6749 |
+
mmm: function( string, dateObject ) {
|
6750 |
+
|
6751 |
+
var collection = this.settings.monthsShort
|
6752 |
+
|
6753 |
+
// If there's a string, get length of the relevant month from the short
|
6754 |
+
// months collection. Otherwise return the selected month from that collection.
|
6755 |
+
return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ]
|
6756 |
+
},
|
6757 |
+
mmmm: function( string, dateObject ) {
|
6758 |
+
|
6759 |
+
var collection = this.settings.monthsFull
|
6760 |
+
|
6761 |
+
// If there's a string, get length of the relevant month from the full
|
6762 |
+
// months collection. Otherwise return the selected month from that collection.
|
6763 |
+
return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ]
|
6764 |
+
},
|
6765 |
+
yy: function( string, dateObject ) {
|
6766 |
+
|
6767 |
+
// If there's a string, then the length is always 2.
|
6768 |
+
// Otherwise return the selected year by slicing out the first 2 digits.
|
6769 |
+
return string ? 2 : ( '' + dateObject.year ).slice( 2 )
|
6770 |
+
},
|
6771 |
+
yyyy: function( string, dateObject ) {
|
6772 |
+
|
6773 |
+
// If there's a string, then the length is always 4.
|
6774 |
+
// Otherwise return the selected year.
|
6775 |
+
return string ? 4 : dateObject.year
|
6776 |
+
},
|
6777 |
+
|
6778 |
+
// Create an array by splitting the formatting string passed.
|
6779 |
+
toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) },
|
6780 |
+
|
6781 |
+
// Format an object into a string using the formatting options.
|
6782 |
+
toString: function ( formatString, itemObject ) {
|
6783 |
+
var calendar = this
|
6784 |
+
return calendar.formats.toArray( formatString ).map( function( label ) {
|
6785 |
+
return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' )
|
6786 |
+
}).join( '' )
|
6787 |
+
}
|
6788 |
+
}
|
6789 |
+
})() //DatePicker.prototype.formats
|
6790 |
+
|
6791 |
+
|
6792 |
+
|
6793 |
+
|
6794 |
+
/**
|
6795 |
+
* Check if two date units are the exact.
|
6796 |
+
*/
|
6797 |
+
DatePicker.prototype.isDateExact = function( one, two ) {
|
6798 |
+
|
6799 |
+
var calendar = this
|
6800 |
+
|
6801 |
+
// When we’re working with weekdays, do a direct comparison.
|
6802 |
+
if (
|
6803 |
+
( _.isInteger( one ) && _.isInteger( two ) ) ||
|
6804 |
+
( typeof one == 'boolean' && typeof two == 'boolean' )
|
6805 |
+
) {
|
6806 |
+
return one === two
|
6807 |
+
}
|
6808 |
+
|
6809 |
+
// When we’re working with date representations, compare the “pick” value.
|
6810 |
+
if (
|
6811 |
+
( _.isDate( one ) || $.isArray( one ) ) &&
|
6812 |
+
( _.isDate( two ) || $.isArray( two ) )
|
6813 |
+
) {
|
6814 |
+
return calendar.create( one ).pick === calendar.create( two ).pick
|
6815 |
+
}
|
6816 |
+
|
6817 |
+
// When we’re working with range objects, compare the “from” and “to”.
|
6818 |
+
if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) {
|
6819 |
+
return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to )
|
6820 |
+
}
|
6821 |
+
|
6822 |
+
return false
|
6823 |
+
}
|
6824 |
+
|
6825 |
+
|
6826 |
+
/**
|
6827 |
+
* Check if two date units overlap.
|
6828 |
+
*/
|
6829 |
+
DatePicker.prototype.isDateOverlap = function( one, two ) {
|
6830 |
+
|
6831 |
+
var calendar = this,
|
6832 |
+
firstDay = calendar.settings.firstDay ? 1 : 0
|
6833 |
+
|
6834 |
+
// When we’re working with a weekday index, compare the days.
|
6835 |
+
if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) {
|
6836 |
+
one = one % 7 + firstDay
|
6837 |
+
return one === calendar.create( two ).day + 1
|
6838 |
+
}
|
6839 |
+
if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) {
|
6840 |
+
two = two % 7 + firstDay
|
6841 |
+
return two === calendar.create( one ).day + 1
|
6842 |
+
}
|
6843 |
+
|
6844 |
+
// When we’re working with range objects, check if the ranges overlap.
|
6845 |
+
if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) {
|
6846 |
+
return calendar.overlapRanges( one, two )
|
6847 |
+
}
|
6848 |
+
|
6849 |
+
return false
|
6850 |
+
}
|
6851 |
+
|
6852 |
+
|
6853 |
+
/**
|
6854 |
+
* Flip the “enabled” state.
|
6855 |
+
*/
|
6856 |
+
DatePicker.prototype.flipEnable = function(val) {
|
6857 |
+
var itemObject = this.item
|
6858 |
+
itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1)
|
6859 |
+
}
|
6860 |
+
|
6861 |
+
|
6862 |
+
/**
|
6863 |
+
* Mark a collection of dates as “disabled”.
|
6864 |
+
*/
|
6865 |
+
DatePicker.prototype.deactivate = function( type, datesToDisable ) {
|
6866 |
+
|
6867 |
+
var calendar = this,
|
6868 |
+
disabledItems = calendar.item.disable.slice(0)
|
6869 |
+
|
6870 |
+
|
6871 |
+
// If we’re flipping, that’s all we need to do.
|
6872 |
+
if ( datesToDisable == 'flip' ) {
|
6873 |
+
calendar.flipEnable()
|
6874 |
+
}
|
6875 |
+
|
6876 |
+
else if ( datesToDisable === false ) {
|
6877 |
+
calendar.flipEnable(1)
|
6878 |
+
disabledItems = []
|
6879 |
+
}
|
6880 |
+
|
6881 |
+
else if ( datesToDisable === true ) {
|
6882 |
+
calendar.flipEnable(-1)
|
6883 |
+
disabledItems = []
|
6884 |
+
}
|
6885 |
+
|
6886 |
+
// Otherwise go through the dates to disable.
|
6887 |
+
else {
|
6888 |
+
|
6889 |
+
datesToDisable.map(function( unitToDisable ) {
|
6890 |
+
|
6891 |
+
var matchFound
|
6892 |
+
|
6893 |
+
// When we have disabled items, check for matches.
|
6894 |
+
// If something is matched, immediately break out.
|
6895 |
+
for ( var index = 0; index < disabledItems.length; index += 1 ) {
|
6896 |
+
if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) {
|
6897 |
+
matchFound = true
|
6898 |
+
break
|
6899 |
+
}
|
6900 |
+
}
|
6901 |
+
|
6902 |
+
// If nothing was found, add the validated unit to the collection.
|
6903 |
+
if ( !matchFound ) {
|
6904 |
+
if (
|
6905 |
+
_.isInteger( unitToDisable ) ||
|
6906 |
+
_.isDate( unitToDisable ) ||
|
6907 |
+
$.isArray( unitToDisable ) ||
|
6908 |
+
( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to )
|
6909 |
+
) {
|
6910 |
+
disabledItems.push( unitToDisable )
|
6911 |
+
}
|
6912 |
+
}
|
6913 |
+
})
|
6914 |
+
}
|
6915 |
+
|
6916 |
+
// Return the updated collection.
|
6917 |
+
return disabledItems
|
6918 |
+
} //DatePicker.prototype.deactivate
|
6919 |
+
|
6920 |
+
|
6921 |
+
/**
|
6922 |
+
* Mark a collection of dates as “enabled”.
|
6923 |
+
*/
|
6924 |
+
DatePicker.prototype.activate = function( type, datesToEnable ) {
|
6925 |
+
|
6926 |
+
var calendar = this,
|
6927 |
+
disabledItems = calendar.item.disable,
|
6928 |
+
disabledItemsCount = disabledItems.length
|
6929 |
+
|
6930 |
+
// If we’re flipping, that’s all we need to do.
|
6931 |
+
if ( datesToEnable == 'flip' ) {
|
6932 |
+
calendar.flipEnable()
|
6933 |
+
}
|
6934 |
+
|
6935 |
+
else if ( datesToEnable === true ) {
|
6936 |
+
calendar.flipEnable(1)
|
6937 |
+
disabledItems = []
|
6938 |
+
}
|
6939 |
+
|
6940 |
+
else if ( datesToEnable === false ) {
|
6941 |
+
calendar.flipEnable(-1)
|
6942 |
+
disabledItems = []
|
6943 |
+
}
|
6944 |
+
|
6945 |
+
// Otherwise go through the disabled dates.
|
6946 |
+
else {
|
6947 |
+
|
6948 |
+
datesToEnable.map(function( unitToEnable ) {
|
6949 |
+
|
6950 |
+
var matchFound,
|
6951 |
+
disabledUnit,
|
6952 |
+
index,
|
6953 |
+
isExactRange
|
6954 |
+
|
6955 |
+
// Go through the disabled items and try to find a match.
|
6956 |
+
for ( index = 0; index < disabledItemsCount; index += 1 ) {
|
6957 |
+
|
6958 |
+
disabledUnit = disabledItems[index]
|
6959 |
+
|
6960 |
+
// When an exact match is found, remove it from the collection.
|
6961 |
+
if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) {
|
6962 |
+
matchFound = disabledItems[index] = null
|
6963 |
+
isExactRange = true
|
6964 |
+
break
|
6965 |
+
}
|
6966 |
+
|
6967 |
+
// When an overlapped match is found, add the “inverted” state to it.
|
6968 |
+
else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) {
|
6969 |
+
if ( $.isPlainObject( unitToEnable ) ) {
|
6970 |
+
unitToEnable.inverted = true
|
6971 |
+
matchFound = unitToEnable
|
6972 |
+
}
|
6973 |
+
else if ( $.isArray( unitToEnable ) ) {
|
6974 |
+
matchFound = unitToEnable
|
6975 |
+
if ( !matchFound[3] ) matchFound.push( 'inverted' )
|
6976 |
+
}
|
6977 |
+
else if ( _.isDate( unitToEnable ) ) {
|
6978 |
+
matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ]
|
6979 |
+
}
|
6980 |
+
break
|
6981 |
+
}
|
6982 |
+
}
|
6983 |
+
|
6984 |
+
// If a match was found, remove a previous duplicate entry.
|
6985 |
+
if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) {
|
6986 |
+
if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) {
|
6987 |
+
disabledItems[index] = null
|
6988 |
+
break
|
6989 |
+
}
|
6990 |
+
}
|
6991 |
+
|
6992 |
+
// In the event that we’re dealing with an exact range of dates,
|
6993 |
+
// make sure there are no “inverted” dates because of it.
|
6994 |
+
if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) {
|
6995 |
+
if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) {
|
6996 |
+
disabledItems[index] = null
|
6997 |
+
break
|
6998 |
+
}
|
6999 |
+
}
|
7000 |
+
|
7001 |
+
// If something is still matched, add it into the collection.
|
7002 |
+
if ( matchFound ) {
|
7003 |
+
disabledItems.push( matchFound )
|
7004 |
+
}
|
7005 |
+
})
|
7006 |
+
}
|
7007 |
+
|
7008 |
+
// Return the updated collection.
|
7009 |
+
return disabledItems.filter(function( val ) { return val != null })
|
7010 |
+
} //DatePicker.prototype.activate
|
7011 |
+
|
7012 |
+
|
7013 |
+
/**
|
7014 |
+
* Create a string for the nodes in the picker.
|
7015 |
+
*/
|
7016 |
+
DatePicker.prototype.nodes = function( isOpen ) {
|
7017 |
+
|
7018 |
+
var
|
7019 |
+
calendar = this,
|
7020 |
+
settings = calendar.settings,
|
7021 |
+
calendarItem = calendar.item,
|
7022 |
+
nowObject = calendarItem.now,
|
7023 |
+
selectedObject = calendarItem.select,
|
7024 |
+
highlightedObject = calendarItem.highlight,
|
7025 |
+
viewsetObject = calendarItem.view,
|
7026 |
+
disabledCollection = calendarItem.disable,
|
7027 |
+
minLimitObject = calendarItem.min,
|
7028 |
+
maxLimitObject = calendarItem.max,
|
7029 |
+
|
7030 |
+
|
7031 |
+
// Create the calendar table head using a copy of weekday labels collection.
|
7032 |
+
// * We do a copy so we don't mutate the original array.
|
7033 |
+
tableHead = (function( collection, fullCollection ) {
|
7034 |
+
|
7035 |
+
// If the first day should be Monday, move Sunday to the end.
|
7036 |
+
if ( settings.firstDay ) {
|
7037 |
+
collection.push( collection.shift() )
|
7038 |
+
fullCollection.push( fullCollection.shift() )
|
7039 |
+
}
|
7040 |
+
|
7041 |
+
// Create and return the table head group.
|
7042 |
+
return _.node(
|
7043 |
+
'thead',
|
7044 |
+
_.node(
|
7045 |
+
'tr',
|
7046 |
+
_.group({
|
7047 |
+
min: 0,
|
7048 |
+
max: DAYS_IN_WEEK - 1,
|
7049 |
+
i: 1,
|
7050 |
+
node: 'th',
|
7051 |
+
item: function( counter ) {
|
7052 |
+
return [
|
7053 |
+
collection[ counter ],
|
7054 |
+
settings.klass.weekdays,
|
7055 |
+
'scope=col title="' + fullCollection[ counter ] + '"'
|
7056 |
+
]
|
7057 |
+
}
|
7058 |
+
})
|
7059 |
+
)
|
7060 |
+
) //endreturn
|
7061 |
+
|
7062 |
+
// Materialize modified
|
7063 |
+
})( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysLetter ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead
|
7064 |
+
|
7065 |
+
|
7066 |
+
// Create the nav for next/prev month.
|
7067 |
+
createMonthNav = function( next ) {
|
7068 |
+
|
7069 |
+
// Otherwise, return the created month tag.
|
7070 |
+
return _.node(
|
7071 |
+
'div',
|
7072 |
+
' ',
|
7073 |
+
settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + (
|
7074 |
+
|
7075 |
+
// If the focused month is outside the range, disabled the button.
|
7076 |
+
( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) ||
|
7077 |
+
( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ?
|
7078 |
+
' ' + settings.klass.navDisabled : ''
|
7079 |
+
),
|
7080 |
+
'data-nav=' + ( next || -1 ) + ' ' +
|
7081 |
+
_.ariaAttr({
|
7082 |
+
role: 'button',
|
7083 |
+
controls: calendar.$node[0].id + '_table'
|
7084 |
+
}) + ' ' +
|
7085 |
+
'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"'
|
7086 |
+
) //endreturn
|
7087 |
+
}, //createMonthNav
|
7088 |
+
|
7089 |
+
|
7090 |
+
// Create the month label.
|
7091 |
+
//Materialize modified
|
7092 |
+
createMonthLabel = function(override) {
|
7093 |
+
|
7094 |
+
var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull
|
7095 |
+
|
7096 |
+
// Materialize modified
|
7097 |
+
if (override == "short_months") {
|
7098 |
+
monthsCollection = settings.monthsShort;
|
7099 |
+
}
|
7100 |
+
|
7101 |
+
// If there are months to select, add a dropdown menu.
|
7102 |
+
if ( settings.selectMonths && override == undefined) {
|
7103 |
+
|
7104 |
+
return _.node( 'select',
|
7105 |
+
_.group({
|
7106 |
+
min: 0,
|
7107 |
+
max: 11,
|
7108 |
+
i: 1,
|
7109 |
+
node: 'option',
|
7110 |
+
item: function( loopedMonth ) {
|
7111 |
+
|
7112 |
+
return [
|
7113 |
+
|
7114 |
+
// The looped month and no classes.
|
7115 |
+
monthsCollection[ loopedMonth ], 0,
|
7116 |
+
|
7117 |
+
// Set the value and selected index.
|
7118 |
+
'value=' + loopedMonth +
|
7119 |
+
( viewsetObject.month == loopedMonth ? ' selected' : '' ) +
|
7120 |
+
(
|
7121 |
+
(
|
7122 |
+
( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) ||
|
7123 |
+
( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month )
|
7124 |
+
) ?
|
7125 |
+
' disabled' : ''
|
7126 |
+
)
|
7127 |
+
]
|
7128 |
+
}
|
7129 |
+
}),
|
7130 |
+
settings.klass.selectMonth + ' browser-default',
|
7131 |
+
( isOpen ? '' : 'disabled' ) + ' ' +
|
7132 |
+
_.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' +
|
7133 |
+
'title="' + settings.labelMonthSelect + '"'
|
7134 |
+
)
|
7135 |
+
}
|
7136 |
+
|
7137 |
+
// Materialize modified
|
7138 |
+
if (override == "short_months")
|
7139 |
+
if (selectedObject != null)
|
7140 |
+
return _.node( 'div', monthsCollection[ selectedObject.month ] );
|
7141 |
+
else return _.node( 'div', monthsCollection[ viewsetObject.month ] );
|
7142 |
+
|
7143 |
+
// If there's a need for a month selector
|
7144 |
+
return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month )
|
7145 |
+
}, //createMonthLabel
|
7146 |
+
|
7147 |
+
|
7148 |
+
// Create the year label.
|
7149 |
+
// Materialize modified
|
7150 |
+
createYearLabel = function(override) {
|
7151 |
+
|
7152 |
+
var focusedYear = viewsetObject.year,
|
7153 |
+
|
7154 |
+
// If years selector is set to a literal "true", set it to 5. Otherwise
|
7155 |
+
// divide in half to get half before and half after focused year.
|
7156 |
+
numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 )
|
7157 |
+
|
7158 |
+
// If there are years to select, add a dropdown menu.
|
7159 |
+
if ( numberYears ) {
|
7160 |
+
|
7161 |
+
var
|
7162 |
+
minYear = minLimitObject.year,
|
7163 |
+
maxYear = maxLimitObject.year,
|
7164 |
+
lowestYear = focusedYear - numberYears,
|
7165 |
+
highestYear = focusedYear + numberYears
|
7166 |
+
|
7167 |
+
// If the min year is greater than the lowest year, increase the highest year
|
7168 |
+
// by the difference and set the lowest year to the min year.
|
7169 |
+
if ( minYear > lowestYear ) {
|
7170 |
+
highestYear += minYear - lowestYear
|
7171 |
+
lowestYear = minYear
|
7172 |
+
}
|
7173 |
+
|
7174 |
+
// If the max year is less than the highest year, decrease the lowest year
|
7175 |
+
// by the lower of the two: available and needed years. Then set the
|
7176 |
+
// highest year to the max year.
|
7177 |
+
if ( maxYear < highestYear ) {
|
7178 |
+
|
7179 |
+
var availableYears = lowestYear - minYear,
|
7180 |
+
neededYears = highestYear - maxYear
|
7181 |
+
|
7182 |
+
lowestYear -= availableYears > neededYears ? neededYears : availableYears
|
7183 |
+
highestYear = maxYear
|
7184 |
+
}
|
7185 |
+
|
7186 |
+
if ( settings.selectYears && override == undefined ) {
|
7187 |
+
return _.node( 'select',
|
7188 |
+
_.group({
|
7189 |
+
min: lowestYear,
|
7190 |
+
max: highestYear,
|
7191 |
+
i: 1,
|
7192 |
+
node: 'option',
|
7193 |
+
item: function( loopedYear ) {
|
7194 |
+
return [
|
7195 |
+
|
7196 |
+
// The looped year and no classes.
|
7197 |
+
loopedYear, 0,
|
7198 |
+
|
7199 |
+
// Set the value and selected index.
|
7200 |
+
'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' )
|
7201 |
+
]
|
7202 |
+
}
|
7203 |
+
}),
|
7204 |
+
settings.klass.selectYear + ' browser-default',
|
7205 |
+
( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' +
|
7206 |
+
'title="' + settings.labelYearSelect + '"'
|
7207 |
+
)
|
7208 |
+
}
|
7209 |
+
}
|
7210 |
+
|
7211 |
+
// Materialize modified
|
7212 |
+
if (override == "raw")
|
7213 |
+
return _.node( 'div', focusedYear )
|
7214 |
+
|
7215 |
+
// Otherwise just return the year focused
|
7216 |
+
return _.node( 'div', focusedYear, settings.klass.year )
|
7217 |
+
} //createYearLabel
|
7218 |
+
|
7219 |
+
|
7220 |
+
// Materialize modified
|
7221 |
+
createDayLabel = function() {
|
7222 |
+
if (selectedObject != null)
|
7223 |
+
return _.node( 'div', selectedObject.date)
|
7224 |
+
else return _.node( 'div', nowObject.date)
|
7225 |
+
}
|
7226 |
+
createWeekdayLabel = function() {
|
7227 |
+
var display_day;
|
7228 |
+
|
7229 |
+
if (selectedObject != null)
|
7230 |
+
display_day = selectedObject.day;
|
7231 |
+
else
|
7232 |
+
display_day = nowObject.day;
|
7233 |
+
var weekday = settings.weekdaysFull[ display_day ]
|
7234 |
+
return weekday
|
7235 |
+
}
|
7236 |
+
|
7237 |
+
|
7238 |
+
// Create and return the entire calendar.
|
7239 |
+
return _.node(
|
7240 |
+
// Date presentation View
|
7241 |
+
'div',
|
7242 |
+
_.node(
|
7243 |
+
'div',
|
7244 |
+
createWeekdayLabel(),
|
7245 |
+
"picker__weekday-display"
|
7246 |
+
)+
|
7247 |
+
_.node(
|
7248 |
+
// Div for short Month
|
7249 |
+
'div',
|
7250 |
+
createMonthLabel("short_months"),
|
7251 |
+
settings.klass.month_display
|
7252 |
+
)+
|
7253 |
+
_.node(
|
7254 |
+
// Div for Day
|
7255 |
+
'div',
|
7256 |
+
createDayLabel() ,
|
7257 |
+
settings.klass.day_display
|
7258 |
+
)+
|
7259 |
+
_.node(
|
7260 |
+
// Div for Year
|
7261 |
+
'div',
|
7262 |
+
createYearLabel("raw") ,
|
7263 |
+
settings.klass.year_display
|
7264 |
+
),
|
7265 |
+
settings.klass.date_display
|
7266 |
+
)+
|
7267 |
+
// Calendar container
|
7268 |
+
_.node('div',
|
7269 |
+
_.node('div',
|
7270 |
+
( settings.selectYears ? createMonthLabel() + createYearLabel() : createMonthLabel() + createYearLabel() ) +
|
7271 |
+
createMonthNav() + createMonthNav( 1 ),
|
7272 |
+
settings.klass.header
|
7273 |
+
) + _.node(
|
7274 |
+
'table',
|
7275 |
+
tableHead +
|
7276 |
+
_.node(
|
7277 |
+
'tbody',
|
7278 |
+
_.group({
|
7279 |
+
min: 0,
|
7280 |
+
max: WEEKS_IN_CALENDAR - 1,
|
7281 |
+
i: 1,
|
7282 |
+
node: 'tr',
|
7283 |
+
item: function( rowCounter ) {
|
7284 |
+
|
7285 |
+
// If Monday is the first day and the month starts on Sunday, shift the date back a week.
|
7286 |
+
var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0
|
7287 |
+
|
7288 |
+
return [
|
7289 |
+
_.group({
|
7290 |
+
min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index
|
7291 |
+
max: function() {
|
7292 |
+
return this.min + DAYS_IN_WEEK - 1
|
7293 |
+
},
|
7294 |
+
i: 1,
|
7295 |
+
node: 'td',
|
7296 |
+
item: function( targetDate ) {
|
7297 |
+
|
7298 |
+
// Convert the time date from a relative date to a target date.
|
7299 |
+
targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ])
|
7300 |
+
|
7301 |
+
var isSelected = selectedObject && selectedObject.pick == targetDate.pick,
|
7302 |
+
isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick,
|
7303 |
+
isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick,
|
7304 |
+
formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] )
|
7305 |
+
|
7306 |
+
return [
|
7307 |
+
_.node(
|
7308 |
+
'div',
|
7309 |
+
targetDate.date,
|
7310 |
+
(function( klasses ) {
|
7311 |
+
|
7312 |
+
// Add the `infocus` or `outfocus` classes based on month in view.
|
7313 |
+
klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus )
|
7314 |
+
|
7315 |
+
// Add the `today` class if needed.
|
7316 |
+
if ( nowObject.pick == targetDate.pick ) {
|
7317 |
+
klasses.push( settings.klass.now )
|
7318 |
+
}
|
7319 |
+
|
7320 |
+
// Add the `selected` class if something's selected and the time matches.
|
7321 |
+
if ( isSelected ) {
|
7322 |
+
klasses.push( settings.klass.selected )
|
7323 |
+
}
|
7324 |
+
|
7325 |
+
// Add the `highlighted` class if something's highlighted and the time matches.
|
7326 |
+
if ( isHighlighted ) {
|
7327 |
+
klasses.push( settings.klass.highlighted )
|
7328 |
+
}
|
7329 |
+
|
7330 |
+
// Add the `disabled` class if something's disabled and the object matches.
|
7331 |
+
if ( isDisabled ) {
|
7332 |
+
klasses.push( settings.klass.disabled )
|
7333 |
+
}
|
7334 |
+
|
7335 |
+
return klasses.join( ' ' )
|
7336 |
+
})([ settings.klass.day ]),
|
7337 |
+
'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({
|
7338 |
+
role: 'gridcell',
|
7339 |
+
label: formattedDate,
|
7340 |
+
selected: isSelected && calendar.$node.val() === formattedDate ? true : null,
|
7341 |
+
activedescendant: isHighlighted ? true : null,
|
7342 |
+
disabled: isDisabled ? true : null
|
7343 |
+
})
|
7344 |
+
),
|
7345 |
+
'',
|
7346 |
+
_.ariaAttr({ role: 'presentation' })
|
7347 |
+
] //endreturn
|
7348 |
+
}
|
7349 |
+
})
|
7350 |
+
] //endreturn
|
7351 |
+
}
|
7352 |
+
})
|
7353 |
+
),
|
7354 |
+
settings.klass.table,
|
7355 |
+
'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({
|
7356 |
+
role: 'grid',
|
7357 |
+
controls: calendar.$node[0].id,
|
7358 |
+
readonly: true
|
7359 |
+
})
|
7360 |
+
)
|
7361 |
+
, settings.klass.calendar_container) // end calendar
|
7362 |
+
|
7363 |
+
+
|
7364 |
+
|
7365 |
+
// * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”.
|
7366 |
+
_.node(
|
7367 |
+
'div',
|
7368 |
+
_.node( 'button', settings.today, "btn-flat picker__today",
|
7369 |
+
'type=button data-pick=' + nowObject.pick +
|
7370 |
+
( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' +
|
7371 |
+
_.ariaAttr({ controls: calendar.$node[0].id }) ) +
|
7372 |
+
_.node( 'button', settings.clear, "btn-flat picker__clear",
|
7373 |
+
'type=button data-clear=1' +
|
7374 |
+
( isOpen ? '' : ' disabled' ) + ' ' +
|
7375 |
+
_.ariaAttr({ controls: calendar.$node[0].id }) ) +
|
7376 |
+
_.node('button', settings.close, "btn-flat picker__close",
|
7377 |
+
'type=button data-close=true ' +
|
7378 |
+
( isOpen ? '' : ' disabled' ) + ' ' +
|
7379 |
+
_.ariaAttr({ controls: calendar.$node[0].id }) ),
|
7380 |
+
settings.klass.footer
|
7381 |
+
) //endreturn
|
7382 |
+
} //DatePicker.prototype.nodes
|
7383 |
+
|
7384 |
+
|
7385 |
+
|
7386 |
+
|
7387 |
+
/**
|
7388 |
+
* The date picker defaults.
|
7389 |
+
*/
|
7390 |
+
DatePicker.defaults = (function( prefix ) {
|
7391 |
+
|
7392 |
+
return {
|
7393 |
+
|
7394 |
+
// The title label to use for the month nav buttons
|
7395 |
+
labelMonthNext: 'Next month',
|
7396 |
+
labelMonthPrev: 'Previous month',
|
7397 |
+
|
7398 |
+
// The title label to use for the dropdown selectors
|
7399 |
+
labelMonthSelect: 'Select a month',
|
7400 |
+
labelYearSelect: 'Select a year',
|
7401 |
+
|
7402 |
+
// Months and weekdays
|
7403 |
+
monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
|
7404 |
+
monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],
|
7405 |
+
weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],
|
7406 |
+
weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],
|
7407 |
+
|
7408 |
+
// Materialize modified
|
7409 |
+
weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ],
|
7410 |
+
|
7411 |
+
// Today and clear
|
7412 |
+
today: 'Today',
|
7413 |
+
clear: 'Clear',
|
7414 |
+
close: 'Close',
|
7415 |
+
|
7416 |
+
// The format to show on the `input` element
|
7417 |
+
format: 'd mmmm, yyyy',
|
7418 |
+
|
7419 |
+
// Classes
|
7420 |
+
klass: {
|
7421 |
+
|
7422 |
+
table: prefix + 'table',
|
7423 |
+
|
7424 |
+
header: prefix + 'header',
|
7425 |
+
|
7426 |
+
|
7427 |
+
// Materialize Added klasses
|
7428 |
+
date_display: prefix + 'date-display',
|
7429 |
+
day_display: prefix + 'day-display',
|
7430 |
+
month_display: prefix + 'month-display',
|
7431 |
+
year_display: prefix + 'year-display',
|
7432 |
+
calendar_container: prefix + 'calendar-container',
|
7433 |
+
// end
|
7434 |
+
|
7435 |
+
|
7436 |
+
|
7437 |
+
navPrev: prefix + 'nav--prev',
|
7438 |
+
navNext: prefix + 'nav--next',
|
7439 |
+
navDisabled: prefix + 'nav--disabled',
|
7440 |
+
|
7441 |
+
month: prefix + 'month',
|
7442 |
+
year: prefix + 'year',
|
7443 |
+
|
7444 |
+
selectMonth: prefix + 'select--month',
|
7445 |
+
selectYear: prefix + 'select--year',
|
7446 |
+
|
7447 |
+
weekdays: prefix + 'weekday',
|
7448 |
+
|
7449 |
+
day: prefix + 'day',
|
7450 |
+
disabled: prefix + 'day--disabled',
|
7451 |
+
selected: prefix + 'day--selected',
|
7452 |
+
highlighted: prefix + 'day--highlighted',
|
7453 |
+
now: prefix + 'day--today',
|
7454 |
+
infocus: prefix + 'day--infocus',
|
7455 |
+
outfocus: prefix + 'day--outfocus',
|
7456 |
+
|
7457 |
+
footer: prefix + 'footer',
|
7458 |
+
|
7459 |
+
buttonClear: prefix + 'button--clear',
|
7460 |
+
buttonToday: prefix + 'button--today',
|
7461 |
+
buttonClose: prefix + 'button--close'
|
7462 |
+
}
|
7463 |
+
}
|
7464 |
+
})( Picker.klasses().picker + '__' )
|
7465 |
+
|
7466 |
+
|
7467 |
+
|
7468 |
+
|
7469 |
+
|
7470 |
+
/**
|
7471 |
+
* Extend the picker to add the date picker.
|
7472 |
+
*/
|
7473 |
+
Picker.extend( 'pickadate', DatePicker )
|
7474 |
+
|
7475 |
+
|
7476 |
+
}));
|
7477 |
+
|
7478 |
+
|
7479 |
+
;(function ($) {
|
7480 |
+
|
7481 |
+
$.fn.characterCounter = function(){
|
7482 |
+
return this.each(function(){
|
7483 |
+
var $input = $(this);
|
7484 |
+
var $counterElement = $input.parent().find('span[class="character-counter"]');
|
7485 |
+
|
7486 |
+
// character counter has already been added appended to the parent container
|
7487 |
+
if ($counterElement.length) {
|
7488 |
+
return;
|
7489 |
+
}
|
7490 |
+
|
7491 |
+
var itHasLengthAttribute = $input.attr('data-length') !== undefined;
|
7492 |
+
|
7493 |
+
if(itHasLengthAttribute){
|
7494 |
+
$input.on('input', updateCounter);
|
7495 |
+
$input.on('focus', updateCounter);
|
7496 |
+
$input.on('blur', removeCounterElement);
|
7497 |
+
|
7498 |
+
addCounterElement($input);
|
7499 |
+
}
|
7500 |
+
|
7501 |
+
});
|
7502 |
+
};
|
7503 |
+
|
7504 |
+
function updateCounter(){
|
7505 |
+
var maxLength = +$(this).attr('data-length'),
|
7506 |
+
actualLength = +$(this).val().length,
|
7507 |
+
isValidLength = actualLength <= maxLength;
|
7508 |
+
|
7509 |
+
$(this).parent().find('span[class="character-counter"]')
|
7510 |
+
.html( actualLength + '/' + maxLength);
|
7511 |
+
|
7512 |
+
addInputStyle(isValidLength, $(this));
|
7513 |
+
}
|
7514 |
+
|
7515 |
+
function addCounterElement($input) {
|
7516 |
+
var $counterElement = $input.parent().find('span[class="character-counter"]');
|
7517 |
+
|
7518 |
+
if ($counterElement.length) {
|
7519 |
+
return;
|
7520 |
+
}
|
7521 |
+
|
7522 |
+
$counterElement = $('<span/>')
|
7523 |
+
.addClass('character-counter')
|
7524 |
+
.css('float','right')
|
7525 |
+
.css('font-size','12px')
|
7526 |
+
.css('height', 1);
|
7527 |
+
|
7528 |
+
$input.parent().append($counterElement);
|
7529 |
+
}
|
7530 |
+
|
7531 |
+
function removeCounterElement(){
|
7532 |
+
$(this).parent().find('span[class="character-counter"]').html('');
|
7533 |
+
}
|
7534 |
+
|
7535 |
+
function addInputStyle(isValidLength, $input){
|
7536 |
+
var inputHasInvalidClass = $input.hasClass('invalid');
|
7537 |
+
if (isValidLength && inputHasInvalidClass) {
|
7538 |
+
$input.removeClass('invalid');
|
7539 |
+
}
|
7540 |
+
else if(!isValidLength && !inputHasInvalidClass){
|
7541 |
+
$input.removeClass('valid');
|
7542 |
+
$input.addClass('invalid');
|
7543 |
+
}
|
7544 |
+
}
|
7545 |
+
|
7546 |
+
$(document).ready(function(){
|
7547 |
+
$('input, textarea').characterCounter();
|
7548 |
+
});
|
7549 |
+
|
7550 |
+
}( jQuery ));
|
7551 |
+
;(function ($) {
|
7552 |
+
|
7553 |
+
var methods = {
|
7554 |
+
|
7555 |
+
init : function(options) {
|
7556 |
+
var defaults = {
|
7557 |
+
duration: 200, // ms
|
7558 |
+
dist: -100, // zoom scale TODO: make this more intuitive as an option
|
7559 |
+
shift: 0, // spacing for center image
|
7560 |
+
padding: 0, // Padding between non center items
|
7561 |
+
fullWidth: false, // Change to full width styles
|
7562 |
+
indicators: false, // Toggle indicators
|
7563 |
+
noWrap: false, // Don't wrap around and cycle through items.
|
7564 |
+
onCycleTo: null // Callback for when a new slide is cycled to.
|
7565 |
+
};
|
7566 |
+
options = $.extend(defaults, options);
|
7567 |
+
|
7568 |
+
return this.each(function() {
|
7569 |
+
|
7570 |
+
var images, item_width, item_height, offset, center, pressed, dim, count,
|
7571 |
+
reference, referenceY, amplitude, target, velocity,
|
7572 |
+
xform, frame, timestamp, ticker, dragged, vertical_dragged;
|
7573 |
+
var $indicators = $('<ul class="indicators"></ul>');
|
7574 |
+
|
7575 |
+
|
7576 |
+
// Initialize
|
7577 |
+
var view = $(this);
|
7578 |
+
var showIndicators = view.attr('data-indicators') || options.indicators;
|
7579 |
+
|
7580 |
+
// Don't double initialize.
|
7581 |
+
if (view.hasClass('initialized')) {
|
7582 |
+
// Redraw carousel.
|
7583 |
+
$(this).trigger('carouselNext', [0.000001]);
|
7584 |
+
return true;
|
7585 |
+
}
|
7586 |
+
|
7587 |
+
|
7588 |
+
// Options
|
7589 |
+
if (options.fullWidth) {
|
7590 |
+
options.dist = 0;
|
7591 |
+
var firstImage = view.find('.carousel-item img').first();
|
7592 |
+
if (firstImage.length) {
|
7593 |
+
imageHeight = firstImage.on('load', function(){
|
7594 |
+
view.css('height', $(this).height());
|
7595 |
+
});
|
7596 |
+
} else {
|
7597 |
+
imageHeight = view.find('.carousel-item').first().height();
|
7598 |
+
view.css('height', imageHeight);
|
7599 |
+
}
|
7600 |
+
|
7601 |
+
// Offset fixed items when indicators.
|
7602 |
+
if (showIndicators) {
|
7603 |
+
view.find('.carousel-fixed-item').addClass('with-indicators');
|
7604 |
+
}
|
7605 |
+
}
|
7606 |
+
|
7607 |
+
|
7608 |
+
view.addClass('initialized');
|
7609 |
+
pressed = false;
|
7610 |
+
offset = target = 0;
|
7611 |
+
images = [];
|
7612 |
+
item_width = view.find('.carousel-item').first().innerWidth();
|
7613 |
+
item_height = view.find('.carousel-item').first().innerHeight();
|
7614 |
+
dim = item_width * 2 + options.padding;
|
7615 |
+
|
7616 |
+
view.find('.carousel-item').each(function (i) {
|
7617 |
+
images.push($(this)[0]);
|
7618 |
+
if (showIndicators) {
|
7619 |
+
var $indicator = $('<li class="indicator-item"></li>');
|
7620 |
+
|
7621 |
+
// Add active to first by default.
|
7622 |
+
if (i === 0) {
|
7623 |
+
$indicator.addClass('active');
|
7624 |
+
}
|
7625 |
+
|
7626 |
+
// Handle clicks on indicators.
|
7627 |
+
$indicator.click(function (e) {
|
7628 |
+
e.stopPropagation();
|
7629 |
+
|
7630 |
+
var index = $(this).index();
|
7631 |
+
cycleTo(index);
|
7632 |
+
});
|
7633 |
+
$indicators.append($indicator);
|
7634 |
+
}
|
7635 |
+
});
|
7636 |
+
|
7637 |
+
if (showIndicators) {
|
7638 |
+
view.append($indicators);
|
7639 |
+
}
|
7640 |
+
count = images.length;
|
7641 |
+
|
7642 |
+
|
7643 |
+
function setupEvents() {
|
7644 |
+
if (typeof window.ontouchstart !== 'undefined') {
|
7645 |
+
view[0].addEventListener('touchstart', tap);
|
7646 |
+
view[0].addEventListener('touchmove', drag);
|
7647 |
+
view[0].addEventListener('touchend', release);
|
7648 |
+
}
|
7649 |
+
view[0].addEventListener('mousedown', tap);
|
7650 |
+
view[0].addEventListener('mousemove', drag);
|
7651 |
+
view[0].addEventListener('mouseup', release);
|
7652 |
+
view[0].addEventListener('mouseleave', release);
|
7653 |
+
view[0].addEventListener('click', click);
|
7654 |
+
}
|
7655 |
+
|
7656 |
+
function xpos(e) {
|
7657 |
+
// touch event
|
7658 |
+
if (e.targetTouches && (e.targetTouches.length >= 1)) {
|
7659 |
+
return e.targetTouches[0].clientX;
|
7660 |
+
}
|
7661 |
+
|
7662 |
+
// mouse event
|
7663 |
+
return e.clientX;
|
7664 |
+
}
|
7665 |
+
|
7666 |
+
function ypos(e) {
|
7667 |
+
// touch event
|
7668 |
+
if (e.targetTouches && (e.targetTouches.length >= 1)) {
|
7669 |
+
return e.targetTouches[0].clientY;
|
7670 |
+
}
|
7671 |
+
|
7672 |
+
// mouse event
|
7673 |
+
return e.clientY;
|
7674 |
+
}
|
7675 |
+
|
7676 |
+
function wrap(x) {
|
7677 |
+
return (x >= count) ? (x % count) : (x < 0) ? wrap(count + (x % count)) : x;
|
7678 |
+
}
|
7679 |
+
|
7680 |
+
function scroll(x) {
|
7681 |
+
var i, half, delta, dir, tween, el, alignment, xTranslation;
|
7682 |
+
var lastCenter = center;
|
7683 |
+
|
7684 |
+
offset = (typeof x === 'number') ? x : offset;
|
7685 |
+
center = Math.floor((offset + dim / 2) / dim);
|
7686 |
+
delta = offset - center * dim;
|
7687 |
+
dir = (delta < 0) ? 1 : -1;
|
7688 |
+
tween = -dir * delta * 2 / dim;
|
7689 |
+
half = count >> 1;
|
7690 |
+
|
7691 |
+
if (!options.fullWidth) {
|
7692 |
+
alignment = 'translateX(' + (view[0].clientWidth - item_width) / 2 + 'px) ';
|
7693 |
+
alignment += 'translateY(' + (view[0].clientHeight - item_height) / 2 + 'px)';
|
7694 |
+
} else {
|
7695 |
+
alignment = 'translateX(0)';
|
7696 |
+
}
|
7697 |
+
|
7698 |
+
// Set indicator active
|
7699 |
+
if (showIndicators) {
|
7700 |
+
var diff = (center % count);
|
7701 |
+
var activeIndicator = $indicators.find('.indicator-item.active');
|
7702 |
+
if (activeIndicator.index() !== diff) {
|
7703 |
+
activeIndicator.removeClass('active');
|
7704 |
+
$indicators.find('.indicator-item').eq(diff).addClass('active');
|
7705 |
+
}
|
7706 |
+
}
|
7707 |
+
|
7708 |
+
// center
|
7709 |
+
// Don't show wrapped items.
|
7710 |
+
if (!options.noWrap || (center >= 0 && center < count)) {
|
7711 |
+
el = images[wrap(center)];
|
7712 |
+
|
7713 |
+
// Add active class to center item.
|
7714 |
+
if (!$(el).hasClass('active')) {
|
7715 |
+
view.find('.carousel-item').removeClass('active');
|
7716 |
+
$(el).addClass('active');
|
7717 |
+
}
|
7718 |
+
el.style[xform] = alignment +
|
7719 |
+
' translateX(' + (-delta / 2) + 'px)' +
|
7720 |
+
' translateX(' + (dir * options.shift * tween * i) + 'px)' +
|
7721 |
+
' translateZ(' + (options.dist * tween) + 'px)';
|
7722 |
+
el.style.zIndex = 0;
|
7723 |
+
if (options.fullWidth) { tweenedOpacity = 1; }
|
7724 |
+
else { tweenedOpacity = 1 - 0.2 * tween; }
|
7725 |
+
el.style.opacity = tweenedOpacity;
|
7726 |
+
el.style.display = 'block';
|
7727 |
+
}
|
7728 |
+
|
7729 |
+
for (i = 1; i <= half; ++i) {
|
7730 |
+
// right side
|
7731 |
+
if (options.fullWidth) {
|
7732 |
+
zTranslation = options.dist;
|
7733 |
+
tweenedOpacity = (i === half && delta < 0) ? 1 - tween : 1;
|
7734 |
+
} else {
|
7735 |
+
zTranslation = options.dist * (i * 2 + tween * dir);
|
7736 |
+
tweenedOpacity = 1 - 0.2 * (i * 2 + tween * dir);
|
7737 |
+
}
|
7738 |
+
// Don't show wrapped items.
|
7739 |
+
if (!options.noWrap || center + i < count) {
|
7740 |
+
el = images[wrap(center + i)];
|
7741 |
+
el.style[xform] = alignment +
|
7742 |
+
' translateX(' + (options.shift + (dim * i - delta) / 2) + 'px)' +
|
7743 |
+
' translateZ(' + zTranslation + 'px)';
|
7744 |
+
el.style.zIndex = -i;
|
7745 |
+
el.style.opacity = tweenedOpacity;
|
7746 |
+
el.style.display = 'block';
|
7747 |
+
}
|
7748 |
+
|
7749 |
+
|
7750 |
+
// left side
|
7751 |
+
if (options.fullWidth) {
|
7752 |
+
zTranslation = options.dist;
|
7753 |
+
tweenedOpacity = (i === half && delta > 0) ? 1 - tween : 1;
|
7754 |
+
} else {
|
7755 |
+
zTranslation = options.dist * (i * 2 - tween * dir);
|
7756 |
+
tweenedOpacity = 1 - 0.2 * (i * 2 - tween * dir);
|
7757 |
+
}
|
7758 |
+
// Don't show wrapped items.
|
7759 |
+
if (!options.noWrap || center - i >= 0) {
|
7760 |
+
el = images[wrap(center - i)];
|
7761 |
+
el.style[xform] = alignment +
|
7762 |
+
' translateX(' + (-options.shift + (-dim * i - delta) / 2) + 'px)' +
|
7763 |
+
' translateZ(' + zTranslation + 'px)';
|
7764 |
+
el.style.zIndex = -i;
|
7765 |
+
el.style.opacity = tweenedOpacity;
|
7766 |
+
el.style.display = 'block';
|
7767 |
+
}
|
7768 |
+
}
|
7769 |
+
|
7770 |
+
// center
|
7771 |
+
// Don't show wrapped items.
|
7772 |
+
if (!options.noWrap || (center >= 0 && center < count)) {
|
7773 |
+
el = images[wrap(center)];
|
7774 |
+
el.style[xform] = alignment +
|
7775 |
+
' translateX(' + (-delta / 2) + 'px)' +
|
7776 |
+
' translateX(' + (dir * options.shift * tween) + 'px)' +
|
7777 |
+
' translateZ(' + (options.dist * tween) + 'px)';
|
7778 |
+
el.style.zIndex = 0;
|
7779 |
+
if (options.fullWidth) { tweenedOpacity = 1; }
|
7780 |
+
else { tweenedOpacity = 1 - 0.2 * tween; }
|
7781 |
+
el.style.opacity = tweenedOpacity;
|
7782 |
+
el.style.display = 'block';
|
7783 |
+
}
|
7784 |
+
|
7785 |
+
// onCycleTo callback
|
7786 |
+
if (lastCenter !== center &&
|
7787 |
+
typeof(options.onCycleTo) === "function") {
|
7788 |
+
var $curr_item = view.find('.carousel-item').eq(wrap(center));
|
7789 |
+
options.onCycleTo.call(this, $curr_item, dragged);
|
7790 |
+
}
|
7791 |
+
}
|
7792 |
+
|
7793 |
+
function track() {
|
7794 |
+
var now, elapsed, delta, v;
|
7795 |
+
|
7796 |
+
now = Date.now();
|
7797 |
+
elapsed = now - timestamp;
|
7798 |
+
timestamp = now;
|
7799 |
+
delta = offset - frame;
|
7800 |
+
frame = offset;
|
7801 |
+
|
7802 |
+
v = 1000 * delta / (1 + elapsed);
|
7803 |
+
velocity = 0.8 * v + 0.2 * velocity;
|
7804 |
+
}
|
7805 |
+
|
7806 |
+
function autoScroll() {
|
7807 |
+
var elapsed, delta;
|
7808 |
+
|
7809 |
+
if (amplitude) {
|
7810 |
+
elapsed = Date.now() - timestamp;
|
7811 |
+
delta = amplitude * Math.exp(-elapsed / options.duration);
|
7812 |
+
if (delta > 2 || delta < -2) {
|
7813 |
+
scroll(target - delta);
|
7814 |
+
requestAnimationFrame(autoScroll);
|
7815 |
+
} else {
|
7816 |
+
scroll(target);
|
7817 |
+
}
|
7818 |
+
}
|
7819 |
+
}
|
7820 |
+
|
7821 |
+
function click(e) {
|
7822 |
+
// Disable clicks if carousel was dragged.
|
7823 |
+
if (dragged) {
|
7824 |
+
e.preventDefault();
|
7825 |
+
e.stopPropagation();
|
7826 |
+
return false;
|
7827 |
+
|
7828 |
+
} else if (!options.fullWidth) {
|
7829 |
+
var clickedIndex = $(e.target).closest('.carousel-item').index();
|
7830 |
+
var diff = (center % count) - clickedIndex;
|
7831 |
+
|
7832 |
+
// Disable clicks if carousel was shifted by click
|
7833 |
+
if (diff !== 0) {
|
7834 |
+
e.preventDefault();
|
7835 |
+
e.stopPropagation();
|
7836 |
+
}
|
7837 |
+
cycleTo(clickedIndex);
|
7838 |
+
}
|
7839 |
+
}
|
7840 |
+
|
7841 |
+
function cycleTo(n) {
|
7842 |
+
var diff = (center % count) - n;
|
7843 |
+
|
7844 |
+
// Account for wraparound.
|
7845 |
+
if (!options.noWrap) {
|
7846 |
+
if (diff < 0) {
|
7847 |
+
if (Math.abs(diff + count) < Math.abs(diff)) { diff += count; }
|
7848 |
+
|
7849 |
+
} else if (diff > 0) {
|
7850 |
+
if (Math.abs(diff - count) < diff) { diff -= count; }
|
7851 |
+
}
|
7852 |
+
}
|
7853 |
+
|
7854 |
+
// Call prev or next accordingly.
|
7855 |
+
if (diff < 0) {
|
7856 |
+
view.trigger('carouselNext', [Math.abs(diff)]);
|
7857 |
+
|
7858 |
+
} else if (diff > 0) {
|
7859 |
+
view.trigger('carouselPrev', [diff]);
|
7860 |
+
}
|
7861 |
+
}
|
7862 |
+
|
7863 |
+
function tap(e) {
|
7864 |
+
pressed = true;
|
7865 |
+
dragged = false;
|
7866 |
+
vertical_dragged = false;
|
7867 |
+
reference = xpos(e);
|
7868 |
+
referenceY = ypos(e);
|
7869 |
+
|
7870 |
+
velocity = amplitude = 0;
|
7871 |
+
frame = offset;
|
7872 |
+
timestamp = Date.now();
|
7873 |
+
clearInterval(ticker);
|
7874 |
+
ticker = setInterval(track, 100);
|
7875 |
+
|
7876 |
+
}
|
7877 |
+
|
7878 |
+
function drag(e) {
|
7879 |
+
var x, delta, deltaY;
|
7880 |
+
if (pressed) {
|
7881 |
+
x = xpos(e);
|
7882 |
+
y = ypos(e);
|
7883 |
+
delta = reference - x;
|
7884 |
+
deltaY = Math.abs(referenceY - y);
|
7885 |
+
if (deltaY < 30 && !vertical_dragged) {
|
7886 |
+
// If vertical scrolling don't allow dragging.
|
7887 |
+
if (delta > 2 || delta < -2) {
|
7888 |
+
dragged = true;
|
7889 |
+
reference = x;
|
7890 |
+
scroll(offset + delta);
|
7891 |
+
}
|
7892 |
+
|
7893 |
+
} else if (dragged) {
|
7894 |
+
// If dragging don't allow vertical scroll.
|
7895 |
+
e.preventDefault();
|
7896 |
+
e.stopPropagation();
|
7897 |
+
return false;
|
7898 |
+
|
7899 |
+
} else {
|
7900 |
+
// Vertical scrolling.
|
7901 |
+
vertical_dragged = true;
|
7902 |
+
}
|
7903 |
+
}
|
7904 |
+
|
7905 |
+
if (dragged) {
|
7906 |
+
// If dragging don't allow vertical scroll.
|
7907 |
+
e.preventDefault();
|
7908 |
+
e.stopPropagation();
|
7909 |
+
return false;
|
7910 |
+
}
|
7911 |
+
}
|
7912 |
+
|
7913 |
+
function release(e) {
|
7914 |
+
if (pressed) {
|
7915 |
+
pressed = false;
|
7916 |
+
} else {
|
7917 |
+
return;
|
7918 |
+
}
|
7919 |
+
|
7920 |
+
clearInterval(ticker);
|
7921 |
+
target = offset;
|
7922 |
+
if (velocity > 10 || velocity < -10) {
|
7923 |
+
amplitude = 0.9 * velocity;
|
7924 |
+
target = offset + amplitude;
|
7925 |
+
}
|
7926 |
+
target = Math.round(target / dim) * dim;
|
7927 |
+
|
7928 |
+
// No wrap of items.
|
7929 |
+
if (options.noWrap) {
|
7930 |
+
if (target >= dim * (count - 1)) {
|
7931 |
+
target = dim * (count - 1);
|
7932 |
+
} else if (target < 0) {
|
7933 |
+
target = 0;
|
7934 |
+
}
|
7935 |
+
}
|
7936 |
+
amplitude = target - offset;
|
7937 |
+
timestamp = Date.now();
|
7938 |
+
requestAnimationFrame(autoScroll);
|
7939 |
+
|
7940 |
+
if (dragged) {
|
7941 |
+
e.preventDefault();
|
7942 |
+
e.stopPropagation();
|
7943 |
+
}
|
7944 |
+
return false;
|
7945 |
+
}
|
7946 |
+
|
7947 |
+
xform = 'transform';
|
7948 |
+
['webkit', 'Moz', 'O', 'ms'].every(function (prefix) {
|
7949 |
+
var e = prefix + 'Transform';
|
7950 |
+
if (typeof document.body.style[e] !== 'undefined') {
|
7951 |
+
xform = e;
|
7952 |
+
return false;
|
7953 |
+
}
|
7954 |
+
return true;
|
7955 |
+
});
|
7956 |
+
|
7957 |
+
|
7958 |
+
$(window).on('resize.carousel', function() {
|
7959 |
+
if (options.fullWidth) {
|
7960 |
+
item_width = view.find('.carousel-item').first().innerWidth();
|
7961 |
+
item_height = view.find('.carousel-item').first().innerHeight();
|
7962 |
+
dim = item_width * 2 + options.padding;
|
7963 |
+
offset = center * 2 * item_width;
|
7964 |
+
target = offset;
|
7965 |
+
} else {
|
7966 |
+
scroll();
|
7967 |
+
}
|
7968 |
+
});
|
7969 |
+
|
7970 |
+
setupEvents();
|
7971 |
+
scroll(offset);
|
7972 |
+
|
7973 |
+
$(this).on('carouselNext', function(e, n) {
|
7974 |
+
if (n === undefined) {
|
7975 |
+
n = 1;
|
7976 |
+
}
|
7977 |
+
target = (dim * Math.round(offset / dim)) + (dim * n);
|
7978 |
+
if (offset !== target) {
|
7979 |
+
amplitude = target - offset;
|
7980 |
+
timestamp = Date.now();
|
7981 |
+
requestAnimationFrame(autoScroll);
|
7982 |
+
}
|
7983 |
+
});
|
7984 |
+
|
7985 |
+
$(this).on('carouselPrev', function(e, n) {
|
7986 |
+
if (n === undefined) {
|
7987 |
+
n = 1;
|
7988 |
+
}
|
7989 |
+
target = (dim * Math.round(offset / dim)) - (dim * n);
|
7990 |
+
if (offset !== target) {
|
7991 |
+
amplitude = target - offset;
|
7992 |
+
timestamp = Date.now();
|
7993 |
+
requestAnimationFrame(autoScroll);
|
7994 |
+
}
|
7995 |
+
});
|
7996 |
+
|
7997 |
+
$(this).on('carouselSet', function(e, n) {
|
7998 |
+
if (n === undefined) {
|
7999 |
+
n = 0;
|
8000 |
+
}
|
8001 |
+
cycleTo(n);
|
8002 |
+
});
|
8003 |
+
|
8004 |
+
});
|
8005 |
+
|
8006 |
+
|
8007 |
+
|
8008 |
+
},
|
8009 |
+
next : function(n) {
|
8010 |
+
$(this).trigger('carouselNext', [n]);
|
8011 |
+
},
|
8012 |
+
prev : function(n) {
|
8013 |
+
$(this).trigger('carouselPrev', [n]);
|
8014 |
+
},
|
8015 |
+
set : function(n) {
|
8016 |
+
$(this).trigger('carouselSet', [n]);
|
8017 |
+
}
|
8018 |
+
};
|
8019 |
+
|
8020 |
+
|
8021 |
+
$.fn.carousel = function(methodOrOptions) {
|
8022 |
+
if ( methods[methodOrOptions] ) {
|
8023 |
+
return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
8024 |
+
} else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
|
8025 |
+
// Default to "init"
|
8026 |
+
return methods.init.apply( this, arguments );
|
8027 |
+
} else {
|
8028 |
+
$.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.carousel' );
|
8029 |
+
}
|
8030 |
+
}; // Plugin end
|
8031 |
+
}( jQuery ));
|
admin/js/materialize.min.js
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
if("undefined"==typeof jQuery){var jQuery;jQuery="function"==typeof require?$=require("jquery"):$}jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return 0==b?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return 0==b?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*(2*Math.PI)/g))+c},easeOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*b)*Math.sin((b*e-f)*(2*Math.PI)/g)+d+c},easeInOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(2==(b/=e/2))return c+d;if(g||(g=e*(.3*1.5)),h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return b<1?-.5*(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*(2*Math.PI)/g))+c:h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*(2*Math.PI)/g)*.5+d+c},easeInBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*(b/=e)*b*((f+1)*b-f)+c},easeOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*((b=b/e-1)*b*((f+1)*b+f)+1)+c},easeInOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),(b/=e/2)<1?d/2*(b*b*(((f*=1.525)+1)*b-f))+c:d/2*((b-=2)*b*(((f*=1.525)+1)*b+f)+2)+c},easeInBounce:function(a,b,c,d,e){return d-jQuery.easing.easeOutBounce(a,e-b,0,d,e)+c},easeOutBounce:function(a,b,c,d,e){return(b/=e)<1/2.75?d*(7.5625*b*b)+c:b<2/2.75?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:b<2.5/2.75?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(a,b,c,d,e){return b<e/2?.5*jQuery.easing.easeInBounce(a,2*b,0,d,e)+c:.5*jQuery.easing.easeOutBounce(a,2*b-e,0,d,e)+.5*d+c}}),jQuery.extend(jQuery.easing,{easeInOutMaterial:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:d/4*((b-=2)*b*b+2)+c}}),jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(a){function b(a){var b=a.length,d=c.type(a);return"function"!==d&&!c.isWindow(a)&&(!(1!==a.nodeType||!b)||("array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a))}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return null!=a&&a==a.window},c.type=function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return void 0===b||f.call(a,b)},c.each=function(a,c,d){var e,f=0,g=a.length,h=b(a);if(d){if(h)for(;g>f&&(e=c.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=c.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=c.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=c.call(a[f],f,a[f]),e===!1)break;return a},c.data=function(a,b,e){if(void 0===e){var f=a[c.expando],g=f&&d[f];if(void 0===b)return g;if(g&&b in g)return g[b]}else if(void 0!==b){var f=a[c.expando]||(a[c.expando]=++c.uuid);return d[f]=d[f]||{},d[f][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&c.each(b,function(a,b){delete f[b]})},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);j>i;i++)if(null!=(f=arguments[i]))for(e in f)a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):void 0!==d&&(h[e]=d));return h},c.queue=function(a,d,e){function f(a,c){var d=c||[];return null!=a&&(b(Object(a))?!function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;)a[e++]=b[d++];if(c!==c)for(;void 0!==b[d];)a[e++]=b[d++];return a.length=e,a}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}if(a){d=(d||"fx")+"queue";var g=c.data(a,d);return e?(!g||c.isArray(e)?g=c.data(a,d,f(e)):g.push(e),g):g||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function a(){for(var a=this.offsetParent||document;a&&"html"===!a.nodeType.toLowerCase&&"static"===a.style.position;)a=a.offsetParent;return a||document}var b=this[0],a=a.apply(b),d=this.offset(),e=/^(?:body|html)$/i.test(a.nodeName)?{top:0,left:0}:c(a).offset();return d.top-=parseFloat(b.style.marginTop)||0,d.left-=parseFloat(b.style.marginLeft)||0,a.style&&(e.top+=parseFloat(a.style.borderTopWidth)||0,e.left+=parseFloat(a.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;i<h.length;i++)e["[object "+h[i]+"]"]=h[i].toLowerCase();c.fn.init.prototype=c.fn,a.Velocity={Utilities:c}}}(window),function(a){"object"==typeof module&&"object"==typeof module.exports?module.exports=a():"function"==typeof define&&define.amd?define(a):a()}(function(){return function(a,b,c,d){function e(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}function f(a){return p.isWrapped(a)?a=[].slice.call(a):p.isNode(a)&&(a=[a]),a}function g(a){var b=m.data(a,"velocity");return null===b?d:b}function h(a){return function(b){return Math.round(b*a)*(1/a)}}function i(a,c,d,e){function f(a,b){return 1-3*b+3*a}function g(a,b){return 3*b-6*a}function h(a){return 3*a}function i(a,b,c){return((f(b,c)*a+g(b,c))*a+h(b))*a}function j(a,b,c){return 3*f(b,c)*a*a+2*g(b,c)*a+h(b)}function k(b,c){for(var e=0;p>e;++e){var f=j(c,a,d);if(0===f)return c;var g=i(c,a,d)-b;c-=g/f}return c}function l(){for(var b=0;t>b;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g;while(Math.abs(f)>r&&++h<s);return g}function n(b){for(var c=0,e=1,f=t-1;e!=f&&x[e]<=b;++e)c+=u;--e;var g=(b-x[e])/(x[e+1]-x[e]),h=c+g*u,i=j(h,a,d);return i>=q?k(b,h):0==i?h:m(b,c,c+u)}function o(){y=!0,(a!=c||d!=e)&&l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;4>w;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function j(a,b){var c=a;return p.isString(a)?t.Easings[a]||(c=!1):c=p.isArray(a)&&1===a.length?h.apply(null,a):p.isArray(a)&&2===a.length?u.apply(null,a.concat([b])):!(!p.isArray(a)||4!==a.length)&&i.apply(null,a),c===!1&&(c=t.Easings[t.defaults.easing]?t.defaults.easing:s),c}function k(a){if(a){var b=(new Date).getTime(),c=t.State.calls.length;c>1e4&&(t.State.calls=e(t.State.calls));for(var f=0;c>f;f++)if(t.State.calls[f]){var h=t.State.calls[f],i=h[0],j=h[2],n=h[3],o=!!n,q=null;n||(n=t.State.calls[f][3]=b-16);for(var r=Math.min((b-n)/j.duration,1),s=0,u=i.length;u>s;s++){var w=i[s],y=w.element;if(g(y)){var z=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var A=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];m.each(A,function(a,b){v.setPropertyValue(y,"display",b)})}v.setPropertyValue(y,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&v.setPropertyValue(y,"visibility",j.visibility);for(var B in w)if("element"!==B){var C,D=w[B],E=p.isString(D.easing)?t.Easings[D.easing]:D.easing;if(1===r)C=D.endValue;else{var F=D.endValue-D.startValue;if(C=D.startValue+F*E(r,j,F),!o&&C===D.currentValue)continue}if(D.currentValue=C,"tween"===B)q=C;else{if(v.Hooks.registered[B]){var G=v.Hooks.getRoot(B),H=g(y).rootPropertyValueCache[G];H&&(D.rootPropertyValue=H)}var I=v.setPropertyValue(y,B,D.currentValue+(0===parseFloat(C)?"":D.unitType),D.rootPropertyValue,D.scrollData);v.Hooks.registered[B]&&(g(y).rootPropertyValueCache[G]=v.Normalizations.registered[G]?v.Normalizations.registered[G]("extract",null,I[1]):I[1]),"transform"===I[0]&&(z=!0)}}j.mobileHA&&g(y).transformCache.translate3d===d&&(g(y).transformCache.translate3d="(0px, 0px, 0px)",z=!0),z&&v.flushTransformCache(y)}}j.display!==d&&"none"!==j.display&&(t.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(t.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],r,Math.max(0,n+j.duration-b),n,q),1===r&&l(f)}}t.State.isTicking&&x(k)}function l(a,b){if(!t.State.calls[a])return!1;for(var c=t.State.calls[a][0],e=t.State.calls[a][1],f=t.State.calls[a][2],h=t.State.calls[a][4],i=!1,j=0,k=c.length;k>j;j++){var l=c[j].element;if(b||f.loop||("none"===f.display&&v.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&v.setPropertyValue(l,"visibility",f.visibility)),f.loop!==!0&&(m.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(m.queue(l)[1]))&&g(l)){g(l).isAnimating=!1,g(l).rootPropertyValueCache={};var n=!1;m.each(v.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=g(l).transformCache[b];g(l).transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete g(l).transformCache[b])}),f.mobileHA&&(n=!0,delete g(l).transformCache.translate3d),n&&v.flushTransformCache(l),v.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(o){setTimeout(function(){throw o},1)}h&&f.loop!==!0&&h(e),g(l)&&f.loop===!0&&!b&&(m.each(g(l).tweensContainer,function(a,b){/^rotate/.test(a)&&360===parseFloat(b.endValue)&&(b.endValue=0,b.startValue=360),/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),t(l,"reverse",{loop:!0,delay:f.delay})),f.queue!==!1&&m.dequeue(l,f.queue)}t.State.calls[a]=!1;for(var p=0,q=t.State.calls.length;q>p;p++)if(t.State.calls[p]!==!1){i=!0;break}i===!1&&(t.State.isTicking=!1,delete t.State.calls,t.State.calls=[])}var m,n=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="<!--[if IE "+a+"]><span></span><![endif]-->",b.getElementsByTagName("span").length)return b=null,a}return d}(),o=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),p={isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isNodeList:function(a){return"object"==typeof a&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a))&&a.length!==d&&(0===a.length||"object"==typeof a[0]&&a[0].nodeType>0)},isWrapped:function(a){return a&&(a.jquery||b.Zepto&&b.Zepto.zepto.isZ(a))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)return!1;return!0}},q=!1;if(a.fn&&a.fn.jquery?(m=a,q=!0):m=b.Velocity.Utilities,8>=n&&!q)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=n)return void(jQuery.fn.velocity=jQuery.fn.animate);var r=400,s="swing",t={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:m,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:r,easing:s,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(a){m.data(a,"velocity",{isSVG:p.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};b.pageYOffset!==d?(t.State.scrollAnchor=b,t.State.scrollPropertyLeft="pageXOffset",t.State.scrollPropertyTop="pageYOffset"):(t.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,t.State.scrollPropertyLeft="scrollLeft",t.State.scrollPropertyTop="scrollTop");var u=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0,l=1e-4,m=.016;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*m):g=m;h=c(h||i,g),j.push(1+h.x),k+=16,Math.abs(h.x)>l&&Math.abs(h.v)>l;);return f?function(a){return j[a*(j.length-1)|0]}:k}}();t.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},m.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){t.Easings[b[0]]=i.apply(null,b[1])});var v=t.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a<v.Lists.colors.length;a++){var b="color"===v.Lists.colors[a]?"0 0 0 1":"255 255 255 1";v.Hooks.templates[v.Lists.colors[a]]=["Red Green Blue Alpha",b]}var c,d,e;if(n)for(c in v.Hooks.templates){d=v.Hooks.templates[c],e=d[0].split(" ");var f=d[1].match(v.RegEx.valueSplit);"Color"===e[0]&&(e.push(e.shift()),f.push(f.shift()),v.Hooks.templates[c]=[e.join(" "),f.join(" ")])}for(c in v.Hooks.templates){d=v.Hooks.templates[c],e=d[0].split(" ");for(var a in e){var g=c+e[a],h=a;v.Hooks.registered[g]=[c,h]}}},getRoot:function(a){var b=v.Hooks.registered[a];return b?b[0]:a},cleanRootPropertyValue:function(a,b){return v.RegEx.valueUnwrap.test(b)&&(b=b.match(v.RegEx.valueUnwrap)[1]),v.Values.isCSSNullValue(b)&&(b=v.Hooks.templates[a][1]),b},extractValue:function(a,b){var c=v.Hooks.registered[a];if(c){var d=c[0],e=c[1];return b=v.Hooks.cleanRootPropertyValue(d,b),b.toString().match(v.RegEx.valueSplit)[e]}return b},injectValue:function(a,b,c){var d=v.Hooks.registered[a];if(d){var e,f,g=d[0],h=d[1];return c=v.Hooks.cleanRootPropertyValue(g,c),e=c.toString().match(v.RegEx.valueSplit),e[h]=b,f=e.join(" ")}return c}},Normalizations:{registered:{clip:function(a,b,c){switch(a){case"name":return"clip";case"extract":var d;return v.RegEx.wrappedValueAlreadyExtracted.test(c)?d=c:(d=c.toString().match(v.RegEx.valueUnwrap),d=d?d[1].replace(/,(\s+)?/g," "):c),d;case"inject":return"rect("+c+")"}},blur:function(a,b,c){switch(a){case"name":return t.State.isFirefox?"filter":"-webkit-filter";case"extract":var d=parseFloat(c);if(!d&&0!==d){var e=c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);d=e?e[1]:0}return d;case"inject":return parseFloat(c)?"blur("+c+")":"none"}},opacity:function(a,b,c){if(8>=n)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){9>=n||t.State.isGingerbread||(v.Lists.transformsBase=v.Lists.transformsBase.concat(v.Lists.transforms3D));for(var a=0;a<v.Lists.transformsBase.length;a++)!function(){var b=v.Lists.transformsBase[a];v.Normalizations.registered[b]=function(a,c,e){switch(a){case"name":return"transform";case"extract":return g(c)===d||g(c).transformCache[b]===d?/^scale/i.test(b)?1:0:g(c).transformCache[b].replace(/[()]/g,"");case"inject":var f=!1;switch(b.substr(0,b.length-1)){case"translate":f=!/(%|px|em|rem|vw|vh|\d)$/i.test(e);break;case"scal":case"scale":t.State.isAndroid&&g(c).transformCache[b]===d&&1>e&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":f=!/(deg|\d)$/i.test(e);break;case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[b]="("+e+")"),g(c).transformCache[b]}}}();for(var a=0;a<v.Lists.colors.length;a++)!function(){var b=v.Lists.colors[a];v.Normalizations.registered[b]=function(a,c,e){switch(a){case"name":return b;case"extract":var f;if(v.RegEx.wrappedValueAlreadyExtracted.test(e))f=e;else{var g,h={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(e)?g=h[e]!==d?h[e]:h.black:v.RegEx.isHex.test(e)?g="rgb("+v.Values.hexToRgb(e).join(" ")+")":/^rgba?\(/i.test(e)||(g=h.black),f=(g||e).toString().match(v.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return 8>=n||3!==f.split(" ").length||(f+=" 1"),f;case"inject":return 8>=n?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(8>=n?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(n||t.State.isAndroid&&!t.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(t.State.prefixMatches[a])return[t.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;d>c;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),p.isString(t.State.prefixElement.style[e]))return t.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,d=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(c,function(a,b,c,d){return b+b+c+c+d+d}),b=d.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return 0==a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){a.classList?a.classList.add(b):a.className+=(a.className.length?" ":"")+b},removeClass:function(a,b){a.classList?a.classList.remove(b):a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(a,c,e,f){function h(a,c){function e(){j&&v.setPropertyValue(a,"display","none")}var i=0;if(8>=n)i=m.css(a,c);else{var j=!1;if(/^(width|height)$/.test(c)&&0===v.getPropertyValue(a,"display")&&(j=!0,v.setPropertyValue(a,"display",v.Values.getDisplayType(a))),!f){if("height"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(v.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(v.getPropertyValue(a,"paddingBottom"))||0);return e(),k}if("width"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(v.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(v.getPropertyValue(a,"paddingRight"))||0);return e(),l}}var o;o=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),i=9===n&&"filter"===c?o.getPropertyValue(c):o[c],(""===i||null===i)&&(i=a.style[c]),e()}if("auto"===i&&/^(top|right|bottom|left)$/i.test(c)){var p=h(a,"position");("fixed"===p||"absolute"===p&&/top|left/i.test(c))&&(i=m(a).position()[c]+"px")}return i}var i;if(v.Hooks.registered[c]){var j=c,k=v.Hooks.getRoot(j);e===d&&(e=v.getPropertyValue(a,v.Names.prefixCheck(k)[0])),v.Normalizations.registered[k]&&(e=v.Normalizations.registered[k]("extract",a,e)),i=v.Hooks.extractValue(j,e)}else if(v.Normalizations.registered[c]){var l,o;l=v.Normalizations.registered[c]("name",a),"transform"!==l&&(o=h(a,v.Names.prefixCheck(l)[0]),v.Values.isCSSNullValue(o)&&v.Hooks.templates[c]&&(o=v.Hooks.templates[c][1])),i=v.Normalizations.registered[c]("extract",a,o)}if(!/^[\d-]/.test(i))if(g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(p){i=0}else i=a.getAttribute(c);else i=h(a,v.Names.prefixCheck(c)[0]);return v.Values.isCSSNullValue(i)&&(i=0),t.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(v.Normalizations.registered[c]&&"transform"===v.Normalizations.registered[c]("name",a))v.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(v.Hooks.registered[c]){var i=c,j=v.Hooks.getRoot(c);e=e||v.getPropertyValue(a,j),d=v.Hooks.injectValue(i,d,e),c=j}if(v.Normalizations.registered[c]&&(d=v.Normalizations.registered[c]("inject",a,d),c=v.Normalizations.registered[c]("name",a)),h=v.Names.prefixCheck(c)[0],8>=n)try{a.style[h]=d}catch(k){t.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d;t.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){function b(b){return parseFloat(v.getPropertyValue(a,b))}var c="";if((n||t.State.isAndroid&&!t.State.isChrome)&&g(a).isSVG){var d={translate:[b("translateX"),b("translateY")],skewX:[b("skewX")],skewY:[b("skewY")],scale:1!==b("scale")?[b("scale"),b("scale")]:[b("scaleX"),b("scaleY")],rotate:[b("rotateZ"),0,0]};m.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),d[a]&&(c+=a+"("+d[a].join(" ")+") ",delete d[a])})}else{var e,f;m.each(g(a).transformCache,function(b){return e=g(a).transformCache[b],"transformPerspective"===b?(f=e,!0):(9===n&&"rotateZ"===b&&(b="rotate"),void(c+=b+e+" "))}),f&&(c="perspective"+f+" "+c)}v.setPropertyValue(a,"transform",c)}};v.Hooks.register(),v.Normalizations.register(),t.hook=function(a,b,c){var e=d;return a=f(a),m.each(a,function(a,f){if(g(f)===d&&t.init(f),c===d)e===d&&(e=t.CSS.getPropertyValue(f,b));else{var h=t.CSS.setPropertyValue(f,b,c);"transform"===h[0]&&t.CSS.flushTransformCache(f),e=h}}),e};var w=function(){function a(){return h?B.promise||null:i}function e(){function a(a){function l(a,b){var c=d,e=d,g=d;return p.isArray(a)?(c=a[0],!p.isArray(a[1])&&/^[\d-]/.test(a[1])||p.isFunction(a[1])||v.RegEx.isHex.test(a[1])?g=a[1]:(p.isString(a[1])&&!v.RegEx.isHex.test(a[1])||p.isArray(a[1]))&&(e=b?a[1]:j(a[1],h.duration),a[2]!==d&&(g=a[2]))):c=a,b||(e=e||h.easing),p.isFunction(c)&&(c=c.call(f,y,x)),p.isFunction(g)&&(g=g.call(f,y,x)),[c||0,e,g]}function n(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=v.Values.getUnitType(a)),[d,c]}function r(){var a={myParent:f.parentNode||c.body,position:v.getPropertyValue(f,"position"),fontSize:v.getPropertyValue(f,"fontSize")},d=a.position===I.lastPosition&&a.myParent===I.lastParent,e=a.fontSize===I.lastFontSize;I.lastParent=a.myParent,I.lastPosition=a.position,I.lastFontSize=a.fontSize;var h=100,i={};if(e&&d)i.emToPx=I.lastEmToPx,i.percentToPxWidth=I.lastPercentToPxWidth,i.percentToPxHeight=I.lastPercentToPxHeight;else{var j=g(f).isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");t.init(j),a.myParent.appendChild(j),m.each(["overflow","overflowX","overflowY"],function(a,b){t.CSS.setPropertyValue(j,b,"hidden")}),t.CSS.setPropertyValue(j,"position",a.position),t.CSS.setPropertyValue(j,"fontSize",a.fontSize),t.CSS.setPropertyValue(j,"boxSizing","content-box"),m.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){t.CSS.setPropertyValue(j,b,h+"%")}),t.CSS.setPropertyValue(j,"paddingLeft",h+"em"),i.percentToPxWidth=I.lastPercentToPxWidth=(parseFloat(v.getPropertyValue(j,"width",null,!0))||1)/h,i.percentToPxHeight=I.lastPercentToPxHeight=(parseFloat(v.getPropertyValue(j,"height",null,!0))||1)/h,i.emToPx=I.lastEmToPx=(parseFloat(v.getPropertyValue(j,"paddingLeft"))||1)/h,a.myParent.removeChild(j)}return null===I.remToPx&&(I.remToPx=parseFloat(v.getPropertyValue(c.body,"fontSize"))||16),null===I.vwToPx&&(I.vwToPx=parseFloat(b.innerWidth)/100,I.vhToPx=parseFloat(b.innerHeight)/100),i.remToPx=I.remToPx,i.vwToPx=I.vwToPx,i.vhToPx=I.vhToPx,t.debug>=1&&console.log("Unit ratios: "+JSON.stringify(i),f),i}if(h.begin&&0===y)try{h.begin.call(o,o)}catch(u){setTimeout(function(){throw u},1)}if("scroll"===C){var w,z,A,D=/^x$/i.test(h.axis)?"Left":"Top",E=parseFloat(h.offset)||0;h.container?p.isWrapped(h.container)||p.isNode(h.container)?(h.container=h.container[0]||h.container,w=h.container["scroll"+D],A=w+m(f).position()[D.toLowerCase()]+E):h.container=null:(w=t.State.scrollAnchor[t.State["scrollProperty"+D]],z=t.State.scrollAnchor[t.State["scrollProperty"+("Left"===D?"Top":"Left")]],A=m(f).offset()[D.toLowerCase()]+E),i={scroll:{rootPropertyValue:!1,startValue:w,currentValue:w,endValue:A,unitType:"",easing:h.easing,scrollData:{container:h.container,direction:D,alternateValue:z}},element:f},t.debug&&console.log("tweensContainer (scroll): ",i.scroll,f)}else if("reverse"===C){if(!g(f).tweensContainer)return void m.dequeue(f,h.queue);"none"===g(f).opts.display&&(g(f).opts.display="auto"),"hidden"===g(f).opts.visibility&&(g(f).opts.visibility="visible"),g(f).opts.loop=!1,g(f).opts.begin=null,g(f).opts.complete=null,s.easing||delete h.easing,s.duration||delete h.duration,h=m.extend({},g(f).opts,h);var F=m.extend(!0,{},g(f).tweensContainer);for(var G in F)if("element"!==G){var H=F[G].startValue;F[G].startValue=F[G].currentValue=F[G].endValue,F[G].endValue=H,p.isEmptyObject(s)||(F[G].easing=h.easing),t.debug&&console.log("reverse tweensContainer ("+G+"): "+JSON.stringify(F[G]),f)}i=F}else if("start"===C){var F;g(f).tweensContainer&&g(f).isAnimating===!0&&(F=g(f).tweensContainer),m.each(q,function(a,b){if(RegExp("^"+v.Lists.colors.join("$|^")+"$").test(a)){var c=l(b,!0),e=c[0],f=c[1],g=c[2];if(v.RegEx.isHex.test(e)){for(var h=["Red","Green","Blue"],i=v.Values.hexToRgb(e),j=g?v.Values.hexToRgb(g):d,k=0;k<h.length;k++){var m=[i[k]];f&&m.push(f),j!==d&&m.push(j[k]),q[a+h[k]]=m}delete q[a]}}});for(var K in q){var L=l(q[K]),M=L[0],N=L[1],O=L[2];K=v.Names.camelCase(K);var P=v.Hooks.getRoot(K),Q=!1;if(g(f).isSVG||"tween"===P||v.Names.prefixCheck(P)[1]!==!1||v.Normalizations.registered[P]!==d){(h.display!==d&&null!==h.display&&"none"!==h.display||h.visibility!==d&&"hidden"!==h.visibility)&&/opacity|filter/.test(K)&&!O&&0!==M&&(O=0),h._cacheValues&&F&&F[K]?(O===d&&(O=F[K].endValue+F[K].unitType),Q=g(f).rootPropertyValueCache[P]):v.Hooks.registered[K]?O===d?(Q=v.getPropertyValue(f,P),O=v.getPropertyValue(f,K,Q)):Q=v.Hooks.templates[P][1]:O===d&&(O=v.getPropertyValue(f,K));var R,S,T,U=!1;if(R=n(K,O),O=R[0],T=R[1],R=n(K,M),M=R[0].replace(/^([+-\/*])=/,function(a,b){return U=b,""}),S=R[1],O=parseFloat(O)||0,M=parseFloat(M)||0,"%"===S&&(/^(fontSize|lineHeight)$/.test(K)?(M/=100,S="em"):/^scale/.test(K)?(M/=100,S=""):/(Red|Green|Blue)$/i.test(K)&&(M=M/100*255,S="")),/[\/*]/.test(U))S=T;else if(T!==S&&0!==O)if(0===M)S=T;else{e=e||r();var V=/margin|padding|left|right|width|text|word|letter/i.test(K)||/X$/.test(K)||"x"===K?"x":"y";
|
7 |
+
switch(T){case"%":O*="x"===V?e.percentToPxWidth:e.percentToPxHeight;break;case"px":break;default:O*=e[T+"ToPx"]}switch(S){case"%":O*=1/("x"===V?e.percentToPxWidth:e.percentToPxHeight);break;case"px":break;default:O*=1/e[S+"ToPx"]}}switch(U){case"+":M=O+M;break;case"-":M=O-M;break;case"*":M=O*M;break;case"/":M=O/M}i[K]={rootPropertyValue:Q,startValue:O,currentValue:O,endValue:M,unitType:S,easing:N},t.debug&&console.log("tweensContainer ("+K+"): "+JSON.stringify(i[K]),f)}else t.debug&&console.log("Skipping ["+P+"] due to a lack of browser support.")}i.element=f}i.element&&(v.Values.addClass(f,"velocity-animating"),J.push(i),""===h.queue&&(g(f).tweensContainer=i,g(f).opts=h),g(f).isAnimating=!0,y===x-1?(t.State.calls.push([J,o,h,null,B.resolver]),t.State.isTicking===!1&&(t.State.isTicking=!0,k())):y++)}var e,f=this,h=m.extend({},t.defaults,s),i={};switch(g(f)===d&&t.init(f),parseFloat(h.delay)&&h.queue!==!1&&m.queue(f,h.queue,function(a){t.velocityQueueEntryFlag=!0,g(f).delayTimer={setTimeout:setTimeout(a,parseFloat(h.delay)),next:a}}),h.duration.toString().toLowerCase()){case"fast":h.duration=200;break;case"normal":h.duration=r;break;case"slow":h.duration=600;break;default:h.duration=parseFloat(h.duration)||1}t.mock!==!1&&(t.mock===!0?h.duration=h.delay=1:(h.duration*=parseFloat(t.mock)||1,h.delay*=parseFloat(t.mock)||1)),h.easing=j(h.easing,h.duration),h.begin&&!p.isFunction(h.begin)&&(h.begin=null),h.progress&&!p.isFunction(h.progress)&&(h.progress=null),h.complete&&!p.isFunction(h.complete)&&(h.complete=null),h.display!==d&&null!==h.display&&(h.display=h.display.toString().toLowerCase(),"auto"===h.display&&(h.display=t.CSS.Values.getDisplayType(f))),h.visibility!==d&&null!==h.visibility&&(h.visibility=h.visibility.toString().toLowerCase()),h.mobileHA=h.mobileHA&&t.State.isMobile&&!t.State.isGingerbread,h.queue===!1?h.delay?setTimeout(a,h.delay):a():m.queue(f,h.queue,function(b,c){return c===!0?(B.promise&&B.resolver(o),!0):(t.velocityQueueEntryFlag=!0,void a(b))}),""!==h.queue&&"fx"!==h.queue||"inprogress"===m.queue(f)[0]||m.dequeue(f)}var h,i,n,o,q,s,u=arguments[0]&&(arguments[0].p||m.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||p.isString(arguments[0].properties));if(p.isWrapped(this)?(h=!1,n=0,o=this,i=this):(h=!0,n=1,o=u?arguments[0].elements||arguments[0].e:arguments[0]),o=f(o)){u?(q=arguments[0].properties||arguments[0].p,s=arguments[0].options||arguments[0].o):(q=arguments[n],s=arguments[n+1]);var x=o.length,y=0;if(!/^(stop|finish)$/i.test(q)&&!m.isPlainObject(s)){var z=n+1;s={};for(var A=z;A<arguments.length;A++)p.isArray(arguments[A])||!/^(fast|normal|slow)$/i.test(arguments[A])&&!/^\d/.test(arguments[A])?p.isString(arguments[A])||p.isArray(arguments[A])?s.easing=arguments[A]:p.isFunction(arguments[A])&&(s.complete=arguments[A]):s.duration=arguments[A]}var B={promise:null,resolver:null,rejecter:null};h&&t.Promise&&(B.promise=new t.Promise(function(a,b){B.resolver=a,B.rejecter=b}));var C;switch(q){case"scroll":C="scroll";break;case"reverse":C="reverse";break;case"finish":case"stop":m.each(o,function(a,b){g(b)&&g(b).delayTimer&&(clearTimeout(g(b).delayTimer.setTimeout),g(b).delayTimer.next&&g(b).delayTimer.next(),delete g(b).delayTimer)});var D=[];return m.each(t.State.calls,function(a,b){b&&m.each(b[1],function(c,e){var f=s===d?"":s;return f!==!0&&b[2].queue!==f&&(s!==d||b[2].queue!==!1)||void m.each(o,function(c,d){d===e&&((s===!0||p.isString(s))&&(m.each(m.queue(d,p.isString(s)?s:""),function(a,b){p.isFunction(b)&&b(null,!0)}),m.queue(d,p.isString(s)?s:"",[])),"stop"===q?(g(d)&&g(d).tweensContainer&&f!==!1&&m.each(g(d).tweensContainer,function(a,b){b.endValue=b.currentValue}),D.push(a)):"finish"===q&&(b[2].duration=1))})})}),"stop"===q&&(m.each(D,function(a,b){l(b,!0)}),B.promise&&B.resolver(o)),a();default:if(!m.isPlainObject(q)||p.isEmptyObject(q)){if(p.isString(q)&&t.Redirects[q]){var E=m.extend({},s),F=E.duration,G=E.delay||0;return E.backwards===!0&&(o=m.extend(!0,[],o).reverse()),m.each(o,function(a,b){parseFloat(E.stagger)?E.delay=G+parseFloat(E.stagger)*a:p.isFunction(E.stagger)&&(E.delay=G+E.stagger.call(b,a,x)),E.drag&&(E.duration=parseFloat(F)||(/^(callout|transition)/.test(q)?1e3:r),E.duration=Math.max(E.duration*(E.backwards?1-a/x:(a+1)/x),.75*E.duration,200)),t.Redirects[q].call(b,b,E||{},a,x,o,B.promise?B:d)}),a()}var H="Velocity: First argument ("+q+") was not a property map, a known action, or a registered redirect. Aborting.";return B.promise?B.rejecter(new Error(H)):console.log(H),a()}C="start"}var I={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},J=[];m.each(o,function(a,b){p.isNode(b)&&e.call(b)});var K,E=m.extend({},t.defaults,s);if(E.loop=parseInt(E.loop),K=2*E.loop-1,E.loop)for(var L=0;K>L;L++){var M={delay:E.delay,progress:E.progress};L===K-1&&(M.display=E.display,M.visibility=E.visibility,M.complete=E.complete),w(o,"reverse",M)}return a()}};t=m.extend(w,t),t.animate=w;var x=b.requestAnimationFrame||o;return t.State.isMobile||c.hidden===d||c.addEventListener("visibilitychange",function(){c.hidden?(x=function(a){return setTimeout(function(){a(!0)},16)},k()):x=b.requestAnimationFrame||o}),a.Velocity=t,a!==b&&(a.fn.velocity=w,a.fn.velocity.defaults=t.defaults),m.each(["Down","Up"],function(a,b){t.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j=i.begin,k=i.complete,l={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},n={};i.display===d&&(i.display="Down"===b?"inline"===t.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){j&&j.call(g,g);for(var c in l){n[c]=a.style[c];var d=t.CSS.getPropertyValue(a,c);l[c]="Down"===b?[d,0]:[0,d]}n.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in n)a.style[b]=n[b];k&&k.call(g,g),h&&h.resolver(g)},t(a,l,i)}}),m.each(["In","Out"],function(a,b){t.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j={opacity:"In"===b?1:0},k=i.complete;i.complete=e!==f-1?i.begin=null:function(){k&&k.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),t(this,j,i)}}),t}(window.jQuery||window.Zepto||window,window,document)})),!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return!!Array.isArray(a)&&(g(a,c[b],c),!0)}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==ka?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ia.length;){if(c=ia[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return oa++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:ra?N:sa?Q:qa?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&ya&&0===d-e,g=b&(Aa|Ba)&&0===d-e;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=na(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===ya||f.eventType===Aa)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ba&&(i>xa||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=ma(l.x)>ma(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:la(a.pointers[c].clientX),clientY:la(a.pointers[c].clientY)},c++;return{timeStamp:na(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:la(a[0].clientX),y:la(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:la(c/b),y:la(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Ca:ma(a)>=ma(b)?a>0?Da:Ea:b>0?Fa:Ga}function I(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],La)-J(a[1],a[0],La)}function L(a,b){return I(b[0],b[1],La)/I(a[0],a[1],La)}function M(){this.evEl=Na,this.evWin=Oa,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Ra,this.evWin=Sa,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ua,this.evWin=Va,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Aa|Ba)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xa,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(ya|za)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===ya)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Aa|Ba)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bb))return bb;var b=q(a,cb),c=q(a,db);return b&&c?cb+" "+db:b||c?b?cb:db:q(a,ab)?ab:_a}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=eb,this.simultaneous={},this.requireFail=[]}function W(a){return a&jb?"cancel":a&hb?"end":a&gb?"move":a&fb?"start":""}function X(a){return a==Ga?"down":a==Fa?"up":a==Da?"left":a==Ea?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function aa(){V.apply(this,arguments),this._timer=null,this._input=null}function ba(){Z.apply(this,arguments)}function ca(){Z.apply(this,arguments)}function da(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ea(a,b){return b=b||{},b.recognizers=m(b.recognizers,ea.defaults.preset),new fa(a,b)}function fa(a,b){b=b||{},this.options=i(b,ea.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),ga(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ga(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function ha(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ia=["","webkit","moz","MS","ms","o"],ja=b.createElement("div"),ka="function",la=Math.round,ma=Math.abs,na=Date.now,oa=1,pa=/mobile|tablet|ip(ad|hone|od)|android/i,qa="ontouchstart"in a,ra=v(a,"PointerEvent")!==d,sa=qa&&pa.test(navigator.userAgent),ta="touch",ua="pen",va="mouse",wa="kinect",xa=25,ya=1,za=2,Aa=4,Ba=8,Ca=1,Da=2,Ea=4,Fa=8,Ga=16,Ha=Da|Ea,Ia=Fa|Ga,Ja=Ha|Ia,Ka=["x","y"],La=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Ma={mousedown:ya,mousemove:za,mouseup:Aa},Na="mousedown",Oa="mousemove mouseup";j(M,y,{handler:function(a){var b=Ma[a.type];b&ya&&0===a.button&&(this.pressed=!0),b&za&&1!==a.which&&(b=Aa),this.pressed&&this.allow&&(b&Aa&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:va,srcEvent:a}))}});var Pa={pointerdown:ya,pointermove:za,pointerup:Aa,pointercancel:Ba,pointerout:Ba},Qa={2:ta,3:ua,4:va,5:wa},Ra="pointerdown",Sa="pointermove pointerup pointercancel";a.MSPointerEvent&&(Ra="MSPointerDown",Sa="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pa[d],f=Qa[a.pointerType]||a.pointerType,g=f==ta,h=s(b,a.pointerId,"pointerId");e&ya&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Aa|Ba)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Ta={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Ua="touchstart",Va="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Ta[a.type];if(b===ya&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Aa|Ba)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}});var Wa={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Xa="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wa[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==ta,e=c.pointerType==va;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Aa|Ba)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ya=v(ja.style,"touchAction"),Za=Ya!==d,$a="compute",_a="auto",ab="manipulation",bb="none",cb="pan-x",db="pan-y";T.prototype={set:function(a){a==$a&&(a=this.compute()),Za&&(this.manager.element.style[Ya]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Za){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bb),f=q(d,db),g=q(d,cb);return e||f&&c&Ha||g&&c&Ia?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var eb=1,fb=2,gb=4,hb=8,ib=hb,jb=16,kb=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hb>d&&b(!0),b(),d>=hb&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kb|eb)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ib|jb|kb)&&(this.state=eb),this.state=this.process(b),void(this.state&(fb|gb|hb|jb)&&this.tryEmit(b))):(this.reset(),void(this.state=kb))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fb|gb),e=this.attrTest(a);return d&&(c&Ba||!e)?b|jb:d||e?c&Aa?b|hb:b&fb?b|gb:fb:kb}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Ja},getTouchAction:function(){var a=this.options.direction,b=[];return a&Ha&&b.push(db),a&Ia&&b.push(cb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Ha?(e=0===f?Ca:0>f?Da:Ea,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ca:0>g?Fa:Ga,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fb||!(this.state&fb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(aa,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_a]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Aa|Ba)&&!f)this.reset();else if(a.eventType&ya)this.reset(),this._timer=e(function(){this.state=ib,this.tryEmit()},b.time,this);else if(a.eventType&Aa)return ib;return kb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ib&&(a&&a.eventType&Aa?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=na(),this.manager.emit(this.options.event,this._input)))}}),j(ba,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fb)}}),j(ca,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Ha|Ia,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Ha|Ia)?b=a.velocity:c&Ha?b=a.velocityX:c&Ia&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&ma(b)>this.options.velocity&&a.eventType&Aa},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(da,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ab]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&ya&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Aa)return this.failTimeout();var g=!this.pTime||a.timeStamp-this.pTime<b.interval,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ib,this.tryEmit()},b.interval,this),fb):ib}return kb},failTimeout:function(){return this._timer=e(function(){this.state=kb},this.options.interval,this),kb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ib&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ea.VERSION="2.0.4",ea.defaults={domEvents:!1,touchAction:$a,enable:!0,inputTarget:null,inputClass:null,preset:[[ba,{enable:!1}],[_,{enable:!1},["rotate"]],[ca,{direction:Ha}],[$,{direction:Ha},["swipe"]],[da],[da,{event:"doubletap",taps:2},["tap"]],[aa]],cssProps:{userSelect:"default",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lb=1,mb=2;fa.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mb:lb},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ib)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fb|gb|hb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&ha(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ga(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(ea,{INPUT_START:ya,INPUT_MOVE:za,INPUT_END:Aa,INPUT_CANCEL:Ba,STATE_POSSIBLE:eb,STATE_BEGAN:fb,STATE_CHANGED:gb,STATE_ENDED:hb,STATE_RECOGNIZED:ib,STATE_CANCELLED:jb,STATE_FAILED:kb,DIRECTION_NONE:Ca,DIRECTION_LEFT:Da,DIRECTION_RIGHT:Ea,DIRECTION_UP:Fa,DIRECTION_DOWN:Ga,DIRECTION_HORIZONTAL:Ha,DIRECTION_VERTICAL:Ia,DIRECTION_ALL:Ja,Manager:fa,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:da,Pan:$,Swipe:ca,Pinch:_,Rotate:ba,Press:aa,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==ka&&define.amd?define(function(){return ea}):"undefined"!=typeof module&&module.exports?module.exports=ea:a[c]=ea}(window,document,"Hammer"),function(a){"function"==typeof define&&define.amd?define(["jquery","hammerjs"],a):"object"==typeof exports?a(require("jquery"),require("hammerjs")):a(jQuery,Hammer)}(function(a,b){function c(c,d){var e=a(c);e.data("hammer")||e.data("hammer",new b(e[0],d))}a.fn.hammer=function(a){return this.each(function(){c(this,a)})},b.Manager.prototype.emit=function(b){return function(c,d){b.call(this,c,d),a(this.element).trigger({type:c,gesture:d})}}(b.Manager.prototype.emit)}),function(a){a.Package?Materialize={}:a.Materialize={}}(window),function(a){for(var b=0,c=["webkit","moz"],d=a.requestAnimationFrame,e=a.cancelAnimationFrame,f=c.length;--f>=0&&!d;)d=a[c[f]+"RequestAnimationFrame"],e=a[c[f]+"CancelRequestAnimationFrame"];d&&e||(d=function(a){var c=+Date.now(),d=Math.max(b+16,c);return setTimeout(function(){a(b=d)},d-c)},e=clearTimeout),a.requestAnimationFrame=d,a.cancelAnimationFrame=e}(window),Materialize.guid=function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}}(),Materialize.escapeHash=function(a){return a.replace(/(:|\.|\[|\]|,|=)/g,"\\$1")},Materialize.elementOrParentIsFixed=function(a){var b=$(a),c=b.add(b.parents()),d=!1;return c.each(function(){if("fixed"===$(this).css("position"))return d=!0,!1}),d};var getTime=Date.now||function(){return(new Date).getTime()};Materialize.throttle=function(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:getTime(),g=null,f=a.apply(d,e),d=e=null};return function(){var j=getTime();h||c.leading!==!1||(h=j);var k=b-(j-h);return d=this,e=arguments,k<=0?(clearTimeout(g),g=null,h=j,f=a.apply(d,e),d=e=null):g||c.trailing===!1||(g=setTimeout(i,k)),f}};var Vel;Vel=jQuery?jQuery.Velocity:$?$.Velocity:Velocity,function(a){a.fn.collapsible=function(b){var c={accordion:void 0,onOpen:void 0,onClose:void 0};return b=a.extend(c,b),this.each(function(){function c(b){j=i.find("> li > .collapsible-header"),b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}),j.not(b).removeClass("active").parent().removeClass("active"),j.not(b).parent().children(".collapsible-body").stop(!0,!1).each(function(){a(this).is(":visible")&&a(this).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height",""),f(a(this).siblings(".collapsible-header"))}})})}function d(b){b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function e(a){b.accordion||"accordion"===k||void 0===k?c(a):d(a),f(a)}function f(a){a.hasClass("active")?"function"==typeof b.onOpen&&b.onOpen.call(this,a.parent()):"function"==typeof b.onClose&&b.onClose.call(this,a.parent())}function g(a){var b=h(a);return b.length>0}function h(a){return a.closest("li > .collapsible-header")}var i=a(this),j=a(this).find("> li > .collapsible-header"),k=i.data("collapsible");i.off("click.collapse","> li > .collapsible-header"),j.off("click.collapse"),i.on("click.collapse","> li > .collapsible-header",function(b){var c=a(b.target);g(c)&&(c=h(c)),c.toggleClass("active"),e(c)}),b.accordion||"accordion"===k||void 0===k?e(j.filter(".active").first()):j.filter(".active").each(function(){e(a(this))})})},a(document).ready(function(){a(".collapsible").collapsible()})}(jQuery),function(a){a.fn.scrollTo=function(b){return a(this).scrollTop(a(this).scrollTop()-a(this).offset().top+a(b).offset().top),this},a.fn.dropdown=function(b){var c={inDuration:300,outDuration:225,constrainWidth:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left",stopPropagation:!1};return"open"===b?(this.each(function(){a(this).trigger("open")}),!1):"close"===b?(this.each(function(){a(this).trigger("close")}),!1):void this.each(function(){function d(){void 0!==g.data("induration")&&(h.inDuration=g.data("induration")),void 0!==g.data("outduration")&&(h.outDuration=g.data("outduration")),void 0!==g.data("constrainwidth")&&(h.constrainWidth=g.data("constrainwidth")),void 0!==g.data("hover")&&(h.hover=g.data("hover")),void 0!==g.data("gutter")&&(h.gutter=g.data("gutter")),void 0!==g.data("beloworigin")&&(h.belowOrigin=g.data("beloworigin")),void 0!==g.data("alignment")&&(h.alignment=g.data("alignment")),void 0!==g.data("stoppropagation")&&(h.stopPropagation=g.data("stoppropagation"))}function e(b){"focus"===b&&(i=!0),d(),j.addClass("active"),g.addClass("active"),h.constrainWidth===!0?j.css("width",g.outerWidth()):j.css("white-space","nowrap");var c=window.innerHeight,e=g.innerHeight(),k=g.offset().left,l=g.offset().top-a(window).scrollTop(),m=h.alignment,n=0,o=0,p=0;h.belowOrigin===!0&&(p=e);var q=0,r=0,s=g.parent();if(s.is("body")||(s[0].scrollHeight>s[0].clientHeight&&(q=s[0].scrollTop),s[0].scrollWidth>s[0].clientWidth&&(r=s[0].scrollLeft)),k+j.innerWidth()>a(window).width()?m="right":k-j.innerWidth()+g.innerWidth()<0&&(m="left"),l+j.innerHeight()>c)if(l+e-j.innerHeight()<0){var t=c-l-p;j.css("max-height",t)}else p||(p+=e),p-=j.innerHeight();if("left"===m)n=h.gutter,o=g.position().left+n;else if("right"===m){var u=g.position().left+g.outerWidth()-j.outerWidth();n=-h.gutter,o=u+n}j.css({position:"absolute",top:g.position().top+p+q,left:o+r}),j.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:h.inDuration,easing:"easeOutCubic",complete:function(){a(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:h.inDuration,easing:"easeOutSine"}),a(document).bind("click."+j.attr("id")+" touchstart."+j.attr("id"),function(b){j.is(b.target)||g.is(b.target)||g.find(b.target).length||(f(),a(document).unbind("click."+j.attr("id")+" touchstart."+j.attr("id")))})}function f(){i=!1,j.fadeOut(h.outDuration),j.removeClass("active"),g.removeClass("active"),a(document).unbind("click."+j.attr("id")+" touchstart."+j.attr("id")),setTimeout(function(){j.css("max-height","")},h.outDuration)}var g=a(this),h=a.extend({},c,b),i=!1,j=a("#"+g.attr("data-activates"));if(d(),g.after(j),h.hover){var k=!1;g.unbind("click."+g.attr("id")),g.on("mouseenter",function(a){k===!1&&(e(),k=!0)}),g.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-content").is(j)||(j.stop(!0,!0),f(),k=!1)}),j.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-button").is(g)||(j.stop(!0,!0),f(),k=!1)})}else g.unbind("click."+g.attr("id")),g.bind("click."+g.attr("id"),function(b){i||(g[0]!=b.currentTarget||g.hasClass("active")||0!==a(b.target).closest(".dropdown-content").length?g.hasClass("active")&&(f(),a(document).unbind("click."+j.attr("id")+" touchstart."+j.attr("id"))):(b.preventDefault(),h.stopPropagation&&b.stopPropagation(),e("click")))});g.on("open",function(a,b){e(b)}),g.on("close",f)})},a(document).ready(function(){a(".dropdown-button").dropdown()})}(jQuery),function(a){var b=0,c=0,d=function(){return c++,"materialize-modal-overlay-"+c},e={init:function(c){var e={opacity:.5,inDuration:350,outDuration:250,ready:void 0,
|
8 |
+
complete:void 0,dismissible:!0,startingTop:"4%",endingTop:"10%"};return c=a.extend(e,c),this.each(function(){var e=a(this),f=a(this).attr("id")||"#"+a(this).data("target"),g=function(){var d=e.data("overlay-id"),f=a("#"+d);e.removeClass("open"),a("body").css({overflow:"",width:""}),e.find(".modal-close").off("click.close"),a(document).off("keyup.modal"+d),f.velocity({opacity:0},{duration:c.outDuration,queue:!1,ease:"easeOutQuart"});var g={duration:c.outDuration,queue:!1,ease:"easeOutCubic",complete:function(){a(this).css({display:"none"}),"function"==typeof c.complete&&c.complete.call(this,e),f.remove(),b--}};e.hasClass("bottom-sheet")?e.velocity({bottom:"-100%",opacity:0},g):e.velocity({top:c.startingTop,opacity:0,scaleX:.7},g)},h=function(f){var h=a("body"),i=h.innerWidth();if(h.css("overflow","hidden"),h.width(i),!e.hasClass("open")){var j=d(),k=a('<div class="modal-overlay"></div>');lStack=++b,k.attr("id",j).css("z-index",1e3+2*lStack),e.data("overlay-id",j).css("z-index",1e3+2*lStack+1),e.addClass("open"),a("body").append(k),c.dismissible&&(k.click(function(){g()}),a(document).on("keyup.modal"+j,function(a){27===a.keyCode&&g()})),e.find(".modal-close").on("click.close",function(a){g()}),k.css({display:"block",opacity:0}),e.css({display:"block",opacity:0}),k.velocity({opacity:c.opacity},{duration:c.inDuration,queue:!1,ease:"easeOutCubic"}),e.data("associated-overlay",k[0]);var l={duration:c.inDuration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof c.ready&&c.ready.call(this,e,f)}};e.hasClass("bottom-sheet")?e.velocity({bottom:"0",opacity:1},l):(a.Velocity.hook(e,"scaleX",.7),e.css({top:c.startingTop}),e.velocity({top:c.endingTop,opacity:1,scaleX:"1"},l))}};a(document).off("click.modalTrigger",'a[href="#'+f+'"], [data-target="'+f+'"]'),a(this).off("openModal"),a(this).off("closeModal"),a(document).on("click.modalTrigger",'a[href="#'+f+'"], [data-target="'+f+'"]',function(b){c.startingTop=(a(this).offset().top-a(window).scrollTop())/1.15,h(a(this)),b.preventDefault()}),a(this).on("openModal",function(){a(this).attr("href")||"#"+a(this).data("target");h()}),a(this).on("closeModal",function(){g()})})},open:function(){a(this).trigger("openModal")},close:function(){a(this).trigger("closeModal")}};a.fn.modal=function(b){return e[b]?e[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?void a.error("Method "+b+" does not exist on jQuery.modal"):e.init.apply(this,arguments)}}(jQuery),function(a){a.fn.materialbox=function(){return this.each(function(){function b(){f=!1;var b=i.parent(".material-placeholder"),d=(window.innerWidth,window.innerHeight,i.data("width")),g=i.data("height");i.velocity("stop",!0),a("#materialbox-overlay").velocity("stop",!0),a(".materialbox-caption").velocity("stop",!0),a("#materialbox-overlay").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){e=!1,a(this).remove()}}),i.velocity({width:d,height:g,left:0,top:0},{duration:h,queue:!1,easing:"easeOutQuad"}),a(".materialbox-caption").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){b.css({height:"",width:"",position:"",top:"",left:""}),i.css({height:"",top:"",left:"",width:"","max-width":"",position:"","z-index":"","will-change":""}),i.removeClass("active"),f=!0,a(this).remove(),c&&c.css("overflow","")}})}if(!a(this).hasClass("initialized")){a(this).addClass("initialized");var c,d,e=!1,f=!0,g=275,h=200,i=a(this),j=a("<div></div>").addClass("material-placeholder");i.wrap(j),i.on("click",function(){var h=i.parent(".material-placeholder"),j=window.innerWidth,k=window.innerHeight,l=i.width(),m=i.height();if(f===!1)return b(),!1;if(e&&f===!0)return b(),!1;f=!1,i.addClass("active"),e=!0,h.css({width:h[0].getBoundingClientRect().width,height:h[0].getBoundingClientRect().height,position:"relative",top:0,left:0}),c=void 0,d=h[0].parentNode;for(;null!==d&&!a(d).is(document);){var n=a(d);"visible"!==n.css("overflow")&&(n.css("overflow","visible"),c=void 0===c?n:c.add(n)),d=d.parentNode}i.css({position:"absolute","z-index":1e3,"will-change":"left, top, width, height"}).data("width",l).data("height",m);var o=a('<div id="materialbox-overlay"></div>').css({opacity:0}).click(function(){f===!0&&b()});i.before(o);var p=o[0].getBoundingClientRect();if(o.css({width:j,height:k,left:-1*p.left,top:-1*p.top}),o.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"}),""!==i.data("caption")){var q=a('<div class="materialbox-caption"></div>');q.text(i.data("caption")),a("body").append(q),q.css({display:"inline"}),q.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"})}var r=0,s=l/j,t=m/k,u=0,v=0;s>t?(r=m/l,u=.9*j,v=.9*j*r):(r=l/m,u=.9*k*r,v=.9*k),i.hasClass("responsive-img")?i.velocity({"max-width":u,width:l},{duration:0,queue:!1,complete:function(){i.css({left:0,top:0}).velocity({height:v,width:u,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-u/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-v/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}}):i.css("left",0).css("top",0).velocity({height:v,width:u,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-u/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-v/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}),a(window).scroll(function(){e&&b()}),a(document).keyup(function(a){27===a.keyCode&&f===!0&&e&&b()})}})},a(document).ready(function(){a(".materialboxed").materialbox()})}(jQuery),function(a){a.fn.parallax=function(){var b=a(window).width();return this.each(function(c){function d(c){var d;d=b<601?e.height()>0?e.height():e.children("img").height():e.height()>0?e.height():500;var f=e.children("img").first(),g=f.height(),h=g-d,i=e.offset().top+d,j=e.offset().top,k=a(window).scrollTop(),l=window.innerHeight,m=k+l,n=(m-j)/(d+l),o=Math.round(h*n);c&&f.css("display","block"),i>k&&j<k+l&&f.css("transform","translate3D(-50%,"+o+"px, 0)")}var e=a(this);e.addClass("parallax"),e.children("img").one("load",function(){d(!0)}).each(function(){this.complete&&a(this).trigger("load")}),a(window).scroll(function(){b=a(window).width(),d(!1)}),a(window).resize(function(){b=a(window).width(),d(!1)})})}}(jQuery),function(a){var b={init:function(b){var c={onShow:null,swipeable:!1,responsiveThreshold:1/0};return b=a.extend(c,b),this.each(function(){var c,d,e,f,g,h=a(this),i=a(window).width(),j=h.find("li.tab a"),k=h.width(),l=a(),m=Math.max(k,h[0].scrollWidth)/j.length,n=prev_index=0,o=!1,p=300,q=function(a){return k-a.position().left-a.outerWidth()-h.scrollLeft()},r=function(a){return a.position().left+h.scrollLeft()},s=function(a){n-a>=0?(f.velocity({right:q(c)},{duration:p,queue:!1,easing:"easeOutQuad"}),f.velocity({left:r(c)},{duration:p,queue:!1,easing:"easeOutQuad",delay:90})):(f.velocity({left:r(c)},{duration:p,queue:!1,easing:"easeOutQuad"}),f.velocity({right:q(c)},{duration:p,queue:!1,easing:"easeOutQuad",delay:90}))};b.swipeable&&i>b.responsiveThreshold&&(b.swipeable=!1),c=a(j.filter('[href="'+location.hash+'"]')),0===c.length&&(c=a(this).find("li.tab a.active").first()),0===c.length&&(c=a(this).find("li.tab a").first()),c.addClass("active"),n=j.index(c),n<0&&(n=0),void 0!==c[0]&&(d=a(c[0].hash),d.addClass("active")),h.find(".indicator").length||h.append('<div class="indicator"></div>'),f=h.find(".indicator"),h.append(f),h.is(":visible")&&setTimeout(function(){f.css({right:q(c)}),f.css({left:r(c)})},0),a(window).resize(function(){k=h.width(),m=Math.max(k,h[0].scrollWidth)/j.length,n<0&&(n=0),0!==m&&0!==k&&(f.css({right:q(c)}),f.css({left:r(c)}))}),b.swipeable?(j.each(function(){var b=a(Materialize.escapeHash(this.hash));b.addClass("carousel-item"),l=l.add(b)}),e=l.wrapAll('<div class="tabs-content carousel"></div>'),l.css("display",""),a(".tabs-content.carousel").carousel({fullWidth:!0,noWrap:!0,onCycleTo:function(a){if(!o){var b=n;n=e.index(a),c=j.eq(n),s(b)}}})):j.not(c).each(function(){a(Materialize.escapeHash(this.hash)).hide()}),h.on("click","a",function(e){if(a(this).parent().hasClass("disabled"))return void e.preventDefault();if(!a(this).attr("target")){o=!0,k=h.width(),m=Math.max(k,h[0].scrollWidth)/j.length,c.removeClass("active");var f=d;c=a(this),d=a(Materialize.escapeHash(this.hash)),j=h.find("li.tab a");c.position();c.addClass("active"),prev_index=n,n=j.index(a(this)),n<0&&(n=0),b.swipeable?l.length&&l.carousel("set",n):(void 0!==d&&(d.show(),d.addClass("active"),"function"==typeof b.onShow&&b.onShow.call(this,d)),void 0===f||f.is(d)||(f.hide(),f.removeClass("active"))),g=setTimeout(function(){o=!1},p),s(prev_index),e.preventDefault()}})})},select_tab:function(a){this.find('a[href="#'+a+'"]').trigger("click")}};a.fn.tabs=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tabs"):b.init.apply(this,arguments)},a(document).ready(function(){a("ul.tabs").tabs()})}(jQuery),function(a){a.fn.tooltip=function(c){var d=5,e={delay:350,tooltip:"",position:"bottom",html:!1};return"remove"===c?(this.each(function(){a("#"+a(this).attr("data-tooltip-id")).remove(),a(this).off("mouseenter.tooltip mouseleave.tooltip")}),!1):(c=a.extend(e,c),this.each(function(){var e=Materialize.guid(),f=a(this);f.attr("data-tooltip-id")&&a("#"+f.attr("data-tooltip-id")).remove(),f.attr("data-tooltip-id",e);var g,h,i,j,k,l,m=function(){g=f.attr("data-html")?"true"===f.attr("data-html"):c.html,h=f.attr("data-delay"),h=void 0===h||""===h?c.delay:h,i=f.attr("data-position"),i=void 0===i||""===i?c.position:i,j=f.attr("data-tooltip"),j=void 0===j||""===j?c.tooltip:j};m();var n=function(){var b=a('<div class="material-tooltip"></div>');return j=g?a("<span></span>").html(j):a("<span></span>").text(j),b.append(j).appendTo(a("body")).attr("id",e),l=a('<div class="backdrop"></div>'),l.appendTo(b),b};k=n(),f.off("mouseenter.tooltip mouseleave.tooltip");var o,p=!1;f.on({"mouseenter.tooltip":function(a){var c=function(){m(),p=!0,k.velocity("stop"),l.velocity("stop"),k.css({visibility:"visible",left:"0px",top:"0px"});var a,c,e,g=f.outerWidth(),h=f.outerHeight(),j=k.outerHeight(),n=k.outerWidth(),o="0px",q="0px",r=l[0].offsetWidth,s=l[0].offsetHeight,t=8,u=8,v=0;"top"===i?(a=f.offset().top-j-d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="-10px",l.css({bottom:0,left:0,borderRadius:"14px 14px 0 0",transformOrigin:"50% 100%",marginTop:j,marginLeft:n/2-r/2})):"left"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left-n-d,e=b(c,a,n,j),q="-10px",l.css({top:"-7px",right:0,width:"14px",height:"14px",borderRadius:"14px 0 0 14px",transformOrigin:"95% 50%",marginTop:j/2,marginLeft:n})):"right"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left+g+d,e=b(c,a,n,j),q="+10px",l.css({top:"-7px",left:0,width:"14px",height:"14px",borderRadius:"0 14px 14px 0",transformOrigin:"5% 50%",marginTop:j/2,marginLeft:"0px"})):(a=f.offset().top+f.outerHeight()+d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="+10px",l.css({top:0,left:0,marginLeft:n/2-r/2})),k.css({top:e.y,left:e.x}),t=Math.SQRT2*n/parseInt(r),u=Math.SQRT2*j/parseInt(s),v=Math.max(t,u),k.velocity({translateY:o,translateX:q},{duration:350,queue:!1}).velocity({opacity:1},{duration:300,delay:50,queue:!1}),l.css({visibility:"visible"}).velocity({opacity:1},{duration:55,delay:0,queue:!1}).velocity({scaleX:v,scaleY:v},{duration:300,delay:0,queue:!1,easing:"easeInOutQuad"})};o=setTimeout(c,h)},"mouseleave.tooltip":function(){p=!1,clearTimeout(o),setTimeout(function(){p!==!0&&(k.velocity({opacity:0,translateY:0,translateX:0},{duration:225,queue:!1}),l.velocity({opacity:0,scaleX:1,scaleY:1},{duration:225,queue:!1,complete:function(){l.css({visibility:"hidden"}),k.css({visibility:"hidden"}),p=!1}}))},225)}})}))};var b=function(b,c,d,e){var f=b,g=c;return f<0?f=4:f+d>window.innerWidth&&(f-=f+d-window.innerWidth),g<0?g=4:g+e>window.innerHeight+a(window).scrollTop&&(g-=g+e-window.innerHeight),{x:f,y:g}};a(document).ready(function(){a(".tooltipped").tooltip()})}(jQuery),function(a){"use strict";function b(a){return null!==a&&a===a.window}function c(a){return b(a)?a:9===a.nodeType&&a.defaultView}function d(a){var b,d,e={top:0,left:0},f=a&&a.ownerDocument;return b=f.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect()),d=c(f),{top:e.top+d.pageYOffset-b.clientTop,left:e.left+d.pageXOffset-b.clientLeft}}function e(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}function f(a){if(k.allowEvent(a)===!1)return null;for(var b=null,c=a.target||a.srcElement;null!==c.parentElement;){if(!(c instanceof SVGElement||c.className.indexOf("waves-effect")===-1)){b=c;break}if(c.classList.contains("waves-effect")){b=c;break}c=c.parentElement}return b}function g(b){var c=f(b);null!==c&&(j.show(b,c),"ontouchstart"in a&&(c.addEventListener("touchend",j.hide,!1),c.addEventListener("touchcancel",j.hide,!1)),c.addEventListener("mouseup",j.hide,!1),c.addEventListener("mouseleave",j.hide,!1))}var h=h||{},i=document.querySelectorAll.bind(document),j={duration:750,show:function(a,b){if(2===a.button)return!1;var c=b||this,f=document.createElement("div");f.className="waves-ripple",c.appendChild(f);var g=d(c),h=a.pageY-g.top,i=a.pageX-g.left,k="scale("+c.clientWidth/100*10+")";"touches"in a&&(h=a.touches[0].pageY-g.top,i=a.touches[0].pageX-g.left),f.setAttribute("data-hold",Date.now()),f.setAttribute("data-scale",k),f.setAttribute("data-x",i),f.setAttribute("data-y",h);var l={top:h+"px",left:i+"px"};f.className=f.className+" waves-notransition",f.setAttribute("style",e(l)),f.className=f.className.replace("waves-notransition",""),l["-webkit-transform"]=k,l["-moz-transform"]=k,l["-ms-transform"]=k,l["-o-transform"]=k,l.transform=k,l.opacity="1",l["-webkit-transition-duration"]=j.duration+"ms",l["-moz-transition-duration"]=j.duration+"ms",l["-o-transition-duration"]=j.duration+"ms",l["transition-duration"]=j.duration+"ms",l["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f.setAttribute("style",e(l))},hide:function(a){k.touchup(a);var b=this,c=(1.4*b.clientWidth,null),d=b.getElementsByClassName("waves-ripple");if(!(d.length>0))return!1;c=d[d.length-1];var f=c.getAttribute("data-x"),g=c.getAttribute("data-y"),h=c.getAttribute("data-scale"),i=Date.now()-Number(c.getAttribute("data-hold")),l=350-i;l<0&&(l=0),setTimeout(function(){var a={top:g+"px",left:f+"px",opacity:"0","-webkit-transition-duration":j.duration+"ms","-moz-transition-duration":j.duration+"ms","-o-transition-duration":j.duration+"ms","transition-duration":j.duration+"ms","-webkit-transform":h,"-moz-transform":h,"-ms-transform":h,"-o-transform":h,transform:h};c.setAttribute("style",e(a)),setTimeout(function(){try{b.removeChild(c)}catch(a){return!1}},j.duration)},l)},wrapInput:function(a){for(var b=0;b<a.length;b++){var c=a[b];if("input"===c.tagName.toLowerCase()){var d=c.parentNode;if("i"===d.tagName.toLowerCase()&&d.className.indexOf("waves-effect")!==-1)continue;var e=document.createElement("i");e.className=c.className+" waves-input-wrapper";var f=c.getAttribute("style");f||(f=""),e.setAttribute("style",f),c.className="waves-button-input",c.removeAttribute("style"),d.replaceChild(e,c),e.appendChild(c)}}}},k={touches:0,allowEvent:function(a){var b=!0;return"touchstart"===a.type?k.touches+=1:"touchend"===a.type||"touchcancel"===a.type?setTimeout(function(){k.touches>0&&(k.touches-=1)},500):"mousedown"===a.type&&k.touches>0&&(b=!1),b},touchup:function(a){k.allowEvent(a)}};h.displayEffect=function(b){b=b||{},"duration"in b&&(j.duration=b.duration),j.wrapInput(i(".waves-effect")),"ontouchstart"in a&&document.body.addEventListener("touchstart",g,!1),document.body.addEventListener("mousedown",g,!1)},h.attach=function(b){"input"===b.tagName.toLowerCase()&&(j.wrapInput([b]),b=b.parentElement),"ontouchstart"in a&&b.addEventListener("touchstart",g,!1),b.addEventListener("mousedown",g,!1)},a.Waves=h,document.addEventListener("DOMContentLoaded",function(){h.displayEffect()},!1)}(window),Materialize.toast=function(a,b,c,d){function e(a){var b=document.createElement("div");if(b.classList.add("toast"),c)for(var e=c.split(" "),f=0,g=e.length;f<g;f++)b.classList.add(e[f]);("object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&null!==a&&1===a.nodeType&&"string"==typeof a.nodeName)?b.appendChild(a):a instanceof jQuery?b.appendChild(a[0]):b.innerHTML=a;var h=new Hammer(b,{prevent_default:!1});return h.on("pan",function(a){var c=a.deltaX,d=80;b.classList.contains("panning")||b.classList.add("panning");var e=1-Math.abs(c/d);e<0&&(e=0),Vel(b,{left:c,opacity:e},{duration:50,queue:!1,easing:"easeOutQuad"})}),h.on("panend",function(a){var c=a.deltaX,e=80;Math.abs(c)>e?Vel(b,{marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),b.parentNode.removeChild(b)}}):(b.classList.remove("panning"),Vel(b,{left:0,opacity:1},{duration:300,easing:"easeOutExpo",queue:!1}))}),b}c=c||"";var f=document.getElementById("toast-container");null===f&&(f=document.createElement("div"),f.id="toast-container",document.body.appendChild(f));var g=e(a);a&&f.appendChild(g),g.style.opacity=0,Vel(g,{translateY:"-35px",opacity:1},{duration:300,easing:"easeOutCubic",queue:!1});var h,i=b;null!=i&&(h=setInterval(function(){null===g.parentNode&&window.clearInterval(h),g.classList.contains("panning")||(i-=20),i<=0&&(Vel(g,{opacity:0,marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),this[0].parentNode.removeChild(this[0])}}),window.clearInterval(h))},20))},function(a){var b={init:function(b){var c={menuWidth:300,edge:"left",closeOnClick:!1,draggable:!0};b=a.extend(c,b),a(this).each(function(){var c=a(this),d=c.attr("data-activates"),e=a("#"+d);300!=b.menuWidth&&e.css("width",b.menuWidth);var f=a('.drag-target[data-sidenav="'+d+'"]');b.draggable?(f.length&&f.remove(),f=a('<div class="drag-target"></div>').attr("data-sidenav",d),a("body").append(f)):f=a(),"left"==b.edge?(e.css("transform","translateX(-100%)"),f.css({left:0})):(e.addClass("right-aligned").css("transform","translateX(100%)"),f.css({right:0})),e.hasClass("fixed")&&window.innerWidth>992&&e.css("transform","translateX(0)"),e.hasClass("fixed")&&a(window).resize(function(){window.innerWidth>992?0!==a("#sidenav-overlay").length&&i?g(!0):e.css("transform","translateX(0%)"):i===!1&&("left"===b.edge?e.css("transform","translateX(-100%)"):e.css("transform","translateX(100%)"))}),b.closeOnClick===!0&&e.on("click.itemclick","a:not(.collapsible-header)",function(){g()});var g=function(c){h=!1,i=!1,a("body").css({overflow:"",width:""}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),"left"===b.edge?(f.css({width:"",right:"",left:"0"}),e.velocity({translateX:"-100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}})):(f.css({width:"",right:"0",left:""}),e.velocity({translateX:"100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}}))},h=!1,i=!1;b.draggable&&(f.on("click",function(){i&&g()}),f.hammer({prevent_default:!1}).bind("pan",function(c){if("touch"==c.gesture.pointerType){var d=(c.gesture.direction,c.gesture.center.x),f=(c.gesture.center.y,c.gesture.velocityX,a("body")),h=a("#sidenav-overlay"),j=f.innerWidth();if(f.css("overflow","hidden"),f.width(j),0===h.length&&(h=a('<div id="sidenav-overlay"></div>'),h.css("opacity",0).click(function(){g()}),a("body").append(h)),"left"===b.edge&&(d>b.menuWidth?d=b.menuWidth:d<0&&(d=0)),"left"===b.edge)d<b.menuWidth/2?i=!1:d>=b.menuWidth/2&&(i=!0),e.css("transform","translateX("+(d-b.menuWidth)+"px)");else{d<window.innerWidth-b.menuWidth/2?i=!0:d>=window.innerWidth-b.menuWidth/2&&(i=!1);var k=d-b.menuWidth/2;k<0&&(k=0),e.css("transform","translateX("+k+"px)")}var l;"left"===b.edge?(l=d/b.menuWidth,h.velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"})):(l=Math.abs((d-window.innerWidth)/b.menuWidth),h.velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(c){if("touch"==c.gesture.pointerType){var d=a('<div id="sidenav-overlay"></div>'),g=c.gesture.velocityX,j=c.gesture.center.x,k=j-b.menuWidth,l=j-b.menuWidth/2;k>0&&(k=0),l<0&&(l=0),h=!1,"left"===b.edge?i&&g<=.3||g<-.5?(0!==k&&e.velocity({translateX:[0,k]},{duration:300,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:0,left:""}),i=!0):(!i||g>.3)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[-1*b.menuWidth-10,k]},{duration:200,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:"",left:0})):i&&g>=-.3||g>.5?(0!==l&&e.velocity({translateX:[0,l]},{duration:300,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:"",left:0}),i=!0):(!i||g<-.3)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[b.menuWidth+10,l]},{duration:200,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:0,left:""}))}})),c.off("click.sidenav").on("click.sidenav",function(){if(i===!0)i=!1,h=!1,g();else{var c=a("body"),d=a('<div id="sidenav-overlay"></div>'),j=c.innerWidth();c.css("overflow","hidden"),c.width(j),a("body").append(f),"left"===b.edge?(f.css({width:"50%",right:0,left:""}),e.velocity({translateX:[0,-1*b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"})):(f.css({width:"50%",right:"",left:0}),e.velocity({translateX:[0,b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"})),d.css("opacity",0).click(function(){i=!1,h=!1,g(),d.velocity({opacity:0},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}})}),a("body").append(d),d.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){i=!0,h=!1}})}return!1})})},destroy:function(){var b=a("#sidenav-overlay"),c=a('.drag-target[data-sidenav="'+a(this).attr("data-activates")+'"]');b.trigger("click"),c.remove(),a(this).off("click"),b.remove()},show:function(){this.trigger("click")},hide:function(){a("#sidenav-overlay").trigger("click")}};a.fn.sideNav=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.sideNav"):b.init.apply(this,arguments)}}(jQuery),function(a){function b(b,c,d,e){var g=a();return a.each(f,function(a,f){if(f.height()>0){var h=f.offset().top,i=f.offset().left,j=i+f.width(),k=h+f.height(),l=!(i>c||j<e||h>d||k<b);l&&g.push(f)}}),g}function c(c){++i;var d=e.scrollTop(),f=e.scrollLeft(),h=f+e.width(),k=d+e.height(),l=b(d+j.top+c||200,h+j.right,k+j.bottom,f+j.left);a.each(l,function(a,b){var c=b.data("scrollSpy:ticks");"number"!=typeof c&&b.triggerHandler("scrollSpy:enter"),b.data("scrollSpy:ticks",i)}),a.each(g,function(a,b){var c=b.data("scrollSpy:ticks");"number"==typeof c&&c!==i&&(b.triggerHandler("scrollSpy:exit"),b.data("scrollSpy:ticks",null))}),g=l}function d(){e.trigger("scrollSpy:winSize")}var e=a(window),f=[],g=[],h=!1,i=0,j={top:0,right:0,bottom:0,left:0};a.scrollSpy=function(b,d){var g={throttle:100,scrollOffset:200};d=a.extend(g,d);var i=[];b=a(b),b.each(function(b,c){f.push(a(c)),a(c).data("scrollSpy:id",b),a('a[href="#'+a(c).attr("id")+'"]').click(function(b){b.preventDefault();var c=a(Materialize.escapeHash(this.hash)).offset().top+1;a("html, body").animate({scrollTop:c-d.scrollOffset},{duration:400,queue:!1,easing:"easeOutCubic"})})}),j.top=d.offsetTop||0,j.right=d.offsetRight||0,j.bottom=d.offsetBottom||0,j.left=d.offsetLeft||0;var k=Materialize.throttle(function(){c(d.scrollOffset)},d.throttle||100),l=function(){a(document).ready(k)};return h||(e.on("scroll",l),e.on("resize",l),h=!0),setTimeout(l,0),b.on("scrollSpy:enter",function(){i=a.grep(i,function(a){return 0!=a.height()});var b=a(this);i[0]?(a('a[href="#'+i[0].attr("id")+'"]').removeClass("active"),b.data("scrollSpy:id")<i[0].data("scrollSpy:id")?i.unshift(a(this)):i.push(a(this))):i.push(a(this)),a('a[href="#'+i[0].attr("id")+'"]').addClass("active")}),b.on("scrollSpy:exit",function(){if(i=a.grep(i,function(a){return 0!=a.height()}),i[0]){a('a[href="#'+i[0].attr("id")+'"]').removeClass("active");var b=a(this);i=a.grep(i,function(a){return a.attr("id")!=b.attr("id")}),i[0]&&a('a[href="#'+i[0].attr("id")+'"]').addClass("active")}}),b},a.winSizeSpy=function(b){return a.winSizeSpy=function(){return e},b=b||{throttle:100},e.on("resize",Materialize.throttle(d,b.throttle||100))},a.fn.scrollSpy=function(b){return a.scrollSpy(a(this),b)}}(jQuery),function(a){a(document).ready(function(){function b(b){var c=b.css("font-family"),d=b.css("font-size"),f=b.css("line-height");d&&e.css("font-size",d),c&&e.css("font-family",c),f&&e.css("line-height",f),"off"===b.attr("wrap")&&e.css("overflow-wrap","normal").css("white-space","pre"),e.text(b.val()+"\n");var g=e.html().replace(/\n/g,"<br>");e.html(g),b.is(":visible")?e.css("width",b.width()):e.css("width",a(window).width()/2),b.css("height",e.height())}Materialize.updateTextFields=function(){var b="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(b).each(function(b,c){var d=a(this);a(c).val().length>0||c.autofocus||void 0!==d.attr("placeholder")?d.siblings("label").addClass("active"):a(c)[0].validity?d.siblings("label").toggleClass("active",a(c)[0].validity.badInput===!0):d.siblings("label").removeClass("active")})};var c="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(document).on("change",c,function(){0===a(this).val().length&&void 0===a(this).attr("placeholder")||a(this).siblings("label").addClass("active"),validate_field(a(this))}),a(document).ready(function(){Materialize.updateTextFields()}),a(document).on("reset",function(b){var d=a(b.target);d.is("form")&&(d.find(c).removeClass("valid").removeClass("invalid"),d.find(c).each(function(){""===a(this).attr("value")&&a(this).siblings("label").removeClass("active")}),d.find("select.initialized").each(function(){var a=d.find("option[selected]").text();d.siblings("input.select-dropdown").val(a)}))}),a(document).on("focus",c,function(){a(this).siblings("label, .prefix").addClass("active")}),a(document).on("blur",c,function(){var b=a(this),c=".prefix";0===b.val().length&&b[0].validity.badInput!==!0&&void 0===b.attr("placeholder")&&(c+=", label"),b.siblings(c).removeClass("active"),validate_field(b)}),window.validate_field=function(a){var b=void 0!==a.attr("data-length"),c=parseInt(a.attr("data-length")),d=a.val().length;0===a.val().length&&a[0].validity.badInput===!1?a.hasClass("validate")&&(a.removeClass("valid"),a.removeClass("invalid")):a.hasClass("validate")&&(a.is(":valid")&&b&&d<=c||a.is(":valid")&&!b?(a.removeClass("invalid"),a.addClass("valid")):(a.removeClass("valid"),a.addClass("invalid")))};var d="input[type=radio], input[type=checkbox]";a(document).on("keyup.radio",d,function(b){if(9===b.which){a(this).addClass("tabbed");var c=a(this);return void c.one("blur",function(b){a(this).removeClass("tabbed")})}});var e=a(".hiddendiv").first();e.length||(e=a('<div class="hiddendiv common"></div>'),a("body").append(e));var f=".materialize-textarea";a(f).each(function(){var c=a(this);c.val().length&&b(c)}),a("body").on("keyup keydown autoresize",f,function(){b(a(this))}),a(document).on("change",'.file-field input[type="file"]',function(){for(var b=a(this).closest(".file-field"),c=b.find("input.file-path"),d=a(this)[0].files,e=[],f=0;f<d.length;f++)e.push(d[f].name);c.val(e.join(", ")),c.trigger("change")});var g,h="input[type=range]",i=!1;a(h).each(function(){var b=a('<span class="thumb"><span class="value"></span></span>');a(this).after(b)});var j=".range-field";a(document).on("change",h,function(b){var c=a(this).siblings(".thumb");c.find(".value").html(a(this).val())}),a(document).on("input mousedown touchstart",h,function(b){var c=a(this).siblings(".thumb"),d=a(this).outerWidth();c.length<=0&&(c=a('<span class="thumb"><span class="value"></span></span>'),a(this).after(c)),c.find(".value").html(a(this).val()),i=!0,a(this).addClass("active"),c.hasClass("active")||c.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),"input"!==b.type&&(g=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left,g<0?g=0:g>d&&(g=d),c.addClass("active").css("left",g)),c.find(".value").html(a(this).val())}),a(document).on("mouseup touchend",j,function(){i=!1,a(this).removeClass("active")}),a(document).on("mousemove touchmove",j,function(b){var c,d=a(this).children(".thumb");if(i){d.hasClass("active")||d.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),c=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left;var e=a(this).outerWidth();c<0?c=0:c>e&&(c=e),d.addClass("active").css("left",c),d.find(".value").html(d.siblings(h).val())}}),a(document).on("mouseout touchleave",j,function(){if(!i){var b=a(this).children(".thumb");b.hasClass("active")&&b.velocity({height:"0",width:"0",top:"10px",marginLeft:"-6px"},{duration:100}),b.removeClass("active")}}),a.fn.autocomplete=function(b){var c={data:{},limit:1/0,onAutocomplete:null};return b=a.extend(c,b),this.each(function(){var c,d=a(this),e=b.data,f=0,g=0,h=d.closest(".input-field");if(!a.isEmptyObject(e)){var i,j=a('<ul class="autocomplete-content dropdown-content"></ul>');h.length?(i=h.children(".autocomplete-content.dropdown-content").first(),i.length||h.append(j)):(i=d.next(".autocomplete-content.dropdown-content"),i.length||d.after(j)),i.length&&(j=i);var k=function(a,b){var c=b.find("img"),d=b.text().toLowerCase().indexOf(""+a.toLowerCase()),e=d+a.length-1,f=b.text().slice(0,d),g=b.text().slice(d,e+1),h=b.text().slice(e+1);b.html("<span>"+f+"<span class='highlight'>"+g+"</span>"+h+"</span>"),c.length&&b.prepend(c)},l=function(){g=0,j.find(".active").removeClass("active")};d.off("keyup.autocomplete").on("keyup.autocomplete",function(g){if(f=0,13!==g.which&&38!==g.which&&40!==g.which){var h=d.val().toLowerCase();if(c!==h&&(j.empty(),l(),""!==h))for(var i in e)if(e.hasOwnProperty(i)&&i.toLowerCase().indexOf(h)!==-1&&i.toLowerCase()!==h){if(f>=b.limit)break;var m=a("<li></li>");e[i]?m.append('<img src="'+e[i]+'" class="right circle"><span>'+i+"</span>"):m.append("<span>"+i+"</span>"),j.append(m),k(h,m),f++}c=h}}),d.off("keydown.autocomplete").on("keydown.autocomplete",function(a){var b,c=a.which,d=j.children("li").length,e=j.children(".active").first();return 13===c?(b=j.children("li").eq(g),void(b.length&&(b.click(),a.preventDefault()))):void(38!==c&&40!==c||(a.preventDefault(),38===c&&g>0&&g--,40===c&&g<d-1&&e.length&&g++,e.removeClass("active"),j.children("li").eq(g).addClass("active")))}),j.on("click","li",function(){var c=a(this).text().trim();d.val(c),d.trigger("change"),j.empty(),l(),"function"==typeof b.onAutocomplete&&b.onAutocomplete.call(this,c)})}})}}),a.fn.material_select=function(b){function c(a,b,c){var e=a.indexOf(b),f=e===-1;return f?a.push(b):a.splice(e,1),c.siblings("ul.dropdown-content").find("li").eq(b).toggleClass("active"),c.find("option").eq(b).prop("selected",f),d(a,c),f}function d(a,b){
|
9 |
+
for(var c="",d=0,e=a.length;d<e;d++){var f=b.find("option").eq(a[d]).text();c+=0===d?f:", "+f}""===c&&(c=b.find("option:disabled").eq(0).text()),b.siblings("input.select-dropdown").val(c)}a(this).each(function(){var d=a(this);if(!d.hasClass("browser-default")){var e=!!d.attr("multiple"),f=d.data("select-id");if(f&&(d.parent().find("span.caret").remove(),d.parent().find("input").remove(),d.unwrap(),a("ul#select-options-"+f).remove()),"destroy"===b)return void d.data("select-id",null).removeClass("initialized");var g=Materialize.guid();d.data("select-id",g);var h=a('<div class="select-wrapper"></div>');h.addClass(d.attr("class"));var i=a('<ul id="select-options-'+g+'" class="dropdown-content select-dropdown '+(e?"multiple-select-dropdown":"")+'"></ul>'),j=d.children("option, optgroup"),k=[],l=!1,m=d.find("option:selected").html()||d.find("option:first").html()||"",n=function(b,c,d){var e=c.is(":disabled")?"disabled ":"",f="optgroup-option"===d?"optgroup-option ":"",g=c.data("icon"),h=c.attr("class");if(g){var j="";return h&&(j=' class="'+h+'"'),"multiple"===d?i.append(a('<li class="'+e+'"><img alt="" src="'+g+'"'+j+'><span><input type="checkbox"'+e+"/><label></label>"+c.html()+"</span></li>")):i.append(a('<li class="'+e+f+'"><img alt="" src="'+g+'"'+j+"><span>"+c.html()+"</span></li>")),!0}"multiple"===d?i.append(a('<li class="'+e+'"><span><input type="checkbox"'+e+"/><label></label>"+c.html()+"</span></li>")):i.append(a('<li class="'+e+f+'"><span>'+c.html()+"</span></li>"))};j.length&&j.each(function(){if(a(this).is("option"))e?n(d,a(this),"multiple"):n(d,a(this));else if(a(this).is("optgroup")){var b=a(this).children("option");i.append(a('<li class="optgroup"><span>'+a(this).attr("label")+"</span></li>")),b.each(function(){n(d,a(this),"optgroup-option")})}}),i.find("li:not(.optgroup)").each(function(f){a(this).click(function(g){if(!a(this).hasClass("disabled")&&!a(this).hasClass("optgroup")){var h=!0;e?(a('input[type="checkbox"]',this).prop("checked",function(a,b){return!b}),h=c(k,a(this).index(),d),q.trigger("focus")):(i.find("li").removeClass("active"),a(this).toggleClass("active"),q.val(a(this).text())),r(i,a(this)),d.find("option").eq(f).prop("selected",h),d.trigger("change"),"undefined"!=typeof b&&b()}g.stopPropagation()})}),d.wrap(h);var o=a('<span class="caret">▼</span>');d.is(":disabled")&&o.addClass("disabled");var p=m.replace(/"/g,"""),q=a('<input type="text" class="select-dropdown" readonly="true" '+(d.is(":disabled")?"disabled":"")+' data-activates="select-options-'+g+'" value="'+p+'"/>');d.before(q),q.before(o),q.after(i),d.is(":disabled")||q.dropdown({hover:!1,closeOnClick:!1}),d.attr("tabindex")&&a(q[0]).attr("tabindex",d.attr("tabindex")),d.addClass("initialized"),q.on({focus:function(){if(a("ul.select-dropdown").not(i[0]).is(":visible")&&a("input.select-dropdown").trigger("close"),!i.is(":visible")){a(this).trigger("open",["focus"]);var b=a(this).val();e&&b.indexOf(",")>=0&&(b=b.split(",")[0]);var c=i.find("li").filter(function(){return a(this).text().toLowerCase()===b.toLowerCase()})[0];r(i,c,!0)}},click:function(a){a.stopPropagation()}}),q.on("blur",function(){e||a(this).trigger("close"),i.find("li.selected").removeClass("selected")}),i.hover(function(){l=!0},function(){l=!1}),a(window).on({click:function(){e&&(l||q.trigger("close"))}}),e&&d.find("option:selected:not(:disabled)").each(function(){var b=a(this).index();c(k,b,d),i.find("li").eq(b).find(":checkbox").prop("checked",!0)});var r=function(b,c,d){if(c){b.find("li.selected").removeClass("selected");var f=a(c);f.addClass("selected"),e&&!d||i.scrollTo(f)}},s=[],t=function(b){if(9==b.which)return void q.trigger("close");if(40==b.which&&!i.is(":visible"))return void q.trigger("open");if(13!=b.which||i.is(":visible")){b.preventDefault();var c=String.fromCharCode(b.which).toLowerCase(),d=[9,13,27,38,40];if(c&&d.indexOf(b.which)===-1){s.push(c);var f=s.join(""),g=i.find("li").filter(function(){return 0===a(this).text().toLowerCase().indexOf(f)})[0];g&&r(i,g)}if(13==b.which){var h=i.find("li.selected:not(.disabled)")[0];h&&(a(h).trigger("click"),e||q.trigger("close"))}40==b.which&&(g=i.find("li.selected").length?i.find("li.selected").next("li:not(.disabled)")[0]:i.find("li:not(.disabled)")[0],r(i,g)),27==b.which&&q.trigger("close"),38==b.which&&(g=i.find("li.selected").prev("li:not(.disabled)")[0],g&&r(i,g)),setTimeout(function(){s=[]},1e3)}};q.on("keydown",t)}})}}(jQuery),function(a){var b={init:function(b){var c={indicators:!0,height:400,transition:500,interval:6e3};return b=a.extend(c,b),this.each(function(){function c(a,b){a.hasClass("center-align")?a.velocity({opacity:0,translateY:-100},{duration:b,queue:!1}):a.hasClass("right-align")?a.velocity({opacity:0,translateX:100},{duration:b,queue:!1}):a.hasClass("left-align")&&a.velocity({opacity:0,translateX:-100},{duration:b,queue:!1})}function d(a){a>=j.length?a=0:a<0&&(a=j.length-1),k=i.find(".active").index(),k!=a&&(e=j.eq(k),$caption=e.find(".caption"),e.removeClass("active"),e.velocity({opacity:0},{duration:b.transition,queue:!1,easing:"easeOutQuad",complete:function(){j.not(".active").velocity({opacity:0,translateX:0,translateY:0},{duration:0,queue:!1})}}),c($caption,b.transition),b.indicators&&f.eq(k).removeClass("active"),j.eq(a).velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,delay:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).addClass("active"),b.indicators&&f.eq(a).addClass("active"))}var e,f,g,h=a(this),i=h.find("ul.slides").first(),j=i.find("> li"),k=i.find(".active").index();k!=-1&&(e=j.eq(k)),h.hasClass("fullscreen")||(b.indicators?h.height(b.height+40):h.height(b.height),i.height(b.height)),j.find(".caption").each(function(){c(a(this),0)}),j.find("img").each(function(){var b="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";a(this).attr("src")!==b&&(a(this).css("background-image","url("+a(this).attr("src")+")"),a(this).attr("src",b))}),b.indicators&&(f=a('<ul class="indicators"></ul>'),j.each(function(c){var e=a('<li class="indicator-item"></li>');e.click(function(){var c=i.parent(),e=c.find(a(this)).index();d(e),clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),f.append(e)}),h.append(f),f=h.find("ul.indicators").find("li.indicator-item")),e?e.show():(j.first().addClass("active").velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),k=0,e=j.eq(k),b.indicators&&f.eq(k).addClass("active")),e.find("img").each(function(){e.find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,queue:!1,easing:"easeOutQuad"})}),g=setInterval(function(){k=i.find(".active").index(),d(k+1)},b.transition+b.interval);var l=!1,m=!1,n=!1;h.hammer({prevent_default:!1}).bind("pan",function(a){if("touch"===a.gesture.pointerType){clearInterval(g);var b=a.gesture.direction,c=a.gesture.deltaX,d=a.gesture.velocityX,e=a.gesture.velocityY;$curr_slide=i.find(".active"),Math.abs(d)>Math.abs(e)&&$curr_slide.velocity({translateX:c},{duration:50,queue:!1,easing:"easeOutQuad"}),4===b&&(c>h.innerWidth()/2||d<-.65)?n=!0:2===b&&(c<-1*h.innerWidth()/2||d>.65)&&(m=!0);var f;m&&(f=$curr_slide.next(),0===f.length&&(f=j.first()),f.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"})),n&&(f=$curr_slide.prev(),0===f.length&&(f=j.last()),f.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(a){"touch"===a.gesture.pointerType&&($curr_slide=i.find(".active"),l=!1,curr_index=i.find(".active").index(),!n&&!m||j.length<=1?$curr_slide.velocity({translateX:0},{duration:300,queue:!1,easing:"easeOutQuad"}):m?(d(curr_index+1),$curr_slide.velocity({translateX:-1*h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):n&&(d(curr_index-1),$curr_slide.velocity({translateX:h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})),m=!1,n=!1,clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval))}),h.on("sliderPause",function(){clearInterval(g)}),h.on("sliderStart",function(){clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),h.on("sliderNext",function(){k=i.find(".active").index(),d(k+1)}),h.on("sliderPrev",function(){k=i.find(".active").index(),d(k-1)})})},pause:function(){a(this).trigger("sliderPause")},start:function(){a(this).trigger("sliderStart")},next:function(){a(this).trigger("sliderNext")},prev:function(){a(this).trigger("sliderPrev")}};a.fn.slider=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments)}}(jQuery),function(a){a(document).ready(function(){a(document).on("click.card",".card",function(b){a(this).find("> .card-reveal").length&&(a(b.target).is(a(".card-reveal .card-title"))||a(b.target).is(a(".card-reveal .card-title i"))?a(this).find(".card-reveal").velocity({translateY:0},{duration:225,queue:!1,easing:"easeInOutQuad",complete:function(){a(this).css({display:"none"})}}):(a(b.target).is(a(".card .activator"))||a(b.target).is(a(".card .activator i")))&&(a(b.target).closest(".card").css("overflow","hidden"),a(this).find(".card-reveal").css({display:"block"}).velocity("stop",!1).velocity({translateY:"-100%"},{duration:300,queue:!1,easing:"easeInOutQuad"})))})})}(jQuery),function(a){var b={data:[],placeholder:"",secondaryPlaceholder:"",autocompleteData:{},autocompleteLimit:1/0};a(document).ready(function(){a(document).on("click",".chip .close",function(b){var c=a(this).closest(".chips");c.attr("data-initialized")||a(this).closest(".chip").remove()})}),a.fn.material_chip=function(c){var d=this;if(this.$el=a(this),this.$document=a(document),this.SELS={CHIPS:".chips",CHIP:".chip",INPUT:"input",DELETE:".material-icons",SELECTED_CHIP:".selected"},"data"===c)return this.$el.data("chips");var e=a.extend({},b,c);d.hasAutocomplete=!a.isEmptyObject(e.autocompleteData),this.init=function(){var b=0;d.$el.each(function(){var c=a(this),f=Materialize.guid();d.chipId=f,e.data&&e.data instanceof Array||(e.data=[]),c.data("chips",e.data),c.attr("data-index",b),c.attr("data-initialized",!0),c.hasClass(d.SELS.CHIPS)||c.addClass("chips"),d.chips(c,f),b++})},this.handleEvents=function(){var b=d.SELS;d.$document.off("click.chips-focus",b.CHIPS).on("click.chips-focus",b.CHIPS,function(c){a(c.target).find(b.INPUT).focus()}),d.$document.off("click.chips-select",b.CHIP).on("click.chips-select",b.CHIP,function(c){var e=a(c.target);if(e.length){var f=e.hasClass("selected"),g=e.closest(b.CHIPS);a(b.CHIP).removeClass("selected"),f||d.selectChip(e.index(),g)}}),d.$document.off("keydown.chips").on("keydown.chips",function(c){if(!a(c.target).is("input, textarea")){var e,f=d.$document.find(b.CHIP+b.SELECTED_CHIP),g=f.closest(b.CHIPS),h=f.siblings(b.CHIP).length;if(f.length)if(8===c.which||46===c.which){c.preventDefault(),e=f.index(),d.deleteChip(e,g);var i=null;e+1<h?i=e:e!==h&&e+1!==h||(i=h-1),i<0&&(i=null),null!==i&&d.selectChip(i,g),h||g.find("input").focus()}else if(37===c.which){if(e=f.index()-1,e<0)return;a(b.CHIP).removeClass("selected"),d.selectChip(e,g)}else if(39===c.which){if(e=f.index()+1,a(b.CHIP).removeClass("selected"),e>h)return void g.find("input").focus();d.selectChip(e,g)}}}),d.$document.off("focusin.chips",b.CHIPS+" "+b.INPUT).on("focusin.chips",b.CHIPS+" "+b.INPUT,function(c){var d=a(c.target).closest(b.CHIPS);d.addClass("focus"),d.siblings("label, .prefix").addClass("active"),a(b.CHIP).removeClass("selected")}),d.$document.off("focusout.chips",b.CHIPS+" "+b.INPUT).on("focusout.chips",b.CHIPS+" "+b.INPUT,function(c){var d=a(c.target).closest(b.CHIPS);d.removeClass("focus"),d.data("chips").length||d.siblings("label").removeClass("active"),d.siblings(".prefix").removeClass("active")}),d.$document.off("keydown.chips-add",b.CHIPS+" "+b.INPUT).on("keydown.chips-add",b.CHIPS+" "+b.INPUT,function(c){var e=a(c.target),f=e.closest(b.CHIPS),g=f.children(b.CHIP).length;if(13===c.which){if(d.hasAutocomplete&&f.find(".autocomplete-content.dropdown-content").length&&f.find(".autocomplete-content.dropdown-content").children().length)return;return c.preventDefault(),d.addChip({tag:e.val()},f),void e.val("")}if((8===c.keyCode||37===c.keyCode)&&""===e.val()&&g)return c.preventDefault(),d.selectChip(g-1,f),void e.blur()}),d.$document.off("click.chips-delete",b.CHIPS+" "+b.DELETE).on("click.chips-delete",b.CHIPS+" "+b.DELETE,function(c){var e=a(c.target),f=e.closest(b.CHIPS),g=e.closest(b.CHIP);c.stopPropagation(),d.deleteChip(g.index(),f),f.find("input").focus()})},this.chips=function(b,c){var f="";b.data("chips").forEach(function(a){f+=d.renderChip(a)}),f+='<input id="'+c+'" class="input" placeholder="">',b.html(f),d.setPlaceholder(b);var g=b.next("label");g.length&&(g.attr("for",c),b.data("chips").length&&g.addClass("active"));var h=a("#"+c);d.hasAutocomplete&&h.autocomplete({data:e.autocompleteData,limit:e.autocompleteLimit,onAutocomplete:function(a){d.addChip({tag:a},b),h.val(""),h.focus()}})},this.renderChip=function(a){if(a.tag){var b='<div class="chip">'+a.tag;return a.image&&(b+=' <img src="'+a.image+'"> '),b+='<i class="material-icons close">close</i>',b+="</div>"}},this.setPlaceholder=function(a){a.data("chips").length&&e.placeholder?a.find("input").prop("placeholder",e.placeholder):!a.data("chips").length&&e.secondaryPlaceholder&&a.find("input").prop("placeholder",e.secondaryPlaceholder)},this.isValid=function(a,b){for(var c=a.data("chips"),d=!1,e=0;e<c.length;e++)if(c[e].tag===b.tag)return void(d=!0);return""!==b.tag&&!d},this.addChip=function(b,c){if(d.isValid(c,b)){for(var e=d.renderChip(b),f=[],g=c.data("chips"),h=0;h<g.length;h++)f.push(g[h]);f.push(b),c.data("chips",f),a(e).insertBefore(c.find("input")),c.trigger("chip.add",b),d.setPlaceholder(c)}},this.deleteChip=function(a,b){var c=b.data("chips")[a];b.find(".chip").eq(a).remove();for(var e=[],f=b.data("chips"),g=0;g<f.length;g++)g!==a&&e.push(f[g]);b.data("chips",e),b.trigger("chip.delete",c),d.setPlaceholder(b)},this.selectChip=function(a,b){var c=b.find(".chip").eq(a);c&&!1===c.hasClass("selected")&&(c.addClass("selected"),b.trigger("chip.select",b.data("chips")[a]))},this.getChipsElement=function(a,b){return b.eq(a)},this.init(),this.handleEvents()}}(jQuery),function(a){a.fn.pushpin=function(b){var c={top:0,bottom:1/0,offset:0};return"remove"===b?(this.each(function(){(id=a(this).data("pushpin-id"))&&(a(window).off("scroll."+id),a(this).removeData("pushpin-id").removeClass("pin-top pinned pin-bottom").removeAttr("style"))}),!1):(b=a.extend(c,b),$index=0,this.each(function(){function c(a){a.removeClass("pin-top"),a.removeClass("pinned"),a.removeClass("pin-bottom")}function d(d,e){d.each(function(){b.top<=e&&b.bottom>=e&&!a(this).hasClass("pinned")&&(c(a(this)),a(this).css("top",b.offset),a(this).addClass("pinned")),e<b.top&&!a(this).hasClass("pin-top")&&(c(a(this)),a(this).css("top",0),a(this).addClass("pin-top")),e>b.bottom&&!a(this).hasClass("pin-bottom")&&(c(a(this)),a(this).addClass("pin-bottom"),a(this).css("top",b.bottom-g))})}var e=Materialize.guid(),f=a(this),g=a(this).offset().top;a(this).data("pushpin-id",e),d(f,a(window).scrollTop()),a(window).on("scroll."+e,function(){var c=a(window).scrollTop()+b.offset;d(f,c)})}))}}(jQuery),function(a){a(document).ready(function(){a.fn.reverse=[].reverse,a(document).on("mouseenter.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle):not(.toolbar)",function(c){var d=a(this);b(d)}),a(document).on("mouseleave.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle):not(.toolbar)",function(b){var d=a(this);c(d)}),a(document).on("click.fabClickToggle",".fixed-action-btn.click-to-toggle > a",function(d){var e=a(this),f=e.parent();f.hasClass("active")?c(f):b(f)}),a(document).on("click.fabToolbar",".fixed-action-btn.toolbar > a",function(b){var c=a(this),e=c.parent();d(e)})}),a.fn.extend({openFAB:function(){b(a(this))},closeFAB:function(){c(a(this))},openToolbar:function(){d(a(this))},closeToolbar:function(){e(a(this))}});var b=function(b){var c=b;if(c.hasClass("active")===!1){var d,e,f=c.hasClass("horizontal");f===!0?e=40:d=40,c.addClass("active"),c.find("ul .btn-floating").velocity({scaleY:".4",scaleX:".4",translateY:d+"px",translateX:e+"px"},{duration:0});var g=0;c.find("ul .btn-floating").reverse().each(function(){a(this).velocity({opacity:"1",scaleX:"1",scaleY:"1",translateY:"0",translateX:"0"},{duration:80,delay:g}),g+=40})}},c=function(a){var b,c,d=a,e=d.hasClass("horizontal");e===!0?c=40:b=40,d.removeClass("active");d.find("ul .btn-floating").velocity("stop",!0),d.find("ul .btn-floating").velocity({opacity:"0",scaleX:".4",scaleY:".4",translateY:b+"px",translateX:c+"px"},{duration:80})},d=function(b){if("true"!==b.attr("data-open")){var c,d,f,g=window.innerWidth,h=window.innerHeight,i=b[0].getBoundingClientRect(),j=b.find("> a").first(),k=b.find("> ul").first(),l=a('<div class="fab-backdrop"></div>'),m=j.css("background-color");j.append(l),c=i.left-g/2+i.width/2,d=h-i.bottom,f=g/l.width(),b.attr("data-origin-bottom",i.bottom),b.attr("data-origin-left",i.left),b.attr("data-origin-width",i.width),b.addClass("active"),b.attr("data-open",!0),b.css({"text-align":"center",width:"100%",bottom:0,left:0,transform:"translateX("+c+"px)",transition:"none"}),j.css({transform:"translateY("+-d+"px)",transition:"none"}),l.css({"background-color":m}),setTimeout(function(){b.css({transform:"",transition:"transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"}),j.css({overflow:"visible",transform:"",transition:"transform .2s"}),setTimeout(function(){b.css({overflow:"hidden","background-color":m}),l.css({transform:"scale("+f+")",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}),k.find("> li > a").css({opacity:1}),a(window).on("scroll.fabToolbarClose",function(){e(b),a(window).off("scroll.fabToolbarClose"),a(document).off("click.fabToolbarClose")}),a(document).on("click.fabToolbarClose",function(c){a(c.target).closest(k).length||(e(b),a(window).off("scroll.fabToolbarClose"),a(document).off("click.fabToolbarClose"))})},100)},0)}},e=function(a){if("true"===a.attr("data-open")){var b,c,d,e=window.innerWidth,f=window.innerHeight,g=a.attr("data-origin-width"),h=a.attr("data-origin-bottom"),i=a.attr("data-origin-left"),j=a.find("> .btn-floating").first(),k=a.find("> ul").first(),l=a.find(".fab-backdrop"),m=j.css("background-color");b=i-e/2+g/2,c=f-h,d=e/l.width(),a.removeClass("active"),a.attr("data-open",!1),a.css({"background-color":"transparent",transition:"none"}),j.css({transition:"none"}),l.css({transform:"scale(0)","background-color":m}),k.find("> li > a").css({opacity:""}),setTimeout(function(){l.remove(),a.css({"text-align":"",width:"",bottom:"",left:"",overflow:"","background-color":"",transform:"translate3d("+-b+"px,0,0)"}),j.css({overflow:"",transform:"translate3d(0,"+c+"px,0)"}),setTimeout(function(){a.css({transform:"translate3d(0,0,0)",transition:"transform .2s"}),j.css({transform:"translate3d(0,0,0)",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"})},20)},200)}}}(jQuery),function(a){Materialize.fadeInImage=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}c.css({opacity:0}),a(c).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),a(c).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(b,c){c.start=100;var d=b/100,e=150-(100-b)/1.75;e<100&&(e=100),b>=0&&a(this).css({"-webkit-filter":"grayscale("+d+")brightness("+e+"%)",filter:"grayscale("+d+")brightness("+e+"%)"})}})},Materialize.showStaggeredList=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}var d=0;c.find("li").velocity({translateX:"-100px"},{duration:0}),c.find("li").each(function(){a(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:d,easing:[60,10]}),d+=120})},a(document).ready(function(){var b=!1,c=!1;a(".dismissable").each(function(){a(this).hammer({prevent_default:!1}).bind("pan",function(d){if("touch"===d.gesture.pointerType){var e=a(this),f=d.gesture.direction,g=d.gesture.deltaX,h=d.gesture.velocityX;e.velocity({translateX:g},{duration:50,queue:!1,easing:"easeOutQuad"}),4===f&&(g>e.innerWidth()/2||h<-.75)&&(b=!0),2===f&&(g<-1*e.innerWidth()/2||h>.75)&&(c=!0)}}).bind("panend",function(d){if(Math.abs(d.gesture.deltaX)<a(this).innerWidth()/2&&(c=!1,b=!1),"touch"===d.gesture.pointerType){var e=a(this);if(b||c){var f;f=b?e.innerWidth():-1*e.innerWidth(),e.velocity({translateX:f},{duration:100,queue:!1,easing:"easeOutQuad",complete:function(){e.css("border","none"),e.velocity({height:0,padding:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){e.remove()}})}})}else e.velocity({translateX:0},{duration:100,queue:!1,easing:"easeOutQuad"});b=!1,c=!1}})})})}(jQuery),function(a){var b=!1;Materialize.scrollFire=function(a){var c=function(){for(var b=window.pageYOffset+window.innerHeight,c=0;c<a.length;c++){var d=a[c],e=d.selector,f=d.offset,g=d.callback,h=document.querySelector(e);if(null!==h){var i=h.getBoundingClientRect().top+window.pageYOffset;if(b>i+f&&d.done!==!0){if("function"==typeof g)g.call(this,h);else if("string"==typeof g){var j=new Function(g);j(h)}d.done=!0}}}},d=Materialize.throttle(function(){c()},a.throttle||100);b||(window.addEventListener("scroll",d),window.addEventListener("resize",d),b=!0),setTimeout(d,0)}}(jQuery),function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,l){function m(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",y.component.nodes(t.open),v.box),v.wrap),v.frame),v.holder)}function n(){w.data(g,y).addClass(v.input).attr("tabindex",-1).val(w.data("value")?y.get("select",u.format):f.value),u.editable||w.on("focus."+t.id+" click."+t.id,function(a){a.preventDefault(),y.$root.eq(0).focus()}).on("keydown."+t.id,q),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function o(){y.$root.on({keydown:q,focusin:function(a){y.$root.removeClass(v.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=y.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),y.$root.eq(0).focus()))}}).on({focus:function(){w.addClass(v.target)},blur:function(){w.removeClass(v.target)}}).on("focus.toOpen",r).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(v.navDisabled)||b.hasClass(v.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(y.$root[0],e))&&y.$root.eq(0).focus(),!d&&c.nav?y.set("highlight",y.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?y.set("select",c.pick):c.clear?y.clear().close(!0):c.close&&y.close(!0)}),e(y.$root[0],"hidden",!0)}function p(){var b;u.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof u.hiddenPrefix?u.hiddenPrefix:"","string"==typeof u.hiddenSuffix?u.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),y._hidden=a('<input type=hidden name="'+b+'"'+(w.data("value")||f.value?' value="'+y.get("select",u.formatSubmit)+'"':"")+">")[0],w.on("change."+t.id,function(){y._hidden.value=f.value?y.get("select",u.formatSubmit):""}),u.container?a(u.container).append(y._hidden):w.after(y._hidden)}function q(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(y.close(),!1):void((32==b||c||!t.open&&y.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?y.clear().close():y.open()))}function r(a){a.stopPropagation(),"focus"==a.type&&y.$root.addClass(v.focused),y.open()}if(!f)return b;var s=!1,t={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},u=i?a.extend(!0,{},i.defaults,l):l||{},v=a.extend({},b.klasses(),u.klass),w=a(f),x=function(){return this.start()},y=x.prototype={constructor:x,$node:w,start:function(){return t&&t.start?y:(t.methods={},t.start=!0,t.open=!1,t.type=f.type,f.autofocus=f==h(),f.readOnly=!u.editable,f.id=f.id||t.id,"text"!=f.type&&(f.type="text"),y.component=new i(y,u),y.$root=a(b._.node("div",m(),v.picker,'id="'+f.id+'_root" tabindex="0"')),o(),u.formatSubmit&&p(),n(),u.container?a(u.container).append(y.$root):w.after(y.$root),y.on({start:y.component.onStart,render:y.component.onRender,stop:y.component.onStop,open:y.component.onOpen,close:y.component.onClose,set:y.component.onSet}).on({start:u.onStart,render:u.onRender,stop:u.onStop,open:u.onOpen,close:u.onClose,set:u.onSet}),s=c(y.$root.children()[0]),f.autofocus&&y.open(),y.trigger("start").trigger("render"))},render:function(a){return a?y.$root.html(m()):y.$root.find("."+v.box).html(y.component.nodes(t.open)),y.trigger("render")},stop:function(){return t.start?(y.close(),y._hidden&&y._hidden.parentNode.removeChild(y._hidden),y.$root.remove(),w.removeClass(v.input).removeData(g),setTimeout(function(){w.off("."+t.id)},0),f.type=t.type,f.readOnly=!1,y.trigger("stop"),t.methods={},t.start=!1,y):y},open:function(c){return t.open?y:(w.addClass(v.active),e(f,"expanded",!0),setTimeout(function(){y.$root.addClass(v.opened),e(y.$root[0],"hidden",!1)},0),c!==!1&&(t.open=!0,s&&k.css("overflow","hidden").css("padding-right","+="+d()),y.$root.eq(0).focus(),j.on("click."+t.id+" focusin."+t.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&y.close(b===y.$root.children()[0])}).on("keydown."+t.id,function(c){var d=c.keyCode,e=y.component.key[d],f=c.target;27==d?y.close(!0):f!=y.$root[0]||!e&&13!=d?a.contains(y.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(y.component.key.go,y,[b._.trigger(e)]):y.$root.find("."+v.highlighted).hasClass(v.disabled)||y.set("select",y.component.item.highlight).close())})),y.trigger("open"))},close:function(a){return a&&(y.$root.off("focus.toOpen").eq(0).focus(),setTimeout(function(){y.$root.on("focus.toOpen",r)},0)),w.removeClass(v.active),e(f,"expanded",!1),setTimeout(function(){y.$root.removeClass(v.opened+" "+v.focused),e(y.$root[0],"hidden",!0)},0),t.open?(t.open=!1,s&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+t.id),y.trigger("close")):y},clear:function(a){return y.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in y.component.item&&(void 0===f&&(f=null),y.component.set(e,f,d)),"select"!=e&&"clear"!=e||w.val("clear"==e?"":y.get(e,u.format)).trigger("change");y.render()}return d.muted?y:y.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=t[a])return t[a];if("valueSubmit"==a){if(y._hidden)return y._hidden.value;a="value"}if("value"==a)return f.value;if(a in y.component.item){if("string"==typeof c){var d=y.component.get(a);return d?b._.trigger(y.component.formats.toString,y.component,[c,d]):""}return y.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),t.methods[e]=t.methods[e]||[],t.methods[e].push(f)}return y},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;a<namesCount;a+=1)b=c[a],b in t.methods&&delete t.methods[b];return y},trigger:function(a,c){var d=function(a){var d=t.methods[a];d&&d.map(function(a){b._.trigger(a,y,[c])})};return d("_"+a),d(a),y}};return new x}function c(a){var b,c="position";return a.currentStyle?b=a.currentStyle[c]:window.getComputedStyle&&(b=getComputedStyle(a)[c]),"fixed"==b}function d(){if(k.height()<=i.height())return 0;var b=a('<div style="visibility:hidden;width:100px" />').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('<div style="width:100%" />').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+"</"+b+">"):""},lead:function(a){return(a<10?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b}),function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,
|
10 |
+
c==-(1/0)||c==1/0?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-(1/0):1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=j.item.enable===-1,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;d<c.pick?e=!0:d>c.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&l<0)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.month<k.month||c.month>k.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,c.item.enable===-1?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:!(!b.isPlainObject(a)||!b.isPlainObject(c))&&(d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to))},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):!(!b.isPlainObject(a)||!b.isPlainObject(c))&&d.overlapRanges(a,c)},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(b.enable==-1?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g<e.length;g+=1)if(d.isDateExact(a,e[g])){c=!0;break}c||(f.isInteger(a)||f.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,g=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,h,i,j;for(i=0;i<g;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;i<g;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;i<g;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysLetter).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(d){var e=c.showMonthsShort?c.monthsShort:c.monthsFull;return"short_months"==d&&(e=c.monthsShort),c.selectMonths&&void 0==d?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[e[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&a<m.month||k.year==n.year&&a>n.month?" disabled":"")]}}),c.klass.selectMonth+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):"short_months"==d?null!=i?f.node("div",e[i.month]):f.node("div",e[k.month]):f.node("div",e[k.month],c.klass.month)},r=function(d){var e=k.year,g=c.selectYears===!0?5:~~(c.selectYears/2);if(g){var h=m.year,i=n.year,j=e-g,l=e+g;if(h>j&&(l+=h-j,j=h),i<l){var o=j-h,p=l-i;j-=o>p?p:o,l=i}if(c.selectYears&&void 0==d)return f.node("select",f.group({min:j,max:l,i:1,node:"option",item:function(a){return[a,0,"value="+a+(e==a?" selected":"")]}}),c.klass.selectYear+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return"raw"==d?f.node("div",e):f.node("div",e,c.klass.year)};return createDayLabel=function(){return null!=i?f.node("div",i.date):f.node("div",h.date)},createWeekdayLabel=function(){var a;a=null!=i?i.day:h.day;var b=c.weekdaysFull[a];return b},f.node("div",f.node("div",createWeekdayLabel(),"picker__weekday-display")+f.node("div",q("short_months"),c.klass.month_display)+f.node("div",createDayLabel(),c.klass.day_display)+f.node("div",r("raw"),c.klass.year_display),c.klass.date_display)+f.node("div",f.node("div",(c.selectYears?q()+r():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pick<m.pick||a.pick>n.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:!(!d||b.$node.val()!==o)||null,activedescendant:!!e||null,disabled:!!g||null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0})),c.klass.calendar_container)+f.node("div",f.node("button",c.today,"btn-flat picker__today","type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,"btn-flat picker__clear","type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,"btn-flat picker__close","type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysLetter:["S","M","T","W","T","F","S"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",date_display:a+"date-display",day_display:a+"day-display",month_display:a+"month-display",year_display:a+"year-display",calendar_container:a+"calendar-container",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)}),function(a){function b(){var b=+a(this).attr("data-length"),c=+a(this).val().length,d=c<=b;a(this).parent().find('span[class="character-counter"]').html(c+"/"+b),e(d,a(this))}function c(b){var c=b.parent().find('span[class="character-counter"]');c.length||(c=a("<span/>").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1),b.parent().append(c))}function d(){a(this).parent().find('span[class="character-counter"]').html("")}function e(a,b){var c=b.hasClass("invalid");a&&c?b.removeClass("invalid"):a||c||(b.removeClass("valid"),b.addClass("invalid"))}a.fn.characterCounter=function(){return this.each(function(){var e=a(this),f=e.parent().find('span[class="character-counter"]');if(!f.length){var g=void 0!==e.attr("data-length");g&&(e.on("input",b),e.on("focus",b),e.on("blur",d),c(e))}})},a(document).ready(function(){a("input, textarea").characterCounter()})}(jQuery),function(a){var b={init:function(b){var c={duration:200,dist:-100,shift:0,padding:0,fullWidth:!1,indicators:!1,noWrap:!1,onCycleTo:null};return b=a.extend(c,b),this.each(function(){function c(){"undefined"!=typeof window.ontouchstart&&(J[0].addEventListener("touchstart",l),J[0].addEventListener("touchmove",m),J[0].addEventListener("touchend",n)),J[0].addEventListener("mousedown",l),J[0].addEventListener("mousemove",m),J[0].addEventListener("mouseup",n),J[0].addEventListener("mouseleave",n),J[0].addEventListener("click",j)}function d(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientX:a.clientX}function e(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientY:a.clientY}function f(a){return a>=v?a%v:a<0?f(v+a%v):a}function g(c){var d,e,g,h,i,j,k,l=s;if(r="number"==typeof c?c:r,s=Math.floor((r+u/2)/u),g=r-s*u,h=g<0?1:-1,i=-h*g*2/u,e=v>>1,b.fullWidth?k="translateX(0)":(k="translateX("+(J[0].clientWidth-p)/2+"px) ",k+="translateY("+(J[0].clientHeight-q)/2+"px)"),K){var m=s%v,n=I.find(".indicator-item.active");n.index()!==m&&(n.removeClass("active"),I.find(".indicator-item").eq(m).addClass("active"))}for((!b.noWrap||s>=0&&s<v)&&(j=o[f(s)],a(j).hasClass("active")||(J.find(".carousel-item").removeClass("active"),a(j).addClass("active")),j.style[C]=k+" translateX("+-g/2+"px) translateX("+h*b.shift*i*d+"px) translateZ("+b.dist*i+"px)",j.style.zIndex=0,b.fullWidth?tweenedOpacity=1:tweenedOpacity=1-.2*i,j.style.opacity=tweenedOpacity,j.style.display="block"),d=1;d<=e;++d)b.fullWidth?(zTranslation=b.dist,tweenedOpacity=d===e&&g<0?1-i:1):(zTranslation=b.dist*(2*d+i*h),tweenedOpacity=1-.2*(2*d+i*h)),(!b.noWrap||s+d<v)&&(j=o[f(s+d)],j.style[C]=k+" translateX("+(b.shift+(u*d-g)/2)+"px) translateZ("+zTranslation+"px)",j.style.zIndex=-d,j.style.opacity=tweenedOpacity,j.style.display="block"),b.fullWidth?(zTranslation=b.dist,tweenedOpacity=d===e&&g>0?1-i:1):(zTranslation=b.dist*(2*d-i*h),tweenedOpacity=1-.2*(2*d-i*h)),(!b.noWrap||s-d>=0)&&(j=o[f(s-d)],j.style[C]=k+" translateX("+(-b.shift+(-u*d-g)/2)+"px) translateZ("+zTranslation+"px)",j.style.zIndex=-d,j.style.opacity=tweenedOpacity,j.style.display="block");if((!b.noWrap||s>=0&&s<v)&&(j=o[f(s)],j.style[C]=k+" translateX("+-g/2+"px) translateX("+h*b.shift*i+"px) translateZ("+b.dist*i+"px)",j.style.zIndex=0,b.fullWidth?tweenedOpacity=1:tweenedOpacity=1-.2*i,j.style.opacity=tweenedOpacity,j.style.display="block"),l!==s&&"function"==typeof b.onCycleTo){var t=J.find(".carousel-item").eq(f(s));b.onCycleTo.call(this,t,G)}}function h(){var a,b,c,d;a=Date.now(),b=a-E,E=a,c=r-D,D=r,d=1e3*c/(1+b),B=.8*d+.2*B}function i(){var a,c;z&&(a=Date.now()-E,c=z*Math.exp(-a/b.duration),c>2||c<-2?(g(A-c),requestAnimationFrame(i)):g(A))}function j(c){if(G)return c.preventDefault(),c.stopPropagation(),!1;if(!b.fullWidth){var d=a(c.target).closest(".carousel-item").index(),e=s%v-d;0!==e&&(c.preventDefault(),c.stopPropagation()),k(d)}}function k(a){var c=s%v-a;b.noWrap||(c<0?Math.abs(c+v)<Math.abs(c)&&(c+=v):c>0&&Math.abs(c-v)<c&&(c-=v)),c<0?J.trigger("carouselNext",[Math.abs(c)]):c>0&&J.trigger("carouselPrev",[c])}function l(a){t=!0,G=!1,H=!1,w=d(a),x=e(a),B=z=0,D=r,E=Date.now(),clearInterval(F),F=setInterval(h,100)}function m(a){var b,c,f;if(t)if(b=d(a),y=e(a),c=w-b,f=Math.abs(x-y),f<30&&!H)(c>2||c<-2)&&(G=!0,w=b,g(r+c));else{if(G)return a.preventDefault(),a.stopPropagation(),!1;H=!0}if(G)return a.preventDefault(),a.stopPropagation(),!1}function n(a){if(t)return t=!1,clearInterval(F),A=r,(B>10||B<-10)&&(z=.9*B,A=r+z),A=Math.round(A/u)*u,b.noWrap&&(A>=u*(v-1)?A=u*(v-1):A<0&&(A=0)),z=A-r,E=Date.now(),requestAnimationFrame(i),G&&(a.preventDefault(),a.stopPropagation()),!1}var o,p,q,r,s,t,u,v,w,x,z,A,B,C,D,E,F,G,H,I=a('<ul class="indicators"></ul>'),J=a(this),K=J.attr("data-indicators")||b.indicators;if(J.hasClass("initialized"))return a(this).trigger("carouselNext",[1e-6]),!0;if(b.fullWidth){b.dist=0;var L=J.find(".carousel-item img").first();L.length?imageHeight=L.on("load",function(){J.css("height",a(this).height())}):(imageHeight=J.find(".carousel-item").first().height(),J.css("height",imageHeight)),K&&J.find(".carousel-fixed-item").addClass("with-indicators")}J.addClass("initialized"),t=!1,r=A=0,o=[],p=J.find(".carousel-item").first().innerWidth(),q=J.find(".carousel-item").first().innerHeight(),u=2*p+b.padding,J.find(".carousel-item").each(function(b){if(o.push(a(this)[0]),K){var c=a('<li class="indicator-item"></li>');0===b&&c.addClass("active"),c.click(function(b){b.stopPropagation();var c=a(this).index();k(c)}),I.append(c)}}),K&&J.append(I),v=o.length,C="transform",["webkit","Moz","O","ms"].every(function(a){var b=a+"Transform";return"undefined"==typeof document.body.style[b]||(C=b,!1)}),a(window).on("resize.carousel",function(){b.fullWidth?(p=J.find(".carousel-item").first().innerWidth(),q=J.find(".carousel-item").first().innerHeight(),u=2*p+b.padding,r=2*s*p,A=r):g()}),c(),g(r),a(this).on("carouselNext",function(a,b){void 0===b&&(b=1),A=u*Math.round(r/u)+u*b,r!==A&&(z=A-r,E=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselPrev",function(a,b){void 0===b&&(b=1),A=u*Math.round(r/u)-u*b,r!==A&&(z=A-r,E=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselSet",function(a,b){void 0===b&&(b=0),k(b)})})},next:function(b){a(this).trigger("carouselNext",[b])},prev:function(b){a(this).trigger("carouselPrev",[b])},set:function(b){a(this).trigger("carouselSet",[b])}};a.fn.carousel=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.carousel"):b.init.apply(this,arguments)}}(jQuery);
|
admin/js/wpvr-admin.js
ADDED
@@ -0,0 +1,465 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function( $ ) {
|
2 |
+
'use strict';
|
3 |
+
var j= 1;
|
4 |
+
/**
|
5 |
+
* All of the code for your admin-facing JavaScript source
|
6 |
+
* should reside in this file.
|
7 |
+
*
|
8 |
+
* Note: It has been assumed you will write jQuery code here, so the
|
9 |
+
* $ function reference has been prepared for usage within the scope
|
10 |
+
* of this function.
|
11 |
+
*
|
12 |
+
* This enables you to define handlers, for when the DOM is ready:
|
13 |
+
*
|
14 |
+
* $(function() {
|
15 |
+
*
|
16 |
+
* });
|
17 |
+
*
|
18 |
+
* When the window is loaded:
|
19 |
+
*
|
20 |
+
* $( window ).load(function() {
|
21 |
+
*
|
22 |
+
* });
|
23 |
+
*
|
24 |
+
* ...and/or other possibilities.
|
25 |
+
*
|
26 |
+
* Ideally, it is not considered best practise to attach more than a
|
27 |
+
* single DOM-ready or window-load handler for a particular page.
|
28 |
+
* Although scripts in the WordPress core, Plugins and Themes may be
|
29 |
+
* practising this, we should strive to set a better example in our own work.
|
30 |
+
*/
|
31 |
+
|
32 |
+
|
33 |
+
|
34 |
+
jQuery(document).ready(function($){
|
35 |
+
|
36 |
+
|
37 |
+
j= $('#scene-1').find('.hotspot-nav li').eq(-2).find('span').attr('data-index');
|
38 |
+
var ajaxurl = wpvr_obj.ajaxurl;
|
39 |
+
$('#panolenspreview').on('click', function(e){
|
40 |
+
e.preventDefault();
|
41 |
+
var postid = $("#post_ID").val();
|
42 |
+
var autoload = $("input[name='autoload']:checked").val();
|
43 |
+
var control = $("input[name='controls']:checked").val();
|
44 |
+
var defaultscene = $("input[name='default-scene-id']").val();
|
45 |
+
var scenefadeduration = $("input[name='scene-fade-duration']").val();
|
46 |
+
var panodata = $('.scene-setup').repeaterVal();
|
47 |
+
jQuery.ajax({
|
48 |
+
type: "POST",
|
49 |
+
url: ajaxurl,
|
50 |
+
data: {
|
51 |
+
action: "wpvr_preview",
|
52 |
+
postid: postid,
|
53 |
+
control: control,
|
54 |
+
autoload: autoload,
|
55 |
+
panodata: panodata,
|
56 |
+
defaultscene: defaultscene,
|
57 |
+
scenefadeduration: scenefadeduration,
|
58 |
+
},
|
59 |
+
|
60 |
+
success: function( response ){
|
61 |
+
if (response.success == true) {
|
62 |
+
$('#error_occured').hide();
|
63 |
+
$('#'+response.data[0]["panoid"]).empty();
|
64 |
+
var scenes = response.data[1];
|
65 |
+
|
66 |
+
if (scenes) {
|
67 |
+
$.each(scenes.scenes, function (i) {
|
68 |
+
$.each(scenes.scenes[i]['hotSpots'], function (key, val) {
|
69 |
+
if (val["clickHandlerArgs"] != "") {
|
70 |
+
val["clickHandlerFunc"] = hotspot;
|
71 |
+
}
|
72 |
+
if (val["createTooltipArgs"] != "") {
|
73 |
+
val["createTooltipFunc"] = tooltip;
|
74 |
+
}
|
75 |
+
});
|
76 |
+
});
|
77 |
+
}
|
78 |
+
var panoshow = pannellum.viewer(response.data[0]["panoid"], scenes);
|
79 |
+
}
|
80 |
+
else {
|
81 |
+
$('#error_occured').show();
|
82 |
+
$('#error_occured').html(response.data);
|
83 |
+
}
|
84 |
+
}
|
85 |
+
});
|
86 |
+
});
|
87 |
+
});
|
88 |
+
|
89 |
+
jQuery(document).ready(function($){
|
90 |
+
|
91 |
+
var flag_ok = false;
|
92 |
+
$('#publish').on('click', function(e){
|
93 |
+
var x = $(this).val();
|
94 |
+
if(x=='Publish' || x== 'Update') {
|
95 |
+
if ( ! flag_ok ) {
|
96 |
+
e.preventDefault();
|
97 |
+
var postid = $("#post_ID").val();
|
98 |
+
var autoload = $("input[name='autoload']:checked").val();
|
99 |
+
var control = $("input[name='controls']:checked").val();
|
100 |
+
var defaultscene = $("input[name='default-scene-id']").val();
|
101 |
+
var scenefadeduration = $("input[name='scene-fade-duration']").val();
|
102 |
+
if ($('.scene-setup')[0]) {
|
103 |
+
var panodata = $('.scene-setup').repeaterVal();
|
104 |
+
} else {
|
105 |
+
var panodata = '';
|
106 |
+
}
|
107 |
+
jQuery.ajax({
|
108 |
+
|
109 |
+
type: "POST",
|
110 |
+
url: ajaxurl,
|
111 |
+
data: {
|
112 |
+
action: "wpvr_save",
|
113 |
+
postid: postid,
|
114 |
+
control: control,
|
115 |
+
autoload: autoload,
|
116 |
+
panodata: panodata,
|
117 |
+
defaultscene: defaultscene,
|
118 |
+
scenefadeduration: scenefadeduration,
|
119 |
+
},
|
120 |
+
|
121 |
+
success: function( response ){
|
122 |
+
if (response.success == false) {
|
123 |
+
$('#error_occured').show();
|
124 |
+
$('#error_occured').html(response.data);
|
125 |
+
}
|
126 |
+
else {
|
127 |
+
flag_ok = true;
|
128 |
+
$('#publish').trigger('click');
|
129 |
+
}
|
130 |
+
}
|
131 |
+
});
|
132 |
+
}
|
133 |
+
}
|
134 |
+
});
|
135 |
+
});
|
136 |
+
|
137 |
+
function hotspot(hotSpotDiv, args) {
|
138 |
+
var argst = args.replace(/\\/g, '');
|
139 |
+
$("#custom-ifram").html(argst);
|
140 |
+
$("#custom-ifram").fadeToggle();
|
141 |
+
$(".iframe-wrapper").toggleClass("show-modal");
|
142 |
+
}
|
143 |
+
|
144 |
+
function tooltip(hotSpotDiv, args) {
|
145 |
+
hotSpotDiv.classList.add('custom-tooltip');
|
146 |
+
var span = document.createElement('span');
|
147 |
+
args = args.replace(/\\/g, "");
|
148 |
+
span.innerHTML = args;
|
149 |
+
hotSpotDiv.appendChild(span);
|
150 |
+
span.style.width = span.scrollWidth - 20 + 'px';
|
151 |
+
span.style.marginLeft = -(span.scrollWidth - hotSpotDiv.offsetWidth) / 2 + 'px';
|
152 |
+
span.style.marginTop = -span.scrollHeight - 12 + 'px';
|
153 |
+
}
|
154 |
+
|
155 |
+
jQuery(document).ready(function($){
|
156 |
+
$("#cross").on("click", function(e){
|
157 |
+
e.preventDefault();
|
158 |
+
$("#custom-ifram").fadeOut();
|
159 |
+
$(".iframe-wrapper").removeClass("show-modal");
|
160 |
+
$('iframe').attr('src', $('iframe').attr('src'));
|
161 |
+
});
|
162 |
+
});
|
163 |
+
|
164 |
+
jQuery(document).ready(function($){
|
165 |
+
|
166 |
+
var i = $('.scene-nav li').eq(-2).find('span').attr('data-index');
|
167 |
+
i = parseInt(i);
|
168 |
+
|
169 |
+
$('.scene-setup').repeater({
|
170 |
+
|
171 |
+
defaultValues: {
|
172 |
+
'scene-type': 'equirectangular',
|
173 |
+
},
|
174 |
+
show: function () {
|
175 |
+
|
176 |
+
if( $(this).parents(".scene-setup").attr("data-limit").length > 0 ){
|
177 |
+
|
178 |
+
if( $(this).parents(".scene-setup").find("div[data-repeater-item]:not(.hotspot-setup div[data-repeater-item])").length <= $(this).parents(".scene-setup").attr("data-limit") ){
|
179 |
+
|
180 |
+
$(this).slideDown();
|
181 |
+
$(this).removeClass('active');
|
182 |
+
|
183 |
+
i=i+1;
|
184 |
+
var scene = 'scene-'+i;
|
185 |
+
|
186 |
+
|
187 |
+
$(this).find(".title .scene-num").html(i);
|
188 |
+
|
189 |
+
$('<li><span data-index="'+ i +'" data-href="#'+ scene +'">Scene '+ i +'</span></li>').insertBefore($(this).parent().parent('.scene-setup').find('.scene-nav ul li:last-child'));
|
190 |
+
|
191 |
+
$(this).attr('id', scene);
|
192 |
+
changehotspotid(i);
|
193 |
+
$(this).siblings('.active').removeClass('active');
|
194 |
+
$(this).addClass('active');
|
195 |
+
// $([$(this).parent()[0], $($(this).data('href'))[0]]).addClass('active').siblings('.active').removeClass('active');
|
196 |
+
} else {
|
197 |
+
$('.pano-alert > p').html('You can only add 5 scenes for free version');
|
198 |
+
$('.pano-alert').show();
|
199 |
+
$(this).remove();
|
200 |
+
}
|
201 |
+
} else {
|
202 |
+
jQuery(this).slideDown();
|
203 |
+
$(this).removeClass('active');
|
204 |
+
|
205 |
+
i=i+1;
|
206 |
+
var scene = 'scene-'+i;
|
207 |
+
|
208 |
+
|
209 |
+
$(this).find(".title .scene-num").html(i);
|
210 |
+
|
211 |
+
$('<li><span data-index="'+ i +'" data-href="#'+ scene +'">Scene '+ i +'</span></li>').insertBefore($(this).parent().parent('.scene-setup').find('.scene-nav ul li:last-child'));
|
212 |
+
|
213 |
+
$(this).attr('id', scene);
|
214 |
+
changehotspotid(i);
|
215 |
+
}
|
216 |
+
|
217 |
+
$(this).hide();
|
218 |
+
},
|
219 |
+
hide: function (deleteElement) {
|
220 |
+
|
221 |
+
var hide_id = $(this).attr("id");
|
222 |
+
hide_id = "#"+hide_id;
|
223 |
+
|
224 |
+
var current = $(this).attr('id');
|
225 |
+
var fchild = $('.single-scene:first-child').attr('id');
|
226 |
+
|
227 |
+
if(confirm('Are you sure you want to delete?')) {
|
228 |
+
jQuery(this).slideUp(deleteElement);
|
229 |
+
if(current == fchild){
|
230 |
+
$(this).next().addClass("active");
|
231 |
+
$(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").next().addClass("active");
|
232 |
+
$(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").next().children("span").trigger( "click" );
|
233 |
+
}
|
234 |
+
else {
|
235 |
+
$(this).prev().addClass("active");
|
236 |
+
$(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").prev().addClass("active");
|
237 |
+
$(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").prev().children("span").trigger( "click" );
|
238 |
+
}
|
239 |
+
$(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").remove();
|
240 |
+
}
|
241 |
+
},
|
242 |
+
repeaters: [{
|
243 |
+
selector: '.hotspot-setup',
|
244 |
+
defaultValues: {
|
245 |
+
'hotspot-type': 'info',
|
246 |
+
},
|
247 |
+
show: function () {
|
248 |
+
|
249 |
+
if( $(this).parents(".hotspot-setup").attr("data-limit").length > 0 ){
|
250 |
+
|
251 |
+
if( $(this).parents(".hotspot-setup").find("div[data-repeater-item]").length <= $(this).parents(".hotspot-setup").attr("data-limit") ){
|
252 |
+
|
253 |
+
$(this).slideDown();
|
254 |
+
$(this).removeClass('active');
|
255 |
+
$(this).siblings('.active').removeClass('active');
|
256 |
+
$(this).addClass('active');
|
257 |
+
j = parseInt(j);
|
258 |
+
j=j+1;
|
259 |
+
var parent_scene = $(this).parent().parent().parent('.single-scene.active').attr('id');
|
260 |
+
var hotspot = parent_scene+'-hotspot-'+ j;
|
261 |
+
|
262 |
+
var replace_string =parent_scene.replace("scene-", "");
|
263 |
+
|
264 |
+
$(this).find(".title .hotspot-num").html(j);
|
265 |
+
$(this).find(".title .scene-num").html(replace_string);
|
266 |
+
|
267 |
+
$('<li><span data-index="'+ j +'" data-href="#'+ hotspot +'">Hotspot '+ j +'</span></li>').insertBefore($(this).parent().parent('.hotspot-setup').find('.hotspot-nav ul li:last-child'));
|
268 |
+
|
269 |
+
$(this).attr('id', hotspot);
|
270 |
+
|
271 |
+
//test
|
272 |
+
|
273 |
+
} else {
|
274 |
+
$('.pano-alert > p').html('You can only add 5 hotspots for free version');
|
275 |
+
$('.pano-alert').show();
|
276 |
+
$(this).remove();
|
277 |
+
}
|
278 |
+
} else {
|
279 |
+
jQuery(this).slideDown();
|
280 |
+
$(this).removeClass('active');
|
281 |
+
j = parseInt(j);
|
282 |
+
j=j+1;
|
283 |
+
var parent_scene = $(this).parent().parent().parent('.single-scene.active').attr('id');
|
284 |
+
var hotspot = parent_scene+'-hotspot-'+ j;
|
285 |
+
|
286 |
+
var replace_string =parent_scene.replace("scene-", "");
|
287 |
+
|
288 |
+
$(this).find(".title .hotspot-num").html(j);
|
289 |
+
$(this).find(".title .scene-num").html(replace_string);
|
290 |
+
|
291 |
+
$('<li><span data-index="'+ j +'" data-href="#'+ hotspot +'">Hotspot '+ j +'</span></li>').insertBefore($(this).parent().parent('.hotspot-setup').find('.hotspot-nav ul li:last-child'));
|
292 |
+
|
293 |
+
$(this).attr('id', hotspot);
|
294 |
+
}
|
295 |
+
},
|
296 |
+
hide: function (deleteElement) {
|
297 |
+
var hotspot_hide_id = $(this).attr("id");
|
298 |
+
hotspot_hide_id = "#"+hotspot_hide_id;
|
299 |
+
|
300 |
+
|
301 |
+
var hotspot_current = $(this).attr('id');
|
302 |
+
var hotspot_fchild = $(this).parent().children(":first").attr('id');
|
303 |
+
console.log(hotspot_fchild);
|
304 |
+
console.log(hotspot_current);
|
305 |
+
//if(confirm('Are you sure you want to delete?')) {
|
306 |
+
jQuery(this).slideUp(deleteElement);
|
307 |
+
if(hotspot_current == hotspot_fchild){
|
308 |
+
$(this).next().addClass("active");
|
309 |
+
$(this).parent().parent('.hotspot-setup').find('.hotspot-nav li span[data-href="'+hotspot_hide_id+'"]').parent("li").next().addClass("active");
|
310 |
+
|
311 |
+
}
|
312 |
+
else {
|
313 |
+
$(this).prev().addClass("active");
|
314 |
+
$(this).parent().parent('.hotspot-setup').find('.hotspot-nav li span[data-href="'+hotspot_hide_id+'"]').parent("li").prev().addClass("active");
|
315 |
+
}
|
316 |
+
|
317 |
+
$(this).parent().parent('.hotspot-setup').find('.hotspot-nav li:not(:last-child) span[data-href="'+hotspot_hide_id+'"]').parent("li").remove();
|
318 |
+
|
319 |
+
//console.log(hotspot_hide_id);
|
320 |
+
//}
|
321 |
+
},
|
322 |
+
}]
|
323 |
+
});
|
324 |
+
|
325 |
+
|
326 |
+
});
|
327 |
+
|
328 |
+
|
329 |
+
var file_frame;
|
330 |
+
var parent;
|
331 |
+
$(document).on("click",".scene-upload",function(event) {
|
332 |
+
event.preventDefault();
|
333 |
+
parent = $(this).parent( '.form-group' );
|
334 |
+
|
335 |
+
// if the file_frame has already been created, just reuse it
|
336 |
+
if ( file_frame ) {
|
337 |
+
file_frame.open();
|
338 |
+
return;
|
339 |
+
}
|
340 |
+
|
341 |
+
file_frame = wp.media.frames.file_frame = wp.media({
|
342 |
+
title: $( this ).data( 'uploader_title' ),
|
343 |
+
button: {
|
344 |
+
text: $( this ).data( 'uploader_button_text' ),
|
345 |
+
},
|
346 |
+
library: {
|
347 |
+
type: [ 'image']
|
348 |
+
},
|
349 |
+
multiple: false // set this to true for multiple file selection
|
350 |
+
});
|
351 |
+
|
352 |
+
file_frame.on( 'select', function() {
|
353 |
+
var attachment = file_frame.state().get('selection').first().toJSON();
|
354 |
+
parent.find('.scene-attachment-url').val(attachment.url);
|
355 |
+
parent.find( 'img' ).attr( 'src', attachment.url).show();
|
356 |
+
});
|
357 |
+
|
358 |
+
file_frame.open();
|
359 |
+
});
|
360 |
+
|
361 |
+
|
362 |
+
$(document).on("change","select[name*=hotspot-type]",function(event) {
|
363 |
+
|
364 |
+
var getparent = $(this).parent();
|
365 |
+
|
366 |
+
var getvalue = $(this).val();
|
367 |
+
if (getvalue == 'info') {
|
368 |
+
getparent.find('.hotspot-scene').hide();
|
369 |
+
getparent.find('.hotspot-url').show();
|
370 |
+
getparent.find('.hotspot-content').show();
|
371 |
+
// getparent.find('.hotspot-hover').show();
|
372 |
+
}
|
373 |
+
else {
|
374 |
+
getparent.find('.hotspot-scene').show();
|
375 |
+
getparent.find('.hotspot-url').hide();
|
376 |
+
getparent.find('.hotspot-content').hide();
|
377 |
+
// getparent.find('.hotspot-hover').hide();
|
378 |
+
}
|
379 |
+
});
|
380 |
+
|
381 |
+
|
382 |
+
//------------panolens tab js------------------
|
383 |
+
|
384 |
+
|
385 |
+
$(document).on("click",".scene-nav ul li:not(:last-child) span",function() {
|
386 |
+
|
387 |
+
var scene_id = $(this).data('index');
|
388 |
+
scene_id = '#scene-'+ scene_id;
|
389 |
+
|
390 |
+
j = $(scene_id).find('.hotspot-nav li').eq(-2).find('span').attr('data-index');
|
391 |
+
|
392 |
+
$([$(this).parent()[0], $($(this).data('href'))[0]]).addClass('active').siblings('.active').removeClass('active');
|
393 |
+
|
394 |
+
// $(this).css({ 'display': "block" });
|
395 |
+
});
|
396 |
+
|
397 |
+
//add click
|
398 |
+
$(document).on("click",".scene-nav ul li:last-child span",function() {
|
399 |
+
var scene_id = $(this).parent('li').prev().children("span").data('index');
|
400 |
+
console.log(scene_id);
|
401 |
+
scene_id = '#scene-'+ scene_id;
|
402 |
+
console.log(scene_id);
|
403 |
+
j = $(scene_id).find('.hotspot-nav li').eq(-2).find('span').attr('data-index');
|
404 |
+
$('.scene-nav ul li.active').removeClass('active');
|
405 |
+
// $( '.scene-nav ul li:last-child(2)' ).addClass('active');
|
406 |
+
$(this).parent('li').prev().addClass('active');
|
407 |
+
|
408 |
+
});
|
409 |
+
|
410 |
+
//end add click
|
411 |
+
|
412 |
+
$(document).on("click",".hotspot-nav ul li:not(:last-child) span",function() {
|
413 |
+
$([$(this).parent()[0], $($(this).data('href'))[0]]).addClass('active').siblings('.active').removeClass('active');
|
414 |
+
// $([$(this).parent()[0], $(this).data('href'))[0]]).addClass('active').siblings('.active').removeClass('active');
|
415 |
+
|
416 |
+
});
|
417 |
+
|
418 |
+
$(document).on("click",".hotspot-nav ul li:last-child span",function() {
|
419 |
+
$(this).parent('li').siblings('.active').removeClass('active');
|
420 |
+
$(this).parent('li').prev().addClass('active');
|
421 |
+
// $([$(this).parent()[0], $($(this).data('href'))[0]]).addClass('active').siblings('.active').removeClass('active');
|
422 |
+
// $([$(this).parent()[0], $(this).data('href'))[0]]).addClass('active').siblings('.active').removeClass('active');
|
423 |
+
|
424 |
+
});
|
425 |
+
|
426 |
+
function changehotspotid(id){
|
427 |
+
var scene_id = '#scene-'+ id;
|
428 |
+
var hotspot_id = 'scene-'+ id +'-hotspot-1';
|
429 |
+
$(scene_id).find('.hotspot-nav li span').attr('data-href', '#'+hotspot_id+'');
|
430 |
+
$(scene_id).find('.single-hotspot').attr('id', hotspot_id);
|
431 |
+
|
432 |
+
}
|
433 |
+
|
434 |
+
$(document).on("click",".rex-pano-nav-menu.main-nav ul li span",function() {
|
435 |
+
$([$(this).parent()[0], $($(this).data('href'))[0]]).addClass('active').siblings('.active').removeClass('active');
|
436 |
+
});
|
437 |
+
|
438 |
+
//----------alert dismiss--------
|
439 |
+
$(document).on("click","body",function() {
|
440 |
+
$('.pano-alert').hide();
|
441 |
+
});
|
442 |
+
$(document).on("click",".pano-alert > .destroy",function() {
|
443 |
+
$('.pano-alert').hide();
|
444 |
+
});
|
445 |
+
$(document).on("click",".pano-alert, .rex-pano-sub-tabs .rex-pano-tab-nav li.add",function(e) {
|
446 |
+
e.stopPropagation();
|
447 |
+
});
|
448 |
+
|
449 |
+
|
450 |
+
$(document).on("click",".main-nav li.hotspot span",function() {
|
451 |
+
$(".hotspot-setup.rex-pano-sub-tabs").show();
|
452 |
+
$(".scene-setup > nav.scene-nav").hide();
|
453 |
+
$(".scene-setup .single-scene > .scene-content").hide();
|
454 |
+
$(".scene-setup .delete-scene").hide();
|
455 |
+
});
|
456 |
+
|
457 |
+
$(document).on("click",".main-nav li.scene span",function() {
|
458 |
+
$(".hotspot-setup.rex-pano-sub-tabs").hide();
|
459 |
+
$(".scene-setup > nav.scene-nav").show();
|
460 |
+
$(".scene-setup .single-scene > .scene-content").show();
|
461 |
+
$(".scene-setup .delete-scene").show();
|
462 |
+
});
|
463 |
+
|
464 |
+
|
465 |
+
})( jQuery );
|
admin/lib/pannellum/.gitignore
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Ignore builds
|
2 |
+
build/**
|
3 |
+
|
4 |
+
# Ignore OS X stuff
|
5 |
+
.DS_Store
|
6 |
+
|
7 |
+
# Ignore generated docs
|
8 |
+
utils/doc/generated_docs
|
admin/lib/pannellum/.npmignore
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Ignore generated docs
|
2 |
+
utils/doc/generated_docs
|
3 |
+
|
4 |
+
# Ignore build utilities
|
5 |
+
utils/build
|
6 |
+
|
7 |
+
# Ignore examples
|
8 |
+
examples
|
admin/lib/pannellum/src/css/img/background.svg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="67" height="100" viewBox="0 0 67 100">
|
2 |
+
<path stroke="#ccc" fill="none" d="M33.5,50,0,63,33.5,75,67,63,33.5,50m-33.5-50,67,25m-0.5,0,0,75m-66.5-75,67-25m-33.5,75,0,25m0-100,0,50"/>
|
3 |
+
</svg>
|
admin/lib/pannellum/src/css/img/compass.svg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" height="50" width="50">
|
2 |
+
<path d="m24.5078 6-3.2578 18h7.5l-3.25781-18h-0.984376zm-3.2578 20 3.2578 18h0.9844l3.2578-18h-7.5zm1.19531 0.9941h5.10938l-2.5547 14.1075-2.5547-14.1075z"/>
|
3 |
+
</svg>
|
admin/lib/pannellum/src/css/img/grab.svg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" height="26" width="26">
|
2 |
+
<path stroke="#000" stroke-width="1px" fill="#fff" d="m15.3 20.5s6.38-6.73 4.64-8.24-3.47 1.01-3.47 1.01 3.61-5.72 1.41-6.49c-2.2-0.769-3.33 4.36-3.33 4.36s0.873-5.76-1.06-5.76-1.58 5.39-1.58 5.39-0.574-4.59-2.18-4.12c-1.61 0.468-0.572 5.51-0.572 5.51s-1.58-4.89-2.93-3.79c-1.35 1.11 0.258 5.25 0.572 6.62 0.836 2.43 2.03 2.94 2.17 5.55"/>
|
3 |
+
</svg>
|
admin/lib/pannellum/src/css/img/grabbing.svg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" height="26" width="26">
|
2 |
+
<path stroke="#000" stroke-width="1px" fill="#fff" d="m15.3 20.5s5.07-5.29 3.77-6.74c-1.31-1.45-2.53 0.14-2.53 0.14s2.74-3.29 0.535-4.06c-2.2-0.769-2.52 1.3-2.52 1.3s0.81-2.13-1.12-2.13-1.52 1.77-1.52 1.77-0.261-1.59-1.87-1.12c-1.61 0.468-0.874 2.17-0.874 2.17s-0.651-1.55-2-0.445c-1.35 1.11-0.68 2.25-0.365 3.62 0.836 2.43 2.03 2.94 2.17 5.55"/>
|
3 |
+
</svg>
|
admin/lib/pannellum/src/css/img/sprites.svg
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="208">
|
2 |
+
<circle fill-opacity=".78" cy="117" cx="13" r="11" fill="#fff"/>
|
3 |
+
<circle fill-opacity=".78" cy="143" cx="13" r="11" fill="#fff"/>
|
4 |
+
<circle cy="169" cx="13" r="7" fill="none" stroke="#000" stroke-width="2"/>
|
5 |
+
<circle cy="195" cx="13" r="7" fill="none" stroke="#000" stroke-width="2"/>
|
6 |
+
<circle cx="13" cy="195" r="2.5"/>
|
7 |
+
<path d="m5 83v6h2v-4h4v-2zm10 0v2h4v4h2v-6zm-5 5v6h6v-6zm-5 5v6h6v-2h-4v-4zm14 0v4h-4v2h6v-6z"/>
|
8 |
+
<path d="m13 110a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7 -7 7 7 0 0 0 -7 -7zm-1 3h2v2h-2zm0 3h2v5h-2z"/>
|
9 |
+
<path d="m5 57v6h2v-4h4v-2zm10 0v2h4v4h2v-6zm-10 10v6h6v-2h-4v-4zm14 0v4h-4v2h6v-6z"/>
|
10 |
+
<path d="m17 38v2h-8v-2z"/>
|
11 |
+
<path d="m12 9v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/>
|
12 |
+
<path d="m13 136-6.125 6.125h4.375v7.875h3.5v-7.875h4.375z"/>
|
13 |
+
<path d="m10.428 173.33v-5.77l5-2.89v5.77zm1-1.73 3-1.73-3.001-1.74z"/>
|
14 |
+
</svg>
|
admin/lib/pannellum/src/css/pannellum.css
ADDED
@@ -0,0 +1,439 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.pnlm-container {
|
2 |
+
margin: 0;
|
3 |
+
padding: 0;
|
4 |
+
overflow: hidden;
|
5 |
+
position: relative;
|
6 |
+
cursor: default;
|
7 |
+
width: 100%;
|
8 |
+
height: 100%;
|
9 |
+
font-family: Helvetica, "Nimbus Sans L", "Liberation Sans", Arial, sans-serif;
|
10 |
+
background: #f4f4f4 url('img/background.svg') repeat;
|
11 |
+
-webkit-user-select: none;
|
12 |
+
-khtml-user-select: none;
|
13 |
+
-moz-user-select: none;
|
14 |
+
-o-user-select: none;
|
15 |
+
-ms-user-select: none;
|
16 |
+
user-select: none;
|
17 |
+
outline: 0;
|
18 |
+
line-height: 1.4;
|
19 |
+
contain: content;
|
20 |
+
}
|
21 |
+
|
22 |
+
.pnlm-container * {
|
23 |
+
box-sizing: content-box;
|
24 |
+
}
|
25 |
+
|
26 |
+
.pnlm-ui {
|
27 |
+
position: absolute;
|
28 |
+
width: 100%;
|
29 |
+
height: 100%;
|
30 |
+
z-index: 1;
|
31 |
+
}
|
32 |
+
|
33 |
+
.pnlm-grab {
|
34 |
+
cursor: grab;
|
35 |
+
cursor: url('img/grab.svg') 12 8, default;
|
36 |
+
}
|
37 |
+
|
38 |
+
.pnlm-grabbing {
|
39 |
+
cursor: grabbing;
|
40 |
+
cursor: url('img/grabbing.svg') 12 8, default;
|
41 |
+
}
|
42 |
+
|
43 |
+
.pnlm-sprite {
|
44 |
+
background-image: url('img/sprites.svg');
|
45 |
+
}
|
46 |
+
|
47 |
+
.pnlm-container:-moz-full-screen {
|
48 |
+
height: 100% !important;
|
49 |
+
width: 100% !important;
|
50 |
+
position: static !important;
|
51 |
+
}
|
52 |
+
.pnlm-container:-webkit-full-screen {
|
53 |
+
height: 100% !important;
|
54 |
+
width: 100% !important;
|
55 |
+
position: static !important;
|
56 |
+
}
|
57 |
+
.pnlm-container:-ms-fullscreen {
|
58 |
+
height: 100% !important;
|
59 |
+
width: 100% !important;
|
60 |
+
position: static !important;
|
61 |
+
}
|
62 |
+
.pnlm-container:fullscreen {
|
63 |
+
height: 100% !important;
|
64 |
+
width: 100% !important;
|
65 |
+
position: static !important;
|
66 |
+
}
|
67 |
+
|
68 |
+
.pnlm-render-container {
|
69 |
+
cursor: inherit;
|
70 |
+
|
71 |
+
/* Fix display bug in Safari 7 */
|
72 |
+
position: absolute;
|
73 |
+
height: 100%;
|
74 |
+
width: 100%;
|
75 |
+
}
|
76 |
+
|
77 |
+
.pnlm-controls {
|
78 |
+
margin-top: 4px;
|
79 |
+
background-color: #fff;
|
80 |
+
border: 1px solid #999;
|
81 |
+
border-color: rgba(0,0,0,0.4);
|
82 |
+
border-radius: 3px;
|
83 |
+
cursor: pointer;
|
84 |
+
z-index: 2;
|
85 |
+
/* Fix Safari fullscreen bug */
|
86 |
+
-webkit-transform: translateZ(9999px);
|
87 |
+
transform: translateZ(9999px);
|
88 |
+
}
|
89 |
+
|
90 |
+
.pnlm-control:hover {
|
91 |
+
background-color: #f8f8f8;
|
92 |
+
}
|
93 |
+
|
94 |
+
.pnlm-controls-container {
|
95 |
+
position: absolute;
|
96 |
+
top: 0;
|
97 |
+
left: 4px;
|
98 |
+
z-index: 1;
|
99 |
+
}
|
100 |
+
|
101 |
+
.pnlm-zoom-controls {
|
102 |
+
width: 26px;
|
103 |
+
height: 52px;
|
104 |
+
}
|
105 |
+
|
106 |
+
.pnlm-zoom-in {
|
107 |
+
width: 100%;
|
108 |
+
height: 50%;
|
109 |
+
position: absolute;
|
110 |
+
top: 0;
|
111 |
+
border-radius: 3px 3px 0 0;
|
112 |
+
}
|
113 |
+
|
114 |
+
.pnlm-zoom-out {
|
115 |
+
width: 100%;
|
116 |
+
height: 50%;
|
117 |
+
position: absolute;
|
118 |
+
bottom: 0;
|
119 |
+
background-position: 0 -26px;
|
120 |
+
border-top: 1px solid #ddd;
|
121 |
+
border-top-color: rgba(0,0,0,0.10);
|
122 |
+
border-radius: 0 0 3px 3px;
|
123 |
+
}
|
124 |
+
|
125 |
+
.pnlm-fullscreen-toggle-button, .pnlm-orientation-button, .pnlm-hot-spot-debug-indicator {
|
126 |
+
width: 26px;
|
127 |
+
height: 26px;
|
128 |
+
}
|
129 |
+
|
130 |
+
.pnlm-hot-spot-debug-indicator {
|
131 |
+
position: absolute;
|
132 |
+
top: 50%;
|
133 |
+
left: 50%;
|
134 |
+
width: 26px;
|
135 |
+
height: 26px;
|
136 |
+
margin: -13px 0 0 -13px;
|
137 |
+
background-color: rgba(255, 255, 255, 0.5);
|
138 |
+
border-radius: 13px;
|
139 |
+
display: none;
|
140 |
+
}
|
141 |
+
|
142 |
+
.pnlm-orientation-button-inactive {
|
143 |
+
background-position: 0 -156px;
|
144 |
+
}
|
145 |
+
|
146 |
+
.pnlm-orientation-button-active {
|
147 |
+
background-position: 0 -182px;
|
148 |
+
}
|
149 |
+
|
150 |
+
.pnlm-fullscreen-toggle-button-inactive {
|
151 |
+
background-position: 0 -52px;
|
152 |
+
}
|
153 |
+
|
154 |
+
.pnlm-fullscreen-toggle-button-active {
|
155 |
+
background-position: 0 -78px;
|
156 |
+
}
|
157 |
+
|
158 |
+
.pnlm-panorama-info {
|
159 |
+
position: absolute;
|
160 |
+
bottom: 4px;
|
161 |
+
background-color: rgba(0,0,0,0.7);
|
162 |
+
border-radius: 0 3px 3px 0;
|
163 |
+
padding-right: 10px;
|
164 |
+
color: #fff;
|
165 |
+
text-align: left;
|
166 |
+
display: none;
|
167 |
+
z-index: 2;
|
168 |
+
/* Fix Safari fullscreen bug */
|
169 |
+
-webkit-transform: translateZ(9999px);
|
170 |
+
transform: translateZ(9999px);
|
171 |
+
}
|
172 |
+
|
173 |
+
.pnlm-title-box {
|
174 |
+
position: relative;
|
175 |
+
font-size: 20px;
|
176 |
+
display: table;
|
177 |
+
padding-left: 5px;
|
178 |
+
margin-bottom: 3px;
|
179 |
+
}
|
180 |
+
|
181 |
+
.pnlm-author-box {
|
182 |
+
position: relative;
|
183 |
+
font-size: 12px;
|
184 |
+
display: table;
|
185 |
+
padding-left: 5px;
|
186 |
+
}
|
187 |
+
|
188 |
+
.pnlm-load-box {
|
189 |
+
position: absolute;
|
190 |
+
top: 50%;
|
191 |
+
left: 50%;
|
192 |
+
width: 200px;
|
193 |
+
height: 150px;
|
194 |
+
margin: -75px 0 0 -100px;
|
195 |
+
background-color: rgba(0,0,0,0.7);
|
196 |
+
border-radius: 3px;
|
197 |
+
text-align: center;
|
198 |
+
font-size: 20px;
|
199 |
+
display: none;
|
200 |
+
color: #fff;
|
201 |
+
}
|
202 |
+
|
203 |
+
.pnlm-load-box p {
|
204 |
+
margin: 20px 0;
|
205 |
+
}
|
206 |
+
|
207 |
+
.pnlm-lbox {
|
208 |
+
position: absolute;
|
209 |
+
top: 50%;
|
210 |
+
left: 50%;
|
211 |
+
width: 20px;
|
212 |
+
height: 20px;
|
213 |
+
margin: -10px 0 0 -10px;
|
214 |
+
display: none;
|
215 |
+
}
|
216 |
+
|
217 |
+
.pnlm-loading {
|
218 |
+
animation-duration: 1.5s;
|
219 |
+
-webkit-animation-duration: 1.5s;
|
220 |
+
animation-name: pnlm-mv;
|
221 |
+
-webkit-animation-name: pnlm-mv;
|
222 |
+
animation-iteration-count: infinite;
|
223 |
+
-webkit-animation-iteration-count: infinite;
|
224 |
+
animation-timing-function: linear;
|
225 |
+
-webkit-animation-timing-function: linear;
|
226 |
+
height: 10px;
|
227 |
+
width: 10px;
|
228 |
+
background-color: #fff;
|
229 |
+
position: relative;
|
230 |
+
}
|
231 |
+
|
232 |
+
@keyframes pnlm-mv {
|
233 |
+
from {left:0;top:0;}
|
234 |
+
25% {left:10px;top:0;}
|
235 |
+
50% {left:10px;top:10px;}
|
236 |
+
75% {left:0;top:10px;}
|
237 |
+
to {left:0;top:0;}
|
238 |
+
}
|
239 |
+
|
240 |
+
@-webkit-keyframes pnlm-mv {
|
241 |
+
from {left:0;top:0;}
|
242 |
+
25% {left:10px;top:0;}
|
243 |
+
50% {left:10px;top:10px;}
|
244 |
+
75% {left:0;top:10px;}
|
245 |
+
to {left:0;top:0;}
|
246 |
+
}
|
247 |
+
|
248 |
+
.pnlm-load-button {
|
249 |
+
position: absolute;
|
250 |
+
top: 50%;
|
251 |
+
left: 50%;
|
252 |
+
width: 200px;
|
253 |
+
height: 100px;
|
254 |
+
margin: -50px 0 0 -100px;
|
255 |
+
background-color: rgba(0,0,0,.7);
|
256 |
+
border-radius: 3px;
|
257 |
+
text-align: center;
|
258 |
+
font-size: 20px;
|
259 |
+
display: table;
|
260 |
+
color: #fff;
|
261 |
+
cursor: pointer;
|
262 |
+
}
|
263 |
+
|
264 |
+
.pnlm-load-button:hover {
|
265 |
+
background-color: rgba(0,0,0,.8);
|
266 |
+
}
|
267 |
+
|
268 |
+
.pnlm-load-button p {
|
269 |
+
display: table-cell;
|
270 |
+
vertical-align: middle;
|
271 |
+
}
|
272 |
+
|
273 |
+
.pnlm-info-box {
|
274 |
+
font-size: 15px;
|
275 |
+
position: absolute;
|
276 |
+
top: 50%;
|
277 |
+
left: 50%;
|
278 |
+
width: 200px;
|
279 |
+
height: 150px;
|
280 |
+
margin: -75px 0 0 -100px;
|
281 |
+
background-color: #000;
|
282 |
+
border-radius: 3px;
|
283 |
+
display: table;
|
284 |
+
text-align: center;
|
285 |
+
color: #fff;
|
286 |
+
table-layout: fixed;
|
287 |
+
}
|
288 |
+
|
289 |
+
.pnlm-info-box a {
|
290 |
+
color: #fff;
|
291 |
+
word-wrap: break-word;
|
292 |
+
overflow-wrap: break-word;
|
293 |
+
}
|
294 |
+
|
295 |
+
.pnlm-info-box p {
|
296 |
+
display: table-cell;
|
297 |
+
vertical-align: middle;
|
298 |
+
padding: 0 5px 0 5px;
|
299 |
+
}
|
300 |
+
|
301 |
+
.pnlm-error-msg {
|
302 |
+
display: none;
|
303 |
+
}
|
304 |
+
|
305 |
+
.pnlm-about-msg {
|
306 |
+
font-size: 11px;
|
307 |
+
line-height: 11px;
|
308 |
+
color: #fff;
|
309 |
+
padding: 5px 8px 5px 8px;
|
310 |
+
background: rgba(0,0,0,0.7);
|
311 |
+
border-radius: 3px;
|
312 |
+
position: absolute;
|
313 |
+
top: 50px;
|
314 |
+
left: 50px;
|
315 |
+
display: none;
|
316 |
+
opacity: 0;
|
317 |
+
-moz-transition: opacity .3s ease-in-out;
|
318 |
+
-webkit-transition: opacity .3s ease-in-out;
|
319 |
+
-o-transition: opacity .3s ease-in-out;
|
320 |
+
-ms-transition: opacity .3s ease-in-out;
|
321 |
+
transition: opacity .3s ease-in-out;
|
322 |
+
z-index: 1;
|
323 |
+
}
|
324 |
+
|
325 |
+
.pnlm-about-msg a:link, .pnlm-about-msg a:visited {
|
326 |
+
color: #fff;
|
327 |
+
}
|
328 |
+
|
329 |
+
.pnlm-about-msg a:hover, .pnlm-about-msg a:active {
|
330 |
+
color: #eee;
|
331 |
+
}
|
332 |
+
|
333 |
+
.pnlm-hotspot-base {
|
334 |
+
position: absolute;
|
335 |
+
visibility: hidden;
|
336 |
+
cursor: default;
|
337 |
+
vertical-align: middle;
|
338 |
+
top: 0;
|
339 |
+
z-index: 1;
|
340 |
+
}
|
341 |
+
.pnlm-hotspot {
|
342 |
+
height: 26px;
|
343 |
+
width: 26px;
|
344 |
+
border-radius: 13px;
|
345 |
+
}
|
346 |
+
.pnlm-hotspot:hover {
|
347 |
+
background-color: rgba(255,255,255,0.2);
|
348 |
+
}
|
349 |
+
.pnlm-hotspot.pnlm-info {
|
350 |
+
background-position: 0 -104px;
|
351 |
+
}
|
352 |
+
.pnlm-hotspot.pnlm-scene {
|
353 |
+
background-position: 0 -130px;
|
354 |
+
}
|
355 |
+
|
356 |
+
div.pnlm-tooltip span {
|
357 |
+
visibility: hidden;
|
358 |
+
position: absolute;
|
359 |
+
border-radius: 3px;
|
360 |
+
background-color: rgba(0,0,0,0.7);
|
361 |
+
color: #fff;
|
362 |
+
text-align: center;
|
363 |
+
max-width: 200px;
|
364 |
+
padding: 5px 10px;
|
365 |
+
margin-left: -220px;
|
366 |
+
cursor: default;
|
367 |
+
}
|
368 |
+
div.pnlm-tooltip:hover span{
|
369 |
+
visibility: visible;
|
370 |
+
}
|
371 |
+
div.pnlm-tooltip:hover span:after {
|
372 |
+
content: '';
|
373 |
+
position: absolute;
|
374 |
+
width: 0;
|
375 |
+
height: 0;
|
376 |
+
border-width: 10px;
|
377 |
+
border-style: solid;
|
378 |
+
border-color: rgba(0,0,0,0.7) transparent transparent transparent;
|
379 |
+
bottom: -20px;
|
380 |
+
left: -10px;
|
381 |
+
margin: 0 50%;
|
382 |
+
}
|
383 |
+
|
384 |
+
.pnlm-compass {
|
385 |
+
position: absolute;
|
386 |
+
width: 50px;
|
387 |
+
height: 50px;
|
388 |
+
right: 4px;
|
389 |
+
bottom: 4px;
|
390 |
+
border-radius: 25px;
|
391 |
+
background-image: url('img/compass.svg');
|
392 |
+
cursor: default;
|
393 |
+
display: none;
|
394 |
+
}
|
395 |
+
|
396 |
+
.pnlm-world {
|
397 |
+
position: absolute;
|
398 |
+
left: 50%;
|
399 |
+
top: 50%;
|
400 |
+
}
|
401 |
+
.pnlm-face {
|
402 |
+
position: absolute;
|
403 |
+
-webkit-transform-origin: 0 0 0;
|
404 |
+
transform-origin: 0 0 0;
|
405 |
+
}
|
406 |
+
|
407 |
+
.pnlm-dragfix, .pnlm-preview-img {
|
408 |
+
position: absolute;
|
409 |
+
height: 100%;
|
410 |
+
width: 100%;
|
411 |
+
}
|
412 |
+
|
413 |
+
.pnlm-preview-img {
|
414 |
+
background-size: cover;
|
415 |
+
background-position: center;
|
416 |
+
}
|
417 |
+
|
418 |
+
.pnlm-lbar {
|
419 |
+
width: 150px;
|
420 |
+
margin: 0 auto;
|
421 |
+
border: #fff 1px solid;
|
422 |
+
height: 6px;
|
423 |
+
}
|
424 |
+
|
425 |
+
.pnlm-lbar-fill {
|
426 |
+
background: #fff;
|
427 |
+
height: 100%;
|
428 |
+
width: 0;
|
429 |
+
}
|
430 |
+
|
431 |
+
.pnlm-lmsg {
|
432 |
+
font-size: 12px;
|
433 |
+
}
|
434 |
+
|
435 |
+
.pnlm-fade-img {
|
436 |
+
position: absolute;
|
437 |
+
top: 0;
|
438 |
+
left: 0;
|
439 |
+
}
|
admin/lib/pannellum/src/js/RequestAnimationFrame.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Provides requestAnimationFrame in a cross browser way.
|
3 |
+
* http://paulirish.com/2011/requestanimationframe-for-smart-animating/
|
4 |
+
*/
|
5 |
+
|
6 |
+
if ( !window.requestAnimationFrame ) {
|
7 |
+
|
8 |
+
window.requestAnimationFrame = ( function() {
|
9 |
+
|
10 |
+
return window.webkitRequestAnimationFrame ||
|
11 |
+
window.mozRequestAnimationFrame ||
|
12 |
+
window.oRequestAnimationFrame ||
|
13 |
+
window.msRequestAnimationFrame ||
|
14 |
+
function( /* function FrameRequestCallback */ callback, /* DOMElement Element */ element ) {
|
15 |
+
|
16 |
+
window.setTimeout( callback, 1000 / 60 );
|
17 |
+
|
18 |
+
};
|
19 |
+
|
20 |
+
} )();
|
21 |
+
|
22 |
+
}
|
admin/lib/pannellum/src/js/libpannellum.js
ADDED
@@ -0,0 +1,1317 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* libpannellum - A WebGL and CSS 3D transform based Panorama Renderer
|
3 |
+
* Copyright (c) 2012-2018 Matthew Petroff
|
4 |
+
*
|
5 |
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
* of this software and associated documentation files (the "Software"), to deal
|
7 |
+
* in the Software without restriction, including without limitation the rights
|
8 |
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
* copies of the Software, and to permit persons to whom the Software is
|
10 |
+
* furnished to do so, subject to the following conditions:
|
11 |
+
*
|
12 |
+
* The above copyright notice and this permission notice shall be included in
|
13 |
+
* all copies or substantial portions of the Software.
|
14 |
+
*
|
15 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21 |
+
* THE SOFTWARE.
|
22 |
+
*/
|
23 |
+
|
24 |
+
window.libpannellum = (function(window, document, undefined) {
|
25 |
+
|
26 |
+
'use strict';
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Creates a new panorama renderer.
|
30 |
+
* @constructor
|
31 |
+
* @param {HTMLElement} container - The container element for the renderer.
|
32 |
+
*/
|
33 |
+
function Renderer(container) {
|
34 |
+
var canvas = document.createElement('canvas');
|
35 |
+
canvas.style.width = canvas.style.height = '100%';
|
36 |
+
container.appendChild(canvas);
|
37 |
+
|
38 |
+
var program, gl, vs, fs;
|
39 |
+
var fallbackImgSize;
|
40 |
+
var world;
|
41 |
+
var vtmps;
|
42 |
+
var pose;
|
43 |
+
var image, imageType, dynamic;
|
44 |
+
var texCoordBuffer, cubeVertBuf, cubeVertTexCoordBuf, cubeVertIndBuf;
|
45 |
+
var globalParams;
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Initialize renderer.
|
49 |
+
* @memberof Renderer
|
50 |
+
* @instance
|
51 |
+
* @param {Image|Array|Object} image - Input image; format varies based on
|
52 |
+
* `imageType`. For `equirectangular`, this is an image; for
|
53 |
+
* `cubemap`, this is an array of images for the cube faces in the
|
54 |
+
* order [+z, +x, -z, -x, +y, -y]; for `multires`, this is a
|
55 |
+
* configuration object.
|
56 |
+
* @param {string} imageType - The type of the image: `equirectangular`,
|
57 |
+
* `cubemap`, or `multires`.
|
58 |
+
* @param {boolean} dynamic - Whether or not the image is dynamic (e.g. video).
|
59 |
+
* @param {number} haov - Initial horizontal angle of view.
|
60 |
+
* @param {number} vaov - Initial vertical angle of view.
|
61 |
+
* @param {number} voffset - Initial vertical offset angle.
|
62 |
+
* @param {function} callback - Load callback function.
|
63 |
+
* @param {Object} [params] - Other configuration parameters (`horizonPitch`, `horizonRoll`, `backgroundColor`).
|
64 |
+
*/
|
65 |
+
this.init = function(_image, _imageType, _dynamic, haov, vaov, voffset, callback, params) {
|
66 |
+
// Default argument for image type
|
67 |
+
if (_imageType === undefined)
|
68 |
+
_imageType = 'equirectangular';
|
69 |
+
|
70 |
+
if (_imageType != 'equirectangular' && _imageType != 'cubemap' &&
|
71 |
+
_imageType != 'multires') {
|
72 |
+
console.log('Error: invalid image type specified!');
|
73 |
+
throw {type: 'config error'};
|
74 |
+
}
|
75 |
+
|
76 |
+
imageType = _imageType;
|
77 |
+
image = _image;
|
78 |
+
dynamic = _dynamic;
|
79 |
+
globalParams = params || {};
|
80 |
+
|
81 |
+
// Clear old data
|
82 |
+
if (program) {
|
83 |
+
if (vs) {
|
84 |
+
gl.detachShader(program, vs);
|
85 |
+
gl.deleteShader(vs);
|
86 |
+
}
|
87 |
+
if (fs) {
|
88 |
+
gl.detachShader(program, fs);
|
89 |
+
gl.deleteShader(fs);
|
90 |
+
}
|
91 |
+
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
92 |
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
|
93 |
+
if (program.texture)
|
94 |
+
gl.deleteTexture(program.texture);
|
95 |
+
if (program.nodeCache)
|
96 |
+
for (var i = 0; i < program.nodeCache.length; i++)
|
97 |
+
gl.deleteTexture(program.nodeCache[i].texture);
|
98 |
+
gl.deleteProgram(program);
|
99 |
+
program = undefined;
|
100 |
+
}
|
101 |
+
pose = undefined;
|
102 |
+
|
103 |
+
var s;
|
104 |
+
|
105 |
+
// This awful browser specific test exists because iOS 8/9 and IE 11
|
106 |
+
// don't display non-power-of-two cubemap textures but also don't
|
107 |
+
// throw an error (tested on an iPhone 5c / iOS 8.1.3 / iOS 9.2 /
|
108 |
+
// iOS 10.3.1).
|
109 |
+
// Therefore, the WebGL context is never created for these browsers for
|
110 |
+
// NPOT cubemaps, and the CSS 3D transform fallback renderer is used
|
111 |
+
// instead.
|
112 |
+
if (!(imageType == 'cubemap' &&
|
113 |
+
(image[0].width & (image[0].width - 1)) !== 0 &&
|
114 |
+
(navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad).* os 8_/) ||
|
115 |
+
navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad).* os 9_/) ||
|
116 |
+
navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad).* os 10_/) ||
|
117 |
+
navigator.userAgent.match(/Trident.*rv[ :]*11\./)))) {
|
118 |
+
// Enable WebGL on canvas
|
119 |
+
if (!gl)
|
120 |
+
gl = canvas.getContext('experimental-webgl', {alpha: false, depth: false});
|
121 |
+
if (gl && gl.getError() == 1286)
|
122 |
+
handleWebGLError1286();
|
123 |
+
}
|
124 |
+
|
125 |
+
// If there is no WebGL, fall back to CSS 3D transform renderer.
|
126 |
+
// While browser specific tests are usually frowned upon, the
|
127 |
+
// fallback viewer only really works with WebKit/Blink and IE 10/11
|
128 |
+
// (it doesn't work properly in Firefox).
|
129 |
+
if (!gl && ((imageType == 'multires' && image.hasOwnProperty('fallbackPath')) ||
|
130 |
+
imageType == 'cubemap') &&
|
131 |
+
('WebkitAppearance' in document.documentElement.style ||
|
132 |
+
navigator.userAgent.match(/Trident.*rv[ :]*11\./) ||
|
133 |
+
navigator.appVersion.indexOf('MSIE 10') !== -1)) {
|
134 |
+
// Remove old world if it exists
|
135 |
+
if (world) {
|
136 |
+
container.removeChild(world);
|
137 |
+
}
|
138 |
+
|
139 |
+
// Initialize renderer
|
140 |
+
world = document.createElement('div');
|
141 |
+
world.className = 'pnlm-world';
|
142 |
+
|
143 |
+
// Add images
|
144 |
+
var path;
|
145 |
+
if (image.basePath) {
|
146 |
+
path = image.basePath + image.fallbackPath;
|
147 |
+
} else {
|
148 |
+
path = image.fallbackPath;
|
149 |
+
}
|
150 |
+
var sides = ['f', 'r', 'b', 'l', 'u', 'd'];
|
151 |
+
var loaded = 0;
|
152 |
+
var onLoad = function() {
|
153 |
+
// Draw image on canvas
|
154 |
+
var faceCanvas = document.createElement('canvas');
|
155 |
+
faceCanvas.className = 'pnlm-face pnlm-' + sides[this.side] + 'face';
|
156 |
+
world.appendChild(faceCanvas);
|
157 |
+
var faceContext = faceCanvas.getContext('2d');
|
158 |
+
faceCanvas.style.width = this.width + 4 + 'px';
|
159 |
+
faceCanvas.style.height = this.height + 4 + 'px';
|
160 |
+
faceCanvas.width = this.width + 4;
|
161 |
+
faceCanvas.height = this.height + 4;
|
162 |
+
faceContext.drawImage(this, 2, 2);
|
163 |
+
var imgData = faceContext.getImageData(0, 0, faceCanvas.width, faceCanvas.height);
|
164 |
+
var data = imgData.data;
|
165 |
+
|
166 |
+
// Duplicate edge pixels
|
167 |
+
var i;
|
168 |
+
var j;
|
169 |
+
for (i = 2; i < faceCanvas.width - 2; i++) {
|
170 |
+
for (j = 0; j < 4; j++) {
|
171 |
+
data[(i + faceCanvas.width) * 4 + j] = data[(i + faceCanvas.width * 2) * 4 + j];
|
172 |
+
data[(i + faceCanvas.width * (faceCanvas.height - 2)) * 4 + j] = data[(i + faceCanvas.width * (faceCanvas.height - 3)) * 4 + j];
|
173 |
+
}
|
174 |
+
}
|
175 |
+
for (i = 2; i < faceCanvas.height - 2; i++) {
|
176 |
+
for (j = 0; j < 4; j++) {
|
177 |
+
data[(i * faceCanvas.width + 1) * 4 + j] = data[(i * faceCanvas.width + 2) * 4 + j];
|
178 |
+
data[((i + 1) * faceCanvas.width - 2) * 4 + j] = data[((i + 1) * faceCanvas.width - 3) * 4 + j];
|
179 |
+
}
|
180 |
+
}
|
181 |
+
for (j = 0; j < 4; j++) {
|
182 |
+
data[(faceCanvas.width + 1) * 4 + j] = data[(faceCanvas.width * 2 + 2) * 4 + j];
|
183 |
+
data[(faceCanvas.width * 2 - 2) * 4 + j] = data[(faceCanvas.width * 3 - 3) * 4 + j];
|
184 |
+
data[(faceCanvas.width * (faceCanvas.height - 2) + 1) * 4 + j] = data[(faceCanvas.width * (faceCanvas.height - 3) + 2) * 4 + j];
|
185 |
+
data[(faceCanvas.width * (faceCanvas.height - 1) - 2) * 4 + j] = data[(faceCanvas.width * (faceCanvas.height - 2) - 3) * 4 + j];
|
186 |
+
}
|
187 |
+
for (i = 1; i < faceCanvas.width - 1; i++) {
|
188 |
+
for (j = 0; j < 4; j++) {
|
189 |
+
data[i * 4 + j] = data[(i + faceCanvas.width) * 4 + j];
|
190 |
+
data[(i + faceCanvas.width * (faceCanvas.height - 1)) * 4 + j] = data[(i + faceCanvas.width * (faceCanvas.height - 2)) * 4 + j];
|
191 |
+
}
|
192 |
+
}
|
193 |
+
for (i = 1; i < faceCanvas.height - 1; i++) {
|
194 |
+
for (j = 0; j < 4; j++) {
|
195 |
+
data[(i * faceCanvas.width) * 4 + j] = data[(i * faceCanvas.width + 1) * 4 + j];
|
196 |
+
data[((i + 1) * faceCanvas.width - 1) * 4 + j] = data[((i + 1) * faceCanvas.width - 2) * 4 + j];
|
197 |
+
}
|
198 |
+
}
|
199 |
+
for (j = 0; j < 4; j++) {
|
200 |
+
data[j] = data[(faceCanvas.width + 1) * 4 + j];
|
201 |
+
data[(faceCanvas.width - 1) * 4 + j] = data[(faceCanvas.width * 2 - 2) * 4 + j];
|
202 |
+
data[(faceCanvas.width * (faceCanvas.height - 1)) * 4 + j] = data[(faceCanvas.width * (faceCanvas.height - 2) + 1) * 4 + j];
|
203 |
+
data[(faceCanvas.width * faceCanvas.height - 1) * 4 + j] = data[(faceCanvas.width * (faceCanvas.height - 1) - 2) * 4 + j];
|
204 |
+
}
|
205 |
+
|
206 |
+
// Draw image width duplicated edge pixels on canvas
|
207 |
+
faceContext.putImageData(imgData, 0, 0);
|
208 |
+
|
209 |
+
loaded++;
|
210 |
+
if (loaded == 6) {
|
211 |
+
fallbackImgSize = this.width;
|
212 |
+
container.appendChild(world);
|
213 |
+
callback();
|
214 |
+
}
|
215 |
+
};
|
216 |
+
for (s = 0; s < 6; s++) {
|
217 |
+
var faceImg = new Image();
|
218 |
+
faceImg.crossOrigin = globalParams.crossOrigin ? globalParams.crossOrigin : 'anonymous';
|
219 |
+
faceImg.side = s;
|
220 |
+
faceImg.onload = onLoad;
|
221 |
+
if (imageType == 'multires') {
|
222 |
+
faceImg.src = encodeURI(path.replace('%s', sides[s]) + '.' + image.extension);
|
223 |
+
} else {
|
224 |
+
faceImg.src = encodeURI(image[s].src);
|
225 |
+
}
|
226 |
+
}
|
227 |
+
|
228 |
+
return;
|
229 |
+
} else if (!gl) {
|
230 |
+
console.log('Error: no WebGL support detected!');
|
231 |
+
throw {type: 'no webgl'};
|
232 |
+
}
|
233 |
+
if (image.basePath) {
|
234 |
+
image.fullpath = image.basePath + image.path;
|
235 |
+
} else {
|
236 |
+
image.fullpath = image.path;
|
237 |
+
}
|
238 |
+
image.invTileResolution = 1 / image.tileResolution;
|
239 |
+
|
240 |
+
var vertices = createCube();
|
241 |
+
vtmps = [];
|
242 |
+
for (s = 0; s < 6; s++) {
|
243 |
+
vtmps[s] = vertices.slice(s * 12, s * 12 + 12);
|
244 |
+
vertices = createCube();
|
245 |
+
}
|
246 |
+
|
247 |
+
// Make sure image isn't too big
|
248 |
+
var width, maxWidth;
|
249 |
+
if (imageType == 'equirectangular') {
|
250 |
+
width = Math.max(image.width, image.height);
|
251 |
+
maxWidth = gl.getParameter(gl.MAX_TEXTURE_SIZE);
|
252 |
+
if (width > maxWidth) {
|
253 |
+
console.log('Error: The image is too big; it\'s ' + width + 'px wide, but this device\'s maximum supported width is ' + maxWidth + 'px.');
|
254 |
+
throw {type: 'webgl size error', width: width, maxWidth: maxWidth};
|
255 |
+
}
|
256 |
+
} else if (imageType == 'cubemap') {
|
257 |
+
width = image[0].width;
|
258 |
+
maxWidth = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);
|
259 |
+
if (width > maxWidth) {
|
260 |
+
console.log('Error: The cube face image is too big; it\'s ' + width + 'px wide, but this device\'s maximum supported width is ' + maxWidth + 'px.');
|
261 |
+
throw {type: 'webgl size error', width: width, maxWidth: maxWidth};
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
+
// Store horizon pitch and roll if applicable
|
266 |
+
if (params !== undefined && (params.horizonPitch !== undefined || params.horizonRoll !== undefined))
|
267 |
+
pose = [params.horizonPitch == undefined ? 0 : params.horizonPitch,
|
268 |
+
params.horizonRoll == undefined ? 0 : params.horizonRoll];
|
269 |
+
|
270 |
+
// Set 2d texture binding
|
271 |
+
var glBindType = gl.TEXTURE_2D;
|
272 |
+
|
273 |
+
// Create viewport for entire canvas
|
274 |
+
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
|
275 |
+
|
276 |
+
// Create vertex shader
|
277 |
+
vs = gl.createShader(gl.VERTEX_SHADER);
|
278 |
+
var vertexSrc = v;
|
279 |
+
if (imageType == 'multires') {
|
280 |
+
vertexSrc = vMulti;
|
281 |
+
}
|
282 |
+
gl.shaderSource(vs, vertexSrc);
|
283 |
+
gl.compileShader(vs);
|
284 |
+
|
285 |
+
// Create fragment shader
|
286 |
+
fs = gl.createShader(gl.FRAGMENT_SHADER);
|
287 |
+
var fragmentSrc = fragEquirectangular;
|
288 |
+
if (imageType == 'cubemap') {
|
289 |
+
glBindType = gl.TEXTURE_CUBE_MAP;
|
290 |
+
fragmentSrc = fragCube;
|
291 |
+
} else if (imageType == 'multires') {
|
292 |
+
fragmentSrc = fragMulti;
|
293 |
+
}
|
294 |
+
gl.shaderSource(fs, fragmentSrc);
|
295 |
+
gl.compileShader(fs);
|
296 |
+
|
297 |
+
// Link WebGL program
|
298 |
+
program = gl.createProgram();
|
299 |
+
gl.attachShader(program, vs);
|
300 |
+
gl.attachShader(program, fs);
|
301 |
+
gl.linkProgram(program);
|
302 |
+
|
303 |
+
// Log errors
|
304 |
+
if (!gl.getShaderParameter(vs, gl.COMPILE_STATUS))
|
305 |
+
console.log(gl.getShaderInfoLog(vs));
|
306 |
+
if (!gl.getShaderParameter(fs, gl.COMPILE_STATUS))
|
307 |
+
console.log(gl.getShaderInfoLog(fs));
|
308 |
+
if (!gl.getProgramParameter(program, gl.LINK_STATUS))
|
309 |
+
console.log(gl.getProgramInfoLog(program));
|
310 |
+
|
311 |
+
// Use WebGL program
|
312 |
+
gl.useProgram(program);
|
313 |
+
|
314 |
+
program.drawInProgress = false;
|
315 |
+
|
316 |
+
// Look up texture coordinates location
|
317 |
+
program.texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');
|
318 |
+
gl.enableVertexAttribArray(program.texCoordLocation);
|
319 |
+
|
320 |
+
if (imageType != 'multires') {
|
321 |
+
// Provide texture coordinates for rectangle
|
322 |
+
if (!texCoordBuffer)
|
323 |
+
texCoordBuffer = gl.createBuffer();
|
324 |
+
gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
|
325 |
+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1,1,1,1,1,-1,-1,1,1,-1,-1,-1]), gl.STATIC_DRAW);
|
326 |
+
gl.vertexAttribPointer(program.texCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
327 |
+
|
328 |
+
// Pass aspect ratio
|
329 |
+
program.aspectRatio = gl.getUniformLocation(program, 'u_aspectRatio');
|
330 |
+
gl.uniform1f(program.aspectRatio, gl.drawingBufferWidth / gl.drawingBufferHeight);
|
331 |
+
|
332 |
+
// Locate psi, theta, focal length, horizontal extent, vertical extent, and vertical offset
|
333 |
+
program.psi = gl.getUniformLocation(program, 'u_psi');
|
334 |
+
program.theta = gl.getUniformLocation(program, 'u_theta');
|
335 |
+
program.f = gl.getUniformLocation(program, 'u_f');
|
336 |
+
program.h = gl.getUniformLocation(program, 'u_h');
|
337 |
+
program.v = gl.getUniformLocation(program, 'u_v');
|
338 |
+
program.vo = gl.getUniformLocation(program, 'u_vo');
|
339 |
+
program.rot = gl.getUniformLocation(program, 'u_rot');
|
340 |
+
|
341 |
+
// Pass horizontal extent, vertical extent, and vertical offset
|
342 |
+
gl.uniform1f(program.h, haov / (Math.PI * 2.0));
|
343 |
+
gl.uniform1f(program.v, vaov / Math.PI);
|
344 |
+
gl.uniform1f(program.vo, voffset / Math.PI * 2);
|
345 |
+
|
346 |
+
// Set background color
|
347 |
+
if (imageType == 'equirectangular') {
|
348 |
+
program.backgroundColor = gl.getUniformLocation(program, 'u_backgroundColor');
|
349 |
+
var color = params.backgroundColor ? params.backgroundColor : [0, 0, 0];
|
350 |
+
gl.uniform4fv(program.backgroundColor, color.concat([1]));
|
351 |
+
}
|
352 |
+
|
353 |
+
// Create texture
|
354 |
+
program.texture = gl.createTexture();
|
355 |
+
gl.bindTexture(glBindType, program.texture);
|
356 |
+
|
357 |
+
// Upload images to texture depending on type
|
358 |
+
if (imageType == 'cubemap') {
|
359 |
+
// Load all six sides of the cube map
|
360 |
+
gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image[1]);
|
361 |
+
gl.texImage2D(gl.TEXTURE_CUBE_MAP_NEGATIVE_X, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image[3]);
|
362 |
+
gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_Y, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image[4]);
|
363 |
+
gl.texImage2D(gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image[5]);
|
364 |
+
gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_Z, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image[0]);
|
365 |
+
gl.texImage2D(gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image[2]);
|
366 |
+
} else {
|
367 |
+
// Upload image to the texture
|
368 |
+
gl.texImage2D(glBindType, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image);
|
369 |
+
}
|
370 |
+
|
371 |
+
// Set parameters for rendering any size
|
372 |
+
gl.texParameteri(glBindType, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
373 |
+
gl.texParameteri(glBindType, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
374 |
+
gl.texParameteri(glBindType, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
375 |
+
gl.texParameteri(glBindType, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
|
376 |
+
|
377 |
+
} else {
|
378 |
+
// Look up vertex coordinates location
|
379 |
+
program.vertPosLocation = gl.getAttribLocation(program, 'a_vertCoord');
|
380 |
+
gl.enableVertexAttribArray(program.vertPosLocation);
|
381 |
+
|
382 |
+
// Create buffers
|
383 |
+
if (!cubeVertBuf)
|
384 |
+
cubeVertBuf = gl.createBuffer();
|
385 |
+
if (!cubeVertTexCoordBuf)
|
386 |
+
cubeVertTexCoordBuf = gl.createBuffer();
|
387 |
+
if (!cubeVertIndBuf)
|
388 |
+
cubeVertIndBuf = gl.createBuffer();
|
389 |
+
|
390 |
+
// Bind texture coordinate buffer and pass coordinates to WebGL
|
391 |
+
gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertTexCoordBuf);
|
392 |
+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0,0,1,0,1,1,0,1]), gl.STATIC_DRAW);
|
393 |
+
|
394 |
+
// Bind square index buffer and pass indicies to WebGL
|
395 |
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, cubeVertIndBuf);
|
396 |
+
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array([0,1,2,0,2,3]), gl.STATIC_DRAW);
|
397 |
+
|
398 |
+
// Find uniforms
|
399 |
+
program.perspUniform = gl.getUniformLocation(program, 'u_perspMatrix');
|
400 |
+
program.cubeUniform = gl.getUniformLocation(program, 'u_cubeMatrix');
|
401 |
+
//program.colorUniform = gl.getUniformLocation(program, 'u_color');
|
402 |
+
|
403 |
+
program.level = -1;
|
404 |
+
|
405 |
+
program.currentNodes = [];
|
406 |
+
program.nodeCache = [];
|
407 |
+
program.nodeCacheTimestamp = 0;
|
408 |
+
}
|
409 |
+
|
410 |
+
// Check if there was an error
|
411 |
+
var err = gl.getError();
|
412 |
+
if (err !== 0) {
|
413 |
+
console.log('Error: Something went wrong with WebGL!', err);
|
414 |
+
throw {type: 'webgl error'};
|
415 |
+
}
|
416 |
+
|
417 |
+
callback();
|
418 |
+
};
|
419 |
+
|
420 |
+
/**
|
421 |
+
* Destroy renderer.
|
422 |
+
* @memberof Renderer
|
423 |
+
* @instance
|
424 |
+
*/
|
425 |
+
this.destroy = function() {
|
426 |
+
if (container !== undefined) {
|
427 |
+
if (canvas !== undefined && container.contains(canvas)) {
|
428 |
+
container.removeChild(canvas);
|
429 |
+
}
|
430 |
+
if (world !== undefined && container.contains(world)) {
|
431 |
+
container.removeChild(world);
|
432 |
+
}
|
433 |
+
}
|
434 |
+
if (gl) {
|
435 |
+
// The spec says this is only supposed to simulate losing the WebGL
|
436 |
+
// context, but in practice it tends to actually free the memory.
|
437 |
+
var extension = gl.getExtension('WEBGL_lose_context');
|
438 |
+
if (extension)
|
439 |
+
extension.loseContext();
|
440 |
+
}
|
441 |
+
};
|
442 |
+
|
443 |
+
/**
|
444 |
+
* Resize renderer (call after resizing container).
|
445 |
+
* @memberof Renderer
|
446 |
+
* @instance
|
447 |
+
*/
|
448 |
+
this.resize = function() {
|
449 |
+
var pixelRatio = window.devicePixelRatio || 1;
|
450 |
+
canvas.width = canvas.clientWidth * pixelRatio;
|
451 |
+
canvas.height = canvas.clientHeight * pixelRatio;
|
452 |
+
if (gl) {
|
453 |
+
if (gl.getError() == 1286)
|
454 |
+
handleWebGLError1286();
|
455 |
+
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
|
456 |
+
if (imageType != 'multires') {
|
457 |
+
gl.uniform1f(program.aspectRatio, canvas.clientWidth / canvas.clientHeight);
|
458 |
+
}
|
459 |
+
}
|
460 |
+
};
|
461 |
+
// Initialize canvas size
|
462 |
+
this.resize();
|
463 |
+
|
464 |
+
/**
|
465 |
+
* Set renderer horizon pitch and roll.
|
466 |
+
* @memberof Renderer
|
467 |
+
* @instance
|
468 |
+
*/
|
469 |
+
this.setPose = function(horizonPitch, horizonRoll) {
|
470 |
+
pose = [horizonPitch, horizonRoll];
|
471 |
+
};
|
472 |
+
|
473 |
+
/**
|
474 |
+
* Render new view of panorama.
|
475 |
+
* @memberof Renderer
|
476 |
+
* @instance
|
477 |
+
* @param {number} pitch - Pitch to render at (in radians).
|
478 |
+
* @param {number} yaw - Yaw to render at (in radians).
|
479 |
+
* @param {number} hfov - Horizontal field of view to render with (in radians).
|
480 |
+
* @param {Object} [params] - Extra configuration parameters.
|
481 |
+
* @param {number} [params.roll] - Camera roll (in radians).
|
482 |
+
* @param {boolean} [params.returnImage] - Return rendered image?
|
483 |
+
*/
|
484 |
+
this.render = function(pitch, yaw, hfov, params) {
|
485 |
+
var focal, i, s, roll = 0;
|
486 |
+
if (params === undefined)
|
487 |
+
params = {};
|
488 |
+
if (params.roll)
|
489 |
+
roll = params.roll;
|
490 |
+
|
491 |
+
// Apply pitch and roll transformation if applicable
|
492 |
+
if (pose !== undefined) {
|
493 |
+
var horizonPitch = pose[0],
|
494 |
+
horizonRoll = pose[1];
|
495 |
+
|
496 |
+
// Calculate new pitch and yaw
|
497 |
+
var orig_pitch = pitch,
|
498 |
+
orig_yaw = yaw,
|
499 |
+
x = Math.cos(horizonRoll) * Math.sin(pitch) * Math.sin(horizonPitch) +
|
500 |
+
Math.cos(pitch) * (Math.cos(horizonPitch) * Math.cos(yaw) +
|
501 |
+
Math.sin(horizonRoll) * Math.sin(horizonPitch) * Math.sin(yaw)),
|
502 |
+
y = -Math.sin(pitch) * Math.sin(horizonRoll) +
|
503 |
+
Math.cos(pitch) * Math.cos(horizonRoll) * Math.sin(yaw),
|
504 |
+
z = Math.cos(horizonRoll) * Math.cos(horizonPitch) * Math.sin(pitch) +
|
505 |
+
Math.cos(pitch) * (-Math.cos(yaw) * Math.sin(horizonPitch) +
|
506 |
+
Math.cos(horizonPitch) * Math.sin(horizonRoll) * Math.sin(yaw));
|
507 |
+
pitch = Math.asin(Math.max(Math.min(z, 1), -1));
|
508 |
+
yaw = Math.atan2(y, x);
|
509 |
+
|
510 |
+
// Calculate roll
|
511 |
+
var v = [Math.cos(orig_pitch) * (Math.sin(horizonRoll) * Math.sin(horizonPitch) * Math.cos(orig_yaw) -
|
512 |
+
Math.cos(horizonPitch) * Math.sin(orig_yaw)),
|
513 |
+
Math.cos(orig_pitch) * Math.cos(horizonRoll) * Math.cos(orig_yaw),
|
514 |
+
Math.cos(orig_pitch) * (Math.cos(horizonPitch) * Math.sin(horizonRoll) * Math.cos(orig_yaw) +
|
515 |
+
Math.sin(orig_yaw) * Math.sin(horizonPitch))],
|
516 |
+
w = [-Math.cos(pitch) * Math.sin(yaw), Math.cos(pitch) * Math.cos(yaw)];
|
517 |
+
var roll_adj = Math.acos(Math.max(Math.min((v[0]*w[0] + v[1]*w[1]) /
|
518 |
+
(Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]) *
|
519 |
+
Math.sqrt(w[0]*w[0]+w[1]*w[1])), 1), -1));
|
520 |
+
if (v[2] < 0)
|
521 |
+
roll_adj = 2 * Math.PI - roll_adj;
|
522 |
+
roll += roll_adj;
|
523 |
+
}
|
524 |
+
|
525 |
+
// If no WebGL
|
526 |
+
if (!gl && (imageType == 'multires' || imageType == 'cubemap')) {
|
527 |
+
// Determine face transforms
|
528 |
+
s = fallbackImgSize / 2;
|
529 |
+
|
530 |
+
var transforms = {
|
531 |
+
f: 'translate3d(-' + (s + 2) + 'px, -' + (s + 2) + 'px, -' + s + 'px)',
|
532 |
+
b: 'translate3d(' + (s + 2) + 'px, -' + (s + 2) + 'px, ' + s + 'px) rotateX(180deg) rotateZ(180deg)',
|
533 |
+
u: 'translate3d(-' + (s + 2) + 'px, -' + s + 'px, ' + (s + 2) + 'px) rotateX(270deg)',
|
534 |
+
d: 'translate3d(-' + (s + 2) + 'px, ' + s + 'px, -' + (s + 2) + 'px) rotateX(90deg)',
|
535 |
+
l: 'translate3d(-' + s + 'px, -' + (s + 2) + 'px, ' + (s + 2) + 'px) rotateX(180deg) rotateY(90deg) rotateZ(180deg)',
|
536 |
+
r: 'translate3d(' + s + 'px, -' + (s + 2) + 'px, -' + (s + 2) + 'px) rotateY(270deg)'
|
537 |
+
};
|
538 |
+
focal = 1 / Math.tan(hfov / 2);
|
539 |
+
var zoom = focal * gl.drawingBufferWidth / 2 + 'px';
|
540 |
+
var transform = 'perspective(' + zoom + ') translateZ(' + zoom + ') rotateX(' + pitch + 'rad) rotateY(' + yaw + 'rad) ';
|
541 |
+
|
542 |
+
// Apply face transforms
|
543 |
+
var faces = Object.keys(transforms);
|
544 |
+
for (i = 0; i < 6; i++) {
|
545 |
+
var face = world.querySelector('.pnlm-' + faces[i] + 'face').style;
|
546 |
+
face.webkitTransform = transform + transforms[faces[i]];
|
547 |
+
face.transform = transform + transforms[faces[i]];
|
548 |
+
}
|
549 |
+
return;
|
550 |
+
}
|
551 |
+
|
552 |
+
if (imageType != 'multires') {
|
553 |
+
// Calculate focal length from vertical field of view
|
554 |
+
var vfov = 2 * Math.atan(Math.tan(hfov * 0.5) / (gl.drawingBufferWidth / gl.drawingBufferHeight));
|
555 |
+
focal = 1 / Math.tan(vfov * 0.5);
|
556 |
+
|
557 |
+
// Pass psi, theta, roll, and focal length
|
558 |
+
gl.uniform1f(program.psi, yaw);
|
559 |
+
gl.uniform1f(program.theta, pitch);
|
560 |
+
gl.uniform1f(program.rot, roll);
|
561 |
+
gl.uniform1f(program.f, focal);
|
562 |
+
|
563 |
+
if (dynamic === true) {
|
564 |
+
// Update texture if dynamic
|
565 |
+
if (imageType == 'equirectangular') {
|
566 |
+
gl.bindTexture(gl.TEXTURE_2D, program.texture);
|
567 |
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image);
|
568 |
+
}
|
569 |
+
}
|
570 |
+
|
571 |
+
// Draw using current buffer
|
572 |
+
gl.drawArrays(gl.TRIANGLES, 0, 6);
|
573 |
+
|
574 |
+
} else {
|
575 |
+
// Create perspective matrix
|
576 |
+
var perspMatrix = makePersp(hfov, gl.drawingBufferWidth / gl.drawingBufferHeight, 0.1, 100.0);
|
577 |
+
|
578 |
+
// Find correct zoom level
|
579 |
+
checkZoom(hfov);
|
580 |
+
|
581 |
+
// Create rotation matrix
|
582 |
+
var matrix = identityMatrix3();
|
583 |
+
matrix = rotateMatrix(matrix, -roll, 'z');
|
584 |
+
matrix = rotateMatrix(matrix, -pitch, 'x');
|
585 |
+
matrix = rotateMatrix(matrix, yaw, 'y');
|
586 |
+
matrix = makeMatrix4(matrix);
|
587 |
+
|
588 |
+
// Set matrix uniforms
|
589 |
+
gl.uniformMatrix4fv(program.perspUniform, false, new Float32Array(transposeMatrix4(perspMatrix)));
|
590 |
+
gl.uniformMatrix4fv(program.cubeUniform, false, new Float32Array(transposeMatrix4(matrix)));
|
591 |
+
|
592 |
+
// Find current nodes
|
593 |
+
var rotPersp = rotatePersp(perspMatrix, matrix);
|
594 |
+
program.nodeCache.sort(multiresNodeSort);
|
595 |
+
if (program.nodeCache.length > 200 &&
|
596 |
+
program.nodeCache.length > program.currentNodes.length + 50) {
|
597 |
+
// Remove older nodes from cache
|
598 |
+
var removed = program.nodeCache.splice(200, program.nodeCache.length - 200);
|
599 |
+
for (var i = 0; i < removed.length; i++) {
|
600 |
+
// Explicitly delete textures
|
601 |
+
gl.deleteTexture(removed[i].texture);
|
602 |
+
}
|
603 |
+
}
|
604 |
+
program.currentNodes = [];
|
605 |
+
|
606 |
+
var sides = ['f', 'b', 'u', 'd', 'l', 'r'];
|
607 |
+
for (s = 0; s < 6; s++) {
|
608 |
+
var ntmp = new MultiresNode(vtmps[s], sides[s], 1, 0, 0, image.fullpath);
|
609 |
+
testMultiresNode(rotPersp, ntmp, pitch, yaw, hfov);
|
610 |
+
}
|
611 |
+
program.currentNodes.sort(multiresNodeRenderSort);
|
612 |
+
// Only process one tile per frame to improve responsiveness
|
613 |
+
for (i = 0; i < program.currentNodes.length; i++) {
|
614 |
+
if (!program.currentNodes[i].texture) {
|
615 |
+
setTimeout(processNextTile, 0, program.currentNodes[i]);
|
616 |
+
break;
|
617 |
+
}
|
618 |
+
}
|
619 |
+
|
620 |
+
// Draw tiles
|
621 |
+
multiresDraw();
|
622 |
+
}
|
623 |
+
|
624 |
+
if (params.returnImage !== undefined) {
|
625 |
+
return canvas.toDataURL('image/png');
|
626 |
+
}
|
627 |
+
};
|
628 |
+
|
629 |
+
/**
|
630 |
+
* Check if images are loading.
|
631 |
+
* @memberof Renderer
|
632 |
+
* @instance
|
633 |
+
* @returns {boolean} Whether or not images are loading.
|
634 |
+
*/
|
635 |
+
this.isLoading = function() {
|
636 |
+
if (gl && imageType == 'multires') {
|
637 |
+
for ( var i = 0; i < program.currentNodes.length; i++ ) {
|
638 |
+
if (!program.currentNodes[i].textureLoaded) {
|
639 |
+
return true;
|
640 |
+
}
|
641 |
+
}
|
642 |
+
}
|
643 |
+
return false;
|
644 |
+
};
|
645 |
+
|
646 |
+
/**
|
647 |
+
* Retrieve renderer's canvas.
|
648 |
+
* @memberof Renderer
|
649 |
+
* @instance
|
650 |
+
* @returns {HTMLElement} Renderer's canvas.
|
651 |
+
*/
|
652 |
+
this.getCanvas = function() {
|
653 |
+
return canvas;
|
654 |
+
};
|
655 |
+
|
656 |
+
/**
|
657 |
+
* Sorting method for multires nodes.
|
658 |
+
* @private
|
659 |
+
* @param {MultiresNode} a - First node.
|
660 |
+
* @param {MultiresNode} b - Second node.
|
661 |
+
* @returns {number} Base tiles first, then higher timestamp first.
|
662 |
+
*/
|
663 |
+
function multiresNodeSort(a, b) {
|
664 |
+
// Base tiles are always first
|
665 |
+
if (a.level == 1 && b.level != 1) {
|
666 |
+
return -1;
|
667 |
+
}
|
668 |
+
if (b. level == 1 && a.level != 1) {
|
669 |
+
return 1;
|
670 |
+
}
|
671 |
+
|
672 |
+
// Higher timestamp first
|
673 |
+
return b.timestamp - a.timestamp;
|
674 |
+
}
|
675 |
+
|
676 |
+
/**
|
677 |
+
* Sorting method for multires node rendering.
|
678 |
+
* @private
|
679 |
+
* @param {MultiresNode} a - First node.
|
680 |
+
* @param {MultiresNode} b - Second node.
|
681 |
+
* @returns {number} Lower zoom levels first, then closest to center first.
|
682 |
+
*/
|
683 |
+
function multiresNodeRenderSort(a, b) {
|
684 |
+
// Lower zoom levels first
|
685 |
+
if (a.level != b.level) {
|
686 |
+
return a.level - b.level;
|
687 |
+
}
|
688 |
+
|
689 |
+
// Lower distance from center first
|
690 |
+
return a.diff - b.diff;
|
691 |
+
}
|
692 |
+
|
693 |
+
/**
|
694 |
+
* Draws multires nodes.
|
695 |
+
* @private
|
696 |
+
*/
|
697 |
+
function multiresDraw() {
|
698 |
+
if (!program.drawInProgress) {
|
699 |
+
program.drawInProgress = true;
|
700 |
+
for ( var i = 0; i < program.currentNodes.length; i++ ) {
|
701 |
+
if (program.currentNodes[i].textureLoaded) {
|
702 |
+
//var color = program.currentNodes[i].color;
|
703 |
+
//gl.uniform4f(program.colorUniform, color[0], color[1], color[2], 1.0);
|
704 |
+
|
705 |
+
// Bind vertex buffer and pass vertices to WebGL
|
706 |
+
gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertBuf);
|
707 |
+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(program.currentNodes[i].vertices), gl.STATIC_DRAW);
|
708 |
+
gl.vertexAttribPointer(program.vertPosLocation, 3, gl.FLOAT, false, 0, 0);
|
709 |
+
|
710 |
+
// Prep for texture
|
711 |
+
gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertTexCoordBuf);
|
712 |
+
gl.vertexAttribPointer(program.texCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
713 |
+
|
714 |
+
// Bind texture and draw tile
|
715 |
+
gl.bindTexture(gl.TEXTURE_2D, program.currentNodes[i].texture); // Bind program.currentNodes[i].texture to TEXTURE0
|
716 |
+
gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0);
|
717 |
+
}
|
718 |
+
}
|
719 |
+
program.drawInProgress = false;
|
720 |
+
}
|
721 |
+
}
|
722 |
+
|
723 |
+
/**
|
724 |
+
* Creates new multires node.
|
725 |
+
* @constructor
|
726 |
+
* @private
|
727 |
+
* @param {number[]} vertices - Node's verticies.
|
728 |
+
* @param {string} side - Node's cube face.
|
729 |
+
* @param {number} level - Node's zoom level.
|
730 |
+
* @param {number} x - Node's x position.
|
731 |
+
* @param {number} y - Node's y position.
|
732 |
+
* @param {string} path - Node's path.
|
733 |
+
*/
|
734 |
+
function MultiresNode(vertices, side, level, x, y, path) {
|
735 |
+
this.vertices = vertices;
|
736 |
+
this.side = side;
|
737 |
+
this.level = level;
|
738 |
+
this.x = x;
|
739 |
+
this.y = y;
|
740 |
+
this.path = path.replace('%s',side).replace('%l',level).replace('%x',x).replace('%y',y);
|
741 |
+
}
|
742 |
+
|
743 |
+
/**
|
744 |
+
* Test if multires node is visible. If it is, add it to current nodes,
|
745 |
+
* load its texture, and load appropriate child nodes.
|
746 |
+
* @private
|
747 |
+
* @param {number[]} rotPersp - Rotated perspective matrix.
|
748 |
+
* @param {MultiresNode} node - Multires node to check.
|
749 |
+
* @param {number} pitch - Pitch to check at.
|
750 |
+
* @param {number} yaw - Yaw to check at.
|
751 |
+
* @param {number} hfov - Horizontal field of view to check at.
|
752 |
+
*/
|
753 |
+
function testMultiresNode(rotPersp, node, pitch, yaw, hfov) {
|
754 |
+
if (checkSquareInView(rotPersp, node.vertices)) {
|
755 |
+
// Calculate central angle between center of view and center of tile
|
756 |
+
var v = node.vertices;
|
757 |
+
var x = v[0] + v[3] + v[6] + v[ 9];
|
758 |
+
var y = v[1] + v[4] + v[7] + v[10];
|
759 |
+
var z = v[2] + v[5] + v[8] + v[11];
|
760 |
+
var r = Math.sqrt(x*x + y*y + z*z);
|
761 |
+
var theta = Math.asin(z / r);
|
762 |
+
var phi = Math.atan2(y, x);
|
763 |
+
var ydiff = phi - yaw;
|
764 |
+
ydiff += (ydiff > Math.PI) ? -2 * Math.PI : (ydiff < -Math.PI) ? 2 * Math.PI : 0;
|
765 |
+
ydiff = Math.abs(ydiff);
|
766 |
+
node.diff = Math.acos(Math.sin(pitch) * Math.sin(theta) + Math.cos(pitch) * Math.cos(theta) * Math.cos(ydiff));
|
767 |
+
|
768 |
+
// Add node to current nodes and load texture if needed
|
769 |
+
var inCurrent = false;
|
770 |
+
for (var k = 0; k < program.nodeCache.length; k++) {
|
771 |
+
if (program.nodeCache[k].path == node.path) {
|
772 |
+
inCurrent = true;
|
773 |
+
program.nodeCache[k].timestamp = program.nodeCacheTimestamp++;
|
774 |
+
program.nodeCache[k].diff = node.diff;
|
775 |
+
program.currentNodes.push(program.nodeCache[k]);
|
776 |
+
break;
|
777 |
+
}
|
778 |
+
}
|
779 |
+
if (!inCurrent) {
|
780 |
+
//node.color = [Math.random(), Math.random(), Math.random()];
|
781 |
+
node.timestamp = program.nodeCacheTimestamp++;
|
782 |
+
program.currentNodes.push(node);
|
783 |
+
program.nodeCache.push(node);
|
784 |
+
}
|
785 |
+
|
786 |
+
// TODO: Test error
|
787 |
+
// Create child nodes
|
788 |
+
if (node.level < program.level) {
|
789 |
+
var cubeSize = image.cubeResolution * Math.pow(2, node.level - image.maxLevel);
|
790 |
+
var numTiles = Math.ceil(cubeSize * image.invTileResolution) - 1;
|
791 |
+
var doubleTileSize = cubeSize % image.tileResolution * 2;
|
792 |
+
var lastTileSize = (cubeSize * 2) % image.tileResolution;
|
793 |
+
if (lastTileSize === 0) {
|
794 |
+
lastTileSize = image.tileResolution;
|
795 |
+
}
|
796 |
+
if (doubleTileSize === 0) {
|
797 |
+
doubleTileSize = image.tileResolution * 2;
|
798 |
+
}
|
799 |
+
var f = 0.5;
|
800 |
+
if (node.x == numTiles || node.y == numTiles) {
|
801 |
+
f = 1.0 - image.tileResolution / (image.tileResolution + lastTileSize);
|
802 |
+
}
|
803 |
+
var i = 1.0 - f;
|
804 |
+
var children = [];
|
805 |
+
var vtmp, ntmp;
|
806 |
+
var f1 = f, f2 = f, f3 = f, i1 = i, i2 = i, i3 = i;
|
807 |
+
// Handle non-symmetric tiles
|
808 |
+
if (lastTileSize < image.tileResolution) {
|
809 |
+
if (node.x == numTiles && node.y != numTiles) {
|
810 |
+
f2 = 0.5;
|
811 |
+
i2 = 0.5;
|
812 |
+
if (node.side == 'd' || node.side == 'u') {
|
813 |
+
f3 = 0.5;
|
814 |
+
i3 = 0.5;
|
815 |
+
}
|
816 |
+
} else if (node.x != numTiles && node.y == numTiles) {
|
817 |
+
f1 = 0.5;
|
818 |
+
i1 = 0.5;
|
819 |
+
if (node.side == 'l' || node.side == 'r') {
|
820 |
+
f3 = 0.5;
|
821 |
+
i3 = 0.5;
|
822 |
+
}
|
823 |
+
}
|
824 |
+
}
|
825 |
+
// Handle small tiles that have fewer than four children
|
826 |
+
if (doubleTileSize <= image.tileResolution) {
|
827 |
+
if (node.x == numTiles) {
|
828 |
+
f1 = 0;
|
829 |
+
i1 = 1;
|
830 |
+
if (node.side == 'l' || node.side == 'r') {
|
831 |
+
f3 = 0;
|
832 |
+
i3 = 1;
|
833 |
+
}
|
834 |
+
}
|
835 |
+
if (node.y == numTiles) {
|
836 |
+
f2 = 0;
|
837 |
+
i2 = 1;
|
838 |
+
if (node.side == 'd' || node.side == 'u') {
|
839 |
+
f3 = 0;
|
840 |
+
i3 = 1;
|
841 |
+
}
|
842 |
+
}
|
843 |
+
}
|
844 |
+
|
845 |
+
vtmp = [ v[0], v[1], v[2],
|
846 |
+
v[0]*f1+v[3]*i1, v[1]*f+v[4]*i, v[2]*f3+v[5]*i3,
|
847 |
+
v[0]*f1+v[6]*i1, v[1]*f2+v[7]*i2, v[2]*f3+v[8]*i3,
|
848 |
+
v[0]*f+v[9]*i, v[1]*f2+v[10]*i2, v[2]*f3+v[11]*i3
|
849 |
+
];
|
850 |
+
ntmp = new MultiresNode(vtmp, node.side, node.level + 1, node.x*2, node.y*2, image.fullpath);
|
851 |
+
children.push(ntmp);
|
852 |
+
if (!(node.x == numTiles && doubleTileSize <= image.tileResolution)) {
|
853 |
+
vtmp = [v[0]*f1+v[3]*i1, v[1]*f+v[4]*i, v[2]*f3+v[5]*i3,
|
854 |
+
v[3], v[4], v[5],
|
855 |
+
v[3]*f+v[6]*i, v[4]*f2+v[7]*i2, v[5]*f3+v[8]*i3,
|
856 |
+
v[0]*f1+v[6]*i1, v[1]*f2+v[7]*i2, v[2]*f3+v[8]*i3
|
857 |
+
];
|
858 |
+
ntmp = new MultiresNode(vtmp, node.side, node.level + 1, node.x*2+1, node.y*2, image.fullpath);
|
859 |
+
children.push(ntmp);
|
860 |
+
}
|
861 |
+
if (!(node.x == numTiles && doubleTileSize <= image.tileResolution) &&
|
862 |
+
!(node.y == numTiles && doubleTileSize <= image.tileResolution)) {
|
863 |
+
vtmp = [v[0]*f1+v[6]*i1, v[1]*f2+v[7]*i2, v[2]*f3+v[8]*i3,
|
864 |
+
v[3]*f+v[6]*i, v[4]*f2+v[7]*i2, v[5]*f3+v[8]*i3,
|
865 |
+
v[6], v[7], v[8],
|
866 |
+
v[9]*f1+v[6]*i1, v[10]*f+v[7]*i, v[11]*f3+v[8]*i3
|
867 |
+
];
|
868 |
+
ntmp = new MultiresNode(vtmp, node.side, node.level + 1, node.x*2+1, node.y*2+1, image.fullpath);
|
869 |
+
children.push(ntmp);
|
870 |
+
}
|
871 |
+
if (!(node.y == numTiles && doubleTileSize <= image.tileResolution)) {
|
872 |
+
vtmp = [ v[0]*f+v[9]*i, v[1]*f2+v[10]*i2, v[2]*f3+v[11]*i3,
|
873 |
+
v[0]*f1+v[6]*i1, v[1]*f2+v[7]*i2, v[2]*f3+v[8]*i3,
|
874 |
+
v[9]*f1+v[6]*i1, v[10]*f+v[7]*i, v[11]*f3+v[8]*i3,
|
875 |
+
v[9], v[10], v[11]
|
876 |
+
];
|
877 |
+
ntmp = new MultiresNode(vtmp, node.side, node.level + 1, node.x*2, node.y*2+1, image.fullpath);
|
878 |
+
children.push(ntmp);
|
879 |
+
}
|
880 |
+
for (var j = 0; j < children.length; j++) {
|
881 |
+
testMultiresNode(rotPersp, children[j], pitch, yaw, hfov);
|
882 |
+
}
|
883 |
+
}
|
884 |
+
}
|
885 |
+
}
|
886 |
+
|
887 |
+
/**
|
888 |
+
* Creates cube vertex array.
|
889 |
+
* @private
|
890 |
+
* @returns {number[]} Cube vertex array.
|
891 |
+
*/
|
892 |
+
function createCube() {
|
893 |
+
return [-1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, // Front face
|
894 |
+
1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, // Back face
|
895 |
+
-1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, // Up face
|
896 |
+
-1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, // Down face
|
897 |
+
-1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, // Left face
|
898 |
+
1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1 // Right face
|
899 |
+
];
|
900 |
+
}
|
901 |
+
|
902 |
+
/**
|
903 |
+
* Creates 3x3 identity matrix.
|
904 |
+
* @private
|
905 |
+
* @returns {number[]} Identity matrix.
|
906 |
+
*/
|
907 |
+
function identityMatrix3() {
|
908 |
+
return [
|
909 |
+
1, 0, 0,
|
910 |
+
0, 1, 0,
|
911 |
+
0, 0, 1
|
912 |
+
];
|
913 |
+
}
|
914 |
+
|
915 |
+
/**
|
916 |
+
* Rotates a 3x3 matrix.
|
917 |
+
* @private
|
918 |
+
* @param {number[]} m - Matrix to rotate.
|
919 |
+
* @param {number[]} angle - Angle to rotate by in radians.
|
920 |
+
* @param {string} axis - Axis to rotate about (`x`, `y`, or `z`).
|
921 |
+
* @returns {number[]} Rotated matrix.
|
922 |
+
*/
|
923 |
+
function rotateMatrix(m, angle, axis) {
|
924 |
+
var s = Math.sin(angle);
|
925 |
+
var c = Math.cos(angle);
|
926 |
+
if (axis == 'x') {
|
927 |
+
return [
|
928 |
+
m[0], c*m[1] + s*m[2], c*m[2] - s*m[1],
|
929 |
+
m[3], c*m[4] + s*m[5], c*m[5] - s*m[4],
|
930 |
+
m[6], c*m[7] + s*m[8], c*m[8] - s*m[7]
|
931 |
+
];
|
932 |
+
}
|
933 |
+
if (axis == 'y') {
|
934 |
+
return [
|
935 |
+
c*m[0] - s*m[2], m[1], c*m[2] + s*m[0],
|
936 |
+
c*m[3] - s*m[5], m[4], c*m[5] + s*m[3],
|
937 |
+
c*m[6] - s*m[8], m[7], c*m[8] + s*m[6]
|
938 |
+
];
|
939 |
+
}
|
940 |
+
if (axis == 'z') {
|
941 |
+
return [
|
942 |
+
c*m[0] + s*m[1], c*m[1] - s*m[0], m[2],
|
943 |
+
c*m[3] + s*m[4], c*m[4] - s*m[3], m[5],
|
944 |
+
c*m[6] + s*m[7], c*m[7] - s*m[6], m[8]
|
945 |
+
];
|
946 |
+
}
|
947 |
+
}
|
948 |
+
|
949 |
+
/**
|
950 |
+
* Turns a 3x3 matrix into a 4x4 matrix.
|
951 |
+
* @private
|
952 |
+
* @param {number[]} m - Input matrix.
|
953 |
+
* @returns {number[]} Expanded matrix.
|
954 |
+
*/
|
955 |
+
function makeMatrix4(m) {
|
956 |
+
return [
|
957 |
+
m[0], m[1], m[2], 0,
|
958 |
+
m[3], m[4], m[5], 0,
|
959 |
+
m[6], m[7], m[8], 0,
|
960 |
+
0, 0, 0, 1
|
961 |
+
];
|
962 |
+
}
|
963 |
+
|
964 |
+
/**
|
965 |
+
* Transposes a 4x4 matrix.
|
966 |
+
* @private
|
967 |
+
* @param {number[]} m - Input matrix.
|
968 |
+
* @returns {number[]} Transposed matrix.
|
969 |
+
*/
|
970 |
+
function transposeMatrix4(m) {
|
971 |
+
return [
|
972 |
+
m[ 0], m[ 4], m[ 8], m[12],
|
973 |
+
m[ 1], m[ 5], m[ 9], m[13],
|
974 |
+
m[ 2], m[ 6], m[10], m[14],
|
975 |
+
m[ 3], m[ 7], m[11], m[15]
|
976 |
+
];
|
977 |
+
}
|
978 |
+
|
979 |
+
/**
|
980 |
+
* Creates a perspective matrix.
|
981 |
+
* @private
|
982 |
+
* @param {number} hfov - Desired horizontal field of view.
|
983 |
+
* @param {number} aspect - Desired aspect ratio.
|
984 |
+
* @param {number} znear - Near distance.
|
985 |
+
* @param {number} zfar - Far distance.
|
986 |
+
* @returns {number[]} Generated perspective matrix.
|
987 |
+
*/
|
988 |
+
function makePersp(hfov, aspect, znear, zfar) {
|
989 |
+
var fovy = 2 * Math.atan(Math.tan(hfov/2) * gl.drawingBufferHeight / gl.drawingBufferWidth);
|
990 |
+
var f = 1 / Math.tan(fovy/2);
|
991 |
+
return [
|
992 |
+
f/aspect, 0, 0, 0,
|
993 |
+
0, f, 0, 0,
|
994 |
+
0, 0, (zfar+znear)/(znear-zfar), (2*zfar*znear)/(znear-zfar),
|
995 |
+
0, 0, -1, 0
|
996 |
+
];
|
997 |
+
}
|
998 |
+
|
999 |
+
/**
|
1000 |
+
* Processes a loaded texture image into a WebGL texture.
|
1001 |
+
* @private
|
1002 |
+
* @param {Image} img - Input image.
|
1003 |
+
* @param {WebGLTexture} tex - Texture to bind image to.
|
1004 |
+
*/
|
1005 |
+
function processLoadedTexture(img, tex) {
|
1006 |
+
gl.bindTexture(gl.TEXTURE_2D, tex);
|
1007 |
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, img);
|
1008 |
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
|
1009 |
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
1010 |
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
1011 |
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
1012 |
+
gl.bindTexture(gl.TEXTURE_2D, null);
|
1013 |
+
}
|
1014 |
+
|
1015 |
+
// Based on http://blog.tojicode.com/2012/03/javascript-memory-optimization-and.html
|
1016 |
+
var loadTexture = (function() {
|
1017 |
+
var cacheTop = 4; // Maximum number of concurrents loads
|
1018 |
+
var textureImageCache = {};
|
1019 |
+
var pendingTextureRequests = [];
|
1020 |
+
var crossOrigin;
|
1021 |
+
|
1022 |
+
function TextureImageLoader() {
|
1023 |
+
var self = this;
|
1024 |
+
this.texture = this.callback = null;
|
1025 |
+
this.image = new Image();
|
1026 |
+
this.image.crossOrigin = crossOrigin ? crossOrigin : 'anonymous';
|
1027 |
+
this.image.addEventListener('load', function() {
|
1028 |
+
processLoadedTexture(self.image, self.texture);
|
1029 |
+
self.callback(self.texture);
|
1030 |
+
releaseTextureImageLoader(self);
|
1031 |
+
});
|
1032 |
+
};
|
1033 |
+
|
1034 |
+
TextureImageLoader.prototype.loadTexture = function(src, texture, callback) {
|
1035 |
+
this.texture = texture;
|
1036 |
+
this.callback = callback;
|
1037 |
+
this.image.src = src;
|
1038 |
+
};
|
1039 |
+
|
1040 |
+
function PendingTextureRequest(src, texture, callback) {
|
1041 |
+
this.src = src;
|
1042 |
+
this.texture = texture;
|
1043 |
+
this.callback = callback;
|
1044 |
+
};
|
1045 |
+
|
1046 |
+
function releaseTextureImageLoader(til) {
|
1047 |
+
if (pendingTextureRequests.length) {
|
1048 |
+
var req = pendingTextureRequests.shift();
|
1049 |
+
til.loadTexture(req.src, req.texture, req.callback);
|
1050 |
+
} else
|
1051 |
+
textureImageCache[cacheTop++] = til;
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
for (var i = 0; i < cacheTop; i++)
|
1055 |
+
textureImageCache[i] = new TextureImageLoader();
|
1056 |
+
|
1057 |
+
return function(src, callback, _crossOrigin) {
|
1058 |
+
crossOrigin = _crossOrigin;
|
1059 |
+
var texture = gl.createTexture();
|
1060 |
+
if (cacheTop)
|
1061 |
+
textureImageCache[--cacheTop].loadTexture(src, texture, callback);
|
1062 |
+
else
|
1063 |
+
pendingTextureRequests.push(new PendingTextureRequest(src, texture, callback));
|
1064 |
+
return texture;
|
1065 |
+
};
|
1066 |
+
})();
|
1067 |
+
|
1068 |
+
/**
|
1069 |
+
* Loads image and creates texture for a multires node / tile.
|
1070 |
+
* @private
|
1071 |
+
* @param {MultiresNode} node - Input node.
|
1072 |
+
*/
|
1073 |
+
function processNextTile(node) {
|
1074 |
+
if (!node.textureLoad) {
|
1075 |
+
node.textureLoad = true;
|
1076 |
+
loadTexture(encodeURI(node.path + '.' + image.extension), function(texture) {
|
1077 |
+
node.texture = texture;
|
1078 |
+
node.textureLoaded = true;
|
1079 |
+
}, globalParams.crossOrigin);
|
1080 |
+
}
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
/**
|
1084 |
+
* Finds and applies optimal multires zoom level.
|
1085 |
+
* @private
|
1086 |
+
* @param {number} hfov - Horizontal field of view to check at.
|
1087 |
+
*/
|
1088 |
+
function checkZoom(hfov) {
|
1089 |
+
// Find optimal level
|
1090 |
+
var newLevel = 1;
|
1091 |
+
while ( newLevel < image.maxLevel &&
|
1092 |
+
gl.drawingBufferWidth > image.tileResolution *
|
1093 |
+
Math.pow(2, newLevel - 1) * Math.tan(hfov / 2) * 0.707 ) {
|
1094 |
+
newLevel++;
|
1095 |
+
}
|
1096 |
+
|
1097 |
+
// Apply change
|
1098 |
+
program.level = newLevel;
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
/**
|
1102 |
+
* Rotates perspective matrix.
|
1103 |
+
* @private
|
1104 |
+
* @param {number[]} p - Perspective matrix.
|
1105 |
+
* @param {number[]} r - Rotation matrix.
|
1106 |
+
* @returns {number[]} Rotated matrix.
|
1107 |
+
*/
|
1108 |
+
function rotatePersp(p, r) {
|
1109 |
+
return [
|
1110 |
+
p[ 0]*r[0], p[ 0]*r[1], p[ 0]*r[ 2], 0,
|
1111 |
+
p[ 5]*r[4], p[ 5]*r[5], p[ 5]*r[ 6], 0,
|
1112 |
+
p[10]*r[8], p[10]*r[9], p[10]*r[10], p[11],
|
1113 |
+
-r[8], -r[9], -r[10], 0
|
1114 |
+
];
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
/**
|
1118 |
+
* Applies rotated perspective matrix to a 3-vector
|
1119 |
+
* (last element is inverted).
|
1120 |
+
* @private
|
1121 |
+
* @param {number[]} m - Rotated perspective matrix.
|
1122 |
+
* @param {number[]} v - Input 3-vector.
|
1123 |
+
* @returns {number[]} Resulting 4-vector.
|
1124 |
+
*/
|
1125 |
+
function applyRotPerspToVec(m, v) {
|
1126 |
+
return [
|
1127 |
+
m[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2],
|
1128 |
+
m[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2],
|
1129 |
+
m[11] + m[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2],
|
1130 |
+
1/(m[12]*v[0] + m[13]*v[1] + m[14]*v[2])
|
1131 |
+
];
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
/**
|
1135 |
+
* Checks if a vertex is visible.
|
1136 |
+
* @private
|
1137 |
+
* @param {number[]} m - Rotated perspective matrix.
|
1138 |
+
* @param {number[]} v - Input vertex.
|
1139 |
+
* @returns {number} 1 or -1 if the vertex is or is not visible,
|
1140 |
+
* respectively.
|
1141 |
+
*/
|
1142 |
+
function checkInView(m, v) {
|
1143 |
+
var vpp = applyRotPerspToVec(m, v);
|
1144 |
+
var winX = vpp[0]*vpp[3];
|
1145 |
+
var winY = vpp[1]*vpp[3];
|
1146 |
+
var winZ = vpp[2]*vpp[3];
|
1147 |
+
var ret = [0, 0, 0];
|
1148 |
+
|
1149 |
+
if ( winX < -1 )
|
1150 |
+
ret[0] = -1;
|
1151 |
+
if ( winX > 1 )
|
1152 |
+
ret[0] = 1;
|
1153 |
+
if ( winY < -1 )
|
1154 |
+
ret[1] = -1;
|
1155 |
+
if ( winY > 1 )
|
1156 |
+
ret[1] = 1;
|
1157 |
+
if ( winZ < -1 || winZ > 1 )
|
1158 |
+
ret[2] = 1;
|
1159 |
+
return ret;
|
1160 |
+
}
|
1161 |
+
|
1162 |
+
/**
|
1163 |
+
* Checks if a square (tile) is visible.
|
1164 |
+
* @private
|
1165 |
+
* @param {number[]} m - Rotated perspective matrix.
|
1166 |
+
* @param {number[]} v - Square's vertex array.
|
1167 |
+
* @returns {boolean} Whether or not the square is visible.
|
1168 |
+
*/
|
1169 |
+
function checkSquareInView(m, v) {
|
1170 |
+
var check1 = checkInView(m, v.slice(0, 3));
|
1171 |
+
var check2 = checkInView(m, v.slice(3, 6));
|
1172 |
+
var check3 = checkInView(m, v.slice(6, 9));
|
1173 |
+
var check4 = checkInView(m, v.slice(9, 12));
|
1174 |
+
var testX = check1[0] + check2[0] + check3[0] + check4[0];
|
1175 |
+
if ( testX == -4 || testX == 4 )
|
1176 |
+
return false;
|
1177 |
+
var testY = check1[1] + check2[1] + check3[1] + check4[1];
|
1178 |
+
if ( testY == -4 || testY == 4 )
|
1179 |
+
return false;
|
1180 |
+
var testZ = check1[2] + check2[2] + check3[2] + check4[2];
|
1181 |
+
return testZ != 4;
|
1182 |
+
|
1183 |
+
|
1184 |
+
}
|
1185 |
+
|
1186 |
+
/**
|
1187 |
+
* On iOS (iPhone 5c, iOS 10.3), this WebGL error occurs when the canvas is
|
1188 |
+
* too big. Unfortuately, there's no way to test for this beforehand, so we
|
1189 |
+
* reduce the canvas size if this error is thrown.
|
1190 |
+
* @private
|
1191 |
+
*/
|
1192 |
+
function handleWebGLError1286() {
|
1193 |
+
console.log('Reducing canvas size due to error 1286!');
|
1194 |
+
canvas.width = Math.round(canvas.width / 2);
|
1195 |
+
canvas.height = Math.round(canvas.height / 2);
|
1196 |
+
}
|
1197 |
+
}
|
1198 |
+
|
1199 |
+
// Vertex shader for equirectangular and cube
|
1200 |
+
var v = [
|
1201 |
+
'attribute vec2 a_texCoord;',
|
1202 |
+
'varying vec2 v_texCoord;',
|
1203 |
+
|
1204 |
+
'void main() {',
|
1205 |
+
// Set position
|
1206 |
+
'gl_Position = vec4(a_texCoord, 0.0, 1.0);',
|
1207 |
+
|
1208 |
+
// Pass the coordinates to the fragment shader
|
1209 |
+
'v_texCoord = a_texCoord;',
|
1210 |
+
'}'
|
1211 |
+
].join('');
|
1212 |
+
|
1213 |
+
// Vertex shader for multires
|
1214 |
+
var vMulti = [
|
1215 |
+
'attribute vec3 a_vertCoord;',
|
1216 |
+
'attribute vec2 a_texCoord;',
|
1217 |
+
|
1218 |
+
'uniform mat4 u_cubeMatrix;',
|
1219 |
+
'uniform mat4 u_perspMatrix;',
|
1220 |
+
|
1221 |
+
'varying mediump vec2 v_texCoord;',
|
1222 |
+
|
1223 |
+
'void main(void) {',
|
1224 |
+
// Set position
|
1225 |
+
'gl_Position = u_perspMatrix * u_cubeMatrix * vec4(a_vertCoord, 1.0);',
|
1226 |
+
|
1227 |
+
// Pass the coordinates to the fragment shader
|
1228 |
+
'v_texCoord = a_texCoord;',
|
1229 |
+
'}'
|
1230 |
+
].join('');
|
1231 |
+
|
1232 |
+
// Fragment shader
|
1233 |
+
var fragEquiCubeBase = [
|
1234 |
+
'precision mediump float;',
|
1235 |
+
|
1236 |
+
'uniform float u_aspectRatio;',
|
1237 |
+
'uniform float u_psi;',
|
1238 |
+
'uniform float u_theta;',
|
1239 |
+
'uniform float u_f;',
|
1240 |
+
'uniform float u_h;',
|
1241 |
+
'uniform float u_v;',
|
1242 |
+
'uniform float u_vo;',
|
1243 |
+
'uniform float u_rot;',
|
1244 |
+
|
1245 |
+
'const float PI = 3.14159265358979323846264;',
|
1246 |
+
|
1247 |
+
// Texture
|
1248 |
+
'uniform sampler2D u_image;',
|
1249 |
+
'uniform samplerCube u_imageCube;',
|
1250 |
+
|
1251 |
+
// Coordinates passed in from vertex shader
|
1252 |
+
'varying vec2 v_texCoord;',
|
1253 |
+
|
1254 |
+
// Background color (display for partial panoramas)
|
1255 |
+
'uniform vec4 u_backgroundColor;',
|
1256 |
+
|
1257 |
+
'void main() {',
|
1258 |
+
// Map canvas/camera to sphere
|
1259 |
+
'float x = v_texCoord.x * u_aspectRatio;',
|
1260 |
+
'float y = v_texCoord.y;',
|
1261 |
+
'float sinrot = sin(u_rot);',
|
1262 |
+
'float cosrot = cos(u_rot);',
|
1263 |
+
'float rot_x = x * cosrot - y * sinrot;',
|
1264 |
+
'float rot_y = x * sinrot + y * cosrot;',
|
1265 |
+
'float sintheta = sin(u_theta);',
|
1266 |
+
'float costheta = cos(u_theta);',
|
1267 |
+
'float a = u_f * costheta - rot_y * sintheta;',
|
1268 |
+
'float root = sqrt(rot_x * rot_x + a * a);',
|
1269 |
+
'float lambda = atan(rot_x / root, a / root) + u_psi;',
|
1270 |
+
'float phi = atan((rot_y * costheta + u_f * sintheta) / root);',
|
1271 |
+
].join('\n');
|
1272 |
+
|
1273 |
+
// Fragment shader
|
1274 |
+
var fragCube = fragEquiCubeBase + [
|
1275 |
+
// Look up color from texture
|
1276 |
+
'float cosphi = cos(phi);',
|
1277 |
+
'gl_FragColor = textureCube(u_imageCube, vec3(cosphi*sin(lambda), sin(phi), cosphi*cos(lambda)));',
|
1278 |
+
'}'
|
1279 |
+
].join('\n');
|
1280 |
+
|
1281 |
+
// Fragment shader
|
1282 |
+
var fragEquirectangular = fragEquiCubeBase + [
|
1283 |
+
// Wrap image
|
1284 |
+
'lambda = mod(lambda + PI, PI * 2.0) - PI;',
|
1285 |
+
|
1286 |
+
// Map texture to sphere
|
1287 |
+
'vec2 coord = vec2(lambda / PI, phi / (PI / 2.0));',
|
1288 |
+
|
1289 |
+
// Look up color from texture
|
1290 |
+
// Map from [-1,1] to [0,1] and flip y-axis
|
1291 |
+
'if(coord.x < -u_h || coord.x > u_h || coord.y < -u_v + u_vo || coord.y > u_v + u_vo)',
|
1292 |
+
'gl_FragColor = u_backgroundColor;',
|
1293 |
+
'else',
|
1294 |
+
'gl_FragColor = texture2D(u_image, vec2((coord.x + u_h) / (u_h * 2.0), (-coord.y + u_v + u_vo) / (u_v * 2.0)));',
|
1295 |
+
'}'
|
1296 |
+
].join('\n');
|
1297 |
+
|
1298 |
+
// Fragment shader
|
1299 |
+
var fragMulti = [
|
1300 |
+
'varying mediump vec2 v_texCoord;',
|
1301 |
+
'uniform sampler2D u_sampler;',
|
1302 |
+
//'uniform mediump vec4 u_color;',
|
1303 |
+
|
1304 |
+
'void main(void) {',
|
1305 |
+
// Look up color from texture
|
1306 |
+
'gl_FragColor = texture2D(u_sampler, v_texCoord);',
|
1307 |
+
// 'gl_FragColor = u_color;',
|
1308 |
+
'}'
|
1309 |
+
].join('');
|
1310 |
+
|
1311 |
+
return {
|
1312 |
+
renderer: function(container, image, imagetype, dynamic) {
|
1313 |
+
return new Renderer(container, image, imagetype, dynamic);
|
1314 |
+
}
|
1315 |
+
};
|
1316 |
+
|
1317 |
+
})(window, document);
|
admin/lib/pannellum/src/js/pannellum.js
ADDED
@@ -0,0 +1,2949 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* Pannellum - An HTML5 based Panorama Viewer
|
3 |
+
* Copyright (c) 2011-2018 Matthew Petroff
|
4 |
+
*
|
5 |
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
* of this software and associated documentation files (the "Software"), to deal
|
7 |
+
* in the Software without restriction, including without limitation the rights
|
8 |
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
* copies of the Software, and to permit persons to whom the Software is
|
10 |
+
* furnished to do so, subject to the following conditions:
|
11 |
+
*
|
12 |
+
* The above copyright notice and this permission notice shall be included in
|
13 |
+
* all copies or substantial portions of the Software.
|
14 |
+
*
|
15 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21 |
+
* THE SOFTWARE.
|
22 |
+
*/
|
23 |
+
|
24 |
+
window.pannellum = (function(window, document, undefined) {
|
25 |
+
|
26 |
+
'use strict';
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Creates a new panorama viewer.
|
30 |
+
* @constructor
|
31 |
+
* @param {HTMLElement|string} container - The container (div) element for the
|
32 |
+
* viewer, or its ID.
|
33 |
+
* @param {Object} initialConfig -
|