Quiz And Survey Master (Formerly Quiz Master Next) - Version 6.3.5

Version Description

(Nov 22, 2019) = * New Design Elements * Show page count for multipage quizzes * Get Quiz and Survey Data Using Wordpress API (https://github.com/QuizandSurveyMaster/quiz_master_next/issues/769) * Filters and hooks listed on documentation * Animations/transition options for questions (https://github.com/QuizandSurveyMaster/quiz_master_next/issues/719) * Bug: WordPress embed shortcode does not work in question * Remove advertisement from top bar in quizzes * Results table design change * XSS Vulnerability (https://github.com/QuizandSurveyMaster/quiz_master_next/issues/795)

Download this release

Release Info

Developer quizsurvey
Plugin Icon 128x128 Quiz And Survey Master (Formerly Quiz Master Next)
Version 6.3.5
Comparing to
See all releases

Code changes from version 6.3.4 to 6.3.5

css/animate.css ADDED
@@ -0,0 +1,3625 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+
3
+ /*!
4
+ * animate.css -https://daneden.github.io/animate.css/
5
+ * Version - 3.7.2
6
+ * Licensed under the MIT license - http://opensource.org/licenses/MIT
7
+ *
8
+ * Copyright (c) 2019 Daniel Eden
9
+ */
10
+
11
+ @-webkit-keyframes bounce {
12
+ from,
13
+ 20%,
14
+ 53%,
15
+ 80%,
16
+ to {
17
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
18
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
19
+ -webkit-transform: translate3d(0, 0, 0);
20
+ transform: translate3d(0, 0, 0);
21
+ }
22
+
23
+ 40%,
24
+ 43% {
25
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
26
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
27
+ -webkit-transform: translate3d(0, -30px, 0);
28
+ transform: translate3d(0, -30px, 0);
29
+ }
30
+
31
+ 70% {
32
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
33
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
34
+ -webkit-transform: translate3d(0, -15px, 0);
35
+ transform: translate3d(0, -15px, 0);
36
+ }
37
+
38
+ 90% {
39
+ -webkit-transform: translate3d(0, -4px, 0);
40
+ transform: translate3d(0, -4px, 0);
41
+ }
42
+ }
43
+
44
+ @keyframes bounce {
45
+ from,
46
+ 20%,
47
+ 53%,
48
+ 80%,
49
+ to {
50
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
51
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
52
+ -webkit-transform: translate3d(0, 0, 0);
53
+ transform: translate3d(0, 0, 0);
54
+ }
55
+
56
+ 40%,
57
+ 43% {
58
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
59
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
60
+ -webkit-transform: translate3d(0, -30px, 0);
61
+ transform: translate3d(0, -30px, 0);
62
+ }
63
+
64
+ 70% {
65
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
66
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
67
+ -webkit-transform: translate3d(0, -15px, 0);
68
+ transform: translate3d(0, -15px, 0);
69
+ }
70
+
71
+ 90% {
72
+ -webkit-transform: translate3d(0, -4px, 0);
73
+ transform: translate3d(0, -4px, 0);
74
+ }
75
+ }
76
+
77
+ .bounce {
78
+ -webkit-animation-name: bounce;
79
+ animation-name: bounce;
80
+ -webkit-transform-origin: center bottom;
81
+ transform-origin: center bottom;
82
+ }
83
+
84
+ @-webkit-keyframes flash {
85
+ from,
86
+ 50%,
87
+ to {
88
+ opacity: 1;
89
+ }
90
+
91
+ 25%,
92
+ 75% {
93
+ opacity: 0;
94
+ }
95
+ }
96
+
97
+ @keyframes flash {
98
+ from,
99
+ 50%,
100
+ to {
101
+ opacity: 1;
102
+ }
103
+
104
+ 25%,
105
+ 75% {
106
+ opacity: 0;
107
+ }
108
+ }
109
+
110
+ .flash {
111
+ -webkit-animation-name: flash;
112
+ animation-name: flash;
113
+ }
114
+
115
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
116
+
117
+ @-webkit-keyframes pulse {
118
+ from {
119
+ -webkit-transform: scale3d(1, 1, 1);
120
+ transform: scale3d(1, 1, 1);
121
+ }
122
+
123
+ 50% {
124
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
125
+ transform: scale3d(1.05, 1.05, 1.05);
126
+ }
127
+
128
+ to {
129
+ -webkit-transform: scale3d(1, 1, 1);
130
+ transform: scale3d(1, 1, 1);
131
+ }
132
+ }
133
+
134
+ @keyframes pulse {
135
+ from {
136
+ -webkit-transform: scale3d(1, 1, 1);
137
+ transform: scale3d(1, 1, 1);
138
+ }
139
+
140
+ 50% {
141
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
142
+ transform: scale3d(1.05, 1.05, 1.05);
143
+ }
144
+
145
+ to {
146
+ -webkit-transform: scale3d(1, 1, 1);
147
+ transform: scale3d(1, 1, 1);
148
+ }
149
+ }
150
+
151
+ .pulse {
152
+ -webkit-animation-name: pulse;
153
+ animation-name: pulse;
154
+ }
155
+
156
+ @-webkit-keyframes rubberBand {
157
+ from {
158
+ -webkit-transform: scale3d(1, 1, 1);
159
+ transform: scale3d(1, 1, 1);
160
+ }
161
+
162
+ 30% {
163
+ -webkit-transform: scale3d(1.25, 0.75, 1);
164
+ transform: scale3d(1.25, 0.75, 1);
165
+ }
166
+
167
+ 40% {
168
+ -webkit-transform: scale3d(0.75, 1.25, 1);
169
+ transform: scale3d(0.75, 1.25, 1);
170
+ }
171
+
172
+ 50% {
173
+ -webkit-transform: scale3d(1.15, 0.85, 1);
174
+ transform: scale3d(1.15, 0.85, 1);
175
+ }
176
+
177
+ 65% {
178
+ -webkit-transform: scale3d(0.95, 1.05, 1);
179
+ transform: scale3d(0.95, 1.05, 1);
180
+ }
181
+
182
+ 75% {
183
+ -webkit-transform: scale3d(1.05, 0.95, 1);
184
+ transform: scale3d(1.05, 0.95, 1);
185
+ }
186
+
187
+ to {
188
+ -webkit-transform: scale3d(1, 1, 1);
189
+ transform: scale3d(1, 1, 1);
190
+ }
191
+ }
192
+
193
+ @keyframes rubberBand {
194
+ from {
195
+ -webkit-transform: scale3d(1, 1, 1);
196
+ transform: scale3d(1, 1, 1);
197
+ }
198
+
199
+ 30% {
200
+ -webkit-transform: scale3d(1.25, 0.75, 1);
201
+ transform: scale3d(1.25, 0.75, 1);
202
+ }
203
+
204
+ 40% {
205
+ -webkit-transform: scale3d(0.75, 1.25, 1);
206
+ transform: scale3d(0.75, 1.25, 1);
207
+ }
208
+
209
+ 50% {
210
+ -webkit-transform: scale3d(1.15, 0.85, 1);
211
+ transform: scale3d(1.15, 0.85, 1);
212
+ }
213
+
214
+ 65% {
215
+ -webkit-transform: scale3d(0.95, 1.05, 1);
216
+ transform: scale3d(0.95, 1.05, 1);
217
+ }
218
+
219
+ 75% {
220
+ -webkit-transform: scale3d(1.05, 0.95, 1);
221
+ transform: scale3d(1.05, 0.95, 1);
222
+ }
223
+
224
+ to {
225
+ -webkit-transform: scale3d(1, 1, 1);
226
+ transform: scale3d(1, 1, 1);
227
+ }
228
+ }
229
+
230
+ .rubberBand {
231
+ -webkit-animation-name: rubberBand;
232
+ animation-name: rubberBand;
233
+ }
234
+
235
+ @-webkit-keyframes shake {
236
+ from,
237
+ to {
238
+ -webkit-transform: translate3d(0, 0, 0);
239
+ transform: translate3d(0, 0, 0);
240
+ }
241
+
242
+ 10%,
243
+ 30%,
244
+ 50%,
245
+ 70%,
246
+ 90% {
247
+ -webkit-transform: translate3d(-10px, 0, 0);
248
+ transform: translate3d(-10px, 0, 0);
249
+ }
250
+
251
+ 20%,
252
+ 40%,
253
+ 60%,
254
+ 80% {
255
+ -webkit-transform: translate3d(10px, 0, 0);
256
+ transform: translate3d(10px, 0, 0);
257
+ }
258
+ }
259
+
260
+ @keyframes shake {
261
+ from,
262
+ to {
263
+ -webkit-transform: translate3d(0, 0, 0);
264
+ transform: translate3d(0, 0, 0);
265
+ }
266
+
267
+ 10%,
268
+ 30%,
269
+ 50%,
270
+ 70%,
271
+ 90% {
272
+ -webkit-transform: translate3d(-10px, 0, 0);
273
+ transform: translate3d(-10px, 0, 0);
274
+ }
275
+
276
+ 20%,
277
+ 40%,
278
+ 60%,
279
+ 80% {
280
+ -webkit-transform: translate3d(10px, 0, 0);
281
+ transform: translate3d(10px, 0, 0);
282
+ }
283
+ }
284
+
285
+ .shake {
286
+ -webkit-animation-name: shake;
287
+ animation-name: shake;
288
+ }
289
+
290
+ @-webkit-keyframes headShake {
291
+ 0% {
292
+ -webkit-transform: translateX(0);
293
+ transform: translateX(0);
294
+ }
295
+
296
+ 6.5% {
297
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
298
+ transform: translateX(-6px) rotateY(-9deg);
299
+ }
300
+
301
+ 18.5% {
302
+ -webkit-transform: translateX(5px) rotateY(7deg);
303
+ transform: translateX(5px) rotateY(7deg);
304
+ }
305
+
306
+ 31.5% {
307
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
308
+ transform: translateX(-3px) rotateY(-5deg);
309
+ }
310
+
311
+ 43.5% {
312
+ -webkit-transform: translateX(2px) rotateY(3deg);
313
+ transform: translateX(2px) rotateY(3deg);
314
+ }
315
+
316
+ 50% {
317
+ -webkit-transform: translateX(0);
318
+ transform: translateX(0);
319
+ }
320
+ }
321
+
322
+ @keyframes headShake {
323
+ 0% {
324
+ -webkit-transform: translateX(0);
325
+ transform: translateX(0);
326
+ }
327
+
328
+ 6.5% {
329
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
330
+ transform: translateX(-6px) rotateY(-9deg);
331
+ }
332
+
333
+ 18.5% {
334
+ -webkit-transform: translateX(5px) rotateY(7deg);
335
+ transform: translateX(5px) rotateY(7deg);
336
+ }
337
+
338
+ 31.5% {
339
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
340
+ transform: translateX(-3px) rotateY(-5deg);
341
+ }
342
+
343
+ 43.5% {
344
+ -webkit-transform: translateX(2px) rotateY(3deg);
345
+ transform: translateX(2px) rotateY(3deg);
346
+ }
347
+
348
+ 50% {
349
+ -webkit-transform: translateX(0);
350
+ transform: translateX(0);
351
+ }
352
+ }
353
+
354
+ .headShake {
355
+ -webkit-animation-timing-function: ease-in-out;
356
+ animation-timing-function: ease-in-out;
357
+ -webkit-animation-name: headShake;
358
+ animation-name: headShake;
359
+ }
360
+
361
+ @-webkit-keyframes swing {
362
+ 20% {
363
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
364
+ transform: rotate3d(0, 0, 1, 15deg);
365
+ }
366
+
367
+ 40% {
368
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
369
+ transform: rotate3d(0, 0, 1, -10deg);
370
+ }
371
+
372
+ 60% {
373
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
374
+ transform: rotate3d(0, 0, 1, 5deg);
375
+ }
376
+
377
+ 80% {
378
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
379
+ transform: rotate3d(0, 0, 1, -5deg);
380
+ }
381
+
382
+ to {
383
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
384
+ transform: rotate3d(0, 0, 1, 0deg);
385
+ }
386
+ }
387
+
388
+ @keyframes swing {
389
+ 20% {
390
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
391
+ transform: rotate3d(0, 0, 1, 15deg);
392
+ }
393
+
394
+ 40% {
395
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
396
+ transform: rotate3d(0, 0, 1, -10deg);
397
+ }
398
+
399
+ 60% {
400
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
401
+ transform: rotate3d(0, 0, 1, 5deg);
402
+ }
403
+
404
+ 80% {
405
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
406
+ transform: rotate3d(0, 0, 1, -5deg);
407
+ }
408
+
409
+ to {
410
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
411
+ transform: rotate3d(0, 0, 1, 0deg);
412
+ }
413
+ }
414
+
415
+ .swing {
416
+ -webkit-transform-origin: top center;
417
+ transform-origin: top center;
418
+ -webkit-animation-name: swing;
419
+ animation-name: swing;
420
+ }
421
+
422
+ @-webkit-keyframes tada {
423
+ from {
424
+ -webkit-transform: scale3d(1, 1, 1);
425
+ transform: scale3d(1, 1, 1);
426
+ }
427
+
428
+ 10%,
429
+ 20% {
430
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
431
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
432
+ }
433
+
434
+ 30%,
435
+ 50%,
436
+ 70%,
437
+ 90% {
438
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
439
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
440
+ }
441
+
442
+ 40%,
443
+ 60%,
444
+ 80% {
445
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
446
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
447
+ }
448
+
449
+ to {
450
+ -webkit-transform: scale3d(1, 1, 1);
451
+ transform: scale3d(1, 1, 1);
452
+ }
453
+ }
454
+
455
+ @keyframes tada {
456
+ from {
457
+ -webkit-transform: scale3d(1, 1, 1);
458
+ transform: scale3d(1, 1, 1);
459
+ }
460
+
461
+ 10%,
462
+ 20% {
463
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
464
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
465
+ }
466
+
467
+ 30%,
468
+ 50%,
469
+ 70%,
470
+ 90% {
471
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
472
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
473
+ }
474
+
475
+ 40%,
476
+ 60%,
477
+ 80% {
478
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
479
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
480
+ }
481
+
482
+ to {
483
+ -webkit-transform: scale3d(1, 1, 1);
484
+ transform: scale3d(1, 1, 1);
485
+ }
486
+ }
487
+
488
+ .tada {
489
+ -webkit-animation-name: tada;
490
+ animation-name: tada;
491
+ }
492
+
493
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
494
+
495
+ @-webkit-keyframes wobble {
496
+ from {
497
+ -webkit-transform: translate3d(0, 0, 0);
498
+ transform: translate3d(0, 0, 0);
499
+ }
500
+
501
+ 15% {
502
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
503
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
504
+ }
505
+
506
+ 30% {
507
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
508
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
509
+ }
510
+
511
+ 45% {
512
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
513
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
514
+ }
515
+
516
+ 60% {
517
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
518
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
519
+ }
520
+
521
+ 75% {
522
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
523
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
524
+ }
525
+
526
+ to {
527
+ -webkit-transform: translate3d(0, 0, 0);
528
+ transform: translate3d(0, 0, 0);
529
+ }
530
+ }
531
+
532
+ @keyframes wobble {
533
+ from {
534
+ -webkit-transform: translate3d(0, 0, 0);
535
+ transform: translate3d(0, 0, 0);
536
+ }
537
+
538
+ 15% {
539
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
540
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
541
+ }
542
+
543
+ 30% {
544
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
545
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
546
+ }
547
+
548
+ 45% {
549
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
550
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
551
+ }
552
+
553
+ 60% {
554
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
555
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
556
+ }
557
+
558
+ 75% {
559
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
560
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
561
+ }
562
+
563
+ to {
564
+ -webkit-transform: translate3d(0, 0, 0);
565
+ transform: translate3d(0, 0, 0);
566
+ }
567
+ }
568
+
569
+ .wobble {
570
+ -webkit-animation-name: wobble;
571
+ animation-name: wobble;
572
+ }
573
+
574
+ @-webkit-keyframes jello {
575
+ from,
576
+ 11.1%,
577
+ to {
578
+ -webkit-transform: translate3d(0, 0, 0);
579
+ transform: translate3d(0, 0, 0);
580
+ }
581
+
582
+ 22.2% {
583
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
584
+ transform: skewX(-12.5deg) skewY(-12.5deg);
585
+ }
586
+
587
+ 33.3% {
588
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
589
+ transform: skewX(6.25deg) skewY(6.25deg);
590
+ }
591
+
592
+ 44.4% {
593
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
594
+ transform: skewX(-3.125deg) skewY(-3.125deg);
595
+ }
596
+
597
+ 55.5% {
598
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
599
+ transform: skewX(1.5625deg) skewY(1.5625deg);
600
+ }
601
+
602
+ 66.6% {
603
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
604
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
605
+ }
606
+
607
+ 77.7% {
608
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
609
+ transform: skewX(0.390625deg) skewY(0.390625deg);
610
+ }
611
+
612
+ 88.8% {
613
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
614
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
615
+ }
616
+ }
617
+
618
+ @keyframes jello {
619
+ from,
620
+ 11.1%,
621
+ to {
622
+ -webkit-transform: translate3d(0, 0, 0);
623
+ transform: translate3d(0, 0, 0);
624
+ }
625
+
626
+ 22.2% {
627
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
628
+ transform: skewX(-12.5deg) skewY(-12.5deg);
629
+ }
630
+
631
+ 33.3% {
632
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
633
+ transform: skewX(6.25deg) skewY(6.25deg);
634
+ }
635
+
636
+ 44.4% {
637
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
638
+ transform: skewX(-3.125deg) skewY(-3.125deg);
639
+ }
640
+
641
+ 55.5% {
642
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
643
+ transform: skewX(1.5625deg) skewY(1.5625deg);
644
+ }
645
+
646
+ 66.6% {
647
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
648
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
649
+ }
650
+
651
+ 77.7% {
652
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
653
+ transform: skewX(0.390625deg) skewY(0.390625deg);
654
+ }
655
+
656
+ 88.8% {
657
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
658
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
659
+ }
660
+ }
661
+
662
+ .jello {
663
+ -webkit-animation-name: jello;
664
+ animation-name: jello;
665
+ -webkit-transform-origin: center;
666
+ transform-origin: center;
667
+ }
668
+
669
+ @-webkit-keyframes heartBeat {
670
+ 0% {
671
+ -webkit-transform: scale(1);
672
+ transform: scale(1);
673
+ }
674
+
675
+ 14% {
676
+ -webkit-transform: scale(1.3);
677
+ transform: scale(1.3);
678
+ }
679
+
680
+ 28% {
681
+ -webkit-transform: scale(1);
682
+ transform: scale(1);
683
+ }
684
+
685
+ 42% {
686
+ -webkit-transform: scale(1.3);
687
+ transform: scale(1.3);
688
+ }
689
+
690
+ 70% {
691
+ -webkit-transform: scale(1);
692
+ transform: scale(1);
693
+ }
694
+ }
695
+
696
+ @keyframes heartBeat {
697
+ 0% {
698
+ -webkit-transform: scale(1);
699
+ transform: scale(1);
700
+ }
701
+
702
+ 14% {
703
+ -webkit-transform: scale(1.3);
704
+ transform: scale(1.3);
705
+ }
706
+
707
+ 28% {
708
+ -webkit-transform: scale(1);
709
+ transform: scale(1);
710
+ }
711
+
712
+ 42% {
713
+ -webkit-transform: scale(1.3);
714
+ transform: scale(1.3);
715
+ }
716
+
717
+ 70% {
718
+ -webkit-transform: scale(1);
719
+ transform: scale(1);
720
+ }
721
+ }
722
+
723
+ .heartBeat {
724
+ -webkit-animation-name: heartBeat;
725
+ animation-name: heartBeat;
726
+ -webkit-animation-duration: 1.3s;
727
+ animation-duration: 1.3s;
728
+ -webkit-animation-timing-function: ease-in-out;
729
+ animation-timing-function: ease-in-out;
730
+ }
731
+
732
+ @-webkit-keyframes bounceIn {
733
+ from,
734
+ 20%,
735
+ 40%,
736
+ 60%,
737
+ 80%,
738
+ to {
739
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
740
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
741
+ }
742
+
743
+ 0% {
744
+ opacity: 0;
745
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
746
+ transform: scale3d(0.3, 0.3, 0.3);
747
+ }
748
+
749
+ 20% {
750
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
751
+ transform: scale3d(1.1, 1.1, 1.1);
752
+ }
753
+
754
+ 40% {
755
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
756
+ transform: scale3d(0.9, 0.9, 0.9);
757
+ }
758
+
759
+ 60% {
760
+ opacity: 1;
761
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
762
+ transform: scale3d(1.03, 1.03, 1.03);
763
+ }
764
+
765
+ 80% {
766
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
767
+ transform: scale3d(0.97, 0.97, 0.97);
768
+ }
769
+
770
+ to {
771
+ opacity: 1;
772
+ -webkit-transform: scale3d(1, 1, 1);
773
+ transform: scale3d(1, 1, 1);
774
+ }
775
+ }
776
+
777
+ @keyframes bounceIn {
778
+ from,
779
+ 20%,
780
+ 40%,
781
+ 60%,
782
+ 80%,
783
+ to {
784
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
785
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
786
+ }
787
+
788
+ 0% {
789
+ opacity: 0;
790
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
791
+ transform: scale3d(0.3, 0.3, 0.3);
792
+ }
793
+
794
+ 20% {
795
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
796
+ transform: scale3d(1.1, 1.1, 1.1);
797
+ }
798
+
799
+ 40% {
800
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
801
+ transform: scale3d(0.9, 0.9, 0.9);
802
+ }
803
+
804
+ 60% {
805
+ opacity: 1;
806
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
807
+ transform: scale3d(1.03, 1.03, 1.03);
808
+ }
809
+
810
+ 80% {
811
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
812
+ transform: scale3d(0.97, 0.97, 0.97);
813
+ }
814
+
815
+ to {
816
+ opacity: 1;
817
+ -webkit-transform: scale3d(1, 1, 1);
818
+ transform: scale3d(1, 1, 1);
819
+ }
820
+ }
821
+
822
+ .bounceIn {
823
+ -webkit-animation-duration: 0.75s;
824
+ animation-duration: 0.75s;
825
+ -webkit-animation-name: bounceIn;
826
+ animation-name: bounceIn;
827
+ }
828
+
829
+ @-webkit-keyframes bounceInDown {
830
+ from,
831
+ 60%,
832
+ 75%,
833
+ 90%,
834
+ to {
835
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
836
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
837
+ }
838
+
839
+ 0% {
840
+ opacity: 0;
841
+ -webkit-transform: translate3d(0, -3000px, 0);
842
+ transform: translate3d(0, -3000px, 0);
843
+ }
844
+
845
+ 60% {
846
+ opacity: 1;
847
+ -webkit-transform: translate3d(0, 25px, 0);
848
+ transform: translate3d(0, 25px, 0);
849
+ }
850
+
851
+ 75% {
852
+ -webkit-transform: translate3d(0, -10px, 0);
853
+ transform: translate3d(0, -10px, 0);
854
+ }
855
+
856
+ 90% {
857
+ -webkit-transform: translate3d(0, 5px, 0);
858
+ transform: translate3d(0, 5px, 0);
859
+ }
860
+
861
+ to {
862
+ -webkit-transform: translate3d(0, 0, 0);
863
+ transform: translate3d(0, 0, 0);
864
+ }
865
+ }
866
+
867
+ @keyframes bounceInDown {
868
+ from,
869
+ 60%,
870
+ 75%,
871
+ 90%,
872
+ to {
873
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
874
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
875
+ }
876
+
877
+ 0% {
878
+ opacity: 0;
879
+ -webkit-transform: translate3d(0, -3000px, 0);
880
+ transform: translate3d(0, -3000px, 0);
881
+ }
882
+
883
+ 60% {
884
+ opacity: 1;
885
+ -webkit-transform: translate3d(0, 25px, 0);
886
+ transform: translate3d(0, 25px, 0);
887
+ }
888
+
889
+ 75% {
890
+ -webkit-transform: translate3d(0, -10px, 0);
891
+ transform: translate3d(0, -10px, 0);
892
+ }
893
+
894
+ 90% {
895
+ -webkit-transform: translate3d(0, 5px, 0);
896
+ transform: translate3d(0, 5px, 0);
897
+ }
898
+
899
+ to {
900
+ -webkit-transform: translate3d(0, 0, 0);
901
+ transform: translate3d(0, 0, 0);
902
+ }
903
+ }
904
+
905
+ .bounceInDown {
906
+ -webkit-animation-name: bounceInDown;
907
+ animation-name: bounceInDown;
908
+ }
909
+
910
+ @-webkit-keyframes bounceInLeft {
911
+ from,
912
+ 60%,
913
+ 75%,
914
+ 90%,
915
+ to {
916
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
917
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
918
+ }
919
+
920
+ 0% {
921
+ opacity: 0;
922
+ -webkit-transform: translate3d(-3000px, 0, 0);
923
+ transform: translate3d(-3000px, 0, 0);
924
+ }
925
+
926
+ 60% {
927
+ opacity: 1;
928
+ -webkit-transform: translate3d(25px, 0, 0);
929
+ transform: translate3d(25px, 0, 0);
930
+ }
931
+
932
+ 75% {
933
+ -webkit-transform: translate3d(-10px, 0, 0);
934
+ transform: translate3d(-10px, 0, 0);
935
+ }
936
+
937
+ 90% {
938
+ -webkit-transform: translate3d(5px, 0, 0);
939
+ transform: translate3d(5px, 0, 0);
940
+ }
941
+
942
+ to {
943
+ -webkit-transform: translate3d(0, 0, 0);
944
+ transform: translate3d(0, 0, 0);
945
+ }
946
+ }
947
+
948
+ @keyframes bounceInLeft {
949
+ from,
950
+ 60%,
951
+ 75%,
952
+ 90%,
953
+ to {
954
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
955
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
956
+ }
957
+
958
+ 0% {
959
+ opacity: 0;
960
+ -webkit-transform: translate3d(-3000px, 0, 0);
961
+ transform: translate3d(-3000px, 0, 0);
962
+ }
963
+
964
+ 60% {
965
+ opacity: 1;
966
+ -webkit-transform: translate3d(25px, 0, 0);
967
+ transform: translate3d(25px, 0, 0);
968
+ }
969
+
970
+ 75% {
971
+ -webkit-transform: translate3d(-10px, 0, 0);
972
+ transform: translate3d(-10px, 0, 0);
973
+ }
974
+
975
+ 90% {
976
+ -webkit-transform: translate3d(5px, 0, 0);
977
+ transform: translate3d(5px, 0, 0);
978
+ }
979
+
980
+ to {
981
+ -webkit-transform: translate3d(0, 0, 0);
982
+ transform: translate3d(0, 0, 0);
983
+ }
984
+ }
985
+
986
+ .bounceInLeft {
987
+ -webkit-animation-name: bounceInLeft;
988
+ animation-name: bounceInLeft;
989
+ }
990
+
991
+ @-webkit-keyframes bounceInRight {
992
+ from,
993
+ 60%,
994
+ 75%,
995
+ 90%,
996
+ to {
997
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
998
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
999
+ }
1000
+
1001
+ from {
1002
+ opacity: 0;
1003
+ -webkit-transform: translate3d(3000px, 0, 0);
1004
+ transform: translate3d(3000px, 0, 0);
1005
+ }
1006
+
1007
+ 60% {
1008
+ opacity: 1;
1009
+ -webkit-transform: translate3d(-25px, 0, 0);
1010
+ transform: translate3d(-25px, 0, 0);
1011
+ }
1012
+
1013
+ 75% {
1014
+ -webkit-transform: translate3d(10px, 0, 0);
1015
+ transform: translate3d(10px, 0, 0);
1016
+ }
1017
+
1018
+ 90% {
1019
+ -webkit-transform: translate3d(-5px, 0, 0);
1020
+ transform: translate3d(-5px, 0, 0);
1021
+ }
1022
+
1023
+ to {
1024
+ -webkit-transform: translate3d(0, 0, 0);
1025
+ transform: translate3d(0, 0, 0);
1026
+ }
1027
+ }
1028
+
1029
+ @keyframes bounceInRight {
1030
+ from,
1031
+ 60%,
1032
+ 75%,
1033
+ 90%,
1034
+ to {
1035
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1036
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1037
+ }
1038
+
1039
+ from {
1040
+ opacity: 0;
1041
+ -webkit-transform: translate3d(3000px, 0, 0);
1042
+ transform: translate3d(3000px, 0, 0);
1043
+ }
1044
+
1045
+ 60% {
1046
+ opacity: 1;
1047
+ -webkit-transform: translate3d(-25px, 0, 0);
1048
+ transform: translate3d(-25px, 0, 0);
1049
+ }
1050
+
1051
+ 75% {
1052
+ -webkit-transform: translate3d(10px, 0, 0);
1053
+ transform: translate3d(10px, 0, 0);
1054
+ }
1055
+
1056
+ 90% {
1057
+ -webkit-transform: translate3d(-5px, 0, 0);
1058
+ transform: translate3d(-5px, 0, 0);
1059
+ }
1060
+
1061
+ to {
1062
+ -webkit-transform: translate3d(0, 0, 0);
1063
+ transform: translate3d(0, 0, 0);
1064
+ }
1065
+ }
1066
+
1067
+ .bounceInRight {
1068
+ -webkit-animation-name: bounceInRight;
1069
+ animation-name: bounceInRight;
1070
+ }
1071
+
1072
+ @-webkit-keyframes bounceInUp {
1073
+ from,
1074
+ 60%,
1075
+ 75%,
1076
+ 90%,
1077
+ to {
1078
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1079
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1080
+ }
1081
+
1082
+ from {
1083
+ opacity: 0;
1084
+ -webkit-transform: translate3d(0, 3000px, 0);
1085
+ transform: translate3d(0, 3000px, 0);
1086
+ }
1087
+
1088
+ 60% {
1089
+ opacity: 1;
1090
+ -webkit-transform: translate3d(0, -20px, 0);
1091
+ transform: translate3d(0, -20px, 0);
1092
+ }
1093
+
1094
+ 75% {
1095
+ -webkit-transform: translate3d(0, 10px, 0);
1096
+ transform: translate3d(0, 10px, 0);
1097
+ }
1098
+
1099
+ 90% {
1100
+ -webkit-transform: translate3d(0, -5px, 0);
1101
+ transform: translate3d(0, -5px, 0);
1102
+ }
1103
+
1104
+ to {
1105
+ -webkit-transform: translate3d(0, 0, 0);
1106
+ transform: translate3d(0, 0, 0);
1107
+ }
1108
+ }
1109
+
1110
+ @keyframes bounceInUp {
1111
+ from,
1112
+ 60%,
1113
+ 75%,
1114
+ 90%,
1115
+ to {
1116
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1117
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1118
+ }
1119
+
1120
+ from {
1121
+ opacity: 0;
1122
+ -webkit-transform: translate3d(0, 3000px, 0);
1123
+ transform: translate3d(0, 3000px, 0);
1124
+ }
1125
+
1126
+ 60% {
1127
+ opacity: 1;
1128
+ -webkit-transform: translate3d(0, -20px, 0);
1129
+ transform: translate3d(0, -20px, 0);
1130
+ }
1131
+
1132
+ 75% {
1133
+ -webkit-transform: translate3d(0, 10px, 0);
1134
+ transform: translate3d(0, 10px, 0);
1135
+ }
1136
+
1137
+ 90% {
1138
+ -webkit-transform: translate3d(0, -5px, 0);
1139
+ transform: translate3d(0, -5px, 0);
1140
+ }
1141
+
1142
+ to {
1143
+ -webkit-transform: translate3d(0, 0, 0);
1144
+ transform: translate3d(0, 0, 0);
1145
+ }
1146
+ }
1147
+
1148
+ .bounceInUp {
1149
+ -webkit-animation-name: bounceInUp;
1150
+ animation-name: bounceInUp;
1151
+ }
1152
+
1153
+ @-webkit-keyframes bounceOut {
1154
+ 20% {
1155
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
1156
+ transform: scale3d(0.9, 0.9, 0.9);
1157
+ }
1158
+
1159
+ 50%,
1160
+ 55% {
1161
+ opacity: 1;
1162
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1163
+ transform: scale3d(1.1, 1.1, 1.1);
1164
+ }
1165
+
1166
+ to {
1167
+ opacity: 0;
1168
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
1169
+ transform: scale3d(0.3, 0.3, 0.3);
1170
+ }
1171
+ }
1172
+
1173
+ @keyframes bounceOut {
1174
+ 20% {
1175
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
1176
+ transform: scale3d(0.9, 0.9, 0.9);
1177
+ }
1178
+
1179
+ 50%,
1180
+ 55% {
1181
+ opacity: 1;
1182
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1183
+ transform: scale3d(1.1, 1.1, 1.1);
1184
+ }
1185
+
1186
+ to {
1187
+ opacity: 0;
1188
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
1189
+ transform: scale3d(0.3, 0.3, 0.3);
1190
+ }
1191
+ }
1192
+
1193
+ .bounceOut {
1194
+ -webkit-animation-duration: 0.75s;
1195
+ animation-duration: 0.75s;
1196
+ -webkit-animation-name: bounceOut;
1197
+ animation-name: bounceOut;
1198
+ }
1199
+
1200
+ @-webkit-keyframes bounceOutDown {
1201
+ 20% {
1202
+ -webkit-transform: translate3d(0, 10px, 0);
1203
+ transform: translate3d(0, 10px, 0);
1204
+ }
1205
+
1206
+ 40%,
1207
+ 45% {
1208
+ opacity: 1;
1209
+ -webkit-transform: translate3d(0, -20px, 0);
1210
+ transform: translate3d(0, -20px, 0);
1211
+ }
1212
+
1213
+ to {
1214
+ opacity: 0;
1215
+ -webkit-transform: translate3d(0, 2000px, 0);
1216
+ transform: translate3d(0, 2000px, 0);
1217
+ }
1218
+ }
1219
+
1220
+ @keyframes bounceOutDown {
1221
+ 20% {
1222
+ -webkit-transform: translate3d(0, 10px, 0);
1223
+ transform: translate3d(0, 10px, 0);
1224
+ }
1225
+
1226
+ 40%,
1227
+ 45% {
1228
+ opacity: 1;
1229
+ -webkit-transform: translate3d(0, -20px, 0);
1230
+ transform: translate3d(0, -20px, 0);
1231
+ }
1232
+
1233
+ to {
1234
+ opacity: 0;
1235
+ -webkit-transform: translate3d(0, 2000px, 0);
1236
+ transform: translate3d(0, 2000px, 0);
1237
+ }
1238
+ }
1239
+
1240
+ .bounceOutDown {
1241
+ -webkit-animation-name: bounceOutDown;
1242
+ animation-name: bounceOutDown;
1243
+ }
1244
+
1245
+ @-webkit-keyframes bounceOutLeft {
1246
+ 20% {
1247
+ opacity: 1;
1248
+ -webkit-transform: translate3d(20px, 0, 0);
1249
+ transform: translate3d(20px, 0, 0);
1250
+ }
1251
+
1252
+ to {
1253
+ opacity: 0;
1254
+ -webkit-transform: translate3d(-2000px, 0, 0);
1255
+ transform: translate3d(-2000px, 0, 0);
1256
+ }
1257
+ }
1258
+
1259
+ @keyframes bounceOutLeft {
1260
+ 20% {
1261
+ opacity: 1;
1262
+ -webkit-transform: translate3d(20px, 0, 0);
1263
+ transform: translate3d(20px, 0, 0);
1264
+ }
1265
+
1266
+ to {
1267
+ opacity: 0;
1268
+ -webkit-transform: translate3d(-2000px, 0, 0);
1269
+ transform: translate3d(-2000px, 0, 0);
1270
+ }
1271
+ }
1272
+
1273
+ .bounceOutLeft {
1274
+ -webkit-animation-name: bounceOutLeft;
1275
+ animation-name: bounceOutLeft;
1276
+ }
1277
+
1278
+ @-webkit-keyframes bounceOutRight {
1279
+ 20% {
1280
+ opacity: 1;
1281
+ -webkit-transform: translate3d(-20px, 0, 0);
1282
+ transform: translate3d(-20px, 0, 0);
1283
+ }
1284
+
1285
+ to {
1286
+ opacity: 0;
1287
+ -webkit-transform: translate3d(2000px, 0, 0);
1288
+ transform: translate3d(2000px, 0, 0);
1289
+ }
1290
+ }
1291
+
1292
+ @keyframes bounceOutRight {
1293
+ 20% {
1294
+ opacity: 1;
1295
+ -webkit-transform: translate3d(-20px, 0, 0);
1296
+ transform: translate3d(-20px, 0, 0);
1297
+ }
1298
+
1299
+ to {
1300
+ opacity: 0;
1301
+ -webkit-transform: translate3d(2000px, 0, 0);
1302
+ transform: translate3d(2000px, 0, 0);
1303
+ }
1304
+ }
1305
+
1306
+ .bounceOutRight {
1307
+ -webkit-animation-name: bounceOutRight;
1308
+ animation-name: bounceOutRight;
1309
+ }
1310
+
1311
+ @-webkit-keyframes bounceOutUp {
1312
+ 20% {
1313
+ -webkit-transform: translate3d(0, -10px, 0);
1314
+ transform: translate3d(0, -10px, 0);
1315
+ }
1316
+
1317
+ 40%,
1318
+ 45% {
1319
+ opacity: 1;
1320
+ -webkit-transform: translate3d(0, 20px, 0);
1321
+ transform: translate3d(0, 20px, 0);
1322
+ }
1323
+
1324
+ to {
1325
+ opacity: 0;
1326
+ -webkit-transform: translate3d(0, -2000px, 0);
1327
+ transform: translate3d(0, -2000px, 0);
1328
+ }
1329
+ }
1330
+
1331
+ @keyframes bounceOutUp {
1332
+ 20% {
1333
+ -webkit-transform: translate3d(0, -10px, 0);
1334
+ transform: translate3d(0, -10px, 0);
1335
+ }
1336
+
1337
+ 40%,
1338
+ 45% {
1339
+ opacity: 1;
1340
+ -webkit-transform: translate3d(0, 20px, 0);
1341
+ transform: translate3d(0, 20px, 0);
1342
+ }
1343
+
1344
+ to {
1345
+ opacity: 0;
1346
+ -webkit-transform: translate3d(0, -2000px, 0);
1347
+ transform: translate3d(0, -2000px, 0);
1348
+ }
1349
+ }
1350
+
1351
+ .bounceOutUp {
1352
+ -webkit-animation-name: bounceOutUp;
1353
+ animation-name: bounceOutUp;
1354
+ }
1355
+
1356
+ @-webkit-keyframes fadeIn {
1357
+ from {
1358
+ opacity: 0;
1359
+ }
1360
+
1361
+ to {
1362
+ opacity: 1;
1363
+ }
1364
+ }
1365
+
1366
+ @keyframes fadeIn {
1367
+ from {
1368
+ opacity: 0;
1369
+ }
1370
+
1371
+ to {
1372
+ opacity: 1;
1373
+ }
1374
+ }
1375
+
1376
+ .fadeIn {
1377
+ -webkit-animation-name: fadeIn;
1378
+ animation-name: fadeIn;
1379
+ }
1380
+
1381
+ @-webkit-keyframes fadeInDown {
1382
+ from {
1383
+ opacity: 0;
1384
+ -webkit-transform: translate3d(0, -100%, 0);
1385
+ transform: translate3d(0, -100%, 0);
1386
+ }
1387
+
1388
+ to {
1389
+ opacity: 1;
1390
+ -webkit-transform: translate3d(0, 0, 0);
1391
+ transform: translate3d(0, 0, 0);
1392
+ }
1393
+ }
1394
+
1395
+ @keyframes fadeInDown {
1396
+ from {
1397
+ opacity: 0;
1398
+ -webkit-transform: translate3d(0, -100%, 0);
1399
+ transform: translate3d(0, -100%, 0);
1400
+ }
1401
+
1402
+ to {
1403
+ opacity: 1;
1404
+ -webkit-transform: translate3d(0, 0, 0);
1405
+ transform: translate3d(0, 0, 0);
1406
+ }
1407
+ }
1408
+
1409
+ .fadeInDown {
1410
+ -webkit-animation-name: fadeInDown;
1411
+ animation-name: fadeInDown;
1412
+ }
1413
+
1414
+ @-webkit-keyframes fadeInDownBig {
1415
+ from {
1416
+ opacity: 0;
1417
+ -webkit-transform: translate3d(0, -2000px, 0);
1418
+ transform: translate3d(0, -2000px, 0);
1419
+ }
1420
+
1421
+ to {
1422
+ opacity: 1;
1423
+ -webkit-transform: translate3d(0, 0, 0);
1424
+ transform: translate3d(0, 0, 0);
1425
+ }
1426
+ }
1427
+
1428
+ @keyframes fadeInDownBig {
1429
+ from {
1430
+ opacity: 0;
1431
+ -webkit-transform: translate3d(0, -2000px, 0);
1432
+ transform: translate3d(0, -2000px, 0);
1433
+ }
1434
+
1435
+ to {
1436
+ opacity: 1;
1437
+ -webkit-transform: translate3d(0, 0, 0);
1438
+ transform: translate3d(0, 0, 0);
1439
+ }
1440
+ }
1441
+
1442
+ .fadeInDownBig {
1443
+ -webkit-animation-name: fadeInDownBig;
1444
+ animation-name: fadeInDownBig;
1445
+ }
1446
+
1447
+ @-webkit-keyframes fadeInLeft {
1448
+ from {
1449
+ opacity: 0;
1450
+ -webkit-transform: translate3d(-100%, 0, 0);
1451
+ transform: translate3d(-100%, 0, 0);
1452
+ }
1453
+
1454
+ to {
1455
+ opacity: 1;
1456
+ -webkit-transform: translate3d(0, 0, 0);
1457
+ transform: translate3d(0, 0, 0);
1458
+ }
1459
+ }
1460
+
1461
+ @keyframes fadeInLeft {
1462
+ from {
1463
+ opacity: 0;
1464
+ -webkit-transform: translate3d(-100%, 0, 0);
1465
+ transform: translate3d(-100%, 0, 0);
1466
+ }
1467
+
1468
+ to {
1469
+ opacity: 1;
1470
+ -webkit-transform: translate3d(0, 0, 0);
1471
+ transform: translate3d(0, 0, 0);
1472
+ }
1473
+ }
1474
+
1475
+ .fadeInLeft {
1476
+ -webkit-animation-name: fadeInLeft;
1477
+ animation-name: fadeInLeft;
1478
+ }
1479
+
1480
+ @-webkit-keyframes fadeInLeftBig {
1481
+ from {
1482
+ opacity: 0;
1483
+ -webkit-transform: translate3d(-2000px, 0, 0);
1484
+ transform: translate3d(-2000px, 0, 0);
1485
+ }
1486
+
1487
+ to {
1488
+ opacity: 1;
1489
+ -webkit-transform: translate3d(0, 0, 0);
1490
+ transform: translate3d(0, 0, 0);
1491
+ }
1492
+ }
1493
+
1494
+ @keyframes fadeInLeftBig {
1495
+ from {
1496
+ opacity: 0;
1497
+ -webkit-transform: translate3d(-2000px, 0, 0);
1498
+ transform: translate3d(-2000px, 0, 0);
1499
+ }
1500
+
1501
+ to {
1502
+ opacity: 1;
1503
+ -webkit-transform: translate3d(0, 0, 0);
1504
+ transform: translate3d(0, 0, 0);
1505
+ }
1506
+ }
1507
+
1508
+ .fadeInLeftBig {
1509
+ -webkit-animation-name: fadeInLeftBig;
1510
+ animation-name: fadeInLeftBig;
1511
+ }
1512
+
1513
+ @-webkit-keyframes fadeInRight {
1514
+ from {
1515
+ opacity: 0;
1516
+ -webkit-transform: translate3d(100%, 0, 0);
1517
+ transform: translate3d(100%, 0, 0);
1518
+ }
1519
+
1520
+ to {
1521
+ opacity: 1;
1522
+ -webkit-transform: translate3d(0, 0, 0);
1523
+ transform: translate3d(0, 0, 0);
1524
+ }
1525
+ }
1526
+
1527
+ @keyframes fadeInRight {
1528
+ from {
1529
+ opacity: 0;
1530
+ -webkit-transform: translate3d(100%, 0, 0);
1531
+ transform: translate3d(100%, 0, 0);
1532
+ }
1533
+
1534
+ to {
1535
+ opacity: 1;
1536
+ -webkit-transform: translate3d(0, 0, 0);
1537
+ transform: translate3d(0, 0, 0);
1538
+ }
1539
+ }
1540
+
1541
+ .fadeInRight {
1542
+ -webkit-animation-name: fadeInRight;
1543
+ animation-name: fadeInRight;
1544
+ }
1545
+
1546
+ @-webkit-keyframes fadeInRightBig {
1547
+ from {
1548
+ opacity: 0;
1549
+ -webkit-transform: translate3d(2000px, 0, 0);
1550
+ transform: translate3d(2000px, 0, 0);
1551
+ }
1552
+
1553
+ to {
1554
+ opacity: 1;
1555
+ -webkit-transform: translate3d(0, 0, 0);
1556
+ transform: translate3d(0, 0, 0);
1557
+ }
1558
+ }
1559
+
1560
+ @keyframes fadeInRightBig {
1561
+ from {
1562
+ opacity: 0;
1563
+ -webkit-transform: translate3d(2000px, 0, 0);
1564
+ transform: translate3d(2000px, 0, 0);
1565
+ }
1566
+
1567
+ to {
1568
+ opacity: 1;
1569
+ -webkit-transform: translate3d(0, 0, 0);
1570
+ transform: translate3d(0, 0, 0);
1571
+ }
1572
+ }
1573
+
1574
+ .fadeInRightBig {
1575
+ -webkit-animation-name: fadeInRightBig;
1576
+ animation-name: fadeInRightBig;
1577
+ }
1578
+
1579
+ @-webkit-keyframes fadeInUp {
1580
+ from {
1581
+ opacity: 0;
1582
+ -webkit-transform: translate3d(0, 100%, 0);
1583
+ transform: translate3d(0, 100%, 0);
1584
+ }
1585
+
1586
+ to {
1587
+ opacity: 1;
1588
+ -webkit-transform: translate3d(0, 0, 0);
1589
+ transform: translate3d(0, 0, 0);
1590
+ }
1591
+ }
1592
+
1593
+ @keyframes fadeInUp {
1594
+ from {
1595
+ opacity: 0;
1596
+ -webkit-transform: translate3d(0, 100%, 0);
1597
+ transform: translate3d(0, 100%, 0);
1598
+ }
1599
+
1600
+ to {
1601
+ opacity: 1;
1602
+ -webkit-transform: translate3d(0, 0, 0);
1603
+ transform: translate3d(0, 0, 0);
1604
+ }
1605
+ }
1606
+
1607
+ .fadeInUp {
1608
+ -webkit-animation-name: fadeInUp;
1609
+ animation-name: fadeInUp;
1610
+ }
1611
+
1612
+ @-webkit-keyframes fadeInUpBig {
1613
+ from {
1614
+ opacity: 0;
1615
+ -webkit-transform: translate3d(0, 2000px, 0);
1616
+ transform: translate3d(0, 2000px, 0);
1617
+ }
1618
+
1619
+ to {
1620
+ opacity: 1;
1621
+ -webkit-transform: translate3d(0, 0, 0);
1622
+ transform: translate3d(0, 0, 0);
1623
+ }
1624
+ }
1625
+
1626
+ @keyframes fadeInUpBig {
1627
+ from {
1628
+ opacity: 0;
1629
+ -webkit-transform: translate3d(0, 2000px, 0);
1630
+ transform: translate3d(0, 2000px, 0);
1631
+ }
1632
+
1633
+ to {
1634
+ opacity: 1;
1635
+ -webkit-transform: translate3d(0, 0, 0);
1636
+ transform: translate3d(0, 0, 0);
1637
+ }
1638
+ }
1639
+
1640
+ .fadeInUpBig {
1641
+ -webkit-animation-name: fadeInUpBig;
1642
+ animation-name: fadeInUpBig;
1643
+ }
1644
+
1645
+ @-webkit-keyframes fadeOut {
1646
+ from {
1647
+ opacity: 1;
1648
+ }
1649
+
1650
+ to {
1651
+ opacity: 0;
1652
+ }
1653
+ }
1654
+
1655
+ @keyframes fadeOut {
1656
+ from {
1657
+ opacity: 1;
1658
+ }
1659
+
1660
+ to {
1661
+ opacity: 0;
1662
+ }
1663
+ }
1664
+
1665
+ .fadeOut {
1666
+ -webkit-animation-name: fadeOut;
1667
+ animation-name: fadeOut;
1668
+ }
1669
+
1670
+ @-webkit-keyframes fadeOutDown {
1671
+ from {
1672
+ opacity: 1;
1673
+ }
1674
+
1675
+ to {
1676
+ opacity: 0;
1677
+ -webkit-transform: translate3d(0, 100%, 0);
1678
+ transform: translate3d(0, 100%, 0);
1679
+ }
1680
+ }
1681
+
1682
+ @keyframes fadeOutDown {
1683
+ from {
1684
+ opacity: 1;
1685
+ }
1686
+
1687
+ to {
1688
+ opacity: 0;
1689
+ -webkit-transform: translate3d(0, 100%, 0);
1690
+ transform: translate3d(0, 100%, 0);
1691
+ }
1692
+ }
1693
+
1694
+ .fadeOutDown {
1695
+ -webkit-animation-name: fadeOutDown;
1696
+ animation-name: fadeOutDown;
1697
+ }
1698
+
1699
+ @-webkit-keyframes fadeOutDownBig {
1700
+ from {
1701
+ opacity: 1;
1702
+ }
1703
+
1704
+ to {
1705
+ opacity: 0;
1706
+ -webkit-transform: translate3d(0, 2000px, 0);
1707
+ transform: translate3d(0, 2000px, 0);
1708
+ }
1709
+ }
1710
+
1711
+ @keyframes fadeOutDownBig {
1712
+ from {
1713
+ opacity: 1;
1714
+ }
1715
+
1716
+ to {
1717
+ opacity: 0;
1718
+ -webkit-transform: translate3d(0, 2000px, 0);
1719
+ transform: translate3d(0, 2000px, 0);
1720
+ }
1721
+ }
1722
+
1723
+ .fadeOutDownBig {
1724
+ -webkit-animation-name: fadeOutDownBig;
1725
+ animation-name: fadeOutDownBig;
1726
+ }
1727
+
1728
+ @-webkit-keyframes fadeOutLeft {
1729
+ from {
1730
+ opacity: 1;
1731
+ }
1732
+
1733
+ to {
1734
+ opacity: 0;
1735
+ -webkit-transform: translate3d(-100%, 0, 0);
1736
+ transform: translate3d(-100%, 0, 0);
1737
+ }
1738
+ }
1739
+
1740
+ @keyframes fadeOutLeft {
1741
+ from {
1742
+ opacity: 1;
1743
+ }
1744
+
1745
+ to {
1746
+ opacity: 0;
1747
+ -webkit-transform: translate3d(-100%, 0, 0);
1748
+ transform: translate3d(-100%, 0, 0);
1749
+ }
1750
+ }
1751
+
1752
+ .fadeOutLeft {
1753
+ -webkit-animation-name: fadeOutLeft;
1754
+ animation-name: fadeOutLeft;
1755
+ }
1756
+
1757
+ @-webkit-keyframes fadeOutLeftBig {
1758
+ from {
1759
+ opacity: 1;
1760
+ }
1761
+
1762
+ to {
1763
+ opacity: 0;
1764
+ -webkit-transform: translate3d(-2000px, 0, 0);
1765
+ transform: translate3d(-2000px, 0, 0);
1766
+ }
1767
+ }
1768
+
1769
+ @keyframes fadeOutLeftBig {
1770
+ from {
1771
+ opacity: 1;
1772
+ }
1773
+
1774
+ to {
1775
+ opacity: 0;
1776
+ -webkit-transform: translate3d(-2000px, 0, 0);
1777
+ transform: translate3d(-2000px, 0, 0);
1778
+ }
1779
+ }
1780
+
1781
+ .fadeOutLeftBig {
1782
+ -webkit-animation-name: fadeOutLeftBig;
1783
+ animation-name: fadeOutLeftBig;
1784
+ }
1785
+
1786
+ @-webkit-keyframes fadeOutRight {
1787
+ from {
1788
+ opacity: 1;
1789
+ }
1790
+
1791
+ to {
1792
+ opacity: 0;
1793
+ -webkit-transform: translate3d(100%, 0, 0);
1794
+ transform: translate3d(100%, 0, 0);
1795
+ }
1796
+ }
1797
+
1798
+ @keyframes fadeOutRight {
1799
+ from {
1800
+ opacity: 1;
1801
+ }
1802
+
1803
+ to {
1804
+ opacity: 0;
1805
+ -webkit-transform: translate3d(100%, 0, 0);
1806
+ transform: translate3d(100%, 0, 0);
1807
+ }
1808
+ }
1809
+
1810
+ .fadeOutRight {
1811
+ -webkit-animation-name: fadeOutRight;
1812
+ animation-name: fadeOutRight;
1813
+ }
1814
+
1815
+ @-webkit-keyframes fadeOutRightBig {
1816
+ from {
1817
+ opacity: 1;
1818
+ }
1819
+
1820
+ to {
1821
+ opacity: 0;
1822
+ -webkit-transform: translate3d(2000px, 0, 0);
1823
+ transform: translate3d(2000px, 0, 0);
1824
+ }
1825
+ }
1826
+
1827
+ @keyframes fadeOutRightBig {
1828
+ from {
1829
+ opacity: 1;
1830
+ }
1831
+
1832
+ to {
1833
+ opacity: 0;
1834
+ -webkit-transform: translate3d(2000px, 0, 0);
1835
+ transform: translate3d(2000px, 0, 0);
1836
+ }
1837
+ }
1838
+
1839
+ .fadeOutRightBig {
1840
+ -webkit-animation-name: fadeOutRightBig;
1841
+ animation-name: fadeOutRightBig;
1842
+ }
1843
+
1844
+ @-webkit-keyframes fadeOutUp {
1845
+ from {
1846
+ opacity: 1;
1847
+ }
1848
+
1849
+ to {
1850
+ opacity: 0;
1851
+ -webkit-transform: translate3d(0, -100%, 0);
1852
+ transform: translate3d(0, -100%, 0);
1853
+ }
1854
+ }
1855
+
1856
+ @keyframes fadeOutUp {
1857
+ from {
1858
+ opacity: 1;
1859
+ }
1860
+
1861
+ to {
1862
+ opacity: 0;
1863
+ -webkit-transform: translate3d(0, -100%, 0);
1864
+ transform: translate3d(0, -100%, 0);
1865
+ }
1866
+ }
1867
+
1868
+ .fadeOutUp {
1869
+ -webkit-animation-name: fadeOutUp;
1870
+ animation-name: fadeOutUp;
1871
+ }
1872
+
1873
+ @-webkit-keyframes fadeOutUpBig {
1874
+ from {
1875
+ opacity: 1;
1876
+ }
1877
+
1878
+ to {
1879
+ opacity: 0;
1880
+ -webkit-transform: translate3d(0, -2000px, 0);
1881
+ transform: translate3d(0, -2000px, 0);
1882
+ }
1883
+ }
1884
+
1885
+ @keyframes fadeOutUpBig {
1886
+ from {
1887
+ opacity: 1;
1888
+ }
1889
+
1890
+ to {
1891
+ opacity: 0;
1892
+ -webkit-transform: translate3d(0, -2000px, 0);
1893
+ transform: translate3d(0, -2000px, 0);
1894
+ }
1895
+ }
1896
+
1897
+ .fadeOutUpBig {
1898
+ -webkit-animation-name: fadeOutUpBig;
1899
+ animation-name: fadeOutUpBig;
1900
+ }
1901
+
1902
+ @-webkit-keyframes flip {
1903
+ from {
1904
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1905
+ rotate3d(0, 1, 0, -360deg);
1906
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
1907
+ -webkit-animation-timing-function: ease-out;
1908
+ animation-timing-function: ease-out;
1909
+ }
1910
+
1911
+ 40% {
1912
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1913
+ rotate3d(0, 1, 0, -190deg);
1914
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1915
+ rotate3d(0, 1, 0, -190deg);
1916
+ -webkit-animation-timing-function: ease-out;
1917
+ animation-timing-function: ease-out;
1918
+ }
1919
+
1920
+ 50% {
1921
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1922
+ rotate3d(0, 1, 0, -170deg);
1923
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1924
+ rotate3d(0, 1, 0, -170deg);
1925
+ -webkit-animation-timing-function: ease-in;
1926
+ animation-timing-function: ease-in;
1927
+ }
1928
+
1929
+ 80% {
1930
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1931
+ rotate3d(0, 1, 0, 0deg);
1932
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1933
+ rotate3d(0, 1, 0, 0deg);
1934
+ -webkit-animation-timing-function: ease-in;
1935
+ animation-timing-function: ease-in;
1936
+ }
1937
+
1938
+ to {
1939
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1940
+ rotate3d(0, 1, 0, 0deg);
1941
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
1942
+ -webkit-animation-timing-function: ease-in;
1943
+ animation-timing-function: ease-in;
1944
+ }
1945
+ }
1946
+
1947
+ @keyframes flip {
1948
+ from {
1949
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1950
+ rotate3d(0, 1, 0, -360deg);
1951
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
1952
+ -webkit-animation-timing-function: ease-out;
1953
+ animation-timing-function: ease-out;
1954
+ }
1955
+
1956
+ 40% {
1957
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1958
+ rotate3d(0, 1, 0, -190deg);
1959
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1960
+ rotate3d(0, 1, 0, -190deg);
1961
+ -webkit-animation-timing-function: ease-out;
1962
+ animation-timing-function: ease-out;
1963
+ }
1964
+
1965
+ 50% {
1966
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1967
+ rotate3d(0, 1, 0, -170deg);
1968
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1969
+ rotate3d(0, 1, 0, -170deg);
1970
+ -webkit-animation-timing-function: ease-in;
1971
+ animation-timing-function: ease-in;
1972
+ }
1973
+
1974
+ 80% {
1975
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1976
+ rotate3d(0, 1, 0, 0deg);
1977
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1978
+ rotate3d(0, 1, 0, 0deg);
1979
+ -webkit-animation-timing-function: ease-in;
1980
+ animation-timing-function: ease-in;
1981
+ }
1982
+
1983
+ to {
1984
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1985
+ rotate3d(0, 1, 0, 0deg);
1986
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
1987
+ -webkit-animation-timing-function: ease-in;
1988
+ animation-timing-function: ease-in;
1989
+ }
1990
+ }
1991
+
1992
+ .animated.flip {
1993
+ -webkit-backface-visibility: visible;
1994
+ backface-visibility: visible;
1995
+ -webkit-animation-name: flip;
1996
+ animation-name: flip;
1997
+ }
1998
+
1999
+ @-webkit-keyframes flipInX {
2000
+ from {
2001
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2002
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2003
+ -webkit-animation-timing-function: ease-in;
2004
+ animation-timing-function: ease-in;
2005
+ opacity: 0;
2006
+ }
2007
+
2008
+ 40% {
2009
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2010
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2011
+ -webkit-animation-timing-function: ease-in;
2012
+ animation-timing-function: ease-in;
2013
+ }
2014
+
2015
+ 60% {
2016
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2017
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2018
+ opacity: 1;
2019
+ }
2020
+
2021
+ 80% {
2022
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2023
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2024
+ }
2025
+
2026
+ to {
2027
+ -webkit-transform: perspective(400px);
2028
+ transform: perspective(400px);
2029
+ }
2030
+ }
2031
+
2032
+ @keyframes flipInX {
2033
+ from {
2034
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2035
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2036
+ -webkit-animation-timing-function: ease-in;
2037
+ animation-timing-function: ease-in;
2038
+ opacity: 0;
2039
+ }
2040
+
2041
+ 40% {
2042
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2043
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2044
+ -webkit-animation-timing-function: ease-in;
2045
+ animation-timing-function: ease-in;
2046
+ }
2047
+
2048
+ 60% {
2049
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2050
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2051
+ opacity: 1;
2052
+ }
2053
+
2054
+ 80% {
2055
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2056
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2057
+ }
2058
+
2059
+ to {
2060
+ -webkit-transform: perspective(400px);
2061
+ transform: perspective(400px);
2062
+ }
2063
+ }
2064
+
2065
+ .flipInX {
2066
+ -webkit-backface-visibility: visible !important;
2067
+ backface-visibility: visible !important;
2068
+ -webkit-animation-name: flipInX;
2069
+ animation-name: flipInX;
2070
+ }
2071
+
2072
+ @-webkit-keyframes flipInY {
2073
+ from {
2074
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2075
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2076
+ -webkit-animation-timing-function: ease-in;
2077
+ animation-timing-function: ease-in;
2078
+ opacity: 0;
2079
+ }
2080
+
2081
+ 40% {
2082
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2083
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2084
+ -webkit-animation-timing-function: ease-in;
2085
+ animation-timing-function: ease-in;
2086
+ }
2087
+
2088
+ 60% {
2089
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2090
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2091
+ opacity: 1;
2092
+ }
2093
+
2094
+ 80% {
2095
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2096
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2097
+ }
2098
+
2099
+ to {
2100
+ -webkit-transform: perspective(400px);
2101
+ transform: perspective(400px);
2102
+ }
2103
+ }
2104
+
2105
+ @keyframes flipInY {
2106
+ from {
2107
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2108
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2109
+ -webkit-animation-timing-function: ease-in;
2110
+ animation-timing-function: ease-in;
2111
+ opacity: 0;
2112
+ }
2113
+
2114
+ 40% {
2115
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2116
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2117
+ -webkit-animation-timing-function: ease-in;
2118
+ animation-timing-function: ease-in;
2119
+ }
2120
+
2121
+ 60% {
2122
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2123
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2124
+ opacity: 1;
2125
+ }
2126
+
2127
+ 80% {
2128
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2129
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2130
+ }
2131
+
2132
+ to {
2133
+ -webkit-transform: perspective(400px);
2134
+ transform: perspective(400px);
2135
+ }
2136
+ }
2137
+
2138
+ .flipInY {
2139
+ -webkit-backface-visibility: visible !important;
2140
+ backface-visibility: visible !important;
2141
+ -webkit-animation-name: flipInY;
2142
+ animation-name: flipInY;
2143
+ }
2144
+
2145
+ @-webkit-keyframes flipOutX {
2146
+ from {
2147
+ -webkit-transform: perspective(400px);
2148
+ transform: perspective(400px);
2149
+ }
2150
+
2151
+ 30% {
2152
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2153
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2154
+ opacity: 1;
2155
+ }
2156
+
2157
+ to {
2158
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2159
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2160
+ opacity: 0;
2161
+ }
2162
+ }
2163
+
2164
+ @keyframes flipOutX {
2165
+ from {
2166
+ -webkit-transform: perspective(400px);
2167
+ transform: perspective(400px);
2168
+ }
2169
+
2170
+ 30% {
2171
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2172
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2173
+ opacity: 1;
2174
+ }
2175
+
2176
+ to {
2177
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2178
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2179
+ opacity: 0;
2180
+ }
2181
+ }
2182
+
2183
+ .flipOutX {
2184
+ -webkit-animation-duration: 0.75s;
2185
+ animation-duration: 0.75s;
2186
+ -webkit-animation-name: flipOutX;
2187
+ animation-name: flipOutX;
2188
+ -webkit-backface-visibility: visible !important;
2189
+ backface-visibility: visible !important;
2190
+ }
2191
+
2192
+ @-webkit-keyframes flipOutY {
2193
+ from {
2194
+ -webkit-transform: perspective(400px);
2195
+ transform: perspective(400px);
2196
+ }
2197
+
2198
+ 30% {
2199
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2200
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2201
+ opacity: 1;
2202
+ }
2203
+
2204
+ to {
2205
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2206
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2207
+ opacity: 0;
2208
+ }
2209
+ }
2210
+
2211
+ @keyframes flipOutY {
2212
+ from {
2213
+ -webkit-transform: perspective(400px);
2214
+ transform: perspective(400px);
2215
+ }
2216
+
2217
+ 30% {
2218
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2219
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2220
+ opacity: 1;
2221
+ }
2222
+
2223
+ to {
2224
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2225
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2226
+ opacity: 0;
2227
+ }
2228
+ }
2229
+
2230
+ .flipOutY {
2231
+ -webkit-animation-duration: 0.75s;
2232
+ animation-duration: 0.75s;
2233
+ -webkit-backface-visibility: visible !important;
2234
+ backface-visibility: visible !important;
2235
+ -webkit-animation-name: flipOutY;
2236
+ animation-name: flipOutY;
2237
+ }
2238
+
2239
+ @-webkit-keyframes lightSpeedIn {
2240
+ from {
2241
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2242
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2243
+ opacity: 0;
2244
+ }
2245
+
2246
+ 60% {
2247
+ -webkit-transform: skewX(20deg);
2248
+ transform: skewX(20deg);
2249
+ opacity: 1;
2250
+ }
2251
+
2252
+ 80% {
2253
+ -webkit-transform: skewX(-5deg);
2254
+ transform: skewX(-5deg);
2255
+ }
2256
+
2257
+ to {
2258
+ -webkit-transform: translate3d(0, 0, 0);
2259
+ transform: translate3d(0, 0, 0);
2260
+ }
2261
+ }
2262
+
2263
+ @keyframes lightSpeedIn {
2264
+ from {
2265
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2266
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2267
+ opacity: 0;
2268
+ }
2269
+
2270
+ 60% {
2271
+ -webkit-transform: skewX(20deg);
2272
+ transform: skewX(20deg);
2273
+ opacity: 1;
2274
+ }
2275
+
2276
+ 80% {
2277
+ -webkit-transform: skewX(-5deg);
2278
+ transform: skewX(-5deg);
2279
+ }
2280
+
2281
+ to {
2282
+ -webkit-transform: translate3d(0, 0, 0);
2283
+ transform: translate3d(0, 0, 0);
2284
+ }
2285
+ }
2286
+
2287
+ .lightSpeedIn {
2288
+ -webkit-animation-name: lightSpeedIn;
2289
+ animation-name: lightSpeedIn;
2290
+ -webkit-animation-timing-function: ease-out;
2291
+ animation-timing-function: ease-out;
2292
+ }
2293
+
2294
+ @-webkit-keyframes lightSpeedOut {
2295
+ from {
2296
+ opacity: 1;
2297
+ }
2298
+
2299
+ to {
2300
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2301
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2302
+ opacity: 0;
2303
+ }
2304
+ }
2305
+
2306
+ @keyframes lightSpeedOut {
2307
+ from {
2308
+ opacity: 1;
2309
+ }
2310
+
2311
+ to {
2312
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2313
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2314
+ opacity: 0;
2315
+ }
2316
+ }
2317
+
2318
+ .lightSpeedOut {
2319
+ -webkit-animation-name: lightSpeedOut;
2320
+ animation-name: lightSpeedOut;
2321
+ -webkit-animation-timing-function: ease-in;
2322
+ animation-timing-function: ease-in;
2323
+ }
2324
+
2325
+ @-webkit-keyframes rotateIn {
2326
+ from {
2327
+ -webkit-transform-origin: center;
2328
+ transform-origin: center;
2329
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2330
+ transform: rotate3d(0, 0, 1, -200deg);
2331
+ opacity: 0;
2332
+ }
2333
+
2334
+ to {
2335
+ -webkit-transform-origin: center;
2336
+ transform-origin: center;
2337
+ -webkit-transform: translate3d(0, 0, 0);
2338
+ transform: translate3d(0, 0, 0);
2339
+ opacity: 1;
2340
+ }
2341
+ }
2342
+
2343
+ @keyframes rotateIn {
2344
+ from {
2345
+ -webkit-transform-origin: center;
2346
+ transform-origin: center;
2347
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2348
+ transform: rotate3d(0, 0, 1, -200deg);
2349
+ opacity: 0;
2350
+ }
2351
+
2352
+ to {
2353
+ -webkit-transform-origin: center;
2354
+ transform-origin: center;
2355
+ -webkit-transform: translate3d(0, 0, 0);
2356
+ transform: translate3d(0, 0, 0);
2357
+ opacity: 1;
2358
+ }
2359
+ }
2360
+
2361
+ .rotateIn {
2362
+ -webkit-animation-name: rotateIn;
2363
+ animation-name: rotateIn;
2364
+ }
2365
+
2366
+ @-webkit-keyframes rotateInDownLeft {
2367
+ from {
2368
+ -webkit-transform-origin: left bottom;
2369
+ transform-origin: left bottom;
2370
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2371
+ transform: rotate3d(0, 0, 1, -45deg);
2372
+ opacity: 0;
2373
+ }
2374
+
2375
+ to {
2376
+ -webkit-transform-origin: left bottom;
2377
+ transform-origin: left bottom;
2378
+ -webkit-transform: translate3d(0, 0, 0);
2379
+ transform: translate3d(0, 0, 0);
2380
+ opacity: 1;
2381
+ }
2382
+ }
2383
+
2384
+ @keyframes rotateInDownLeft {
2385
+ from {
2386
+ -webkit-transform-origin: left bottom;
2387
+ transform-origin: left bottom;
2388
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2389
+ transform: rotate3d(0, 0, 1, -45deg);
2390
+ opacity: 0;
2391
+ }
2392
+
2393
+ to {
2394
+ -webkit-transform-origin: left bottom;
2395
+ transform-origin: left bottom;
2396
+ -webkit-transform: translate3d(0, 0, 0);
2397
+ transform: translate3d(0, 0, 0);
2398
+ opacity: 1;
2399
+ }
2400
+ }
2401
+
2402
+ .rotateInDownLeft {
2403
+ -webkit-animation-name: rotateInDownLeft;
2404
+ animation-name: rotateInDownLeft;
2405
+ }
2406
+
2407
+ @-webkit-keyframes rotateInDownRight {
2408
+ from {
2409
+ -webkit-transform-origin: right bottom;
2410
+ transform-origin: right bottom;
2411
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2412
+ transform: rotate3d(0, 0, 1, 45deg);
2413
+ opacity: 0;
2414
+ }
2415
+
2416
+ to {
2417
+ -webkit-transform-origin: right bottom;
2418
+ transform-origin: right bottom;
2419
+ -webkit-transform: translate3d(0, 0, 0);
2420
+ transform: translate3d(0, 0, 0);
2421
+ opacity: 1;
2422
+ }
2423
+ }
2424
+
2425
+ @keyframes rotateInDownRight {
2426
+ from {
2427
+ -webkit-transform-origin: right bottom;
2428
+ transform-origin: right bottom;
2429
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2430
+ transform: rotate3d(0, 0, 1, 45deg);
2431
+ opacity: 0;
2432
+ }
2433
+
2434
+ to {
2435
+ -webkit-transform-origin: right bottom;
2436
+ transform-origin: right bottom;
2437
+ -webkit-transform: translate3d(0, 0, 0);
2438
+ transform: translate3d(0, 0, 0);
2439
+ opacity: 1;
2440
+ }
2441
+ }
2442
+
2443
+ .rotateInDownRight {
2444
+ -webkit-animation-name: rotateInDownRight;
2445
+ animation-name: rotateInDownRight;
2446
+ }
2447
+
2448
+ @-webkit-keyframes rotateInUpLeft {
2449
+ from {
2450
+ -webkit-transform-origin: left bottom;
2451
+ transform-origin: left bottom;
2452
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2453
+ transform: rotate3d(0, 0, 1, 45deg);
2454
+ opacity: 0;
2455
+ }
2456
+
2457
+ to {
2458
+ -webkit-transform-origin: left bottom;
2459
+ transform-origin: left bottom;
2460
+ -webkit-transform: translate3d(0, 0, 0);
2461
+ transform: translate3d(0, 0, 0);
2462
+ opacity: 1;
2463
+ }
2464
+ }
2465
+
2466
+ @keyframes rotateInUpLeft {
2467
+ from {
2468
+ -webkit-transform-origin: left bottom;
2469
+ transform-origin: left bottom;
2470
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2471
+ transform: rotate3d(0, 0, 1, 45deg);
2472
+ opacity: 0;
2473
+ }
2474
+
2475
+ to {
2476
+ -webkit-transform-origin: left bottom;
2477
+ transform-origin: left bottom;
2478
+ -webkit-transform: translate3d(0, 0, 0);
2479
+ transform: translate3d(0, 0, 0);
2480
+ opacity: 1;
2481
+ }
2482
+ }
2483
+
2484
+ .rotateInUpLeft {
2485
+ -webkit-animation-name: rotateInUpLeft;
2486
+ animation-name: rotateInUpLeft;
2487
+ }
2488
+
2489
+ @-webkit-keyframes rotateInUpRight {
2490
+ from {
2491
+ -webkit-transform-origin: right bottom;
2492
+ transform-origin: right bottom;
2493
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2494
+ transform: rotate3d(0, 0, 1, -90deg);
2495
+ opacity: 0;
2496
+ }
2497
+
2498
+ to {
2499
+ -webkit-transform-origin: right bottom;
2500
+ transform-origin: right bottom;
2501
+ -webkit-transform: translate3d(0, 0, 0);
2502
+ transform: translate3d(0, 0, 0);
2503
+ opacity: 1;
2504
+ }
2505
+ }
2506
+
2507
+ @keyframes rotateInUpRight {
2508
+ from {
2509
+ -webkit-transform-origin: right bottom;
2510
+ transform-origin: right bottom;
2511
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2512
+ transform: rotate3d(0, 0, 1, -90deg);
2513
+ opacity: 0;
2514
+ }
2515
+
2516
+ to {
2517
+ -webkit-transform-origin: right bottom;
2518
+ transform-origin: right bottom;
2519
+ -webkit-transform: translate3d(0, 0, 0);
2520
+ transform: translate3d(0, 0, 0);
2521
+ opacity: 1;
2522
+ }
2523
+ }
2524
+
2525
+ .rotateInUpRight {
2526
+ -webkit-animation-name: rotateInUpRight;
2527
+ animation-name: rotateInUpRight;
2528
+ }
2529
+
2530
+ @-webkit-keyframes rotateOut {
2531
+ from {
2532
+ -webkit-transform-origin: center;
2533
+ transform-origin: center;
2534
+ opacity: 1;
2535
+ }
2536
+
2537
+ to {
2538
+ -webkit-transform-origin: center;
2539
+ transform-origin: center;
2540
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2541
+ transform: rotate3d(0, 0, 1, 200deg);
2542
+ opacity: 0;
2543
+ }
2544
+ }
2545
+
2546
+ @keyframes rotateOut {
2547
+ from {
2548
+ -webkit-transform-origin: center;
2549
+ transform-origin: center;
2550
+ opacity: 1;
2551
+ }
2552
+
2553
+ to {
2554
+ -webkit-transform-origin: center;
2555
+ transform-origin: center;
2556
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2557
+ transform: rotate3d(0, 0, 1, 200deg);
2558
+ opacity: 0;
2559
+ }
2560
+ }
2561
+
2562
+ .rotateOut {
2563
+ -webkit-animation-name: rotateOut;
2564
+ animation-name: rotateOut;
2565
+ }
2566
+
2567
+ @-webkit-keyframes rotateOutDownLeft {
2568
+ from {
2569
+ -webkit-transform-origin: left bottom;
2570
+ transform-origin: left bottom;
2571
+ opacity: 1;
2572
+ }
2573
+
2574
+ to {
2575
+ -webkit-transform-origin: left bottom;
2576
+ transform-origin: left bottom;
2577
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2578
+ transform: rotate3d(0, 0, 1, 45deg);
2579
+ opacity: 0;
2580
+ }
2581
+ }
2582
+
2583
+ @keyframes rotateOutDownLeft {
2584
+ from {
2585
+ -webkit-transform-origin: left bottom;
2586
+ transform-origin: left bottom;
2587
+ opacity: 1;
2588
+ }
2589
+
2590
+ to {
2591
+ -webkit-transform-origin: left bottom;
2592
+ transform-origin: left bottom;
2593
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2594
+ transform: rotate3d(0, 0, 1, 45deg);
2595
+ opacity: 0;
2596
+ }
2597
+ }
2598
+
2599
+ .rotateOutDownLeft {
2600
+ -webkit-animation-name: rotateOutDownLeft;
2601
+ animation-name: rotateOutDownLeft;
2602
+ }
2603
+
2604
+ @-webkit-keyframes rotateOutDownRight {
2605
+ from {
2606
+ -webkit-transform-origin: right bottom;
2607
+ transform-origin: right bottom;
2608
+ opacity: 1;
2609
+ }
2610
+
2611
+ to {
2612
+ -webkit-transform-origin: right bottom;
2613
+ transform-origin: right bottom;
2614
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2615
+ transform: rotate3d(0, 0, 1, -45deg);
2616
+ opacity: 0;
2617
+ }
2618
+ }
2619
+
2620
+ @keyframes rotateOutDownRight {
2621
+ from {
2622
+ -webkit-transform-origin: right bottom;
2623
+ transform-origin: right bottom;
2624
+ opacity: 1;
2625
+ }
2626
+
2627
+ to {
2628
+ -webkit-transform-origin: right bottom;
2629
+ transform-origin: right bottom;
2630
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2631
+ transform: rotate3d(0, 0, 1, -45deg);
2632
+ opacity: 0;
2633
+ }
2634
+ }
2635
+
2636
+ .rotateOutDownRight {
2637
+ -webkit-animation-name: rotateOutDownRight;
2638
+ animation-name: rotateOutDownRight;
2639
+ }
2640
+
2641
+ @-webkit-keyframes rotateOutUpLeft {
2642
+ from {
2643
+ -webkit-transform-origin: left bottom;
2644
+ transform-origin: left bottom;
2645
+ opacity: 1;
2646
+ }
2647
+
2648
+ to {
2649
+ -webkit-transform-origin: left bottom;
2650
+ transform-origin: left bottom;
2651
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2652
+ transform: rotate3d(0, 0, 1, -45deg);
2653
+ opacity: 0;
2654
+ }
2655
+ }
2656
+
2657
+ @keyframes rotateOutUpLeft {
2658
+ from {
2659
+ -webkit-transform-origin: left bottom;
2660
+ transform-origin: left bottom;
2661
+ opacity: 1;
2662
+ }
2663
+
2664
+ to {
2665
+ -webkit-transform-origin: left bottom;
2666
+ transform-origin: left bottom;
2667
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2668
+ transform: rotate3d(0, 0, 1, -45deg);
2669
+ opacity: 0;
2670
+ }
2671
+ }
2672
+
2673
+ .rotateOutUpLeft {
2674
+ -webkit-animation-name: rotateOutUpLeft;
2675
+ animation-name: rotateOutUpLeft;
2676
+ }
2677
+
2678
+ @-webkit-keyframes rotateOutUpRight {
2679
+ from {
2680
+ -webkit-transform-origin: right bottom;
2681
+ transform-origin: right bottom;
2682
+ opacity: 1;
2683
+ }
2684
+
2685
+ to {
2686
+ -webkit-transform-origin: right bottom;
2687
+ transform-origin: right bottom;
2688
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2689
+ transform: rotate3d(0, 0, 1, 90deg);
2690
+ opacity: 0;
2691
+ }
2692
+ }
2693
+
2694
+ @keyframes rotateOutUpRight {
2695
+ from {
2696
+ -webkit-transform-origin: right bottom;
2697
+ transform-origin: right bottom;
2698
+ opacity: 1;
2699
+ }
2700
+
2701
+ to {
2702
+ -webkit-transform-origin: right bottom;
2703
+ transform-origin: right bottom;
2704
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2705
+ transform: rotate3d(0, 0, 1, 90deg);
2706
+ opacity: 0;
2707
+ }
2708
+ }
2709
+
2710
+ .rotateOutUpRight {
2711
+ -webkit-animation-name: rotateOutUpRight;
2712
+ animation-name: rotateOutUpRight;
2713
+ }
2714
+
2715
+ @-webkit-keyframes hinge {
2716
+ 0% {
2717
+ -webkit-transform-origin: top left;
2718
+ transform-origin: top left;
2719
+ -webkit-animation-timing-function: ease-in-out;
2720
+ animation-timing-function: ease-in-out;
2721
+ }
2722
+
2723
+ 20%,
2724
+ 60% {
2725
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2726
+ transform: rotate3d(0, 0, 1, 80deg);
2727
+ -webkit-transform-origin: top left;
2728
+ transform-origin: top left;
2729
+ -webkit-animation-timing-function: ease-in-out;
2730
+ animation-timing-function: ease-in-out;
2731
+ }
2732
+
2733
+ 40%,
2734
+ 80% {
2735
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2736
+ transform: rotate3d(0, 0, 1, 60deg);
2737
+ -webkit-transform-origin: top left;
2738
+ transform-origin: top left;
2739
+ -webkit-animation-timing-function: ease-in-out;
2740
+ animation-timing-function: ease-in-out;
2741
+ opacity: 1;
2742
+ }
2743
+
2744
+ to {
2745
+ -webkit-transform: translate3d(0, 700px, 0);
2746
+ transform: translate3d(0, 700px, 0);
2747
+ opacity: 0;
2748
+ }
2749
+ }
2750
+
2751
+ @keyframes hinge {
2752
+ 0% {
2753
+ -webkit-transform-origin: top left;
2754
+ transform-origin: top left;
2755
+ -webkit-animation-timing-function: ease-in-out;
2756
+ animation-timing-function: ease-in-out;
2757
+ }
2758
+
2759
+ 20%,
2760
+ 60% {
2761
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2762
+ transform: rotate3d(0, 0, 1, 80deg);
2763
+ -webkit-transform-origin: top left;
2764
+ transform-origin: top left;
2765
+ -webkit-animation-timing-function: ease-in-out;
2766
+ animation-timing-function: ease-in-out;
2767
+ }
2768
+
2769
+ 40%,
2770
+ 80% {
2771
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2772
+ transform: rotate3d(0, 0, 1, 60deg);
2773
+ -webkit-transform-origin: top left;
2774
+ transform-origin: top left;
2775
+ -webkit-animation-timing-function: ease-in-out;
2776
+ animation-timing-function: ease-in-out;
2777
+ opacity: 1;
2778
+ }
2779
+
2780
+ to {
2781
+ -webkit-transform: translate3d(0, 700px, 0);
2782
+ transform: translate3d(0, 700px, 0);
2783
+ opacity: 0;
2784
+ }
2785
+ }
2786
+
2787
+ .hinge {
2788
+ -webkit-animation-duration: 2s;
2789
+ animation-duration: 2s;
2790
+ -webkit-animation-name: hinge;
2791
+ animation-name: hinge;
2792
+ }
2793
+
2794
+ @-webkit-keyframes jackInTheBox {
2795
+ from {
2796
+ opacity: 0;
2797
+ -webkit-transform: scale(0.1) rotate(30deg);
2798
+ transform: scale(0.1) rotate(30deg);
2799
+ -webkit-transform-origin: center bottom;
2800
+ transform-origin: center bottom;
2801
+ }
2802
+
2803
+ 50% {
2804
+ -webkit-transform: rotate(-10deg);
2805
+ transform: rotate(-10deg);
2806
+ }
2807
+
2808
+ 70% {
2809
+ -webkit-transform: rotate(3deg);
2810
+ transform: rotate(3deg);
2811
+ }
2812
+
2813
+ to {
2814
+ opacity: 1;
2815
+ -webkit-transform: scale(1);
2816
+ transform: scale(1);
2817
+ }
2818
+ }
2819
+
2820
+ @keyframes jackInTheBox {
2821
+ from {
2822
+ opacity: 0;
2823
+ -webkit-transform: scale(0.1) rotate(30deg);
2824
+ transform: scale(0.1) rotate(30deg);
2825
+ -webkit-transform-origin: center bottom;
2826
+ transform-origin: center bottom;
2827
+ }
2828
+
2829
+ 50% {
2830
+ -webkit-transform: rotate(-10deg);
2831
+ transform: rotate(-10deg);
2832
+ }
2833
+
2834
+ 70% {
2835
+ -webkit-transform: rotate(3deg);
2836
+ transform: rotate(3deg);
2837
+ }
2838
+
2839
+ to {
2840
+ opacity: 1;
2841
+ -webkit-transform: scale(1);
2842
+ transform: scale(1);
2843
+ }
2844
+ }
2845
+
2846
+ .jackInTheBox {
2847
+ -webkit-animation-name: jackInTheBox;
2848
+ animation-name: jackInTheBox;
2849
+ }
2850
+
2851
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2852
+
2853
+ @-webkit-keyframes rollIn {
2854
+ from {
2855
+ opacity: 0;
2856
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2857
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2858
+ }
2859
+
2860
+ to {
2861
+ opacity: 1;
2862
+ -webkit-transform: translate3d(0, 0, 0);
2863
+ transform: translate3d(0, 0, 0);
2864
+ }
2865
+ }
2866
+
2867
+ @keyframes rollIn {
2868
+ from {
2869
+ opacity: 0;
2870
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2871
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2872
+ }
2873
+
2874
+ to {
2875
+ opacity: 1;
2876
+ -webkit-transform: translate3d(0, 0, 0);
2877
+ transform: translate3d(0, 0, 0);
2878
+ }
2879
+ }
2880
+
2881
+ .rollIn {
2882
+ -webkit-animation-name: rollIn;
2883
+ animation-name: rollIn;
2884
+ }
2885
+
2886
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2887
+
2888
+ @-webkit-keyframes rollOut {
2889
+ from {
2890
+ opacity: 1;
2891
+ }
2892
+
2893
+ to {
2894
+ opacity: 0;
2895
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2896
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2897
+ }
2898
+ }
2899
+
2900
+ @keyframes rollOut {
2901
+ from {
2902
+ opacity: 1;
2903
+ }
2904
+
2905
+ to {
2906
+ opacity: 0;
2907
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2908
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2909
+ }
2910
+ }
2911
+
2912
+ .rollOut {
2913
+ -webkit-animation-name: rollOut;
2914
+ animation-name: rollOut;
2915
+ }
2916
+
2917
+ @-webkit-keyframes zoomIn {
2918
+ from {
2919
+ opacity: 0;
2920
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
2921
+ transform: scale3d(0.3, 0.3, 0.3);
2922
+ }
2923
+
2924
+ 50% {
2925
+ opacity: 1;
2926
+ }
2927
+ }
2928
+
2929
+ @keyframes zoomIn {
2930
+ from {
2931
+ opacity: 0;
2932
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
2933
+ transform: scale3d(0.3, 0.3, 0.3);
2934
+ }
2935
+
2936
+ 50% {
2937
+ opacity: 1;
2938
+ }
2939
+ }
2940
+
2941
+ .zoomIn {
2942
+ -webkit-animation-name: zoomIn;
2943
+ animation-name: zoomIn;
2944
+ }
2945
+
2946
+ @-webkit-keyframes zoomInDown {
2947
+ from {
2948
+ opacity: 0;
2949
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2950
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2951
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2952
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2953
+ }
2954
+
2955
+ 60% {
2956
+ opacity: 1;
2957
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2958
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2959
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2960
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2961
+ }
2962
+ }
2963
+
2964
+ @keyframes zoomInDown {
2965
+ from {
2966
+ opacity: 0;
2967
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2968
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2969
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2970
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2971
+ }
2972
+
2973
+ 60% {
2974
+ opacity: 1;
2975
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2976
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2977
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2978
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2979
+ }
2980
+ }
2981
+
2982
+ .zoomInDown {
2983
+ -webkit-animation-name: zoomInDown;
2984
+ animation-name: zoomInDown;
2985
+ }
2986
+
2987
+ @-webkit-keyframes zoomInLeft {
2988
+ from {
2989
+ opacity: 0;
2990
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
2991
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
2992
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2993
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2994
+ }
2995
+
2996
+ 60% {
2997
+ opacity: 1;
2998
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
2999
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
3000
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3001
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3002
+ }
3003
+ }
3004
+
3005
+ @keyframes zoomInLeft {
3006
+ from {
3007
+ opacity: 0;
3008
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
3009
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
3010
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3011
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3012
+ }
3013
+
3014
+ 60% {
3015
+ opacity: 1;
3016
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
3017
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
3018
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3019
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3020
+ }
3021
+ }
3022
+
3023
+ .zoomInLeft {
3024
+ -webkit-animation-name: zoomInLeft;
3025
+ animation-name: zoomInLeft;
3026
+ }
3027
+
3028
+ @-webkit-keyframes zoomInRight {
3029
+ from {
3030
+ opacity: 0;
3031
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3032
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3033
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3034
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3035
+ }
3036
+
3037
+ 60% {
3038
+ opacity: 1;
3039
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3040
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3041
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3042
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3043
+ }
3044
+ }
3045
+
3046
+ @keyframes zoomInRight {
3047
+ from {
3048
+ opacity: 0;
3049
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3050
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3051
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3052
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3053
+ }
3054
+
3055
+ 60% {
3056
+ opacity: 1;
3057
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3058
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3059
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3060
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3061
+ }
3062
+ }
3063
+
3064
+ .zoomInRight {
3065
+ -webkit-animation-name: zoomInRight;
3066
+ animation-name: zoomInRight;
3067
+ }
3068
+
3069
+ @-webkit-keyframes zoomInUp {
3070
+ from {
3071
+ opacity: 0;
3072
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3073
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3074
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3075
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3076
+ }
3077
+
3078
+ 60% {
3079
+ opacity: 1;
3080
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3081
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3082
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3083
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3084
+ }
3085
+ }
3086
+
3087
+ @keyframes zoomInUp {
3088
+ from {
3089
+ opacity: 0;
3090
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3091
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3092
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3093
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3094
+ }
3095
+
3096
+ 60% {
3097
+ opacity: 1;
3098
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3099
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3100
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3101
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3102
+ }
3103
+ }
3104
+
3105
+ .zoomInUp {
3106
+ -webkit-animation-name: zoomInUp;
3107
+ animation-name: zoomInUp;
3108
+ }
3109
+
3110
+ @-webkit-keyframes zoomOut {
3111
+ from {
3112
+ opacity: 1;
3113
+ }
3114
+
3115
+ 50% {
3116
+ opacity: 0;
3117
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
3118
+ transform: scale3d(0.3, 0.3, 0.3);
3119
+ }
3120
+
3121
+ to {
3122
+ opacity: 0;
3123
+ }
3124
+ }
3125
+
3126
+ @keyframes zoomOut {
3127
+ from {
3128
+ opacity: 1;
3129
+ }
3130
+
3131
+ 50% {
3132
+ opacity: 0;
3133
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
3134
+ transform: scale3d(0.3, 0.3, 0.3);
3135
+ }
3136
+
3137
+ to {
3138
+ opacity: 0;
3139
+ }
3140
+ }
3141
+
3142
+ .zoomOut {
3143
+ -webkit-animation-name: zoomOut;
3144
+ animation-name: zoomOut;
3145
+ }
3146
+
3147
+ @-webkit-keyframes zoomOutDown {
3148
+ 40% {
3149
+ opacity: 1;
3150
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3151
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3152
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3153
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3154
+ }
3155
+
3156
+ to {
3157
+ opacity: 0;
3158
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3159
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3160
+ -webkit-transform-origin: center bottom;
3161
+ transform-origin: center bottom;
3162
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3163
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3164
+ }
3165
+ }
3166
+
3167
+ @keyframes zoomOutDown {
3168
+ 40% {
3169
+ opacity: 1;
3170
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3171
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3172
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3173
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3174
+ }
3175
+
3176
+ to {
3177
+ opacity: 0;
3178
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3179
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3180
+ -webkit-transform-origin: center bottom;
3181
+ transform-origin: center bottom;
3182
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3183
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3184
+ }
3185
+ }
3186
+
3187
+ .zoomOutDown {
3188
+ -webkit-animation-name: zoomOutDown;
3189
+ animation-name: zoomOutDown;
3190
+ }
3191
+
3192
+ @-webkit-keyframes zoomOutLeft {
3193
+ 40% {
3194
+ opacity: 1;
3195
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3196
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3197
+ }
3198
+
3199
+ to {
3200
+ opacity: 0;
3201
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
3202
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
3203
+ -webkit-transform-origin: left center;
3204
+ transform-origin: left center;
3205
+ }
3206
+ }
3207
+
3208
+ @keyframes zoomOutLeft {
3209
+ 40% {
3210
+ opacity: 1;
3211
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3212
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3213
+ }
3214
+
3215
+ to {
3216
+ opacity: 0;
3217
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
3218
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
3219
+ -webkit-transform-origin: left center;
3220
+ transform-origin: left center;
3221
+ }
3222
+ }
3223
+
3224
+ .zoomOutLeft {
3225
+ -webkit-animation-name: zoomOutLeft;
3226
+ animation-name: zoomOutLeft;
3227
+ }
3228
+
3229
+ @-webkit-keyframes zoomOutRight {
3230
+ 40% {
3231
+ opacity: 1;
3232
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3233
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3234
+ }
3235
+
3236
+ to {
3237
+ opacity: 0;
3238
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
3239
+ transform: scale(0.1) translate3d(2000px, 0, 0);
3240
+ -webkit-transform-origin: right center;
3241
+ transform-origin: right center;
3242
+ }
3243
+ }
3244
+
3245
+ @keyframes zoomOutRight {
3246
+ 40% {
3247
+ opacity: 1;
3248
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3249
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3250
+ }
3251
+
3252
+ to {
3253
+ opacity: 0;
3254
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
3255
+ transform: scale(0.1) translate3d(2000px, 0, 0);
3256
+ -webkit-transform-origin: right center;
3257
+ transform-origin: right center;
3258
+ }
3259
+ }
3260
+
3261
+ .zoomOutRight {
3262
+ -webkit-animation-name: zoomOutRight;
3263
+ animation-name: zoomOutRight;
3264
+ }
3265
+
3266
+ @-webkit-keyframes zoomOutUp {
3267
+ 40% {
3268
+ opacity: 1;
3269
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3270
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3271
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3272
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3273
+ }
3274
+
3275
+ to {
3276
+ opacity: 0;
3277
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3278
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3279
+ -webkit-transform-origin: center bottom;
3280
+ transform-origin: center bottom;
3281
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3282
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3283
+ }
3284
+ }
3285
+
3286
+ @keyframes zoomOutUp {
3287
+ 40% {
3288
+ opacity: 1;
3289
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3290
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3291
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3292
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3293
+ }
3294
+
3295
+ to {
3296
+ opacity: 0;
3297
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3298
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3299
+ -webkit-transform-origin: center bottom;
3300
+ transform-origin: center bottom;
3301
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3302
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3303
+ }
3304
+ }
3305
+
3306
+ .zoomOutUp {
3307
+ -webkit-animation-name: zoomOutUp;
3308
+ animation-name: zoomOutUp;
3309
+ }
3310
+
3311
+ @-webkit-keyframes slideInDown {
3312
+ from {
3313
+ -webkit-transform: translate3d(0, -100%, 0);
3314
+ transform: translate3d(0, -100%, 0);
3315
+ visibility: visible;
3316
+ }
3317
+
3318
+ to {
3319
+ -webkit-transform: translate3d(0, 0, 0);
3320
+ transform: translate3d(0, 0, 0);
3321
+ }
3322
+ }
3323
+
3324
+ @keyframes slideInDown {
3325
+ from {
3326
+ -webkit-transform: translate3d(0, -100%, 0);
3327
+ transform: translate3d(0, -100%, 0);
3328
+ visibility: visible;
3329
+ }
3330
+
3331
+ to {
3332
+ -webkit-transform: translate3d(0, 0, 0);
3333
+ transform: translate3d(0, 0, 0);
3334
+ }
3335
+ }
3336
+
3337
+ .slideInDown {
3338
+ -webkit-animation-name: slideInDown;
3339
+ animation-name: slideInDown;
3340
+ }
3341
+
3342
+ @-webkit-keyframes slideInLeft {
3343
+ from {
3344
+ -webkit-transform: translate3d(-100%, 0, 0);
3345
+ transform: translate3d(-100%, 0, 0);
3346
+ visibility: visible;
3347
+ }
3348
+
3349
+ to {
3350
+ -webkit-transform: translate3d(0, 0, 0);
3351
+ transform: translate3d(0, 0, 0);
3352
+ }
3353
+ }
3354
+
3355
+ @keyframes slideInLeft {
3356
+ from {
3357
+ -webkit-transform: translate3d(-100%, 0, 0);
3358
+ transform: translate3d(-100%, 0, 0);
3359
+ visibility: visible;
3360
+ }
3361
+
3362
+ to {
3363
+ -webkit-transform: translate3d(0, 0, 0);
3364
+ transform: translate3d(0, 0, 0);
3365
+ }
3366
+ }
3367
+
3368
+ .slideInLeft {
3369
+ -webkit-animation-name: slideInLeft;
3370
+ animation-name: slideInLeft;
3371
+ }
3372
+
3373
+ @-webkit-keyframes slideInRight {
3374
+ from {
3375
+ -webkit-transform: translate3d(100%, 0, 0);
3376
+ transform: translate3d(100%, 0, 0);
3377
+ visibility: visible;
3378
+ }
3379
+
3380
+ to {
3381
+ -webkit-transform: translate3d(0, 0, 0);
3382
+ transform: translate3d(0, 0, 0);
3383
+ }
3384
+ }
3385
+
3386
+ @keyframes slideInRight {
3387
+ from {
3388
+ -webkit-transform: translate3d(100%, 0, 0);
3389
+ transform: translate3d(100%, 0, 0);
3390
+ visibility: visible;
3391
+ }
3392
+
3393
+ to {
3394
+ -webkit-transform: translate3d(0, 0, 0);
3395
+ transform: translate3d(0, 0, 0);
3396
+ }
3397
+ }
3398
+
3399
+ .slideInRight {
3400
+ -webkit-animation-name: slideInRight;
3401
+ animation-name: slideInRight;
3402
+ }
3403
+
3404
+ @-webkit-keyframes slideInUp {
3405
+ from {
3406
+ -webkit-transform: translate3d(0, 100%, 0);
3407
+ transform: translate3d(0, 100%, 0);
3408
+ visibility: visible;
3409
+ }
3410
+
3411
+ to {
3412
+ -webkit-transform: translate3d(0, 0, 0);
3413
+ transform: translate3d(0, 0, 0);
3414
+ }
3415
+ }
3416
+
3417
+ @keyframes slideInUp {
3418
+ from {
3419
+ -webkit-transform: translate3d(0, 100%, 0);
3420
+ transform: translate3d(0, 100%, 0);
3421
+ visibility: visible;
3422
+ }
3423
+
3424
+ to {
3425
+ -webkit-transform: translate3d(0, 0, 0);
3426
+ transform: translate3d(0, 0, 0);
3427
+ }
3428
+ }
3429
+
3430
+ .slideInUp {
3431
+ -webkit-animation-name: slideInUp;
3432
+ animation-name: slideInUp;
3433
+ }
3434
+
3435
+ @-webkit-keyframes slideOutDown {
3436
+ from {
3437
+ -webkit-transform: translate3d(0, 0, 0);
3438
+ transform: translate3d(0, 0, 0);
3439
+ }
3440
+
3441
+ to {
3442
+ visibility: hidden;
3443
+ -webkit-transform: translate3d(0, 100%, 0);
3444
+ transform: translate3d(0, 100%, 0);
3445
+ }
3446
+ }
3447
+
3448
+ @keyframes slideOutDown {
3449
+ from {
3450
+ -webkit-transform: translate3d(0, 0, 0);
3451
+ transform: translate3d(0, 0, 0);
3452
+ }
3453
+
3454
+ to {
3455
+ visibility: hidden;
3456
+ -webkit-transform: translate3d(0, 100%, 0);
3457
+ transform: translate3d(0, 100%, 0);
3458
+ }
3459
+ }
3460
+
3461
+ .slideOutDown {
3462
+ -webkit-animation-name: slideOutDown;
3463
+ animation-name: slideOutDown;
3464
+ }
3465
+
3466
+ @-webkit-keyframes slideOutLeft {
3467
+ from {
3468
+ -webkit-transform: translate3d(0, 0, 0);
3469
+ transform: translate3d(0, 0, 0);
3470
+ }
3471
+
3472
+ to {
3473
+ visibility: hidden;
3474
+ -webkit-transform: translate3d(-100%, 0, 0);
3475
+ transform: translate3d(-100%, 0, 0);
3476
+ }
3477
+ }
3478
+
3479
+ @keyframes slideOutLeft {
3480
+ from {
3481
+ -webkit-transform: translate3d(0, 0, 0);
3482
+ transform: translate3d(0, 0, 0);
3483
+ }
3484
+
3485
+ to {
3486
+ visibility: hidden;
3487
+ -webkit-transform: translate3d(-100%, 0, 0);
3488
+ transform: translate3d(-100%, 0, 0);
3489
+ }
3490
+ }
3491
+
3492
+ .slideOutLeft {
3493
+ -webkit-animation-name: slideOutLeft;
3494
+ animation-name: slideOutLeft;
3495
+ }
3496
+
3497
+ @-webkit-keyframes slideOutRight {
3498
+ from {
3499
+ -webkit-transform: translate3d(0, 0, 0);
3500
+ transform: translate3d(0, 0, 0);
3501
+ }
3502
+
3503
+ to {
3504
+ visibility: hidden;
3505
+ -webkit-transform: translate3d(100%, 0, 0);
3506
+ transform: translate3d(100%, 0, 0);
3507
+ }
3508
+ }
3509
+
3510
+ @keyframes slideOutRight {
3511
+ from {
3512
+ -webkit-transform: translate3d(0, 0, 0);
3513
+ transform: translate3d(0, 0, 0);
3514
+ }
3515
+
3516
+ to {
3517
+ visibility: hidden;
3518
+ -webkit-transform: translate3d(100%, 0, 0);
3519
+ transform: translate3d(100%, 0, 0);
3520
+ }
3521
+ }
3522
+
3523
+ .slideOutRight {
3524
+ -webkit-animation-name: slideOutRight;
3525
+ animation-name: slideOutRight;
3526
+ }
3527
+
3528
+ @-webkit-keyframes slideOutUp {
3529
+ from {
3530
+ -webkit-transform: translate3d(0, 0, 0);
3531
+ transform: translate3d(0, 0, 0);
3532
+ }
3533
+
3534
+ to {
3535
+ visibility: hidden;
3536
+ -webkit-transform: translate3d(0, -100%, 0);
3537
+ transform: translate3d(0, -100%, 0);
3538
+ }
3539
+ }
3540
+
3541
+ @keyframes slideOutUp {
3542
+ from {
3543
+ -webkit-transform: translate3d(0, 0, 0);
3544
+ transform: translate3d(0, 0, 0);
3545
+ }
3546
+
3547
+ to {
3548
+ visibility: hidden;
3549
+ -webkit-transform: translate3d(0, -100%, 0);
3550
+ transform: translate3d(0, -100%, 0);
3551
+ }
3552
+ }
3553
+
3554
+ .slideOutUp {
3555
+ -webkit-animation-name: slideOutUp;
3556
+ animation-name: slideOutUp;
3557
+ }
3558
+
3559
+ .animated {
3560
+ -webkit-animation-duration: 1s;
3561
+ animation-duration: 1s;
3562
+ -webkit-animation-fill-mode: both;
3563
+ animation-fill-mode: both;
3564
+ }
3565
+
3566
+ .animated.infinite {
3567
+ -webkit-animation-iteration-count: infinite;
3568
+ animation-iteration-count: infinite;
3569
+ }
3570
+
3571
+ .animated.delay-1s {
3572
+ -webkit-animation-delay: 1s;
3573
+ animation-delay: 1s;
3574
+ }
3575
+
3576
+ .animated.delay-2s {
3577
+ -webkit-animation-delay: 2s;
3578
+ animation-delay: 2s;
3579
+ }
3580
+
3581
+ .animated.delay-3s {
3582
+ -webkit-animation-delay: 3s;
3583
+ animation-delay: 3s;
3584
+ }
3585
+
3586
+ .animated.delay-4s {
3587
+ -webkit-animation-delay: 4s;
3588
+ animation-delay: 4s;
3589
+ }
3590
+
3591
+ .animated.delay-5s {
3592
+ -webkit-animation-delay: 5s;
3593
+ animation-delay: 5s;
3594
+ }
3595
+
3596
+ .animated.fast {
3597
+ -webkit-animation-duration: 800ms;
3598
+ animation-duration: 800ms;
3599
+ }
3600
+
3601
+ .animated.faster {
3602
+ -webkit-animation-duration: 500ms;
3603
+ animation-duration: 500ms;
3604
+ }
3605
+
3606
+ .animated.slow {
3607
+ -webkit-animation-duration: 2s;
3608
+ animation-duration: 2s;
3609
+ }
3610
+
3611
+ .animated.slower {
3612
+ -webkit-animation-duration: 3s;
3613
+ animation-duration: 3s;
3614
+ }
3615
+
3616
+ @media (print), (prefers-reduced-motion: reduce) {
3617
+ .animated {
3618
+ -webkit-animation-duration: 1ms !important;
3619
+ animation-duration: 1ms !important;
3620
+ -webkit-transition-duration: 1ms !important;
3621
+ transition-duration: 1ms !important;
3622
+ -webkit-animation-iteration-count: 1 !important;
3623
+ animation-iteration-count: 1 !important;
3624
+ }
3625
+ }
css/common.css ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Created by dev: 06-11-2019
3
+ */
4
+ .qsm-page .pages_count,
5
+ .quiz_section .pages_count{
6
+ display: block;
7
+ text-align: center;
8
+ }
9
+ .mlw_qmn_question p:empty{
10
+ display: none;
11
+ }
css/qsm-admin.css CHANGED
@@ -468,6 +468,10 @@ Misc.
468
  padding: 10px 10px 10px 10px;
469
  }
470
 
 
 
 
 
471
  /* Popup */
472
 
473
  .qsm-popup {
@@ -684,7 +688,128 @@ h3.addon_category_name {
684
  background: #d7d1d1;
685
  padding: 15px;
686
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
687
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  @media screen and (max-width: 767px){
689
  .qsm-quiz-row td:nth-of-type(2n){
690
  display: none;
468
  padding: 10px 10px 10px 10px;
469
  }
470
 
471
+ .qsm_tab_content label{
472
+ margin-right: 20px;
473
+ }
474
+
475
  /* Popup */
476
 
477
  .qsm-popup {
688
  background: #d7d1d1;
689
  padding: 15px;
690
  }
691
+ /*Design of new radio taggle*/
692
+ .buttonset.ui-buttonset .ui-button.ui-state-active {
693
+ background: #E21130 none repeat scroll 0 0;
694
+ border-color: #E21130 !important;
695
+ }
696
+ .buttonset.ui-buttonset .ui-button.ui-state-active span.ui-button-text{
697
+ color: #fff !important;
698
+ }
699
+ .buttonset.ui-buttonset.green .ui-state-active {
700
+ background: #44c767 none repeat scroll 0 0;
701
+ border-color: #44c767 !important;
702
+ }
703
+ .buttonset.ui-buttonset .ui-button.ui-state-active.ui-corner-left {
704
+ background: #44c767 none repeat scroll 0 0;
705
+ border-color: #44c767 !important;
706
+ }
707
+ .buttonset.ui-buttonset label {
708
+ background: #fff;
709
+ border: 1px solid #B6B6B6;
710
+ margin-right: -5px !important;
711
+ }
712
+ .buttonset.ui-buttonset label span.ui-button-text{
713
+ color: #727272;
714
+ font-size: 12px;
715
+ height: 35px;
716
+ line-height: 35px;
717
+ min-width: 20px;
718
+ padding: 0 10px;
719
+ }
720
+ .qsm_tab_content input[type="text"],
721
+ .qsm_tab_content input[type="number"],
722
+ .qsm_global_settings input[type="text"],
723
+ .qsm_global_settings input[type="number"],
724
+ .qsm_global_settings input[type="email"],
725
+ .qsm-addon-setting-wrap input[type="email"],
726
+ .qsm-addon-setting-wrap input[type="text"],
727
+ .qsm-addon-setting-wrap input[type="number"]{
728
+ background: #ffffff none repeat scroll 0 0;
729
+ border: 1px solid #dddddd;
730
+ border-radius: 5px;
731
+ box-shadow: none;
732
+ color: #666666;
733
+ padding: 10px 15px;
734
+ width: auto;
735
+ height: auto;
736
+ min-width: 230px;
737
+ max-width:100%;
738
+ }
739
+ .qsm_tab_content textarea{
740
+ background: #ffffff none repeat scroll 0 0;
741
+ border: 1px solid #dddddd;
742
+ border-radius: 5px;
743
+ box-shadow: none;
744
+ color: #666666;
745
+ padding: 10px 15px;
746
+ width: auto;
747
+ height: auto;
748
+ }
749
+ .global-sub-text{
750
+ margin-left: 15px;
751
+ }
752
+ /* The switch - the box around the slider */
753
+ .switch {
754
+ position: relative;
755
+ display: inline-block;
756
+ width: 60px;
757
+ height: 34px;
758
+ }
759
 
760
+ /* Hide default HTML checkbox */
761
+ .switch input[type="checkbox"] {
762
+ opacity: 0;
763
+ width: 0;
764
+ height: 0;
765
+ }
766
+ /* The slider */
767
+ .slider {
768
+ position: absolute;
769
+ cursor: pointer;
770
+ top: 0;
771
+ left: 0;
772
+ right: 0;
773
+ bottom: 0;
774
+ background-color: #ccc;
775
+ -webkit-transition: .4s;
776
+ transition: .4s;
777
+ }
778
+
779
+ .slider:before {
780
+ position: absolute;
781
+ content: "";
782
+ height: 26px;
783
+ width: 26px;
784
+ left: 4px;
785
+ bottom: 4px;
786
+ background-color: white;
787
+ -webkit-transition: .4s;
788
+ transition: .4s;
789
+ }
790
+
791
+ input:checked + .slider {
792
+ background-color: #2196F3;
793
+ }
794
+
795
+ input:focus + .slider {
796
+ box-shadow: 0 0 1px #2196F3;
797
+ }
798
+
799
+ input:checked + .slider:before {
800
+ -webkit-transform: translateX(26px);
801
+ -ms-transform: translateX(26px);
802
+ transform: translateX(26px);
803
+ }
804
+
805
+ /* Rounded sliders */
806
+ .slider.round {
807
+ border-radius: 34px;
808
+ }
809
+
810
+ .slider.round:before {
811
+ border-radius: 50%;
812
+ }
813
  @media screen and (max-width: 767px){
814
  .qsm-quiz-row td:nth-of-type(2n){
815
  display: none;
js/admin.js CHANGED
@@ -103,5 +103,7 @@ var QSMAdmin;
103
  }
104
  );
105
  });
 
 
106
  });
107
  }(jQuery));
103
  }
104
  );
105
  });
106
+ /**/
107
+ jQuery('.buttonset').buttonset();
108
  });
109
  }(jQuery));
js/qsm-quiz.js CHANGED
@@ -401,8 +401,8 @@ function qmnValidation( element, quiz_form_id ) {
401
  var number_error = qmn_quiz_data[ quiz_id ].error_messages.number;
402
  var empty_error = qmn_quiz_data[ quiz_id ].error_messages.empty;
403
  var incorrect_error = qmn_quiz_data[ quiz_id ].error_messages.incorrect;
404
- qmnResetError( quiz_form_id );
405
- jQuery( element ).each(function(){
406
  if ( jQuery( this ).attr( 'class' )) {
407
  if( jQuery( this ).attr( 'class' ).indexOf( 'mlwEmail' ) > -1 && this.value !== "" ) {
408
  var x = this.value;
@@ -440,7 +440,7 @@ function qmnValidation( element, quiz_form_id ) {
440
  }
441
  }
442
  if( jQuery( this ).attr( 'class' ).indexOf( 'qsmRequiredSelect' ) > -1 ) {
443
- check_val = jQuery( this ).val();
444
  if ( check_val == "No Answer Provided" ) {
445
  qmnDisplayError( empty_error, jQuery( this ), quiz_form_id );
446
  result = false;
401
  var number_error = qmn_quiz_data[ quiz_id ].error_messages.number;
402
  var empty_error = qmn_quiz_data[ quiz_id ].error_messages.empty;
403
  var incorrect_error = qmn_quiz_data[ quiz_id ].error_messages.incorrect;
404
+ qmnResetError( quiz_form_id );
405
+ jQuery( element ).each(function(){
406
  if ( jQuery( this ).attr( 'class' )) {
407
  if( jQuery( this ).attr( 'class' ).indexOf( 'mlwEmail' ) > -1 && this.value !== "" ) {
408
  var x = this.value;
440
  }
441
  }
442
  if( jQuery( this ).attr( 'class' ).indexOf( 'qsmRequiredSelect' ) > -1 ) {
443
+ check_val = jQuery( this ).val();
444
  if ( check_val == "No Answer Provided" ) {
445
  qmnDisplayError( empty_error, jQuery( this ), quiz_form_id );
446
  result = false;
mlw_quizmaster2.php CHANGED
@@ -2,14 +2,14 @@
2
  /**
3
  * Plugin Name: Quiz And Survey Master
4
  * Description: Easily and quickly add quizzes and surveys to your website.
5
- * Version: 6.3.4
6
  * Author: QSM Team
7
  * Author URI: https://quizandsurveymaster.com/
8
  * Plugin URI: https://quizandsurveymaster.com/
9
  * Text Domain: quiz-master-next
10
  *
11
  * @author QSM Team
12
- * @version 6.3.4
13
  * @package QSM
14
  */
15
 
@@ -19,6 +19,8 @@ if ( ! defined( 'ABSPATH' ) ) {
19
 
20
  define( 'QSM_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
21
  define( 'QSM_SUBMENU', __FILE__);
 
 
22
  /**
23
  * This class is the main class of the plugin
24
  *
@@ -34,7 +36,7 @@ class MLWQuizMasterNext {
34
  * @var string
35
  * @since 4.0.0
36
  */
37
- public $version = '6.3.4';
38
 
39
  /**
40
  * QSM Alert Manager Object
2
  /**
3
  * Plugin Name: Quiz And Survey Master
4
  * Description: Easily and quickly add quizzes and surveys to your website.
5
+ * Version: 6.3.5
6
  * Author: QSM Team
7
  * Author URI: https://quizandsurveymaster.com/
8
  * Plugin URI: https://quizandsurveymaster.com/
9
  * Text Domain: quiz-master-next
10
  *
11
  * @author QSM Team
12
+ * @version 6.3.5
13
  * @package QSM
14
  */
15
 
19
 
20
  define( 'QSM_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
21
  define( 'QSM_SUBMENU', __FILE__);
22
+ define( 'hide_qsm_adv', true);
23
+
24
  /**
25
  * This class is the main class of the plugin
26
  *
36
  * @var string
37
  * @since 4.0.0
38
  */
39
+ public $version = '6.3.5';
40
 
41
  /**
42
  * QSM Alert Manager Object
php/admin/addons-page.php CHANGED
@@ -17,8 +17,9 @@ function qmn_addons_page() {
17
  global $mlwQuizMasterNext;
18
  $active_tab = strtolower(str_replace(" ", "-", isset($_GET['tab']) ? $_GET['tab'] : __('Featured Addons', 'quiz-master-next')));
19
  $tab_array = $mlwQuizMasterNext->pluginHelper->get_addon_tabs();
 
20
  ?>
21
- <div class="wrap">
22
  <h2>Quiz And Survey Master Addon Settings</h2>
23
  <h2 class="nav-tab-wrapper">
24
  <?php
17
  global $mlwQuizMasterNext;
18
  $active_tab = strtolower(str_replace(" ", "-", isset($_GET['tab']) ? $_GET['tab'] : __('Featured Addons', 'quiz-master-next')));
19
  $tab_array = $mlwQuizMasterNext->pluginHelper->get_addon_tabs();
20
+ wp_enqueue_style( 'qsm_admin_style', plugins_url( '../../css/qsm-admin.css', __FILE__ ), array(), $mlwQuizMasterNext->version );
21
  ?>
22
+ <div class="wrap qsm-addon-setting-wrap">
23
  <h2>Quiz And Survey Master Addon Settings</h2>
24
  <h2 class="nav-tab-wrapper">
25
  <?php
php/admin/admin-results-page.php CHANGED
@@ -195,7 +195,7 @@ function qsm_results_overview_tab_content() {
195
  } else {
196
  $mlw_quiz_data = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_results WHERE deleted = '0' $search_phrase_sql $order_by_sql LIMIT %d, %d", $result_begin, $table_limit ) );
197
  }
198
-
199
  wp_enqueue_script( 'jquery' );
200
  wp_enqueue_script( 'jquery-ui-core' );
201
  wp_enqueue_script( 'jquery-ui-dialog' );
@@ -307,8 +307,7 @@ function qsm_results_overview_tab_content() {
307
  <table class=widefat>
308
  <thead>
309
  <tr>
310
- <th><input type="checkbox" id="qmn_check_all" /></th>
311
- <th><?php esc_html_e( 'Actions','quiz-master-next' ); ?></th>
312
  <th><?php esc_html_e( 'Quiz Name','quiz-master-next' ); ?></th>
313
  <th><?php esc_html_e( 'Score','quiz-master-next' ); ?></th>
314
  <th><?php esc_html_e( 'Time To Complete','quiz-master-next' ); ?></th>
@@ -321,11 +320,12 @@ function qsm_results_overview_tab_content() {
321
  <th><?php esc_html_e( 'IP Address','quiz-master-next' ); ?></th>
322
  </tr>
323
  </thead>
324
- <?php
325
  $quotes_list = "";
326
  $display = "";
327
  $alternate = "";
328
- foreach ( $mlw_quiz_data as $mlw_quiz_info ) {
 
329
  if ( $alternate ) {
330
  $alternate = '';
331
  } else {
@@ -347,9 +347,8 @@ function qsm_results_overview_tab_content() {
347
  }
348
 
349
  $quotes_list .= "<tr{$alternate}>";
350
- $quotes_list .= "<td><input type='checkbox' class='qmn_delete_checkbox' name='delete_results[]' value='".$mlw_quiz_info->result_id. "' /></td>";
351
- $quotes_list .= "<td><span style='color:green;font-size:16px;'><a href='admin.php?page=qsm_quiz_result_details&&result_id=".$mlw_quiz_info->result_id."'>View</a>|<a onclick=\"deleteResults('".$mlw_quiz_info->result_id."','".esc_js($mlw_quiz_info->quiz_name)."')\" href='#'>Delete</a></span></td>";
352
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->quiz_name . "</span></td>";
353
  if ( $mlw_quiz_info->quiz_system == 0 ) {
354
  $quotes_list .= "<td class='post-title column-title'><span style='font-size:16px;'>" . $mlw_quiz_info->correct ." out of ".$mlw_quiz_info->total." or ".$mlw_quiz_info->correct_score."%</span></td>";
355
  }
@@ -371,10 +370,13 @@ function qsm_results_overview_tab_content() {
371
  }
372
  $date = date_i18n( get_option( 'date_format' ), strtotime( $mlw_quiz_info->time_taken ) );
373
  $time = date( "h:i:s A", strtotime( $mlw_quiz_info->time_taken ) );
374
- $quotes_list .= "<td><span style='font-size:16px;'>$date $time</span></td>";
375
  $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->user_ip . "</span></td>";
376
  $quotes_list .= "</tr>";
377
- }
 
 
 
378
  $display .= "<tbody id=\"the-list\">{$quotes_list}</tbody>";
379
  echo $display;
380
  ?>
195
  } else {
196
  $mlw_quiz_data = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_results WHERE deleted = '0' $search_phrase_sql $order_by_sql LIMIT %d, %d", $result_begin, $table_limit ) );
197
  }
198
+
199
  wp_enqueue_script( 'jquery' );
200
  wp_enqueue_script( 'jquery-ui-core' );
201
  wp_enqueue_script( 'jquery-ui-dialog' );
307
  <table class=widefat>
308
  <thead>
309
  <tr>
310
+ <th><input type="checkbox" id="qmn_check_all" /></th>
 
311
  <th><?php esc_html_e( 'Quiz Name','quiz-master-next' ); ?></th>
312
  <th><?php esc_html_e( 'Score','quiz-master-next' ); ?></th>
313
  <th><?php esc_html_e( 'Time To Complete','quiz-master-next' ); ?></th>
320
  <th><?php esc_html_e( 'IP Address','quiz-master-next' ); ?></th>
321
  </tr>
322
  </thead>
323
+ <?php
324
  $quotes_list = "";
325
  $display = "";
326
  $alternate = "";
327
+ if($mlw_quiz_data){
328
+ foreach ( $mlw_quiz_data as $mlw_quiz_info ) {
329
  if ( $alternate ) {
330
  $alternate = '';
331
  } else {
347
  }
348
 
349
  $quotes_list .= "<tr{$alternate}>";
350
+ $quotes_list .= "<td><input type='checkbox' class='qmn_delete_checkbox' name='delete_results[]' value='".$mlw_quiz_info->result_id. "' /></td>";
351
+ $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->quiz_name . "</span><div class='row-actions'><span style='color:green;font-size:16px;'><a href='admin.php?page=qsm_quiz_result_details&&result_id=".$mlw_quiz_info->result_id."'>View</a> | <a style='color: red;' onclick=\"deleteResults('".$mlw_quiz_info->result_id."','".esc_js($mlw_quiz_info->quiz_name)."')\" href='#'>Delete</a></span></div></td>";
 
352
  if ( $mlw_quiz_info->quiz_system == 0 ) {
353
  $quotes_list .= "<td class='post-title column-title'><span style='font-size:16px;'>" . $mlw_quiz_info->correct ." out of ".$mlw_quiz_info->total." or ".$mlw_quiz_info->correct_score."%</span></td>";
354
  }
370
  }
371
  $date = date_i18n( get_option( 'date_format' ), strtotime( $mlw_quiz_info->time_taken ) );
372
  $time = date( "h:i:s A", strtotime( $mlw_quiz_info->time_taken ) );
373
+ $quotes_list .= "<td><span style='font-size:16px;'><abbr title='$date $time'>$date</abbr></span></td>";
374
  $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->user_ip . "</span></td>";
375
  $quotes_list .= "</tr>";
376
+ }
377
+ }else{
378
+ $quotes_list .= "<tr{$alternate}><td colspan='12' style='text-align: center;'>". __('No record found.','quiz_master_next') ."</td></tr>";
379
+ }
380
  $display .= "<tbody id=\"the-list\">{$quotes_list}</tbody>";
381
  echo $display;
382
  ?>
php/admin/quiz-options-page.php CHANGED
@@ -159,7 +159,7 @@ function qsm_generate_quiz_options() {
159
  <form action='' method='post' id="edit-name-form">
160
  <label><?php _e( 'Name', 'quiz-master-next' ); ?></label>
161
  <input type="text" id="edit_quiz_name" name="edit_quiz_name" value="<?php echo $quiz_name; ?>" />
162
- <input type="hidden" id="edit_quiz_id" name="edit_quiz_id" value="<?php echo isset($_GET['quiz_id']) ? $_GET['quiz_id'] : ''; ?>" />
163
  <?php wp_nonce_field( 'qsm_edit_name_quiz', 'qsm_edit_name_quiz_nonce' ); ?>
164
  </form>
165
  </main>
159
  <form action='' method='post' id="edit-name-form">
160
  <label><?php _e( 'Name', 'quiz-master-next' ); ?></label>
161
  <input type="text" id="edit_quiz_name" name="edit_quiz_name" value="<?php echo $quiz_name; ?>" />
162
+ <input type="hidden" id="edit_quiz_id" name="edit_quiz_id" value="<?php echo isset($_GET['quiz_id']) && is_int($_GET['quiz_id']) ? (int) $_GET['quiz_id'] : '0'; ?>" />
163
  <?php wp_nonce_field( 'qsm_edit_name_quiz', 'qsm_edit_name_quiz_nonce' ); ?>
164
  </form>
165
  </main>
php/admin/settings-page.php CHANGED
@@ -63,12 +63,14 @@ class QMNGlobalSettingsPage {
63
  * @since 4.1.0
64
  * @return void
65
  */
66
- public function global_section() {
67
  _e( 'These settings are applied to the entire plugin and all quizzes.', 'quiz-master-next' );
68
  if ( isset( $_GET["settings-updated"] ) && $_GET["settings-updated"] ) {
69
  flush_rewrite_rules( true );
70
- echo "<span style='color:red;'>" . __( 'Settings have been updated!', 'quiz-master-next' ) . "</span>";
71
- }
 
 
72
  }
73
 
74
  /**
@@ -83,8 +85,8 @@ class QMNGlobalSettingsPage {
83
  if ( isset( $settings['from_email'] ) ) {
84
  $from_email = $settings['from_email'];
85
  }
86
- ?>
87
- <input type='email' name='qmn-settings[from_email]' id='qmn-settings[from_email]' value='<?php echo esc_attr( $from_email ); ?>' />
88
  <?php
89
  }
90
 
@@ -100,8 +102,8 @@ class QMNGlobalSettingsPage {
100
  if ( isset( $settings['from_name'] ) ) {
101
  $from_name = $settings['from_name'];
102
  }
103
- ?>
104
- <input type='text' name='qmn-settings[from_name]' id='qmn-settings[from_name]' value='<?php echo esc_attr( $from_name ); ?>' />
105
  <?php
106
  }
107
 
@@ -117,8 +119,8 @@ class QMNGlobalSettingsPage {
117
  if (isset($settings['facebook_app_id']))
118
  {
119
  $facebook_app_id = esc_attr( $settings['facebook_app_id'] );
120
- }
121
- echo "<input type='text' name='qmn-settings[facebook_app_id]' id='qmn-settings[facebook_app_id]' value='$facebook_app_id' />";
122
  }
123
 
124
  /**
@@ -132,8 +134,8 @@ class QMNGlobalSettingsPage {
132
  $cpt_slug = 'quiz';
133
  if ( isset( $settings['cpt_slug'] ) ) {
134
  $cpt_slug = esc_attr( $settings['cpt_slug'] );
135
- }
136
- echo "<input type='text' name='qmn-settings[cpt_slug]' id='qmn-settings[cpt_slug]' value='$cpt_slug' />";
137
  }
138
 
139
  /**
@@ -147,8 +149,8 @@ class QMNGlobalSettingsPage {
147
  $plural_name = __( 'Quizzes & Surveys', 'quiz-master-next' );
148
  if ( isset( $settings['plural_name'] ) ) {
149
  $plural_name = esc_attr( $settings['plural_name'] );
150
- }
151
- echo "<input type='text' name='qmn-settings[plural_name]' id='qmn-settings[plural_name]' value='$plural_name' />";
152
  }
153
 
154
  /**
@@ -170,7 +172,9 @@ class QMNGlobalSettingsPage {
170
  {
171
  $checked = " checked='checked'";
172
  }
 
173
  echo "<input type='checkbox' name='qmn-settings[cpt_search]' id='qmn-settings[cpt_search]' value='1'$checked />";
 
174
  }
175
 
176
  /**
@@ -192,7 +196,9 @@ class QMNGlobalSettingsPage {
192
  {
193
  $checked = " checked='checked'";
194
  }
 
195
  echo "<input type='checkbox' name='qmn-settings[cpt_archive]' id='qmn-settings[cpt_archive]' value='1'$checked />";
 
196
  }
197
 
198
  /**
@@ -244,9 +250,11 @@ class QMNGlobalSettingsPage {
244
  if ($tracking_allowed == '2')
245
  {
246
  $checked = " checked='checked'";
247
- }
248
- echo "<input type='checkbox' name='qmn-settings[tracking_allowed]' id='qmn-settings[tracking_allowed]' value='2'$checked />";
249
- echo "<label for='qmn-settings[tracking_allowed]'>" . __( "Allow Quiz And Survey Master to anonymously track this plugin's usage and help us make this plugin better.", 'quiz-master-next' ) . "</label>";
 
 
250
  }
251
 
252
  /**
@@ -265,7 +273,9 @@ class QMNGlobalSettingsPage {
265
  if ( '1' == $ip_collection ) {
266
  $checked = " checked='checked'";
267
  }
 
268
  echo "<input type='checkbox' name='qmn-settings[ip_collection]' id='qmn-settings[ip_collection]' value='1'$checked />";
 
269
  }
270
 
271
  /**
@@ -275,15 +285,16 @@ class QMNGlobalSettingsPage {
275
  * @return void
276
  */
277
  public static function display_page() {
 
278
  ?>
279
  <div class="wrap">
280
- <h2><?php _e( 'Global Settings', 'quiz-master-next' ); ?></h2>
281
- <form action="options.php" method="POST">
282
- <?php settings_fields( 'qmn-settings-group' ); ?>
283
- <?php do_settings_sections( 'qmn_global_settings' ); ?>
284
- <?php submit_button(); ?>
285
- </form>
286
- </div>
287
  <?php
288
  }
289
  }
63
  * @since 4.1.0
64
  * @return void
65
  */
66
+ public function global_section() {
67
  _e( 'These settings are applied to the entire plugin and all quizzes.', 'quiz-master-next' );
68
  if ( isset( $_GET["settings-updated"] ) && $_GET["settings-updated"] ) {
69
  flush_rewrite_rules( true );
70
+ echo '<div class="updated" style="padding: 10px;">';
71
+ echo "<span style='color:red;'>" . __( ' Settings have been updated!', 'quiz-master-next' ) . "</span>";
72
+ echo '</div>';
73
+ }
74
  }
75
 
76
  /**
85
  if ( isset( $settings['from_email'] ) ) {
86
  $from_email = $settings['from_email'];
87
  }
88
+ ?>
89
+ <input type='email' name='qmn-settings[from_email]' id='qmn-settings[from_email]' value='<?php echo esc_attr( $from_email ); ?>' />
90
  <?php
91
  }
92
 
102
  if ( isset( $settings['from_name'] ) ) {
103
  $from_name = $settings['from_name'];
104
  }
105
+ ?>
106
+ <input type='text' name='qmn-settings[from_name]' id='qmn-settings[from_name]' value='<?php echo esc_attr( $from_name ); ?>' />
107
  <?php
108
  }
109
 
119
  if (isset($settings['facebook_app_id']))
120
  {
121
  $facebook_app_id = esc_attr( $settings['facebook_app_id'] );
122
+ }
123
+ echo "<input type='text' name='qmn-settings[facebook_app_id]' id='qmn-settings[facebook_app_id]' value='$facebook_app_id' />";
124
  }
125
 
126
  /**
134
  $cpt_slug = 'quiz';
135
  if ( isset( $settings['cpt_slug'] ) ) {
136
  $cpt_slug = esc_attr( $settings['cpt_slug'] );
137
+ }
138
+ echo "<input type='text' name='qmn-settings[cpt_slug]' id='qmn-settings[cpt_slug]' value='$cpt_slug' />";
139
  }
140
 
141
  /**
149
  $plural_name = __( 'Quizzes & Surveys', 'quiz-master-next' );
150
  if ( isset( $settings['plural_name'] ) ) {
151
  $plural_name = esc_attr( $settings['plural_name'] );
152
+ }
153
+ echo "<input type='text' name='qmn-settings[plural_name]' id='qmn-settings[plural_name]' value='$plural_name' />";
154
  }
155
 
156
  /**
172
  {
173
  $checked = " checked='checked'";
174
  }
175
+ echo '<label class="switch">';
176
  echo "<input type='checkbox' name='qmn-settings[cpt_search]' id='qmn-settings[cpt_search]' value='1'$checked />";
177
+ echo '<span class="slider round"></span></label>';
178
  }
179
 
180
  /**
196
  {
197
  $checked = " checked='checked'";
198
  }
199
+ echo '<label class="switch">';
200
  echo "<input type='checkbox' name='qmn-settings[cpt_archive]' id='qmn-settings[cpt_archive]' value='1'$checked />";
201
+ echo '<span class="slider round"></span></label>';
202
  }
203
 
204
  /**
250
  if ($tracking_allowed == '2')
251
  {
252
  $checked = " checked='checked'";
253
+ }
254
+ echo '<label class="switch">';
255
+ echo "<input type='checkbox' name='qmn-settings[tracking_allowed]' id='qmn-settings[tracking_allowed]' value='2'$checked /><span class='slider round'></span>";
256
+ echo '</label>';
257
+ echo "<span class='global-sub-text' for='qmn-settings[tracking_allowed]'>" . __( "Allow Quiz And Survey Master to anonymously track this plugin's usage and help us make this plugin better.", 'quiz-master-next' ) . "</span>";
258
  }
259
 
260
  /**
273
  if ( '1' == $ip_collection ) {
274
  $checked = " checked='checked'";
275
  }
276
+ echo '<label class="switch">';
277
  echo "<input type='checkbox' name='qmn-settings[ip_collection]' id='qmn-settings[ip_collection]' value='1'$checked />";
278
+ echo '<span class="slider round"></span></label>';
279
  }
280
 
281
  /**
285
  * @return void
286
  */
287
  public static function display_page() {
288
+ wp_enqueue_style( 'qsm_admin_style', plugins_url( '../../css/qsm-admin.css', __FILE__ ), array(), $mlwQuizMasterNext->version );
289
  ?>
290
  <div class="wrap">
291
+ <h2><?php _e( 'Global Settings', 'quiz-master-next' ); ?></h2>
292
+ <form action="options.php" method="POST" class="qsm_global_settings">
293
+ <?php settings_fields( 'qmn-settings-group' ); ?>
294
+ <?php do_settings_sections( 'qmn_global_settings' ); ?>
295
+ <?php submit_button(); ?>
296
+ </form>
297
+ </div>
298
  <?php
299
  }
300
  }
php/admin/tools-page.php CHANGED
@@ -21,6 +21,13 @@ function qsm_generate_quiz_tools() {
21
  add_meta_box( 'qsm_restore_box', 'Restore Quiz', 'qsm_restore_function', 'quiz_wpss' );
22
  add_meta_box( 'qsm_audit_box', 'Audit Trail', 'qsm_audit_box', 'quiz_wpss' );
23
  ?>
 
 
 
 
 
 
 
24
  <div class="wrap">
25
  <h2><?php esc_html_e('Tools', 'quiz-master-next'); ?></h2>
26
 
21
  add_meta_box( 'qsm_restore_box', 'Restore Quiz', 'qsm_restore_function', 'quiz_wpss' );
22
  add_meta_box( 'qsm_audit_box', 'Audit Trail', 'qsm_audit_box', 'quiz_wpss' );
23
  ?>
24
+ <style type="text/css">
25
+ #qsm_restore_box .hndle,
26
+ #qsm_audit_box .hndle{
27
+ padding-left: 15px;
28
+ padding-bottom: 15px;
29
+ }
30
+ </style>
31
  <div class="wrap">
32
  <h2><?php esc_html_e('Tools', 'quiz-master-next'); ?></h2>
33
 
php/adverts-generate.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  function qsm_show_adverts() {
20
 
21
  // Checks if the option for showing ads if True. Will be false if the No Ads addon is installed.
22
- if ( 'true' == get_option( 'mlw_advert_shows' ) ) {
23
 
24
  global $mlwQuizMasterNext;
25
  wp_enqueue_style( 'qsm_admin_style', plugins_url( '../css/qsm-admin.css', __FILE__ ), array(), $mlwQuizMasterNext->version );
19
  function qsm_show_adverts() {
20
 
21
  // Checks if the option for showing ads if True. Will be false if the No Ads addon is installed.
22
+ if ( 'true' == get_option( 'mlw_advert_shows' ) && hide_qsm_adv !== TRUE ) {
23
 
24
  global $mlwQuizMasterNext;
25
  wp_enqueue_style( 'qsm_admin_style', plugins_url( '../css/qsm-admin.css', __FILE__ ), array(), $mlwQuizMasterNext->version );
php/classes/class-qmn-alert-manager.php CHANGED
@@ -41,7 +41,7 @@ class MlwQmnAlertManager {
41
  $alert_list .= "<div id=\"message\" class=\"error below-h2\"><p><strong>".__('Error!', 'quiz-master-next')." </strong>".$alert["message"]."</p></div>";
42
  }
43
  }
44
- echo $alert_list;
45
  }
46
 
47
  }
41
  $alert_list .= "<div id=\"message\" class=\"error below-h2\"><p><strong>".__('Error!', 'quiz-master-next')." </strong>".$alert["message"]."</p></div>";
42
  }
43
  }
44
+ echo apply_filters( 'qsm_alert_messages', $alert_list );
45
  }
46
 
47
  }
php/classes/class-qmn-quiz-manager.php CHANGED
@@ -135,6 +135,8 @@ class QMNQuizManager {
135
  echo "<style type='text/css'>{$qmn_quiz_options->quiz_stye}</style>";
136
  }
137
  }
 
 
138
 
139
  // Starts to prepare variable array for filters.
140
  $qmn_array_for_variables = array(
@@ -452,12 +454,13 @@ class QMNQuizManager {
452
  $questions = QSM_Questions::load_questions_by_pages($options->quiz_id);
453
  $question_list = '';
454
  $contact_fields = QSM_Contact_Manager::load_fields();
 
455
  if (count($pages) > 1 && (!empty($options->message_before) || ( 0 == $options->contact_info_location && $contact_fields ) )) {
456
  $qmn_json_data['first_page'] = true;
457
  $message_before = wpautop(htmlspecialchars_decode($options->message_before, ENT_QUOTES));
458
- $message_before = apply_filters('mlw_qmn_template_variable_quiz_page', $message_before, $quiz_data);
459
  ?>
460
- <section class="qsm-page">
461
  <div class="quiz_section quiz_begin">
462
  <div class='qsm-before-message mlw_qmn_message_before'><?php echo $message_before; ?></div>
463
  <?php
@@ -471,9 +474,9 @@ class QMNQuizManager {
471
  }
472
 
473
  // If there is only one page.
474
- if (1 == count($pages)) {
475
  ?>
476
- <section class="qsm-page">
477
  <?php
478
  if (!empty($options->message_before) || ( 0 == $options->contact_info_location && $contact_fields )) {
479
  $qmn_json_data['first_page'] = false;
@@ -539,9 +542,11 @@ class QMNQuizManager {
539
  </section>
540
  <?php
541
  } else {
 
 
542
  foreach ($pages as $page) {
543
  ?>
544
- <section class="qsm-page">
545
  <?php
546
  foreach ($page as $question_id) {
547
  $question_list .= $question_id . 'Q';
@@ -563,10 +568,17 @@ class QMNQuizManager {
563
  ?>
564
  </div>
565
  <?php
566
- }
567
- ?>
 
 
 
 
 
 
568
  </section>
569
  <?php
 
570
  }
571
  }
572
 
@@ -638,7 +650,8 @@ class QMNQuizManager {
638
  $qmn_json_data["first_page"] = true;
639
  global $mlw_qmn_section_count;
640
  $mlw_qmn_section_count += 1;
641
- $section_display .= "<div class='quiz_section quiz_begin slide$mlw_qmn_section_count'>";
 
642
 
643
  $message_before = wpautop(htmlspecialchars_decode($qmn_quiz_options->message_before, ENT_QUOTES));
644
  $message_before = apply_filters('mlw_qmn_template_variable_quiz_page', $message_before, $qmn_array_for_variables);
@@ -673,10 +686,13 @@ class QMNQuizManager {
673
  global $qmn_total_questions;
674
  global $mlw_qmn_section_count;
675
  $question_id_list = '';
 
 
 
676
  foreach ($qmn_quiz_questions as $mlw_question) {
677
  $question_id_list .= $mlw_question->question_id . "Q";
678
  $mlw_qmn_section_count = $mlw_qmn_section_count + 1;
679
- $question_display .= "<div class='quiz_section question-section-id-{$mlw_question->question_id} slide{$mlw_qmn_section_count}'>";
680
 
681
  $question_display .= $mlwQuizMasterNext->pluginHelper->display_question($mlw_question->question_type_new, $mlw_question->question_id, $qmn_quiz_options);
682
 
@@ -694,7 +710,12 @@ class QMNQuizManager {
694
  $question_display .= "<div title=\"" . esc_attr(htmlspecialchars_decode($mlw_question->hints, ENT_QUOTES)) . "\" class='qsm_hint mlw_qmn_hint_link'>{$qmn_quiz_options->hint_text}</div>";
695
  $question_display .= "<br /><br />";
696
  }
 
 
 
 
697
  $question_display .= "</div>";
 
698
  }
699
  $question_display .= "<input type='hidden' name='qmn_question_list' value='$question_id_list' />";
700
  return $question_display;
135
  echo "<style type='text/css'>{$qmn_quiz_options->quiz_stye}</style>";
136
  }
137
  }
138
+ wp_enqueue_style('qmn_quiz_animation_style', plugins_url('../../css/animate.css', __FILE__));
139
+ wp_enqueue_style('qmn_quiz_common_style', plugins_url('../../css/common.css', __FILE__));
140
 
141
  // Starts to prepare variable array for filters.
142
  $qmn_array_for_variables = array(
454
  $questions = QSM_Questions::load_questions_by_pages($options->quiz_id);
455
  $question_list = '';
456
  $contact_fields = QSM_Contact_Manager::load_fields();
457
+ $animation_effect = isset($options->quiz_animation) && $options->quiz_animation != '' ? ' animated ' . $options->quiz_animation : '';
458
  if (count($pages) > 1 && (!empty($options->message_before) || ( 0 == $options->contact_info_location && $contact_fields ) )) {
459
  $qmn_json_data['first_page'] = true;
460
  $message_before = wpautop(htmlspecialchars_decode($options->message_before, ENT_QUOTES));
461
+ $message_before = apply_filters('mlw_qmn_template_variable_quiz_page', $message_before, $quiz_data);
462
  ?>
463
+ <section class="qsm-page <?php echo $animation_effect; ?>">
464
  <div class="quiz_section quiz_begin">
465
  <div class='qsm-before-message mlw_qmn_message_before'><?php echo $message_before; ?></div>
466
  <?php
474
  }
475
 
476
  // If there is only one page.
477
+ if (1 == count($pages)) {
478
  ?>
479
+ <section class="qsm-page <?php echo $animation_effect; ?>">
480
  <?php
481
  if (!empty($options->message_before) || ( 0 == $options->contact_info_location && $contact_fields )) {
482
  $qmn_json_data['first_page'] = false;
542
  </section>
543
  <?php
544
  } else {
545
+ $total_pages_count = count($pages);
546
+ $pages_count = 1;
547
  foreach ($pages as $page) {
548
  ?>
549
+ <section class="qsm-page <?php echo $animation_effect; ?>">
550
  <?php
551
  foreach ($page as $question_id) {
552
  $question_list .= $question_id . 'Q';
568
  ?>
569
  </div>
570
  <?php
571
+ }
572
+ ?>
573
+ <span class="pages_count">
574
+ <?php
575
+ $text_c = $pages_count . ' out of ' .$total_pages_count;
576
+ echo apply_filters('qsm_total_pages_count',$text_c,$pages_count,$total_pages_count);
577
+ ?>
578
+ </span>
579
  </section>
580
  <?php
581
+ $pages_count++;
582
  }
583
  }
584
 
650
  $qmn_json_data["first_page"] = true;
651
  global $mlw_qmn_section_count;
652
  $mlw_qmn_section_count += 1;
653
+ $animation_effect = isset($qmn_quiz_options->quiz_animation) && $qmn_quiz_options->quiz_animation != '' ? ' animated ' . $qmn_quiz_options->quiz_animation : '';
654
+ $section_display .= "<div class='quiz_section $animation_effect quiz_begin slide$mlw_qmn_section_count'>";
655
 
656
  $message_before = wpautop(htmlspecialchars_decode($qmn_quiz_options->message_before, ENT_QUOTES));
657
  $message_before = apply_filters('mlw_qmn_template_variable_quiz_page', $message_before, $qmn_array_for_variables);
686
  global $qmn_total_questions;
687
  global $mlw_qmn_section_count;
688
  $question_id_list = '';
689
+ $animation_effect = isset($qmn_quiz_options->quiz_animation) && $qmn_quiz_options->quiz_animation != '' ? ' animated ' . $qmn_quiz_options->quiz_animation : '';
690
+ $total_pages_count = count($qmn_quiz_questions);
691
+ $pages_count = 1;
692
  foreach ($qmn_quiz_questions as $mlw_question) {
693
  $question_id_list .= $mlw_question->question_id . "Q";
694
  $mlw_qmn_section_count = $mlw_qmn_section_count + 1;
695
+ $question_display .= "<div class='quiz_section {$animation_effect} question-section-id-{$mlw_question->question_id} slide{$mlw_qmn_section_count}'>";
696
 
697
  $question_display .= $mlwQuizMasterNext->pluginHelper->display_question($mlw_question->question_type_new, $mlw_question->question_id, $qmn_quiz_options);
698
 
710
  $question_display .= "<div title=\"" . esc_attr(htmlspecialchars_decode($mlw_question->hints, ENT_QUOTES)) . "\" class='qsm_hint mlw_qmn_hint_link'>{$qmn_quiz_options->hint_text}</div>";
711
  $question_display .= "<br /><br />";
712
  }
713
+ $question_display .= "<span class='pages_count'>";
714
+ $text_c = $pages_count . ' out of ' .$total_pages_count;
715
+ $question_display .= apply_filters('qsm_total_pages_count',$text_c,$pages_count,$total_pages_count);
716
+ $question_display .= "</span>";
717
  $question_display .= "</div>";
718
+ $pages_count++;
719
  }
720
  $question_display .= "<input type='hidden' name='qmn_question_list' value='$question_id_list' />";
721
  return $question_display;
php/classes/class-qsm-fields.php CHANGED
@@ -231,14 +231,19 @@ class QSM_Fields {
231
  <tr valign="top">
232
  <th scope="row"><label for="<?php echo $field["id"]; ?>"><?php echo $field["label"]; ?></label></th>
233
  <td>
234
- <?php
235
- foreach ( $field["options"] as $option ) {
236
- ?>
237
- <input type="radio" id="<?php echo $field["id"] . '-' . $option["value"]; ?>" name="<?php echo $field["id"]; ?>" <?php checked( $option["value"], $value ); ?> value="<?php echo $option["value"]; ?>" />
238
- <label for="<?php echo $field["id"] . '-' . $option["value"]; ?>"><?php echo $option["label"]; ?></label><br>
239
- <?php
240
- }
241
  ?>
 
 
 
 
 
 
 
 
 
 
242
  </td>
243
  </tr>
244
  <?php
231
  <tr valign="top">
232
  <th scope="row"><label for="<?php echo $field["id"]; ?>"><?php echo $field["label"]; ?></label></th>
233
  <td>
234
+ <?php
235
+ $green_class = count($field["options"]) > 2 ? 'green' : '';
 
 
 
 
 
236
  ?>
237
+ <fieldset class="buttonset buttonset-hide <?php echo $green_class; ?>" data-hide='1'>
238
+ <?php
239
+ foreach ( $field["options"] as $option ) {
240
+ ?>
241
+ <input type="radio" id="<?php echo $field["id"] . '-' . $option["value"]; ?>" name="<?php echo $field["id"]; ?>" <?php checked( $option["value"], $value ); ?> value="<?php echo $option["value"]; ?>" />
242
+ <label for="<?php echo $field["id"] . '-' . $option["value"]; ?>"><?php echo $option["label"]; ?></label>
243
+ <?php
244
+ }
245
+ ?>
246
+ </fieldset>
247
  </td>
248
  </tr>
249
  <?php
php/classes/class-qsm-install.php CHANGED
@@ -534,7 +534,6 @@ class QSM_Install {
534
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
535
 
536
  //Setting for retake quiz
537
- // Settings for quick result
538
  $field_array = array(
539
  'id' => 'enable_retake_quiz_button',
540
  'label' => __('Show RETAKE QUIZ button on result page', 'quiz-master-next'),
@@ -553,6 +552,61 @@ class QSM_Install {
553
  );
554
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
555
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
556
  // Registers message_before setting
557
  $field_array = array(
558
  'id' => 'message_before',
534
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
535
 
536
  //Setting for retake quiz
 
537
  $field_array = array(
538
  'id' => 'enable_retake_quiz_button',
539
  'label' => __('Show RETAKE QUIZ button on result page', 'quiz-master-next'),
552
  );
553
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
554
 
555
+ //Setting for animation
556
+ $field_array = array(
557
+ 'id' => 'quiz_animation',
558
+ 'label' => __('Select quiz animation', 'quiz-master-next'),
559
+ 'type' => 'radio',
560
+ 'options' => array(
561
+ array(
562
+ 'label' => __('bounce', 'quiz-master-next'),
563
+ 'value' => 'bounce'
564
+ ),
565
+ array(
566
+ 'label' => __('flash', 'quiz-master-next'),
567
+ 'value' => 'flash'
568
+ ),
569
+ array(
570
+ 'label' => __('pulse', 'quiz-master-next'),
571
+ 'value' => 'pulse'
572
+ ),
573
+ array(
574
+ 'label' => __('rubberBand', 'quiz-master-next'),
575
+ 'value' => 'rubberBand'
576
+ ),
577
+ array(
578
+ 'label' => __('shake', 'quiz-master-next'),
579
+ 'value' => 'shake'
580
+ ),
581
+ array(
582
+ 'label' => __('swing', 'quiz-master-next'),
583
+ 'value' => 'swing'
584
+ ),
585
+ array(
586
+ 'label' => __('tada', 'quiz-master-next'),
587
+ 'value' => 'tada'
588
+ ),
589
+ array(
590
+ 'label' => __('wobble', 'quiz-master-next'),
591
+ 'value' => 'wobble'
592
+ ),
593
+ array(
594
+ 'label' => __('jello', 'quiz-master-next'),
595
+ 'value' => 'jello'
596
+ ),
597
+ array(
598
+ 'label' => __('heartBeat', 'quiz-master-next'),
599
+ 'value' => 'heartBeat'
600
+ ),
601
+ array(
602
+ 'label' => __('No animation', 'quiz-master-next'),
603
+ 'value' => ''
604
+ )
605
+ ),
606
+ 'default' => ''
607
+ );
608
+ $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
609
+
610
  // Registers message_before setting
611
  $field_array = array(
612
  'id' => 'message_before',
php/classes/class-qsm-questions.php CHANGED
@@ -37,7 +37,7 @@ class QSM_Questions {
37
  }
38
  $question['settings'] = $settings;
39
 
40
- return $question;
41
  }
42
  return array();
43
  }
@@ -111,7 +111,7 @@ class QSM_Questions {
111
  $questions[ $key ]['page'] = isset( $question['page'] ) ? $question['page'] : 0;
112
  }
113
  }
114
- return $questions;
115
  }
116
 
117
  /**
@@ -152,7 +152,7 @@ class QSM_Questions {
152
 
153
  $question_array[ $question['question_id'] ] = $question;
154
  }
155
- return $question_array;
156
  }
157
 
158
  /**
37
  }
38
  $question['settings'] = $settings;
39
 
40
+ return apply_filters('qsm_load_question',$question, $question_id);
41
  }
42
  return array();
43
  }
111
  $questions[ $key ]['page'] = isset( $question['page'] ) ? $question['page'] : 0;
112
  }
113
  }
114
+ return apply_filters('qsm_load_questions_by_pages',$questions,$quiz_id);
115
  }
116
 
117
  /**
152
 
153
  $question_array[ $question['question_id'] ] = $question;
154
  }
155
+ return apply_filters('qsm_load_questions',$question_array,$quiz_id);
156
  }
157
 
158
  /**
php/classes/class-qsm-results-pages.php CHANGED
@@ -340,6 +340,7 @@ class QSM_Results_Pages {
340
  array( '%s' ),
341
  array( '%d' )
342
  );
 
343
  if ( false !== $results ) {
344
  return true;
345
  } else {
340
  array( '%s' ),
341
  array( '%d' )
342
  );
343
+ do_action('qsm_save_result_pages');
344
  if ( false !== $results ) {
345
  return true;
346
  } else {
php/question-types.php CHANGED
@@ -29,7 +29,8 @@ function qmn_multiple_choice_display($id, $question, $answers)
29
  global $mlwQuizMasterNext;
30
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
31
  if ($required == 0) {$mlw_requireClass = "mlwRequiredRadio";} else {$mlw_requireClass = "";}
32
- $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span>";
 
33
  $question_display .= "<div class='qmn_radio_answers $mlw_requireClass'>";
34
  if (is_array($answers))
35
  {
@@ -47,7 +48,7 @@ function qmn_multiple_choice_display($id, $question, $answers)
47
  $question_display .= "<input type='radio' style='display: none;' name='question".$id."' id='question".$id."_none' checked='checked' value='No Answer Provided' />";
48
  }
49
  $question_display .= "</div>";
50
- return $question_display;
51
  }
52
 
53
  /**
@@ -120,7 +121,8 @@ function qmn_horizontal_multiple_choice_display($id, $question, $answers)
120
  global $mlwQuizMasterNext;
121
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
122
  if ($required == 0) {$mlw_requireClass = "mlwRequiredRadio";} else {$mlw_requireClass = "";}
123
- $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span>";
 
124
  $question_display .= "<div class='qmn_radio_answers $mlw_requireClass'>";
125
  if (is_array($answers))
126
  {
@@ -136,7 +138,8 @@ function qmn_horizontal_multiple_choice_display($id, $question, $answers)
136
  $question_display .= "<input type='radio' style='display: none;' name='question".$id."' id='question".$id."_none' checked='checked' value='No Answer Provided' />";
137
  }
138
  $question_display .= "</div>";
139
- return $question_display;
 
140
  }
141
 
142
  /**
@@ -205,31 +208,32 @@ function qmn_question_type_drop_down()
205
  */
206
  function qmn_drop_down_display($id, $question, $answers)
207
  {
208
- $question_display = '';
209
- global $mlwQuizMasterNext;
210
- $required = $mlwQuizMasterNext->pluginHelper->get_question_setting( $id, 'required' );
211
- if ( 0 == $required ) {
212
- $require_class = "qsmRequiredSelect";
213
- } else {
214
- $require_class = "";
215
- }
216
- $question_display .= "<span class='mlw_qmn_question'>" . do_shortcode( htmlspecialchars_decode( $question, ENT_QUOTES ) ) . "</span>";
217
- $question_display .= "<select class='qsm_select $require_class' name='question".$id."'>";
218
- $question_display .= "<option value='' selected='selected'>" . __('Please select your answer','quiz-master-next') . "</option>";
219
- if (is_array($answers))
220
- {
221
- $mlw_answer_total = 0;
222
- foreach($answers as $answer)
223
  {
224
- $mlw_answer_total++;
225
- if ($answer[0] != "")
226
  {
227
- $question_display .= "<option value='".esc_attr($answer[0])."'>".htmlspecialchars_decode($answer[0], ENT_QUOTES)."</option>";
 
 
 
 
228
  }
229
  }
230
- }
231
- $question_display .= "</select>";
232
- return $question_display;
233
  }
234
 
235
  /**
@@ -305,10 +309,11 @@ function qmn_small_open_display($id, $question, $answers)
305
  $limit_text = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'limit_text');
306
  $autofill_att = $autofill ? "autocomplete='off' " : '';
307
  $limit_text_att = $limit_text ? "maxlength='". $limit_text ."' " : '';
308
- if ($required == 0) {$mlw_requireClass = "mlwRequiredText";} else {$mlw_requireClass = "";}
309
- $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span>";
 
310
  $question_display .= "<input ". $autofill_att . $limit_text_att . " type='text' class='mlw_answer_open_text $mlw_requireClass' name='question".$id."' />";
311
- return $question_display;
312
  }
313
 
314
  /**
@@ -381,7 +386,8 @@ function qmn_multiple_response_display($id, $question, $answers)
381
  if($limit_multiple_response > 0)
382
  $limit_mr_text = 'onchange="qsmCheckMR(this,'. $limit_multiple_response .')"';
383
  if ($required == 0) {$mlw_requireClass = "mlwRequiredCheck";} else {$mlw_requireClass = "";}
384
- $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span>";
 
385
  $question_display .= "<div class='qmn_check_answers $mlw_requireClass'>";
386
  if (is_array($answers))
387
  {
@@ -399,7 +405,7 @@ function qmn_multiple_response_display($id, $question, $answers)
399
  }
400
  }
401
  $question_display .= "</div>";
402
- return $question_display;
403
  }
404
 
405
  /**
@@ -481,9 +487,10 @@ function qmn_large_open_display($id, $question, $answers)
481
  global $mlwQuizMasterNext;
482
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
483
  if ($required == 0) {$mlw_requireClass = "mlwRequiredText";} else {$mlw_requireClass = "";}
484
- $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span>";
 
485
  $question_display .= "<textarea class='mlw_answer_open_text $mlw_requireClass' cols='70' rows='5' name='question".$id."' /></textarea>";
486
- return $question_display;
487
  }
488
 
489
  /**
@@ -596,9 +603,10 @@ function qmn_number_display($id, $question, $answers)
596
  global $mlwQuizMasterNext;
597
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
598
  if ($required == 0) {$mlw_requireClass = "mlwRequiredNumber";} else {$mlw_requireClass = "";}
599
- $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span>";
 
600
  $question_display .= "<input type='number' class='mlw_answer_number $mlw_requireClass' name='question".$id."' />";
601
- return $question_display;
602
  }
603
 
604
 
@@ -680,7 +688,7 @@ function qmn_accept_display($id, $question, $answers)
680
  $question_display .= "<input type='checkbox' id='mlwAcceptance' class='$mlw_requireClass ' />";
681
  $question_display .= "<label for='mlwAcceptance'><span class='qmn_accept_text'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span></label>";
682
  $question_display .= "</div>";
683
- return $question_display;
684
  }
685
 
686
  add_action("plugins_loaded", 'qmn_question_type_captcha');
@@ -745,8 +753,8 @@ function qmn_captcha_display($id, $question, $answers)
745
  mlw_captchaCTX.textBaseline = 'middle';
746
  document.getElementById('mlw_code_captcha').value = mlw_code;
747
  </script>
748
- ";
749
- return $question_display;
750
  }
751
 
752
  add_action("plugins_loaded", 'qmn_question_type_horizontal_multiple_response');
@@ -779,7 +787,8 @@ function qmn_horizontal_multiple_response_display($id, $question, $answers)
779
  global $mlwQuizMasterNext;
780
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
781
  if ($required == 0) {$mlw_requireClass = "mlwRequiredCheck";} else {$mlw_requireClass = "";}
782
- $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span>";
 
783
  $question_display .= "<div class='qmn_check_answers $mlw_requireClass'>";
784
  if (is_array($answers))
785
  {
@@ -795,7 +804,7 @@ function qmn_horizontal_multiple_response_display($id, $question, $answers)
795
  }
796
  }
797
  $question_display .= "</div>";
798
- return $question_display;
799
  }
800
 
801
 
@@ -903,9 +912,9 @@ function qmn_fill_blank_display($id, $question, $answers)
903
  {
904
  $question = str_replace( "%BLANK%", $input_text, do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES)));
905
  }
906
- $question_display = "<span class='mlw_qmn_question'>$question</span>";
907
-
908
- return $question_display;
909
  }
910
 
911
 
29
  global $mlwQuizMasterNext;
30
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
31
  if ($required == 0) {$mlw_requireClass = "mlwRequiredRadio";} else {$mlw_requireClass = "";}
32
+ $question_title = apply_filters('the_content', $question);
33
+ $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES))."</span>";
34
  $question_display .= "<div class='qmn_radio_answers $mlw_requireClass'>";
35
  if (is_array($answers))
36
  {
48
  $question_display .= "<input type='radio' style='display: none;' name='question".$id."' id='question".$id."_none' checked='checked' value='No Answer Provided' />";
49
  }
50
  $question_display .= "</div>";
51
+ return apply_filters('qmn_multiple_choice_display_front',$question_display,$id, $question, $answers);
52
  }
53
 
54
  /**
121
  global $mlwQuizMasterNext;
122
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
123
  if ($required == 0) {$mlw_requireClass = "mlwRequiredRadio";} else {$mlw_requireClass = "";}
124
+ $question_title = apply_filters('the_content', $question);
125
+ $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES))."</span>";
126
  $question_display .= "<div class='qmn_radio_answers $mlw_requireClass'>";
127
  if (is_array($answers))
128
  {
138
  $question_display .= "<input type='radio' style='display: none;' name='question".$id."' id='question".$id."_none' checked='checked' value='No Answer Provided' />";
139
  }
140
  $question_display .= "</div>";
141
+
142
+ return apply_filters('qmn_horizontal_multiple_choice_display_front',$question_display,$id, $question, $answers);
143
  }
144
 
145
  /**
208
  */
209
  function qmn_drop_down_display($id, $question, $answers)
210
  {
211
+ $question_display = '';
212
+ global $mlwQuizMasterNext;
213
+ $required = $mlwQuizMasterNext->pluginHelper->get_question_setting( $id, 'required' );
214
+ if ( 0 == $required ) {
215
+ $require_class = "qsmRequiredSelect";
216
+ } else {
217
+ $require_class = "";
218
+ }
219
+ $question_title = apply_filters('the_content', $question);
220
+ $question_display .= "<span class='mlw_qmn_question'>" . do_shortcode( htmlspecialchars_decode( $question_title, ENT_QUOTES ) ) . "</span>";
221
+ $question_display .= "<select class='qsm_select $require_class' name='question".$id."'>";
222
+ $question_display .= "<option value='No Answer Provided'>" . __('Please select your answer','quiz-master-next') . "</option>";
223
+ if (is_array($answers))
 
 
224
  {
225
+ $mlw_answer_total = 0;
226
+ foreach($answers as $answer)
227
  {
228
+ $mlw_answer_total++;
229
+ if ($answer[0] != "")
230
+ {
231
+ $question_display .= "<option value='".esc_attr($answer[0])."'>".htmlspecialchars_decode($answer[0], ENT_QUOTES)."</option>";
232
+ }
233
  }
234
  }
235
+ $question_display .= "</select>";
236
+ return apply_filters('qmn_drop_down_display_front',$question_display,$id, $question, $answers);
 
237
  }
238
 
239
  /**
309
  $limit_text = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'limit_text');
310
  $autofill_att = $autofill ? "autocomplete='off' " : '';
311
  $limit_text_att = $limit_text ? "maxlength='". $limit_text ."' " : '';
312
+ if ($required == 0) {$mlw_requireClass = "mlwRequiredText";} else {$mlw_requireClass = "";}
313
+ $question_title = apply_filters('the_content', $question);
314
+ $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES))."</span>";
315
  $question_display .= "<input ". $autofill_att . $limit_text_att . " type='text' class='mlw_answer_open_text $mlw_requireClass' name='question".$id."' />";
316
+ return apply_filters('qmn_small_open_display_front',$question_display,$id, $question, $answers);
317
  }
318
 
319
  /**
386
  if($limit_multiple_response > 0)
387
  $limit_mr_text = 'onchange="qsmCheckMR(this,'. $limit_multiple_response .')"';
388
  if ($required == 0) {$mlw_requireClass = "mlwRequiredCheck";} else {$mlw_requireClass = "";}
389
+ $question_title = apply_filters('the_content', $question);
390
+ $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES))."</span>";
391
  $question_display .= "<div class='qmn_check_answers $mlw_requireClass'>";
392
  if (is_array($answers))
393
  {
405
  }
406
  }
407
  $question_display .= "</div>";
408
+ return apply_filters('qmn_multiple_response_display_front',$question_display,$id, $question, $answers);
409
  }
410
 
411
  /**
487
  global $mlwQuizMasterNext;
488
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
489
  if ($required == 0) {$mlw_requireClass = "mlwRequiredText";} else {$mlw_requireClass = "";}
490
+ $question_title = apply_filters('the_content', $question);
491
+ $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES))."</span>";
492
  $question_display .= "<textarea class='mlw_answer_open_text $mlw_requireClass' cols='70' rows='5' name='question".$id."' /></textarea>";
493
+ return apply_filters('qmn_large_open_display_front',$question_display,$id, $question, $answers);
494
  }
495
 
496
  /**
603
  global $mlwQuizMasterNext;
604
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
605
  if ($required == 0) {$mlw_requireClass = "mlwRequiredNumber";} else {$mlw_requireClass = "";}
606
+ $question_title = apply_filters('the_content', $question);
607
+ $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES))."</span>";
608
  $question_display .= "<input type='number' class='mlw_answer_number $mlw_requireClass' name='question".$id."' />";
609
+ return apply_filters('qmn_number_display_front',$question_display,$id, $question, $answers);
610
  }
611
 
612
 
688
  $question_display .= "<input type='checkbox' id='mlwAcceptance' class='$mlw_requireClass ' />";
689
  $question_display .= "<label for='mlwAcceptance'><span class='qmn_accept_text'>".do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES))."</span></label>";
690
  $question_display .= "</div>";
691
+ return apply_filters('qmn_accept_display_front',$question_display,$id, $question, $answers);
692
  }
693
 
694
  add_action("plugins_loaded", 'qmn_question_type_captcha');
753
  mlw_captchaCTX.textBaseline = 'middle';
754
  document.getElementById('mlw_code_captcha').value = mlw_code;
755
  </script>
756
+ ";
757
+ return apply_filters('qmn_captcha_display_front',$question_display,$id, $question, $answers);
758
  }
759
 
760
  add_action("plugins_loaded", 'qmn_question_type_horizontal_multiple_response');
787
  global $mlwQuizMasterNext;
788
  $required = $mlwQuizMasterNext->pluginHelper->get_question_setting($id, 'required');
789
  if ($required == 0) {$mlw_requireClass = "mlwRequiredCheck";} else {$mlw_requireClass = "";}
790
+ $question_title = apply_filters('the_content', $question);
791
+ $question_display .= "<span class='mlw_qmn_question'>".do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES))."</span>";
792
  $question_display .= "<div class='qmn_check_answers $mlw_requireClass'>";
793
  if (is_array($answers))
794
  {
804
  }
805
  }
806
  $question_display .= "</div>";
807
+ return apply_filters('qmn_horizontal_multiple_response_display_front',$question_display,$id, $question, $answers);
808
  }
809
 
810
 
912
  {
913
  $question = str_replace( "%BLANK%", $input_text, do_shortcode(htmlspecialchars_decode($question, ENT_QUOTES)));
914
  }
915
+ $question_title = apply_filters('the_content', $question);
916
+ $question_display = "<span class='mlw_qmn_question'>" . do_shortcode(htmlspecialchars_decode($question_title, ENT_QUOTES)) ."</span>";
917
+ return apply_filters('qmn_fill_blank_display_front',$question_display,$id, $question, $answers);
918
  }
919
 
920
 
php/rest-api.php CHANGED
@@ -46,6 +46,97 @@ function qsm_register_rest_routes() {
46
  'methods' => WP_REST_Server::EDITABLE,
47
  'callback' => 'qsm_rest_save_emails',
48
  ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
 
51
  /**
46
  'methods' => WP_REST_Server::EDITABLE,
47
  'callback' => 'qsm_rest_save_emails',
48
  ) );
49
+ //Register rest api to get quiz list
50
+ register_rest_route('qsm', '/list_quiz', array(
51
+ 'methods' => 'GET',
52
+ 'callback' => 'qsm_get_basic_info_quiz',
53
+ ));
54
+ //Register rest api to get result of quiz
55
+ register_rest_route('qsm', '/list_results/(?P<id>\d+)', array(
56
+ 'methods' => 'GET',
57
+ 'callback' => 'qsm_get_result_of_quiz',
58
+ ));
59
+ }
60
+
61
+ /**
62
+ * Get the result of quiz from quiz id
63
+ *
64
+ * @since 6.3.5
65
+ * @param WP_REST_Request $request
66
+ */
67
+ function qsm_get_result_of_quiz( WP_REST_Request $request ){
68
+ $quiz_id = isset($request['id']) ? $request['id'] : 0;
69
+ if($quiz_id > 0){
70
+ global $wpdb;
71
+ $mlw_quiz_data = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}mlw_results WHERE deleted='0' AND quiz_id = $quiz_id LIMIT 0,40" );
72
+ if($mlw_quiz_data){
73
+ $result_data = array();
74
+ foreach ($mlw_quiz_data as $mlw_quiz_info) {
75
+ if ( $mlw_quiz_info->quiz_system == 0 ) {
76
+ $quotes_list = "" . $mlw_quiz_info->correct ." out of ".$mlw_quiz_info->total." or ".$mlw_quiz_info->correct_score."%";
77
+ }
78
+ if ( $mlw_quiz_info->quiz_system == 1 ) {
79
+ $quotes_list = "" . $mlw_quiz_info->point_score . " Points";
80
+ }
81
+ if ( $mlw_quiz_info->quiz_system == 2 ) {
82
+ $quotes_list = "".__('Not Graded','quiz-master-next' )."";
83
+ }
84
+ //Time to complete
85
+ $mlw_complete_time = '';
86
+ $mlw_qmn_results_array = @unserialize($mlw_quiz_info->quiz_results);
87
+ if ( is_array( $mlw_qmn_results_array ) ) {
88
+ $mlw_complete_hours = floor($mlw_qmn_results_array[0] / 3600);
89
+ if ( $mlw_complete_hours > 0 ) {
90
+ $mlw_complete_time .= "$mlw_complete_hours hours ";
91
+ }
92
+ $mlw_complete_minutes = floor(($mlw_qmn_results_array[0] % 3600) / 60);
93
+ if ( $mlw_complete_minutes > 0 ) {
94
+ $mlw_complete_time .= "$mlw_complete_minutes minutes ";
95
+ }
96
+ $mlw_complete_seconds = $mlw_qmn_results_array[0] % 60;
97
+ $mlw_complete_time .= "$mlw_complete_seconds seconds";
98
+ }
99
+ //Time taken
100
+ $date = date_i18n( get_option( 'date_format' ), strtotime( $mlw_quiz_info->time_taken ) );
101
+ $time = date( "h:i:s A", strtotime( $mlw_quiz_info->time_taken ) );
102
+ $result_data[] = array(
103
+ 'score' => $quotes_list,
104
+ 'time_to_complete' => $mlw_complete_time,
105
+ 'time_taken' => $date . ' ' .$time,
106
+ );
107
+ }
108
+ print_r($result_data);
109
+ exit;
110
+ }else{
111
+ return rest_ensure_response('No record found.');
112
+ }
113
+ }else{
114
+ return rest_ensure_response('Quiz id is missing.');
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Get the list of quizes
120
+ * @since 6.3.5
121
+ * @param WP_REST_Request $request
122
+ */
123
+ function qsm_get_basic_info_quiz( WP_REST_Request $request ){
124
+ global $mlwQuizMasterNext;
125
+ $quizzes = $mlwQuizMasterNext->pluginHelper->get_quizzes();
126
+ if($quizzes){
127
+ $quiz_data = array();
128
+ foreach ($quizzes as $quiz) {
129
+ $quiz_data[] = array(
130
+ 'quiz_name' => $quiz->quiz_name,
131
+ 'last_activity' => $quiz->last_activity,
132
+ 'quiz_views' => $quiz->quiz_views,
133
+ 'quiz_taken' => $quiz->quiz_taken,
134
+ );
135
+ }
136
+ return rest_ensure_response($quiz_data);
137
+ }else{
138
+ return rest_ensure_response('No quiz found.');
139
+ }
140
  }
141
 
142
  /**
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: quiz, survey, lead, test, score, exam, questionnaire, question
4
  Requires at least: 4.9
5
  Tested up to: 5.2
6
  Requires PHP: 5.4
7
- Stable tag: 6.3.4
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -111,6 +111,17 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
111
 
112
  == Changelog ==
113
 
 
 
 
 
 
 
 
 
 
 
 
114
  = 6.3.4 (Oct 24, 2019) =
115
  * Massive overhaule for being responsive in admin panel.
116
  * Checkbox limit ([Issue #743] https://github.com/QuizandSurveyMaster/quiz_master_next/issues/743)
4
  Requires at least: 4.9
5
  Tested up to: 5.2
6
  Requires PHP: 5.4
7
+ Stable tag: 6.3.5
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
111
 
112
  == Changelog ==
113
 
114
+ = 6.3.5 (Nov 22, 2019) =
115
+ * New Design Elements
116
+ * Show page count for multipage quizzes
117
+ * Get Quiz and Survey Data Using Wordpress API (https://github.com/QuizandSurveyMaster/quiz_master_next/issues/769)
118
+ * Filters and hooks listed on documentation
119
+ * Animations/transition options for questions (https://github.com/QuizandSurveyMaster/quiz_master_next/issues/719)
120
+ * Bug: WordPress embed shortcode does not work in question
121
+ * Remove advertisement from top bar in quizzes
122
+ * Results table design change
123
+ * XSS Vulnerability (https://github.com/QuizandSurveyMaster/quiz_master_next/issues/795)
124
+
125
  = 6.3.4 (Oct 24, 2019) =
126
  * Massive overhaule for being responsive in admin panel.
127
  * Checkbox limit ([Issue #743] https://github.com/QuizandSurveyMaster/quiz_master_next/issues/743)